Automated Software Testing Optimization - Test Case Selection

Test Case Selection - The tool is available at

Image credit: Unsplash


Automated testing is an essential component of Continuous Integration (CI) and Delivery (CD), such as scheduling automated test sessions on overnight builds. That allows stakeholders to execute entire test suites and achieve exhaustive test coverage, since running all tests is often infeasible during work hours, i.e., in parallel to development activities. On the other hand, developers also need test feedback from CI servers when pushing changes, even if not all test cases are executed. I together with other researchers have explored different techniques to find an optimized test subset to achieve faster feedback which was turned into a published paper and an open-source tools (Available on my website). In addition, to implement and investigate optimized testing techniques in CI/CD, I have explored what are the challenges and benefits of using test optimization techniques. We conducted this research in close collaboration with Axis Communication and the findings can be read in an publised document in research publications.


Similarity based test case selection (SBTCS) is a technique for selecting tests by comparing the similarities between the test cases. By generating a smaller subset of tests that are as diverse as possible, it is possible to reduce the time taken to execute the test suite while maximizing the fault detection. This tool is written to apply the SBTCS technique on a Python test suite on both standalone projects and automated builds using Jenkins, Travis CI etc. Read more at

The Research is available at

Azeem Ahmad
Azeem Ahmad
PhD Candidate in Software Engineering

The focus of my research is to use machine learning and AI methods to solve real-time problems related to continuous integration and delivery (CI/CD), software test optimization, and data visualization in CI/CD in European Industries (i.e., that are part of the software center ( I investigate and optimize the Continuous Integration and Delivery pipeline and how to visualize data streams, currently flowing in the pipeline. In addition to this, a part of my research is to optimize software testing and quality.