Automatic testing of software with structurally complex inputs
Automatic testing of software with structurally complex inputs
Jumble Java Byte Code to Measure the Effectiveness of Unit Tests
TAICPART-MUTATION '07 Proceedings of the Testing: Academic and Industrial Conference Practice and Research Techniques - MUTATION
Testing Programs with the Aid of a Compiler
IEEE Transactions on Software Engineering
Introduction to Software Testing
Introduction to Software Testing
Type Sensitive Application of Mutation Operators for Dynamically Typed Programs
ICSTW '10 Proceedings of the 2010 Third International Conference on Software Testing, Verification, and Validation Workshops
An Analysis and Survey of the Development of Mutation Testing
IEEE Transactions on Software Engineering
Integrating systematic exploration, analysis, and maintenance in software development
Proceedings of the 2013 International Conference on Software Engineering
Hi-index | 0.00 |
A mutation testing tool takes as input a system under test and a test suite and produces as output the mutation score of the test suite. The tool systematically creates mutants by making small syntactic changes to the system under test and executes the test suite to determine which mutants give different results from the original system. Almost all mutation testing tools have been developed for statically typed languages. The lack of tools for dynamically typed languages may be rooted in additional challenges that are caused by the lack of precise type information until the program is executed. Existing tools for dynamically typed languages mostly focus on mutation of literals because the type of literals are known statically. This paper presents SMutant, the first mutation testing tool for Smalltalk programs. In addition to literal replacement, SMutant supports many mutation operators that are commonly seen in tools for statically typed languages, such as operator replacement. Instead of applying mutations statically, SMutant postpones mutating until execution and applies mutations dynamically, when the types are available. Also, SMutant enables the user to define new mutation operators by sending a single message. The tool automatically generates code to support new mutation operators.