Fundamental issues in testing distributed real-time systems

This paper examines the fundamental problems that one faces when testing a distributed, hard real-time system. It specifically identifies the influences of the distributedness and of the real-time requirements of the systems considered. We show how the usual problems of testing become more difficult, and which additional problems are introduced, because of these additional system characteristics.We identify six such fundamental problems: Organization, Observability, Reproducibility, Host/Target Approach, Environment Simulation, and Representativity. These, as well as their interrelations, are presented in a general framework that is independent of a particular system architecture or application. This framework could serve as a starting point for all activities geared towards a particular system architecture or a specific application.As an example, we illustrate how these test problems have been handled when developing a test methodology for the distributed real-time system MARS. Finally, the additional issues of test data generation and test result analysis are briefly discussed.

[1]  Ken Shumate,et al.  Designing large real-time systems with Ada , 1988, CACM.

[2]  Robert L. Glass Real-time: the “Lost World” of software debugging and testing , 1980, CACM.

[3]  Michael M. Gorlick,et al.  The flight recorder: an architectural aid for system monitoring , 1991, PADD '91.

[4]  BryantA.,et al.  B. W. Boehm software engineering economics , 1983 .

[5]  Edward J. McCluskey,et al.  Design‐For‐Testability , 2003 .

[6]  H. Kopp,et al.  THE ELEKTRA TESTBED: ARCHITECTURE OF A REAL-TIME TEST ENVIRONMENT FOR HIGH SAFETY AND RELIABILITY REQUIREMENTS , 1990 .

[7]  KopetzHermann,et al.  Distributed Fault-Tolerant Real-Time Systems , 1989 .

[8]  Chinya V. Ravishankar,et al.  Monitoring and debugging distributed realtime programs , 1992, Softw. Pract. Exp..

[9]  Jason Gait,et al.  A debugger for concurrent programs , 1985, Softw. Pract. Exp..

[10]  David Lorge Parnas,et al.  Evaluation of safety-critical software , 1990, CACM.

[11]  Stewart N. Weiss A formal framework for the study of concurrent program testing , 1988, [1988] Proceedings. Second Workshop on Software Testing, Verification, and Analysis.

[12]  John C. Cherniavsky,et al.  Validation, Verification, and Testing of Computer Software , 1982, CSUR.

[13]  Michael J. Lutz Testing tools (software) , 1990, IEEE Software.

[14]  Michel Raynal,et al.  EREBUS: a debugger for asynchronous distributed computing systems , 1992, Proceedings of the Third Workshop on Future Trends of Distributed Computing Systems.

[15]  Bernhard Plattner Real-Time Execution Monitoring , 1984, IEEE Transactions on Software Engineering.

[16]  Hermann Kopetz Fault Tolerance in Real-time Systems , 1990 .

[17]  W. Schutz,et al.  A test strategy for the distributed real-time system MARS , 1990, COMPEURO'90: Proceedings of the 1990 IEEE International Conference on Computer Systems and Software Engineering@m_Systems Engineering Aspects of Complex Computerized Systems.

[18]  Glenford J. Myers,et al.  Art of Software Testing , 1979 .

[19]  Marvin V. Zelkowitz,et al.  Rapid prototyping workshop: an overview , 1982 .

[20]  Louis O. Hertzberger,et al.  A Distributed Real‐Time Operating System , 1986, Softw. Pract. Exp..

[21]  Dan C. Marinescu,et al.  A model for monitoring and debugging parallel and distributed software , 1989, [1989] Proceedings of the Thirteenth Annual International Computer Software & Applications Conference.

[22]  Barry W. Boehm,et al.  A spiral model of software development and enhancement , 1986, Computer.

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

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

[25]  Charles E. McDowell,et al.  Debugging concurrent programs , 1989, ACM Comput. Surv..

[26]  Richard H. Carver,et al.  Deterministic execution debugging of concurrent Ada programs , 1989, [1989] Proceedings of the Thirteenth Annual International Computer Software & Applications Conference.

[27]  P ? ? ? ? ? ? ? % ? ? ? ? , 1991 .

