Observer-based Testing of Distributed Protocols Designed for Harsh Environments

Testing a distributed protocol P employed in a high assurance system involves the modeling of two distinct aspects: i) the intended goals G(P) to be satisfied by P, and ii) the external environment E(P) under which P operates. In complex distributed systems, a wide range of environment behaviors need to be captured by E(P) and/or diverse application requirements need to be stipulated in G(P). This model-based behavior generation is then used as a reference to compare with the actual behavior of a target system protocol. Our approach embodies two functional elements: first, an 'observer' at the service interface of P to the application that monitors the compliance to the conditions stipulated in G(P), and second, an 'injector' that subjects P to a variety of external disturbances as stipulated in E(P). The latter are either actual occurrences of system-level anomalies during an execution of P or computer-generated error conditions as aided by production rules that depict E(P). The modular decomposition that underlies our 3-tier approach (i.e., the observer and perturber modules interweaving with the target system module) enables a flexible testing of distributed protocols in various operating environments and under various application-level goals. The paper describes a language-based tool for generating events that drive the execution of P, and compare the observed behavior of P with a reference desired behavior.

[1]  K. Ravindran,et al.  Structural Complexity and Execution Efficiency of Distributed Application Protocols , 1993, SIGCOMM.

[2]  Guy Juanole,et al.  Observer-A Concept for Formal On-Line Validation of Distributed Systems , 1994, IEEE Trans. Software Eng..

[3]  K. Ravindran,et al.  Simulation-based validation of protocols for concurrent systems , 2004, IEEE Global Telecommunications Conference Workshops, 2004. GlobeCom Workshops 2004..

[4]  Mahesh Viswanathan,et al.  Verisim: Formal analysis of network simulations , 2000, ISSTA '00.

[5]  A. Udaya Shankar,et al.  Specifying modules to satisfy interfaces: A state transition system approach , 1990, Distributed Computing.

[6]  Martin Peschke,et al.  Design and Validation of Computer Protocols , 2003 .

[7]  Pamela Zave,et al.  Deriving Specifications from Requirements: an Example , 1995, 1995 17th International Conference on Software Engineering.

[8]  Pamela Zave,et al.  Component coordination: a telecommunication case study , 2004, Comput. Networks.