IEEE Transactions on Software Engineering · 2011 · 286 citations · 51 references
ComputingComputer EngineeringComputer ScienceSoftware EngineeringTest ConstructionTest DevelopmentDefect DetectionMutation AnalysisSoftware TestingAutomated Test GenerationMutationMutation TestingObject-oriented ArchitectureState Change DetectionTest Case MutationTest GenerationTest Suite Generation
Mutation analysis seeds artificial defects into programs, and a nondetected mutation indicates a weakness in the test suite. We present an automated approach to generate unit tests that detect mutations in object‑oriented classes. The approach automatically generates unit tests that detect mutations in object‑oriented classes and uses the state changes caused by mutations to create precise oracles. The prototype generates test suites optimized for mutation‑based defect detection and, evaluated on ten open‑source libraries, finds significantly more seeded defects than manually written tests.
To assess the quality of test suites, mutation analysis seeds artificial defects (mutations) into programs; a nondetected mutation indicates a weakness in the test suite. We present an automated approach to generate unit tests that detect these mutations for object-oriented classes. This has two advantages: First, the resulting test suite is optimized toward finding defects modeled by mutation operators rather than covering code. Second, the state change caused by mutations induces oracles that precisely detect the mutants. Evaluated on 10 open source libraries, our μtest prototype generates test suites that find significantly more seeded defects than the original manually written test suites.
51
A Greedy Heuristic for the Set-Covering Problem
Vašek Chvátal · Mathematics of Operations Research · 1979 · 2.6K citations
Patrice Godefroid, Nils Klarlund, Koushik Sen · ACM SIGPLAN Notices · 2005 · 2.1K citations
Koushik Sen, Darko Marinov, Gul Agha · 2005 · 1.7K citations