Evaluating Test Suites and Adequacy Criteria Using Simulation-Based Models of Distributed Systems

Test adequacy criteria provide the engineer with guidance on how to populate test suites. While adequacy criteria have long been a focus of research, existing testing methods do not address many of the fundamental characteristics of distributed systems, such as distribution topology, communication failure, and timing. Furthermore, they do not provide the engineer with a means to evaluate the relative effectiveness of different criteria, nor the relative effectiveness of adequate test suites satisfying a given criterion. This paper makes three contributions to the development and use of test adequacy criteria for distributed systems: (1) a testing method based on discrete-event simulations; (2) a fault-based analysis technique for evaluating test suites and adequacy criteria; and (3) a series of case studies that validate the method and technique. The testing method uses a discrete-event simulation as an operational specification of a system, in which the behavioral effects of distribution are explicitly represented. Adequacy criteria and test cases are then defined in terms of this simulation-based specification. The fault-based analysis involves mutation of the simulation-based specification to provide a foil against which test suites and the criteria that formed them can be evaluated. Three distributed systems were used to validate the method and technique, including DNS, the domain name system.

[1]  Elaine J. Weyuker,et al.  Automatically Generating Test Data from a Boolean Specification , 1994, IEEE Trans. Software Eng..

[2]  Lionel C. Briand,et al.  Is mutation an appropriate tool for testing experiments? , 2005, ICSE.

[3]  Keith W. Ross,et al.  Computer networking - a top-down approach featuring the internet , 2000 .

[4]  Shaoying Liu,et al.  Generating test data from state‐based specifications , 2003, Softw. Test. Verification Reliab..

[5]  Phil Greenwood,et al.  A framework for testing distributed systems , 2004, Proceedings. Fourth International Conference on Peer-to-Peer Computing, 2004. Proceedings..

[6]  Marc J. Balcer,et al.  The category-partition method for specifying and generating fuctional tests , 1988, CACM.

[7]  Debra J. Richardson,et al.  An Analysis of Test Data Selection Criteria Using the RELAY Model of Fault Detection , 1993, IEEE Trans. Software Eng..

[8]  Paul A. Strooper,et al.  A case study in testing distributed systems , 2001, Proceedings 3rd International Symposium on Distributed Objects and Applications.

[9]  David R. Karger,et al.  Chord: a scalable peer-to-peer lookup protocol for internet applications , 2003, TNET.

[10]  Elaine J. Weyuker,et al.  Analyzing Partition Testing Strategies , 1991, IEEE Trans. Software Eng..

[11]  S. N. Weiss,et al.  All-Uses versus Mutation Testing : An ExperimentalComparison of E ectiveness , 1996 .

[12]  Thomas J. Ostrand,et al.  Experiments on the effectiveness of dataflow- and control-flow-based test adequacy criteria , 1994, Proceedings of 16th International Conference on Software Engineering.

[13]  Elaine J. Weyuker,et al.  A Formal Analysis of the Fault-Detecting Ability of Testing Methods , 1993, IEEE Trans. Software Eng..

[14]  Alexandre Petrenko,et al.  Protocol testing: review of methods and relevance for software testing , 1994, ISSTA '94.

[15]  Lionel C. Briand,et al.  Using simulation to empirically investigate test coverage criteria based on statechart , 2004, Proceedings. 26th International Conference on Software Engineering.

[16]  Paulo César Masiero,et al.  Mutation testing applied to validate specifications based on statecharts , 1999, Proceedings 10th International Symposium on Software Reliability Engineering (Cat. No.PR00443).

[17]  Elaine J. Weyuker,et al.  An analytical comparison of the fault-detecting ability of data flow testing techniques , 1993, Proceedings of 1993 15th International Conference on Software Engineering.

[18]  Simeon C. Ntafos,et al.  On random and partition testing , 1998, ISSTA.

[19]  Shaoying Liu,et al.  Generating test data from SOFL specifications , 1999, J. Syst. Softw..

[20]  Eric R. Ziegel,et al.  Probability and Statistics for Engineering and the Sciences , 2004, Technometrics.

[21]  Paul Ammann,et al.  A specification-based coverage metric to evaluate test sets , 1999, Proceedings 4th IEEE International Symposium on High-Assurance Systems Engineering.

[22]  Tatsuhiro Tsuchiya,et al.  On fault classes and error detection capability of specification-based testing , 2002, TSEM.

[23]  Richard J. Lipton,et al.  Hints on Test Data Selection: Help for the Practicing Programmer , 1978, Computer.

[24]  A. Jefferson Offutt,et al.  Deriving tests from software architectures , 2001, Proceedings 12th International Symposium on Software Reliability Engineering.

