Electronic Notes in Theoretical Computer Science · 2013 · 14 citations · 10 references
ComputingComputer ScienceAgile Project ManagementSoftware EngineeringTest DevelopmentAgile DevelopmentAgile Software DevelopmentSoftware EvolutionSoftware TestingCode Quality ImprovementIterative LearningMutationMutation TestingTest GenerationTest Suite Generation
Proponents of Agile development processes claim that adhering to Agile principles leads to the delivery of high quality code in evolutionary increments. Confidence in resulting systems is mostly gained through the use of unit test suites, entrusted to catch regressions as soon as they occur. Consequently, the system can only be as trustworthy as its tests, meaning that measurements of the testsʼ quality is crucial. Whilst mutation testing has been proposed as a means of uncovering test suite defects, it has not been widely adopted in the industry; mainly due to its computational expense and manual effort required by developers investigating unkilled mutants. To make mutation testing affordable, we propose incremental mutation testing — a variation of mutation testing which leverages the iterative nature of agile development by limiting the scope of mutant generation to sections of code which have changed since the last mutation run. Preliminary results show that the number of mutants generated is drastically reduced along with the time required to generate mutants and execute tests against them.
10
Symbolic execution and program testing
James C. King · Communications of the ACM · 1976 · 3K citations · Full text
Is mutation an appropriate tool for testing experiments?
James H. Andrews, Lionel Briand, Yvan Labiche · 2005 · 787 citations
Differential symbolic execution
Suzette Person, Matthew B. Dwyer, Sebastian Elbaum et al. · 2008 · 269 citations
Directed incremental symbolic execution
Suzette Person, Guowei Yang, Neha Rungta et al. · ACM SIGPLAN Notices · 2011 · 177 citations · Full text