Test-driven development with mutation testing – an experimental study

被引:0
作者
Adam Roman
Michal Mnich
机构
[1] Institute of Computer Science and Computational Mathematics,Jagiellonian University
[2] Faculty of Physics,Jagiellonian University
[3] Astronomy and Applied Computer Science,undefined
来源
Software Quality Journal | 2021年 / 29卷
关键词
TDD; Test-driven development; Mutation testing; Test-first approach;
D O I
暂无
中图分类号
学科分类号
摘要
Test-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.
引用
收藏
页码:1 / 38
页数:37
相关论文
共 38 条
[1]  
Basili V(1988)The tame project: towards improvement-oriented software environments IEEE Transactions on Software Engineering 14 758-773
[2]  
Rombach H(2012)Impact of test design technique knowledge on test driven development: A controlled experiment Lecture Notes in Business Information Processing 111 138-152
[3]  
Čaušević A(2006)Driving software quality: how test-driven development impacts software quality IEEE Software 23 70-71
[4]  
Sundmark D(1978)Hints on test data selection: help for the practicing programmer IEEE Computer 11 34-41
[5]  
Punnekkat S(2005)On the effectiveness of the test-first approach to programming IEEE Transactions on Software Engineering 31 226237-614
[6]  
Crispin L(2017)A dissection of the test-driven development process: Does it really matter to test-first or to test-last? IEEE Transactions on Software Engineering 43 59-342
[7]  
DeMillo R(2004)A structured experiment on test-driven development Information and Software Technology 46 337-194
[8]  
Lipton R(2009)Empirical investigation towards the effectiveness of test first programming Information and Software Technology 51 182-84
[9]  
Sayward F(2008)Does test-driven development really improve software design quality? IEEE Software 25 77-678
[10]  
Erdogmus H(2011)An analysis and survey of the development of mutation testing IEEE Transactions on Software Engineering 37 649-7716