Test Case Generation by Contract Mutation in Spec#
Electronic Notes in Theoretical Computer Science (ENTCS)
Electronic Notes in Theoretical Computer Science (ENTCS)
A note on traces refinement and the conf relation in the unifying theories of programming
UTP'08 Proceedings of the 2nd international conference on Unifying theories of programming
Testing techniques in software engineering
Testing techniques in software engineering
Model-based mutation testing of hybrid systems
FMCO'09 Proceedings of the 8th international conference on Formal methods for components and objects
Fault-based generation of test cases from UML-Models: approach and some experiences
SAFECOMP'11 Proceedings of the 30th international conference on Computer safety, reliability, and security
Connectors as designs: Modeling, refinement and test case generation
Science of Computer Programming
The science of killing bugs in a black box
SBLP'12 Proceedings of the 16th Brazilian conference on Programming Languages
Model-based mutation testing of reactive systems: from semantics to automated test-case generation
Theories of Programming and Formal Methods
Concept analysis based approach to statistical web testing
Theories of Programming and Formal Methods
Hi-index | 0.00 |
This paper presents a theory of testing that integrates into Hoare and He’s Unifying Theory of Programming (UTP). We give test cases a denotational semantics by viewing them as specification predicates. This reformulation of test cases allows for relating test cases via refinement to specifications and programs. Having such a refinement order that integrates test cases, we develop a testing theory for fault-based testing. Fault-based testing uses test data designed to demonstrate the absence of a set of pre-specified faults. A well-known fault-based technique is mutation testing. In mutation testing, first, faults are injected into a program by altering (mutating) its source code. Then, test cases that can detect these errors are designed. The assumption is that other faults will be caught, too. In this paper, we apply the mutation technique to both, specifications and programs. Using our theory of testing, two new test case generation laws for detecting injected (anticipated) faults are presented: one is based on the semantic level of UTP design predicates, the other on the algebraic properties of a small programming language.