Details of the Project
The vision of this research project is to uncover what kind of automated testing provides the most value with the highest amount of trust in the results.
- Reducing the lead-time and give faster testing feedback to developers.
- Reducing resources needed for testing environments (e.g., time, hardware dependencies).
- Trigger insights in the creation and maintenance of test cases.
- Use Machine Learning to support test activities and human decisions
- Share current practices, challenges, and opportunities for test automation among the different collaborating companies.
- Tools for test automation initiatives and research, as plugins to Continous Integration pipelines.
Summary of Results
Note: Results are constantly update as we achieve more results in each Sprint. Make sure to keep checking our webpage for updates.
1- Faster testing cycles with sustainable coverage: Whenever testers/developers do not have resources to run all tests, we created a tool that automatically selects smaller and diverse subsets of tests. That way, testers wait less time to run the tests while covering as more different features as possible. In a study with a participating company, we reduced the test cycles from 3 hours to 30 minutes (85% faster) while covering all the features of the software system.
2- Controllable and fast test executions: When modifying specific features or products, testers can define which features / products should be covered in the test session. Our tool then automatically selects the minimal number of tests to cover all the specified modifications. The tester/developer receives then, faster feedback while covering the specific features or products affected by the modification.
3- Connecting test optimisation to Continuous Integration pipelines: At each integration cycle, running all tests may be infeasible or too costly. In a study with our industry partners, we devised how different test optimisation approaches (test prioritisation, selection, etc.) can be integrated with CI servers (e.g., Jenkins) to automatically decide what to test given the limited resources.