Tests help developers to ensure that the functionality is there. Let’s help developers to ensure that their functionality has tests.
Unit tests allow to reduce the time required for defect defection, which in a longer run reduces the cost the development of a certain software. Never the less writing tests is a non-trivial activity which does not impact the software functionality directly and so big parts of code are left non-tested. Code coverage tools provide a nice overview about which parts of software are tested. But this still requires significant motivation of a developer to dig deeper and introduce missing tests. The vision of this project is to provide a testing assistant that will help you to test your code, and test your code with the available tests.
This project will be done in Pharo, a dynamic object-oriented programming language and environment. Because of reflectivity of the language it will not be hard to perform such tasks as on-the-go method creation or execution analysis and will allow to focus on the testing assistance approach itself. The IDE already has a way of facilitating test driven development by helping to create missing methods and fix a wrong code during runtime. This project can be a nice continuation of Pharo vision and may be even integrated into its core distribution.
This project represents a big idea that can be approached by both bachelor and master students and can serve as a source of smaller tasks for seminar projects as well.