Have a personal or library account? Click to login
Mutants as Patches: Towards a formal approach to Mutation Testing Cover

Mutants as Patches: Towards a formal approach to Mutation Testing

Open Access
|Nov 2019

References

  1. [1] Unified Diff Format. https://www.gnu.org/software/diffutils/manual/html_node/Unified-Format.html. Accessed: 2019-06-21.
  2. [2] Angiuli C., Morehouse E., Licata D. R., and Harper R. Homotopical patch theory. SIGPLAN Not., 49(9):243–256, Aug. 2014.10.1145/2692915.2628158
  3. [3] Arkhangel’skii A. and Pontryagin L., editors. General topology I: basic concepts and constructions dimension theory. Springer, 1990.10.1007/978-3-642-61265-7_1
  4. [4] Baker R. J. and Habli I. An empirical evaluation of mutation testing for improving the test quality of safety-critical software. IEEE Transactions on Software Engineering, 39(6):787–805, 2013.10.1109/TSE.2012.56
  5. [5] Belli F. and Beyazit M. A formal framework for mutation testing. In Proceedings of the 4th International Conference on Secure Software Integration and Reliability Improvement (SSIRI’2010), pages 121–130, Singapore, Singapore, June 2010.10.1109/SSIRI.2010.23
  6. [6] Bishop D. M. Group theory and chemistry. Courier Corporation, 1993.
  7. [7] Calcagno C., Distefano D., Dubreil J., Gabi D., Hooimeijer P., Luca M., O’Hearn P., Papakonstantinou I., Purbrick J., and Rodriguez D. Moving fast with software verification. In Havelund K., Holzmann G., and Joshi R., editors, NASA Formal Methods, pages 3–11, Cham, 2015. Springer International Publishing.10.1007/978-3-319-17524-9_1
  8. [8] de Oliveira A. A. L., Camilo-Junior C. G., and Vincenzi A. M. R. A coevolutionary algorithm to automatic test case selection and mutant in mutation testing. In 2013 IEEE Congress on Evolutionary Computation, pages 829–836, Cancun, Mexico, June 2013.10.1109/CEC.2013.6557654
  9. [9] Delamaro M. E., Offutt J., and Ammann P. Designing deletion mutation operators. In 2014 IEEE Seventh International Conference on Software Testing, Verification and Validation, pages 11–20, Cleveland, OH, USA, March 2014.10.1109/ICST.2014.12
  10. [10] Delgado-Pérez P., Medina-Bulo I., Domínguez-Jiménez J. J., García-Domínguez A., and Palomo-Lozano F. Class mutation operators for c++ object-oriented systems. annals of telecommunications - annales des télécommunications, 70(3):137–148, Apr 2015.10.1007/s12243-014-0445-4
  11. [11] DeMillo R., Lipton R. J., and Sayward F. Program mutation: A new approach to program testing. Infotech State of the Art Report, Software Testing, 2:107–126, 1979.
  12. [12] DeMillo R. A., Lipton R. J., and Sayward F. G. Hints on Test Data Selection: Help for the Practicing Programmer. IEEE Computer, 11(4):34–41, 1978.10.1109/C-M.1978.218136
  13. [13] Deng L., Offutt J., and Li N. Empirical evaluation of the statement deletion mutation operator. In 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation, pages 84–93, Luxembourg, Luxembourg, March 2013.10.1109/ICST.2013.20
  14. [14] Estero-Botaro A., Palomo-Lozano F., and Medina-Bulo I. Mutation operators for WS-BPEL 2.0. In 21th International Conference on Software & Systems Engineering and their Applications, 2008.
  15. [15] Findler R. B. and Felleisen M. Contracts for Higher-order Functions. SIGPLAN Not., 37(9):48–59, Sept. 2002.10.1145/583852.581484
  16. [16] Gligoric M., Jagannath V., and Marinov D. MuTMuT: Efficient exploration for mutation testing of multithreaded code. In 2010 Third International Conference on Software Testing, Verification and Validation (ICST), pages 55–64. IEEE, 2010.10.1109/ICST.2010.33
  17. [17] Hamlet R. G. Testing Programs with the Aid of a Compiler. IEEE Transactions on Software Engineering, 3(4):279–290, 1977.10.1109/TSE.1977.231145
  18. [18] Harman M., Jia Y., and Langdon W. B. A Manifesto for Higher Order Mutation Testing. In Proceedings of the 2010 Third International Conference on Software Testing, Verification, and Validation Workshops, ICSTW ’10, pages 80–89, Paris, France, 2010. IEEE Computer Society.10.1109/ICSTW.2010.13
  19. [19] Hu J., Li N., and Offutt J. An analysis of oo mutation operators. In 2011 IEEE Fourth International Conference on Software Testing, Verification and Validation Workshops, pages 334–341, March 2011.10.1109/ICSTW.2011.47
  20. [20] Jacobson J. A formalization of Darcs patch theory using inverse semigroups. ftp://ftp.math.ucla.edu/pub/camreport/cam09-83.pdf, 2009. Accessed: 2018-06-20.
  21. [21] Jia Y. and Harman M. Higher Order Mutation Testing. Information and Software Technology, 51(10):1379 – 1393, 2009. Source Code Analysis and Manipulation, SCAM 2008.10.1016/j.infsof.2009.04.016
  22. [22] Johann P. and Ghani N. Foundations for Structured Programming with GADTs. SIGPLAN Not., 43(1):297–308, Jan. 2008.10.1145/1328897.1328475
  23. [23] Johnson S. C. Lint, a C program checker. Technical report, Bell Laboratories, 1978.
  24. [24] Just R., Ernst M. D., and Fraser G. Using State Infection Conditions to Detect Equivalent Mutants and Speed up Mutation Analysis. CoRR, abs/1303.2784, 2013.
  25. [25] Kim S., Clark J., and McDermid J. The rigorous generation of Java mutation operators using HAZOP. In Proceedings of the 12th International Conference on Software & Systems Engineering and their Applications (ICSSEA’99), 1999.
  26. [26] Kintis M. and Malevris N. Identifying more equivalent mutants via code similarity. In Proceedings of the 20th Asia-Pacific Software Engineering Conference (APSEC’2013), volume 1, pages 180–188. IEEE, 2013.10.1109/APSEC.2013.34
  27. [27] Kostrikin A. Introduction into Algebra. Nauka, Moscow, 1977.
  28. [28] Larus J. R. Whole program paths. SIGPLAN Not., 34(5):259–269, May 1999.10.1145/301631.301678
  29. [29] Lidl R. and Pilz G. Applied abstract algebra. Springer Science & Business Media, 2012.
  30. [30] Lyubarskii G. Y. The application of group theory in physics. Elsevier, 2013.
  31. [31] Ma Y.-S., Kwon Y.-R., and Offutt J. Inter-class mutation operators for java. In Proceedings of the 13th International Symposium on Software Reliability Engineering, (ISSRE’2002), pages 352–363, Annapolis, MD, USA, USA, 2002. IEEE.
  32. [32] Madeyski L. Impact of pair programming on thoroughness and fault detection effectiveness of unit test suites. Software Process: Improvement and Practice, 13(3):281–295, 2008.10.1002/spip.382
  33. [33] Madeyski L., Orzeszyna W., Torkar R., and Józala M. Overcoming the Equivalent Mutant Problem: A Systematic Literature Review and a Comparative Experiment of Second Order Mutation. IEEE Transactions on Software Engineering, 40(1):23–42, 1 2014.10.1109/TSE.2013.44
  34. [34] Madeyski L. and Radyk N. Judy–a mutation testing tool for Java. IET Software, 4(1):32–42, 2010.10.1049/iet-sen.2008.0038
  35. [35] Meyers S. and Lejter M. Automatic detection of c++programming errors: Initial thoughts on a lint++. Technical report, Brown University, Providence, RI, USA, 1991.
  36. [36] Mimram S. and Giusto C. D. A categorical theory of patches. CoRR, abs/1311.3903, 2013.10.1016/j.entcs.2013.09.018
  37. [37] Morell L. A theory of fault-based testing. IEEE Transactions on Software Engineering, 16(8):844–857, Aug 1990.10.1109/32.57623
  38. [38] Morell L. J. A Theory of Error-based Testing. PhD thesis, University of Maryland at College Park, College Park, MD, USA, 1984.
  39. [39] Navarro G. A guided tour to approximate string matching. ACM computing surveys (CSUR), 33(1):31–88, 2001.10.1145/375360.375365
  40. [40] Nguyen Q. V. and Madeyski L. Problems of mutation testing and higher order mutation testing. In van Do T., Thi H. A. L., and Nguyen N. T., editors, Advanced Computational Methods for Knowledge Engineering, pages 157–172. Springer International Publishing, 2014.10.1007/978-3-319-06569-4_12
  41. [41] Nguyen Q. V. and Madeyski L. Searching for Strongly Subsuming Higher Order Mutants by Applying Multi-objective Optimization Algorithm. In Le Thi H. A., Nguyen N. T., and Do T. V., editors, Advanced Computational Methods for Knowledge Engineering, volume 358 of Advances in Intelligent Systems and Computing, pages 391–402. Springer International Publishing, 2015.10.1007/978-3-319-17996-4_35
  42. [42] Offutt A. J., Lee A., Rothermel G., Untch R. H., and Zapf C. An experimental determination of sufficient mutant operators. ACM Transactions on Software Engineering and Methodology (TOSEM), 5(2):99–118, 1996.10.1145/227607.227610
  43. [43] Offutt A. J. and Pan J. Automatically detecting equivalent mutants and infeasible paths. Software Testing, Verification and Reliability, 7(3):165–192, 1997.10.1002/(SICI)1099-1689(199709)7:3<;165::AID-STVR143>3.0.CO;2-U
  44. [44] Praphamontripong U. and Offutt J. Applying mutation testing to web applications. In Proceedings of the 3rd International Conference on Software Testing, Verification, and Validation Workshops (ICSTW’2010), pages 132–141, Paris, France, 2010. IEEE.10.1109/ICSTW.2010.38
  45. [45] Runeson P. A survey of unit testing practices. IEEE Software, 23(4):22–29, July 2006.10.1109/MS.2006.91
  46. [46] Schuler D. and Zeller A. Javalanche: efficient mutation testing for java. In Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on the foundations of software engineering, pages 297–298, Amsterdam, The Netherlands, 2009. ACM.10.1145/1595696.1595750
  47. [47] Shin D. and Bae D. H. A theoretical framework for understanding mutation-based testing methods. In Proceedings of the IEEE International Conference on Software Testing, Verification and Validation (ICST’2016), pages 299–308, Chicago, IL, USA, April 2016.10.1109/ICST.2016.22
  48. [48] Siami Namin A., Andrews J. H., and Murdoch D. J. Sufficient mutation operators for measuring test effectiveness. In Proceedings of the 30th International Conference on Software Engineering (ICSE’2018), pages 351–360, Leipzig, Germany, 2008. ACM.10.1145/1368088.1368136
  49. [49] Smith B. H. and Williams L. An Empirical Evaluation of the MuJava Mutation Operators. In Proceedings of the Testing: Academic and Industrial Conference Practice and Research Techniques (TAICPART-MUTATION’2007), pages 193–202, Washington, DC, USA, 2007. IEEE Computer Society.10.1109/TAIC.PART.2007.12
  50. [50] Smith J. M. Elemental Design Patterns. Addison-Wesley, 2012.
  51. [51] Sun Y., Wang Q., and Yang Y. FRLink: Improving the recovery of missing issue-commit links by revisiting file relevance. Information and Software Technology, 84:33 – 47, 2017.10.1016/j.infsof.2016.11.010
  52. [52] Tillmann N. and Schulte W. Parameterized unit tests. In Proceedings of the 10th European Software Engineering Conference Held Jointly with 13th ACM SIGSOFT International Symposium on Foundations of Software Engineering, ESEC/FSE-13, pages 253–262, Lisbon, Portugal, 2005. ACM.10.1145/1081706.1081749
  53. [53] Usaola M. P. and Mateo P. R. Mutation testing cost reduction techniques: A survey. IEEE Software, 27(3):80–86, May 2010.10.1109/MS.2010.79
DOI: https://doi.org/10.2478/fcds-2019-0019 | Journal eISSN: 2300-3405 | Journal ISSN: 0867-6356
Language: English
Page range: 379 - 405
Submitted on: Jan 17, 2019
|
Accepted on: Oct 25, 2019
|
Published on: Nov 25, 2019
In partnership with: Paradigm Publishing Services
Publication frequency: 4 issues per year

© 2019 Tomasz Lewowski, Lech Madeyski, published by Poznan University of Technology
This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 License.