The development of real-time systems is an essential industrial activity whose importance is increasing. The most important analytical method to assure the quality of real-time systems is dynamic testing. Testing is the only method which examines the actual run-time behaviour of real-time software, based on an execution in the real application environment. Dynamic aspects like the duration of computations, the memory actually needed, or the synchronization of parallel processes are of major importance for the correct function of real-time systems and have to be tested. A comprehensive investigation of existing software test methods shows that they mostly concentrate on testing for functional correctness. They are not suited for an examination of temporal correctness which is essential to real-time systems. Very small systems show a wide range of different execution times. Therefore, existing test procedures must be supplemented by new methods, which concentrate on determining whether the system violates its specified timing constraints. In general, this means that outputs are produced too early or their computation takes too long. The task of the tester is to find the inputs with the longest or shortest execution times to check whether they produce a temporal error. If the search for such inputs is interpreted as a problem of optimization, genetic algorithms can be used to find the inputs with the longest or shortest execution times automatically. The fitness function is the execution time measured in processor cycles. Experiments using genetic algorithms on a number of programs with up to 1511 LOC and 843 integer input parameters have successfully identified new longer and shorter paths than had been found using random testing or systematic testing. Genetic algorithms are able therefore to check large programs and they show considerable promise in establishing the validity of the temporal behaviour of real-time software.
Unable to display preview. Download preview PDF.
- 1.W.S. Heath. Real-time Software Techniques (Van Nostrand Rheinhold, 1991).Google Scholar
- 2.K.A. Fisher. The application of genetic algorithms to optimising the design of an engine block for low noise, First International Conference on Genetic Algorithms in Engineering Systems: Innovations and Applications (GALESIA), Sheffield (1995), pp. 18-22 (IEE/IEEE).Google Scholar
- 3.D.E. Goldberg. Genetic Algorithms in Search, Optimization and Machine Learning (Addison-Wesley, 1989).Google Scholar
- 4.B.F. Jones, H-H. Sthamer and D.E. Eyres. Automatic structural testing using genetic algorithms, Software Engineering Journal, 11(5) (1996) 299-306.Google Scholar
- 5.S. Xanthakis, C. Ellis, C. Skourlas, A. Le Gall and S. Katsikas. Application of genetic algorithms to software testing, Fifth International Conference on Software Engineering, Toulouse (1992).Google Scholar
- 6.A.E.L. Watkins. A tool for the automatic generation of test data using genetic algorithms, in Proceedings of Software Quality Conference, Dundee (1995).Google Scholar
- 7.B.F. Jones, H-H. Sthamer, X. Yang and D.E. Eyres. The automatic generation of software test data sets using adaptive search techniques, Third International Conference on Software Quality Management,Seville (1995), pp. 435-444 (BCS/CMP)Google Scholar
- 8.M. Grochtmann and K. Grimm. Classification-trees for partition testing, Journal of Software Testing, Verification and Reliability, 3(2) (1993), 63-82.Google Scholar