Contract-based mutation testing in the refinement calculus

This article discusses mutation testing strategies in the context of refinement. Here, a novel generalization of mutation testing techniques is presented to be applied to contracts ranging from formal specifications to programs. It is demonstrated that refinement and its dual abstraction are the key notions leading to a precise and yet simple theory of mutation testing. The refinement calculus of Back and von Wright is used to express the concepts like contracts, useful mutations, test-cases and test-coverage.

[1]  Thomas Santen,et al.  Automating Test Case Generation from Z Specifications with Isabelle , 1997, ZUM.

[2]  Boris Beizer,et al.  Software Testing Techniques , 1983 .

[3]  C. A. R. Hoare Towards the Verifying Compiler , 2004, Essays in Memory of Ole-Johan Dahl.

[4]  Bernhard K. Aichernig,et al.  Formal Methods at the Crossroads. From Panacea to Foundational Support , 2003, Lecture Notes in Computer Science.

[5]  Richard J. Lipton,et al.  Hints on Test Data Selection: Help for the Practicing Programmer , 1978, Computer.

[6]  Philip Alan Stocks,et al.  Applying formal methods to software testing , 1993 .

[7]  Ralph-Johan Back,et al.  Reasoning About Interactive Systems , 1999, World Congress on Formal Methods.

[8]  Bernhard K. Aichernig,et al.  Test-Design through Abstraction - A Systematic Approach Based on the Refinement Calculus , 2001, J. Univers. Comput. Sci..

[9]  Nancy G. Leveson,et al.  Safeware: System Safety and Computers , 1995 .

[10]  Bernhard K. Aichernig Test-Case Calculation through Abstraction , 2001, FME.

[11]  Jeremy Dick,et al.  Automating the Generation and Sequencing of Test Cases from Model-Based Specifications , 1993, FME.

[12]  Richard G. Hamlet,et al.  Testing Programs with the Aid of a Compiler , 1977, IEEE Transactions on Software Engineering.

[13]  Jim Woodcock,et al.  FME '93: Industrial-Strength Formal Methods , 1993, Lecture Notes in Computer Science.

[14]  Ralph-Johan Back,et al.  Refinement Calculus: A Systematic Introduction , 1998 .

[15]  Bernhard K. Aichernig,et al.  Systematic Black-Box Testing of Computer-Based Systems through Formal Abstraction Techniques , 2001 .

[16]  Carroll Morgan,et al.  Programming from specifications , 1990, Prentice Hall International Series in computer science.