Integrating Automated Testing with Exception Freeness Proofs for Safety Critical Systems

The exception handling code of a system is in general the least documented, tested and understood part, since exceptions are expected to occur only rarely. This paper presents a technique for automatically generating test-data to test exceptions. The approach is based on the application of a dynamic global optimi-sation based search for the required test-data. The authors' work has focused on test-data generation for safety-critical systems. Such systems must be free from anomalous and uncontrolled behaviour. Typically, it is easier to prove the absence of any exceptions than it is to prove that the exception handling is safe. A process for integrating automated testing with exception freeness proofs is presented as a way forward for tackling the special needs of safety critical systems. An evaluation shows the application of the technique to a commercial aircraft engine controller system as part of a proof of exception freeness.

[1]  Darrel C. Ince,et al.  The Automatic Generation of Test Data , 1987, Comput. J..

[2]  John A. Clark,et al.  An automated framework for structural test-data generation , 1998, Proceedings 13th IEEE International Conference on Automated Software Engineering (Cat. No.98EX239).

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

[4]  C. D. Gelatt,et al.  Optimization by Simulated Annealing , 1983, Science.

[5]  Bogdan Korel,et al.  Automated test data generation for programs with procedures , 1996, ISSTA '96.

[6]  Steve King,et al.  The Value of Verification: Positive Experience of Industrial Proof , 1999, World Congress on Formal Methods.

[7]  V. Lakshmi Narasimhan,et al.  ADTEST: A Test Data Generation Suite for Ada Software Systems , 1997, IEEE Trans. Software Eng..

[8]  John A. Clark,et al.  The Way Forward for Unifying Dynamic Test Case Generation: The Optimisation-based Approach , 1998 .

[9]  Lori A. Clarke,et al.  A System to Generate Test Data and Symbolically Execute Programs , 1976, IEEE Transactions on Software Engineering.

[10]  B. A. Wichmann High Integrity Ada , 1997, SAFECOMP.

[11]  John G. P. Barnes,et al.  Programming in Ada 95 , 1995 .

[12]  C. V. Ramamoorthy,et al.  On the Automated Generation of Program Test Data , 1976, IEEE Transactions on Software Engineering.

[13]  Bryan F. Jones,et al.  Automatic structural testing using genetic algorithms , 1996, Softw. Eng. J..

[14]  John H. Holland,et al.  Adaptation in Natural and Artificial Systems: An Introductory Analysis with Applications to Biology, Control, and Artificial Intelligence , 1992 .

[15]  David L. Spooner,et al.  Automatic Generation of Floating-Point Test Data , 1976, IEEE Transactions on Software Engineering.

[16]  John A. Clark,et al.  Integrating safety analysis with automatic test-data generation for software safety verification , 1999 .

[17]  Bogdan Korel,et al.  The chaining approach for software test data generation , 1996, TSEM.

[18]  A. Jefferson Offutt,et al.  Experimental results from an automatic test case generator , 1993, TSEM.

[19]  John Barnes,et al.  High Integrity Ada: The Spark Approach , 1997 .

[20]  Bogdan Korel,et al.  Automated Software Test Data Generation , 1990, IEEE Trans. Software Eng..

[21]  James C. King,et al.  Symbolic execution and program testing , 1976, CACM.