Experimenting with software testbeds for evaluating new technologies

The evolution of a new technology depends upon a good theoretical basis for developing the technology, as well as upon its experimental validation. In order to provide for this experimentation, we have investigated the creation of a software testbed and the feasibility of using the same testbed for experimenting with a broad set of technologies. The testbed is a set of programs, data, and supporting documentation that allows researchers to test their new technology on a standard software platform. An important component of this testbed is the Unified Model of Dependability (UMD), which was used to elicit dependability requirements for the testbed software. With a collection of seeded faults and known issues of the target system, we are able to determine if a new technology is adept at uncovering defects or providing other aids proposed by its developers. In this paper, we present the Tactical Separation Assisted Flight Environment (TSAFE) testbed environment for which we modeled and evaluated dependability requirements and defined faults to be seeded for experimentation. We describe two completed experiments that we conducted on the testbed. The first experiment studies a technology that identifies architectural violations and evaluates its ability to detect the violations. The second experiment studies model checking as part of design for verification. We conclude by describing ongoing experimental work studying testing, using the same testbed. Our conclusion is that even though these three experiments are very different in terms of the studied technology, using and re-using the same testbed is beneficial and cost effective.

[1]  Michael W. Godfrey,et al.  Secrets from the Monster: Extracting Mozilla’s Software Architecture , 2000 .

[2]  W. Visser,et al.  Second Generation of a Java Model Checker , 2000 .

[3]  Tevfik Bultan,et al.  Action Language Verifier , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[4]  Marvin V. Zelkowitz,et al.  Modeling dependability for a diverse set of stakeholders , 2003 .

[5]  Meir M. Lehman,et al.  Program evolution: processes of software change , 1985 .

[6]  Fred P. Brooks,et al.  The Mythical Man-Month , 1975, Reliable Software.

[7]  Meir M. Lehman,et al.  Laws of Software Evolution Revisited , 1996, EWSPT.

[8]  S. Asgari,et al.  Empirical-based estimation of the effect on software dependability of a technique for architecture conformance verification , 2004, ICSE 2004.

[9]  Mikael Lindvall,et al.  Does the code match the design? A process for architecture evaluation , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[10]  Brian Randell,et al.  Dependability-a unifying concept , 1998, Proceedings Computer Security, Dependability, and Assurance: From Needs to Solutions (Cat. No.98EX358).

[11]  Atif M. Memon,et al.  What test oracle should I use for effective GUI testing? , 2003, 18th IEEE International Conference on Automated Software Engineering, 2003. Proceedings..

[12]  Mary Lou Soffa,et al.  Coverage criteria for GUI testing , 2001, ESEC/FSE-9.

[13]  Atif M. Memon,et al.  Automating regression testing for evolving GUI software , 2005, J. Softw. Maintenance Res. Pract..

[14]  Atif M. Memon,et al.  Automating regression testing for evolving GUI software: Research Articles , 2005 .

[15]  Paolo Donzelli,et al.  A practical framework for eliciting and modeling system dependability requirements: Experience from the NASA high dependability computing project , 2006, J. Syst. Softw..

[16]  Tevfik Bultan,et al.  Application of design for verification with concurrency controllers to air traffic control software , 2005, ASE.

[17]  Paolo Donzelli,et al.  A unified model of dependability: capturing dependability in context , 2004, IEEE Software.

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

[19]  Barry Boehm,et al.  The Nature of Information System Dependability: , 2004 .

[20]  Gregory D. Dennis TSAFE: Building a Trusted Computing Base for Air Traffic Control Software , 2003 .

[21]  Sanjay Bhansali,et al.  Software design by reusing architectures , 1992, Proceedings of the Seventh Knowledge-Based Software Engineering Conference.

[22]  Forrest Shull,et al.  An evolutionary testbed for software technology evaluation , 2005, Innovations in Systems and Software Engineering.

[23]  Jr. Frederick P. Brooks,et al.  The mythical man-month (anniversary ed.) , 1995 .