[28]  Janusz W. Laski,et al.  Testing in the program development cycle , 1989, Softw. Eng. J..

[29]  Jack P. C. Kleijnen,et al.  EUROPEAN JOURNAL OF OPERATIONAL , 1992 .

[30]  Michael E. Fagan Advances in software inspections , 1986, IEEE Transactions on Software Engineering.

[31]  Gerhard Fohler,et al.  An Engineering Approach to Hard Real-Time System Design , 1991, ESEC.

[32]  Hector Garcia-Molina,et al.  Debugging a Distributed Computing System , 1984, IEEE Transactions on Software Engineering.

[33]  William E. Howden Life-Cycle Software Validation , 1982, Computer.

[34]  Per Brinch Hansen,et al.  Reproducible testing of monitors , 1978, Softw. Pract. Exp..

[35]  John F. Passafiume,et al.  Software testing and evaluation , 1987 .

[36]  Leslie Lamport,et al.  Distributed snapshots: determining global states of distributed systems , 1985, TOCS.

[37]  Hassan Gomaa Software development of real-time systems , 1986, CACM.

[38]  Hermann Kopetz,et al.  Dependability: Basic Concepts and Terminology , 1992 .

[39]  Richard E. Fairley,et al.  Tutorial: Static Analysis and Dynamic Testing of Computer Software , 1978, Computer.

[40]  Andy Wellings Real-time software , 1991 .

[41]  Peter P. Puschner,et al.  Developing real-time tasks with predictable timing , 1992, IEEE Software.

[42]  Krithi Ramamritham,et al.  Tutorial on hard real-time systems , 1989 .

[43]  D.R. Wallace,et al.  Software verification and validation: an overview , 1989, IEEE Software.

[44]  Per Brinch Hansen Testing a multiprogramming system , 1973, Softw. Pract. Exp..

[45]  Dolores R. Wallace,et al.  Software verification and validation , 1989 .

[46]  J. E. Cooling,et al.  Software Design for Real-time Systems , 1991, Springer US.

[47]  Hermann Kopetz,et al.  Distributed fault-tolerant real-time systems: the Mars approach , 1989, IEEE Micro.

[48]  Allen D. Malony,et al.  Performance Measurement Intrusion and Perturbation Analysis , 1992, IEEE Trans. Parallel Distributed Syst..

[49]  Jeffrey J. P. Tsai,et al.  A Noninterference Monitoring and Replay Mechanism for Real-Time Software Testing and Debugging , 1990, IEEE Trans. Software Eng..

[50]  David Gries,et al.  The Science of Programming , 1981, Text and Monographs in Computer Science.

[51]  Kang G. Shin,et al.  A distributed real-time operating system , 1992, IEEE Software.

[52]  Michael E. Fagan Design and Code Inspections to Reduce Errors in Program Development , 1976, IBM Syst. J..

[53]  Hideyuki Tokuda,et al.  A real-time monitor for a distributed real-time operating system , 1988, PADD '88.

[54]  Kathleen M. Nichols Performance tools , 1990, IEEE Software.

[55]  Eugene L. Duke V&V of flight and mission-critical software , 1989, IEEE Software.

[56]  Charles R. Hill A real-time microprocessor debugging technique , 1983, ACM SIGPLAN Notices.

[57]  Richard H. Carver,et al.  Debugging Concurrent Ada Programs by Deterministic Execution , 1991, IEEE Trans. Software Eng..

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

[59]  Werner Schütz On the testability of distributed real-time systems , 1991, [1991] Proceedings Tenth Symposium on Reliable Distributed Systems.

[60]  K. Grimm An Effective Strategy and Automation Concepts for Systematic Testing of Safety Related Software , 1989 .

[61]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[62]  Jason Gait,et al.  A probe effect in concurrent programs , 1986, Softw. Pract. Exp..

[63]  David Gelperin,et al.  The growth of software testing , 1988, CACM.

[64]  Ben Shneiderman,et al.  Applying direct manipulation concepts: direct manipulation dik operating system (DMDOS) , 1986, SOEN.