Mutation testing techniques: A comparative study

Author(s):  
Soukaina Hamimoune ◽  
Bouchaib Falah
Author(s):  
Adam Roman ◽  
Michal Mnich

AbstractTest-driven development (TDD) is a popular design approach used by the developers with testing being the important software development driving factor. On the other hand, mutation testing is considered one of the most effective testing techniques. However, there is not so much research on combining these two techniques together. In this paper, we propose a novel, hybrid approach called TDD+M which combines test-driven development process together with the mutation approach. The aim was to check whether this modified approach allows the developers to write a better quality code. We verify our approach by conducting a controlled experiment and we show that it achieves better results than the sole TDD technique. The experiment involved 22 computer science students split into eight groups. Four groups (TDD+M) were using our approach, the other four (TDD) – a normal TDD process. We performed a cross-experiment by measuring the code coverage and mutation coverage for each combination (code of group X, tests from group Y). The TDD+M tests achieved better coverage on the code from TDD groups than the TDD tests on their own code (53.3% vs. 33.5% statement coverage and 64.9% vs. 37.5% mutation coverage). The TDD+M tests also found more post-release defects in the TDD code than TDD tests in the TDD+M code. The experiment showed that adding mutation into the TDD process allows the developers to provide better, stronger tests and to write a better quality code.


2018 ◽  
Vol 24 (10) ◽  
pp. 7305-7310 ◽  
Author(s):  
Asmau Usman ◽  
Noraini Ibrahim ◽  
Ibrahim Anka Salihu

Author(s):  
Pooja Kaplesh ◽  
Severin K. Y. Pang

Testing software is a process of program execution with the intent to find errors. For this purpose, various testing techniques have been used over time. Testing software is an intensive field of research in which much development work has been done. This field will become increasingly important in the future. There are many techniques for software testing. This chapter gives an overview of the entire range of software testing with suggestions for their implementation. One focus is on testing in an agile development process why the different types of software tests are important, and their cycle and methodology are described. In addition, different levels, types, and a comparative study on different types of tests are presented. The chapter also includes suggestions for performing the various tests and an effective approach to testing a software system.


Sign in / Sign up

Export Citation Format

Share Document