JPacman Test Suite (repository)
Summary |
---|
🟡 A test-suite created for JPacman. “JPacman” was originally developed by Arie van Deursen and is a recreation of the “Pacman” game in Java. |
Features
The test suite contains a variety of different test such as:
- unit tests made with JUnit
- boundary tests using a 1x1 domain testing strategy
- mock tests made with Mockito to increase observability and controllability
- fuzz testing to determine a potential security vulnerability of a plugin
- system tests based on system requirements
- model based tests, for which first a UML state machine was created which then was turned into a transition tree and then finally into a transition table
- quality control with code coverage library JaCoCo and static analysis tools like checkstyle, PMD and SpotBugs
Most of these tests were created directly on the basis of user stories in line with agile methodologies. Finally, “JPacman’s” functionality was extended in a test-driven manner in order to support multi-level games.
Tools
Purpose | Name |
---|---|
Programming language | Java |
Dependency manager | Gradle |
Version control system | Git |
Unit testing framework | JUnit |
Mocking framework | Mockito |
Code coverage library | JaCoCo |
Static analysis tools | checkstyle, PMD, SpotBugs |
Installation Process
It is assumed that both a Java JDK and an IDE such as IntelliJ or Eclipse are installed.
- Import the repository as a gradle project and resolve all dependencies.
- Run the game by executing the main method in the Launcher class.
- Execute the tests in the test suite
Contributors
The authors of the “JPacman” game can be found AUTHORS file and the repository of the original source code can be found here.
This test suite was created together with:
Licence
The original “JPacman-Framework” was published under the Apache 2.0 license, which can be found in the Apache-2.0-LICENSE file. For this repository, the terms laid out there shall not apply to any individual that is currently enrolled at a higher education institution as a student. Those individuals shall not interact with any other part of this repository besides this README in any way by, for example cloning it or looking at its source code or have someone else interact with this repository in any way.