Submitted Abstract
Every device, system and service depends to some extend on software. Unfortunately, this dependence raises several concerns regarding the impact of software errors. These problems range from small disturbances to major incidences such as accidents, frauds and financial losses. Therefore, it is mandatory to ensure the safe and reliable function of software. However, establishing these attributes is hard and costly. Even worse, software systems are subject to constant modifications and thus, maintaining and controlling their reliability over time is mandatory. This requirement dramatically increases the cost of continues testing that has to be invested. To deal with this issue, CODEMATES aims at developing an effective software testing technique that will reliable measure the testing quality during the continues process of software development. The innovative part of this research is that it will identify the key attributes to be tested during the project evolution. It will develop and rely on special kinds of artificial defects, known as mutants, which will be coupled to every committed change on the software under analysis. The project will use past defects to encode effective mutants and will rely on the symbolic execution and machine learning techniques to identify mutants that are relevant to the continues integration of the projects. Thus, CODEMATES will define test requirements (mutants) related to the software integrations (regressions), i.e., changes made during software evolution and will encode frequent (past) critical mistakes made by programmers. This will enable the efficient adaptation of the test process according to the software evolution and will ultimately establish a high level of testing quality during the whole life of the software systems.