[25]  Richard H. Carver,et al.  Use of sequencing constraints for specification-based testing of concurrent programs , 1998 .

[26]  Paolo A. G. Sivilotti,et al.  The specification and testing of quantified progress properties in distributed systems , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[27]  E. J. Dowling Testing distributed Ada programs , 1989, TRI-Ada '89.

[28]  Phyllis G. Frankl,et al.  Further empirical studies of test effectiveness , 1998, SIGSOFT '98/FSE-6.

[29]  Robert L. Probert,et al.  A measure for component interaction test coverage , 2001, Proceedings ACS/IEEE International Conference on Computer Systems and Applications.

[30]  Giovanni Denaro,et al.  Early performance testing of distributed software applications , 2004, WOSP '04.

[31]  Robert M. Hierons Comparing test sets and criteria in the presence of test hypotheses and fault domains , 2002, TSEM.

[32]  Debra J. Richardson,et al.  Structural specification-based testing: automated support and experimental evaluation , 1999, ESEC/FSE-7.

[33]  Yanyan Wang,et al.  Automating experimentation on distributed testbeds , 2005, ASE.

[34]  Robert L. Probert,et al.  A practical strategy for testing pair-wise coverage of network interfaces , 1996, Proceedings of ISSRE '96: 7th International Symposium on Software Reliability Engineering.

[35]  Michael D. Rice,et al.  An approach to architectural analysis and testing , 1998, ISAW '98.

[36]  Sudipto Ghosh,et al.  Interface mutation , 2001, Softw. Test. Verification Reliab..

[37]  John C. Grundy,et al.  SoftArch/MTE: Generating Distributed System Test-Beds from High-Level Software Architecture Descriptions , 2004, Automated Software Engineering.

[38]  Chengjie Liu,et al.  Maintaining Strong Cache Consistency in the World Wide Web , 1998, IEEE Trans. Computers.

[39]  Gregg Rothermel,et al.  An experimental determination of sufficient mutant operators , 1996, TSEM.

[40]  Elaine J. Weyuker,et al.  An Applicable Family of Data Flow Testing Criteria , 1988, IEEE Trans. Software Eng..

[41]  Henry Muccini,et al.  Using software architecture for code testing , 2004, IEEE Transactions on Software Engineering.

[42]  Michael D. Ernst,et al.  Improving test suites via operational abstraction , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[43]  Sriram Sankar,et al.  Structural specification-based testing with ADL , 1996, ISSTA '96.

[44]  A. Jefferson Offutt,et al.  MuJava: an automated class mutation system , 2005, Softw. Test. Verification Reliab..

[45]  Sudipto Ghosh,et al.  Validating run-time interactions in distributed Java applications , 2002, Eighth IEEE International Conference on Engineering of Complex Computer Systems, 2002. Proceedings..

[46]  Alexander L. Wolf,et al.  Software testing at the architectural level , 1996, ISAW '96.

[47]  Leon J. Osterweil,et al.  Strategic directions in software quality , 1996, CSUR.

[48]  Simone do Rocio Senger de Souza,et al.  Mutation Testing Applied to Estelle Specifications , 2004, Software Quality Journal.

[49]  Phyllis G. Frankl,et al.  All-uses vs mutation testing: An experimental comparison of effectiveness , 1997, J. Syst. Softw..

[50]  Phyllis G. Frankl,et al.  An Experimental Comparison of the Effectiveness of Branch Testing and Data Flow Testing , 1993, IEEE Trans. Software Eng..

[51]  Richard Lai,et al.  A survey of communication protocol testing , 2002, J. Syst. Softw..

[52]  Mark Allman,et al.  On the effective evaluation of TCP , 1999, CCRV.

[53]  Sudipto Ghosh,et al.  Issues in Testing Distributed Component-Based Systems , 1999 .

[54]  Phyllis G. Frankl,et al.  An experimental comparison of the effectiveness of the all-uses and all-edges adequacy criteria , 1991, TAV4.

[55]  C. Murray Woodside,et al.  DECALS: distributed experiment control and logging system , 1995, CASCON.

[56]  Simeon C. Ntafos,et al.  A report on random testing , 1981, ICSE '81.

[57]  Sudipto Ghosh,et al.  A test management and software visualization framework for heterogeneous distributed applications , 2001, Proceedings Sixth IEEE International Symposium on High Assurance Systems Engineering. Special Topic: Impact of Networking.

[58]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[59]  Ian Clarke,et al.  Protecting Free Expression Online with Freenet , 2002, IEEE Internet Comput..

[60]  Richard G. Hamlet,et al.  Partition Testing Does Not Inspire Confidence , 1990, IEEE Trans. Software Eng..

[61]  Debra J. Richardson,et al.  Approaches to specification-based testing , 1989, TAV3.