Testing - Ormulsoft/Task-Scheduler GitHub Wiki

Our testing largely consisted of using maven to run jUnit test suites, which is also used by Travis CI to validate any pushed versions of the source code passed these tests, before allowing a pull request to master, to ensure no broken code reaches the master branch.

GUI

GUI testing was carried out manually and in conjunction with automated algorithm testing. This focused on GUI responsiveness/threading, usability, and visual layout.

jUnit

jUnit test suites were created for the different algorithms, each testing a variety of inputs with known optimal solutions and verifying that the algorithm returns the optimal solution length for these inputs.

Maven

The Maven pom.xml file was adjusted to allow a test goal to automatically trigger any unit tests inside the tests.java package in source code. This allowed quick and easy testing without having to relaunch for each input, as well as allowing Travis integration.

Travis CI

Each time a push or pull request was made to remote (on any branch), Travis would run the Maven test goal, and verify that all the tests were passed, as well as that the code built without errors. Travis then notifies the author of any failures, as well as the project owner (team leader).

Master Protection

The master branch was protected during development (the constraint has now been removed for final repo cleaning commits), meaning that no pushes to master could be made, and Pull Requests must not only be reviewed by one other team member, but also must pass all Travis tests before they could be merged. This protected our master branch from faulty code and errors.