Exam project of the course: Testing and Software Verification
Maven's primary goal is to allow a developer to comprehend the complete state of a development effort in the shortest period of time. In order to attain this goal, Maven deals with several areas of concern:
- Making the build process easy
- Providing a uniform build system
- Providing quality project information
- Encouraging better development practices
thanks to Maven the connection with Travis CI is easier
Maven: https://maven.apache.org/
Travis CI is a hosted continuous integration service used to build and test software projects hosted on GitHub.
Travis CI is configured by adding a file named .travis.yml, which is a YAML format text file, to the root directory of the repository. This file specifies the programming language used, the desired building and testing environment (including dependencies which must be installed before the software can be built and tested), and various other parameters.
In the case of this application I had to configure the yml file to be able to test the graphical interface using xvfb (X Virtual Framebuffer) to imitate a display.
Travis CI: https://www.travis-ci.com/
JUnit is a unit testing framework for the Java programming language. JUnit has been important in the development of test-driven development, and is one of a family of unit testing frameworks which is collectively known as xUnit that originated with SUnit. In this project I have used JUnit 4 version.
JUnit 4: https://junit.org/junit4/
The Java Modeling Language (JML) is a specification language for Java programs, using Hoare style pre- and post- conditions and invariants, that follows the design by contract paradigm. Specifications are written as Java annotation comments to the source files, which hence can be compiled with any Java compiler.
JML: https://www.cs.ucf.edu/~leavens/JML/index.shtml
Asmeta is a framework for the Abstract State Machines (ASMs) formal method. It is composed of different tools for performing different validation and verification activities.
Asmeta: https://asmeta.github.io/index.html
GraphWalker is a tool that addresses State Transition Model-Based Testing; in other words, it allows you to perform modeling around states and transitions between those states using directed graphs.
Graph Walker: https://graphwalker.github.io/
A Frame that allows the user to authenticate in the system via username and password, it is also possible to access as a guest or create a new account (signUp).
A Frame that allows the user to create a new account by providing name, surname, username, date of birth, email and password.
Once you have logged in or created a new account, the game frame will open, this frame allows the user to see his scores and to select the desired game
The goal of the game is to eat the apples and avoid the walls or the body of the snake.
Tic-tac-toe (American English) is a game for two players who take turns marking the spaces in a three-by-three grid with X or O. The player who succeeds in placing three of their marks in a horizontal, vertical, or diagonal row is the winner.