Abstract
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.
Funder
Jagiellonian University in Krakow
Publisher
Springer Science and Business Media LLC
Subject
Safety, Risk, Reliability and Quality,Software
Reference55 articles.
1. Ahmed, I., Gopinath, R., Brindescu, C., Groce, A., Jensen, C. (2016). Can testedness be effectively measured? In: Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, Association for Computing Machinery, New York, NY, USA, FSE 2016 (pp. 547-558). https://doi.org/10.1145/2950290.2950324.
2. Ahmed, I., Jensen, C., Groce, A., PE, M. (2017). Applying mutation analysis on kernel test suites: An experience report. IEEE Int Conf on Software Testing Verification and Validation Workshop, ICSTW (pp. 110–115).
3. Aichernig, B. K., Lorber, F., Tiran, S. (2014). Formal test-driven development with verified test cases. In: 2014 2nd International Conference on Model-Driven Engineering and Software Development (MODELSWARD) (pp. 626–635).
4. Ammann, P., & Offutt, J. (2008). Introduction to Software Testing (1st ed.). USA: Cambridge University Press.
5. Ammann, P., Delamaro, M. E., Offutt, J. (2014). Establishing theoretical minimal sets of mutants. In: 2014 IEEE Seventh International Conference on Software Testing, Verification and Validation (pp. 21–30).
Cited by
8 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Automation of Test Skeletons Within Test-Driven Development Projects;2024 36th International Conference on Software Engineering Education and Training (CSEE&T);2024-07-29
2. Generating Automated Assistance Mechanism in Android Programming Self-learning System Using Automatic Testing Tools;2023 International Conference on Innovation and Intelligence for Informatics, Computing, and Technologies (3ICT);2023-11-20
3. An Implementation of Android Programming Self-learning Topic for Developing Online Database Application Using Firebase;2023 Sixth International Conference on Vocational Education and Electrical Engineering (ICVEE);2023-10-14
4. Implementation and Evaluation of Self-learning Topic for SQLite Integration in Flutter Programming Learning Assistance System;2023 10th International Conference on Electrical Engineering, Computer Science and Informatics (EECSI);2023-09-20
5. TeqReq: a new family of test-related requirements attributes;Software Quality Journal;2022-01-31