In an AGILE environment developers should be prepared to incorporate frequent changes while ensuring that they maintain the quality and functionality of the system. Yet, even minor changes can affect other, seemingly unrelated parts of the system, and techniques such as Change Impact Analysis (CIA) help manage changes more effectively in order to eliminate or mitigate any associated risks. This research investigates the potential use of mutation testing as an approach to CIA, and thus aims to use mutation testing to analyse and assess the direct and indirect impact of changes in source code between consecutive versions of a software as historically recorded through a version control system.
To achieve this aim, a software tool was developed in Java, which enabled the collection of data regarding the changes introduced between subsequent commits of a project in files and their contents, test cases, and – by means of mutation testing – in mutations and mutation test results; this tool was then used to collect such data from five case study projects. This was then analysed and interpreted in order to identify the impact of changes on mutations and mutation test results, as well as similarities and differences between the projects considered.
The research shows that mutation testing may be used as a technique of CIA, and as it can be fully automated, it may be employed as a testing method in the process of continuous integration. The data analysis and interpretation helps reveal certain patterns and trends in the case study projects considered, with further research needed to better understand the impact of changes on mutation test results, and to improve the accuracy of the change impact data generated. Abstract
In an AGILE environment developers should be prepared to incorporate frequent changes while ensuring that they maintain the quality and functionality of the system. Yet, even minor changes can affect other, seemingly unrelated parts of the system, and techniques such as Change Impact Analysis (CIA) help manage changes more effectively in order to eliminate or mitigate any associated risks. This research investigates the potential use of mutation testing as an approach to CIA, and thus aims to use mutation testing to analyse and assess the direct and indirect impact of changes in source code between consecutive versions of a software as historically recorded through a version control system.
To achieve this aim, a software tool was developed in Java, which enabled the collection of data regarding the changes introduced between subsequent commits of a project in files and their contents, test cases, and – by means of mutation testing – in mutations and mutation test results; this tool was then used to collect such data from five case study projects. This was then analysed and interpreted in order to identify the impact of changes on mutations and mutation test results, as well as similarities and differences between the projects considered.
The research shows that mutation testing may be used as a technique of CIA, and as it can be fully automated, it may be employed as a testing method in the process of continuous integration. The data analysis and interpretation helps reveal certain patterns and trends in the case study projects considered, with further research needed to better understand the impact of changes on mutation test results, and to improve the accuracy of the change impact data generated.