Testing the Temporal Behavior of Real-Time Engine Control Software Modules using Extended Evolutionary

Many industrial products use embedded computer systems. Usually these systems have to fulfill real–time requirements, and correct system functionality depends on their logical correctness as well as on their temporal correctness. Therefore the developed systems have to be thoroughly tested in order to detect deficiencies in temporal behavior, as well as to strengthen the confidence in temporal correctness. Existing test methods are not specialized in the examination of temporal correctness. For this reason new test methods are required which concentrate on determining whether the system violates its specified timing constraints. Normally, a violation means that outputs are produced too early or their computation takes too long. The tester’s task therefore is to find the input situations with the longest or shortest execution times in order to check whether they produce a temporal error. It is virtually impossible to find such inputs by analyzing and testing the temporal behavior of complex systems manually. However, if the search for such inputs is interpreted as a problem of optimization, evolutionary computation can be used to find the inputs with the longest or shortest execution times. This search for accurate test data by means of evolutionary computation is called Evolutionary Testing. Experiments using Evolutionary Testing on a number of real world programs have successfully identified new longer and shorter execution times than had been found using other testing techniques. Evolutionary Testing, therefore, seems to be a promising approach for the verification of timing constraints. For the optimization we employed extended Evolutionary Algorithms. This includes the use of multiple subpopulations, each using a different search strategy. Additionally, competition for limited resources between these subpopulation have taken place, providing an efficient distribution of the resources.

[1]  Matthias Grochtmann,et al.  Classification trees for partition testing , 1993, Softw. Test. Verification Reliab..

[2]  John J. Grefenstette,et al.  Test and evaluation by genetic algorithms , 1993, IEEE Expert.

[3]  William C. Hetzel,et al.  The complete guide to software testing , 1984 .

[4]  Harmen-Hinrich Sthamer,et al.  The automatic generation of software test data using genetic algorithms , 1995 .

[5]  Walter S. Heath Real-Time Software Techniques , 1990 .

[6]  Michael A. Hennell,et al.  Automated Testing Techniques for Real-Time Embedded Software , 1987, ESEC.

[7]  Matthias Grochtmann Evolutionary Testing of Temporal Correctness , 1998 .

[8]  Joachim Wegener,et al.  A Comparison of Static Analysis and Evolutionary Testing for the Verification of Timing Constraints , 1998, Proceedings. Fourth IEEE Real-Time Technology and Applications Symposium (Cat. No.98TB100245).

[9]  Joachim Wegener,et al.  Testing Temporal Correctness of Real-Time Systems — A New Approach Using Genetic Algorithms and Cluster Analysis — , 1999 .

[10]  Matthias Grochtmann,et al.  - Yet Another Computer-Aided Software Testing Tool? , 1994 .

[11]  J.A. Stankovic,et al.  Misconceptions about real-time computing: a serious problem for next-generation systems , 1988, Computer.

[12]  Joachim Wegener,et al.  Testing the Temporal Behavior of Real-Time Engine Con- trol Software Modules using Extended Evolutionary Algo- rithms , 2000 .

[13]  Matthias Grochtmann,et al.  Test Case Design Using Classification Trees and the Classification-Tree Editor CTE , 1995 .

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

[15]  Bryan F. Jones,et al.  A Strategy for Using Genetic Algorithms to Automate Branch and Fault-Based Testing , 1998, Comput. J..

[16]  Hartmut Pohlheim,et al.  Genetic and evolutionary algorithm toolbox for use with matlab , 1994 .