Skip to content

johanneshagspiel/jpacman-test-suite

Repository files navigation

The Green Thumb Logo


MIT License Top Language Latest Release

JPacman Test Suite

This repository contains the test suite created for the "JPacman" game. "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.