Testprioritering med stöd av maskininlärning
Examensarbete på kandidatnivå
Regression testing is an integral part of the continuous integration software development practice. As testing suites grow larger and execution time increases the development cycle slows down. By prioritizing tests within a given test suite development time can be optimized if tests more likely to fail are executed first. The sooner a failing test can be discovered the sooner problems with the software can be fixed. This thesis aims at researching the possibility of using machine learning to look at changes made within a software build to prioritize tests according to highest likelihood of failure. The thesis is done in collaboration with Ericsson where resources and data are supplied from their System Test department. With data collected from their regression testing suites experimentation were made to evaluate how machine learning can be used to prioritize tests within their weekly regression testing. The research resulted in some inconclusive results but a good indication that machine learning can be used to prioritize tests with promising outcomes.
Test Prioritization , Machine Learning , Regression Testing , Continuous Integration , Optimization , Python