An Empirical Evaluation of Manually Created Equivalent Mutants (2404.09241v1)
Abstract: Mutation testing consists of evaluating how effective test suites are at detecting artificially seeded defects in the source code, and guiding the improvement of the test suites. Although mutation testing tools are increasingly adopted in practice, equivalent mutants, i.e., mutants that differ only in syntax but not semantics, hamper this process. While prior research investigated how frequently equivalent mutants are produced by mutation testing tools and how effective existing methods of detecting these equivalent mutants are, it remains unclear to what degree humans also create equivalent mutants, and how well they perform at identifying these. We therefore study these questions in the context of Code Defenders, a mutation testing game, in which players competitively produce mutants and tests. Using manual inspection as well as automated identification methods we establish that less than 10 % of manually created mutants are equivalent. Surprisingly, our findings indicate that a significant portion of developers struggle to accurately identify equivalent mutants, emphasizing the need for improved detection mechanisms and developer training in mutation testing.
- G. Petrovic, M. Ivankovic, G. Fraser, and R. Just, “Practical mutation testing at scale: A view from google,” IEEE Trans. Software Eng., vol. 48, no. 10, pp. 3900–3912, 2022.
- R. A. DeMillo, R. J. Lipton, and F. G. Sayward, “Hints on test data selection: Help for the practicing programmer,” Computer, vol. 11, no. 4, pp. 34–41, 1978.
- A. J. Offutt and W. M. Craft, “Using compiler optimization techniques to detect equivalent mutants,” Softw. Test. Verification Reliab., vol. 4, no. 3, pp. 131–154, 1994.
- M. Papadakis, Y. Jia, M. Harman, and Y. L. Traon, “Trivial compiler equivalence: A large scale empirical study of a simple, fast and effective equivalent mutant detection technique,” in 37th IEEE/ACM International Conference on Software Engineering, ICSE 2015, pp. 936–946, IEEE Computer Society, 2015.
- M. Houshmand and S. Paydar, “TCE+: an extension of the TCE method for detecting equivalent mutants in java programs,” in Fundamentals of Software Engineering - 7th International Conference, FSEN 2017, vol. 10522 of LNCS, pp. 164–179, Springer, 2017.
- M. R. Naeem, T. Lin, H. Naeem, and H. Liu, “A machine learning approach for classification of equivalent mutants,” Journal of Software: Evolution and Process, vol. 32, no. 5, p. e2238, 2020.
- D. Schuler and A. Zeller, “Covering and uncovering equivalent mutants,” Softw. Test. Verification Reliab., vol. 23, no. 5, pp. 353–374, 2013.
- I. Marsit, A. Ayad, D. Kim, M. Latif, J. M. Loh, M. N. Omri, and A. Mili, “The ratio of equivalent mutants: A key to analyzing mutation equivalence,” J. Syst. Softw., vol. 181, p. 111039, 2021.
- R. Pitts, “Random mutant selection and equivalent mutants revisited,” in IEEE International Conference on Software Testing, Verification and Validation Workshops ICST Workshops 2022, pp. 170–178, IEEE, 2022.
- J. M. Rojas and G. Fraser, “Code defenders: A mutation testing game,” in Int. Conference on Software Testing, Verification and Validation Workshops, pp. 162–167, IEEE Computer Society, 2016.
- G. Fraser, A. Gambi, M. Kreis, and J. M. Rojas, “Gamifying a software testing course with code defenders,” in ACM Technical Symposium on Computer Science Education, SIGCSE 2019, pp. 571–577, ACM, 2019.
- J. M. Rojas, T. D. White, B. S. Clegg, and G. Fraser, “Code defenders: crowdsourcing effective tests and subtle mutants with a mutation testing game,” in Proceedings of the 39th International Conference on Software Engineering, ICSE 2017, pp. 677–688, IEEE / ACM, 2017.
- M. Tufano, C. Watson, G. Bavota, M. D. Penta, M. White, and D. Poshyvanyk, “Learning how to mutate source code from bug-fixes,” in 2019 IEEE International Conference on Software Maintenance and Evolution, ICSME 2019, pp. 301–312, IEEE, 2019.
- M. Tufano, J. Kimko, S. Wang, C. Watson, G. Bavota, M. D. Penta, and D. Poshyvanyk, “Deepmutation: a neural mutation tool,” in International Conference on Software Engineering, pp. 29–32, ACM, 2020.
- R. Degiovanni and M. Papadakis, “μ𝜇\muitalic_μbert: Mutation testing using pre-trained language models,” in Int. Conf. on Software Testing, Verification and Validation Workshops (ICSTW), pp. 160–169, IEEE, 2022.
- T. A. Budd, R. J. Lipton, R. A. DeMillo, and F. G. Sayward, “The design of a prototype mutation system for program testing,” in American Federation of Information Processing Societies: 1978 National Computer Conference, vol. 47, pp. 623–629, AFIPS Press, 1978.
- State University of New York at Binghamton, 1985.
- T. A. Budd and D. Angluin, “Two notions of correctness and their relation to testing,” Acta Informatica, vol. 18, pp. 31–45, 1982.
- X. Yao, M. Harman, and Y. Jia, “A study of equivalent and stubborn mutation operators using human analysis of equivalence,” in Int. Conference on Software Engineering (ICSE), pp. 919–930, 2014.
- J. Zhang, Z. Wang, L. Zhang, D. Hao, L. Zang, S. Cheng, and L. Zhang, “Predictive mutation testing,” in Proceedings of the 25th International Symposium on Software Testing and Analysis, pp. 342–353, 2016.
- S. Peacock, L. Deng, J. Dehlinger, and S. Chakraborty, “Automatic equivalent mutants classification using abstract syntax tree neural networks,” in 2021 IEEE International Conference on Software Testing, Verification and Validation Workshops (ICSTW), pp. 13–18, IEEE, 2021.
- C. Brito, V. H. Durelli, R. S. Durelli, S. R. de Souza, A. M. Vincenzi, and M. E. Delamaro, “A preliminary investigation into using machine learning algorithms to identify minimal and equivalent mutants,” in 2020 IEEE International Conference on Software Testing, Verification and Validation Workshops (ICSTW), pp. 304–313, IEEE, 2020.
- K. Jammalamadaka and N. Parveen, “Equivalent mutant identification using hybrid wavelet convolutional rain optimization,” Software: Practice and Experience, vol. 52, no. 2, pp. 576–593, 2022.
- L. van Hijfte and A. Oprescu, “Mutantbench: an equivalent mutant problem comparison framework,” in Int. Conference on Software esting, Verification and Validation Workshops (ICSTW), pp. 7–12, IEEE, 2021.
- S. Chung and S. Yoo, “Augmenting equivalent mutant dataset using symbolic execution,” in Int. Conference on Software Testing, Verification and Validation Workshops (ICSTW), pp. 150–159, IEEE, 2022.
- S. G. Elbaum, S. Person, J. Dokulil, and M. Jorde, “Bug hunt: Making early software testing lessons engaging and affordable,” in 29th International Conference on Software Engineering (ICSE 2007), pp. 688–697, IEEE Computer Society, 2007.
- R. A. P. Oliveira, L. B. R. Oliveira, B. B. P. Cafeo, and V. H. S. Durelli, “Evaluation and assessment of effects on exploring mutation testing in programming courses,” in 2015 IEEE Frontiers in Education Conference, FIE 2015, pp. 1–9, IEEE Computer Society, 2015.
- A. T. Acree Jr, On mutation. Georgia Institute of Technology, 1980.
- Philipp Straubinger (18 papers)
- Alexander Degenhart (1 paper)
- Gordon Fraser (64 papers)