Towards measurement of testability of concurrent object-oriented programs using fault insertion: a preliminary investigation

There is a lack of methods and techniques for measuring testability of concurrent object-oriented programs. Current theory and practice for testing sequential programs do not usually apply to concurrent systems. An approach towards measuring the testability of concurrent Java programs is proposed in this paper. The key idea is to take a program and insert faults that are related to the concurrency aspects. The approach is based on two methods: (1) mutation of the program based on keywords, and (2) creation of conflict graphs based on static analysis of the code.

[1]  J. Voas,et al.  Software Testability: The New Verification , 1995, IEEE Softw..

[2]  Sudipto Ghosh,et al.  Interface mutation , 2001, Softw. Test. Verification Reliab..

[3]  Michal Young State-space analysis as an aid to testing , 1994, ISSTA '94.

[4]  Doug Lea Concurrent Programming in Java. Second Edition: Design Principles and Patterns , 1999 .

[5]  John A. Clark,et al.  Investigating the effectiveness of object-oriented strategies with the mutation method (abstract only) , 2001 .

[6]  Patrice Godefroid,et al.  VeriSoft: A Tool for the Automatic Analysis of Concurrent Reactive Software , 1997, CAV.

[7]  James C. Corbett,et al.  An empirical evaluation of three methods for deadlock analysis of Ada tasking programs , 1994, ISSTA '94.

[8]  Gary McGraw,et al.  Software fault injection: inoculating programs against errors , 1997 .

[9]  A. Jefferson Offutt,et al.  Constraint-Based Automatic Test Data Generation , 1991, IEEE Trans. Software Eng..

[10]  Jeffrey M. Voas,et al.  PIE: A Dynamic Failure-Based Technique , 1992, IEEE Trans. Software Eng..

[11]  Lori L. Pollock,et al.  All-du-path coverage for parallel programs , 1998, ISSTA '98.

[12]  James C. Corbett,et al.  Evaluating Deadlock Detection Methods for Concurrent Software , 1996, IEEE Trans. Software Eng..

[13]  Barton P. Miller,et al.  Improving the accuracy of data race detection , 1991, PPOPP '91.

[14]  A. Jefferson Offutt,et al.  Mutation Operators for Ada , 1996 .

[15]  David Jackson,et al.  Parallel firm mutation of Java programs , 2001 .

[16]  Richard N. Taylor,et al.  Structural Testing of Concurrent Programs , 1992, IEEE Trans. Software Eng..

[17]  John A. Clark,et al.  Class Mutation : Mutation Testing for Object-Oriented Programs , 2000 .

[18]  Mario Jino,et al.  Proteum: uma ferramenta de teste baseada na analise de mutantes , 1993 .

[19]  R. Carver,et al.  Deterministic execution testing of concurrent Ada programs , 1989, TRI-Ada '89.

[20]  S. L. Gerhart,et al.  Toward a theory of test data selection , 1975, IEEE Transactions on Software Engineering.

[21]  John A. Clark,et al.  The Rigorous Generation of Java Mutation Operators Using HAZOP , 1999 .

[22]  John A. Clark,et al.  Assessing Test Set Adequacy for Object-Oriented Programs Using Class Mutation , 2000 .

[23]  W. Eric Wong,et al.  A theoretical comparison between mutation and data flow based test adequacy criteria , 1994, International Conference on Scientific Computing.

[24]  Doug Lea,et al.  Concurrent programming in Java - design principles and patterns , 1996, Java series.

[25]  John A. Clark,et al.  Investigating the effectiveness of object‐oriented testing strategies using the mutation method , 2001 .

[26]  R.A. DeMillo,et al.  An extended overview of the Mothra software testing environment , 1988, [1988] Proceedings. Second Workshop on Software Testing, Verification, and Analysis.

[27]  Lori A. Clarke,et al.  Data flow analysis for verifying properties of concurrent programs , 1994, SIGSOFT '94.

[28]  James M. Bieman,et al.  A technique for mutation of Java objects , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[29]  Aditya P. Mathur,et al.  Integration testing using interface mutation , 1996, Proceedings of ISSRE '96: 7th International Symposium on Software Reliability Engineering.

[30]  Byung-Sun Lee,et al.  Testing of concurrent programs based on message sequence charts , 1999, 1999 Proceedings International Symposium on Software Engineering for Parallel and Distributed Systems.