Testing Stratagy - Hamster339/Piping-Tool-Java GitHub Wiki
Introduction
The question of how to involve unit testing in this project has come up. There are three different testing methodologies that could be used. These are:
- Test driven development
- Tests written after each feature
- No testing
Test driven development
This methodology consists of first writing tests, then implementing the features to ensure the tests pass.
The advantage of this is it ensures the program is thoroughly tested, enures a significant reduction on defect rates and may improve the quality of the code
the downside of this technique is that it requires a significant increase in initial programing effort.
Tests written after each feature
This methodology re requires less effort that TTD but results in less stringent tests. It ensures that future features do not break already implemented features.
No testing
Not using tests means that the project can not benefit from the great benefits of testing, but also requires no extra effort.
Conclusion
Due to the current very small scale of the project, and the developer's lack of skills in testing, TTD is a bit overkill and would slow down the project considerably, with much more time spent writing tests than writing code.
With the scale of the project, not using unit tests is feasible, but in order to increase the dev team's experience of testing, and to make the program more scalable, testing after each feature would be the best option. For the purposes of this project, a "feature" for testing will be defined as one sprint/iteration.
supplement: GUI
Gui testing is more complex. The team has decided to follow the methodology of moving the logic of GUI code to separate functions that can be tested, and replying on manual testing to make sure GUI works