A discipline of specification-based test derivation

System-level requirements-based testing is an important task in software development, providing evidence that each requirement has been satisfied. There are two major problems with how these tests are derived. First, the notion of coverage is subjective, i.e., there is a lack of objective definitions of coverage criteria. Second, there is a surprising lack of automation in deriving system-level requirements-based tests. Research into solutions for these problems has led to the formulation of the discipline of specification-based test derivation presented in this dissertation. This discipline, which is based on predicate logic, provides a scientific foundation for objective definitions of coverage criteria and algorithms for partially automating test derivation. This dissertation defines some fundamental coverage criteria as examples. A general test frame generation process illustrates a general application of the discipline to a broad range of formal specifications, which can include existential and universal quantification. A refinement of the process can be applied to system-level requirements-based testing. The discipline leverages work invested in compiling the requirements specification. In addition to partially automating the task of verifying that the requirements have been satisfied, the refined process automates the traceability of requirements to test descriptions. Other applications of the discipline of specification-based test derivation include requirements validation and objective measurements for requirements complexity. The discipline can also be used to predict the expected number of tests to be derived, which can then be used for process statistics. The uses of this discipline as a basis for repeatable processes, definitions, and measurements imply that it can form part of software development processes at Capability Maturity Model (CMM) Levels 2 through 5.

[1]  Brian Marick,et al.  The craft of software testing , 1994 .

[2]  M. Gordon,et al.  Introduction to HOL: a theorem proving environment for higher order logic , 1993 .

[3]  Lawrence Charles Paulson,et al.  Isabelle: A Generic Theorem Prover , 1994 .

[4]  T. Y. Cheung,et al.  Executable test sequences with operational coverage for LOTOS specifications , 1993, Proceedings of Phoenix Conference on Computers and Communications.

[5]  Tadeusz Strzemecki,et al.  Polynomial-time algorithms for generation of prime implicants , 1992, J. Complex..

[6]  Michael R. Donat Automatically Generated Test Frames from a Q Specification of ICAO Flight Plan Form Instructions , 1998 .

[7]  Robert M. Hierons,et al.  Extending Test Sequence Overlap by Invertibility , 1996, Comput. J..

[8]  Gilbert Thomas Laycock,et al.  Formal specification and testing: A case study , 1992, Softw. Test. Verification Reliab..

[9]  Jean-Raymond Abrial Steam-Boiler Control Specification Problem , 1995, Formal Methods for Industrial Applications.

[10]  Cliff B. Jones,et al.  Specifications are not (necessarily) executable , 1989 .

[11]  Ian J. Hayes,et al.  Specification directed module testing , 1986, IEEE Transactions on Software Engineering.

[12]  Jeremy Dick,et al.  Automating the Generation and Sequencing of Test Cases from Model-Based Specifications , 1993, FME.

[13]  Mark Blackburn,et al.  T-VEC: a tool for developing critical systems , 1996, Proceedings of 11th Annual Conference on Computer Assurance. COMPASS '96.

[14]  Ken Sakamura,et al.  A specification-based adaptive test case generation strategy for open operating system standards , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[15]  Gregor von Bochmann,et al.  Software Testing Based on SDL Specifications with Save , 1994, IEEE Trans. Software Eng..

[16]  Hans-Martin Hörcher,et al.  Improving Software Tests Using Z Specifications , 1995, ZUM.

[17]  Debra J. Richardson,et al.  Specification-based test oracles for reactive systems , 1992, International Conference on Software Engineering.

[18]  Debra J. Richardson,et al.  An evaluation of software test environment architectures , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[19]  Marie-Claude Gaudel,et al.  Software testing based on formal specifications: a theory and a tool , 1991, Softw. Eng. J..

[20]  Keith W. Miller,et al.  Automating test case generation for coverages required by FAA standard DO-178B , 1993 .

[21]  Boris Beizer,et al.  Black Box Testing: Techniques for Functional Testing of Software and Systems , 1996, IEEE Software.

[22]  Lori A. Clarke,et al.  An information flow model of fault detection , 1993, ISSTA '93.

[23]  A. Berztiss,et al.  Requirements Engineering , 2002, J. Object Technol..

[24]  Roger Ferguson,et al.  Software test data generation using the chaining approach , 1995, Proceedings of 1995 IEEE International Test Conference (ITC).

[25]  Michael R. Donat Automating Formal Specification-Based Testing , 1997, TAPSOFT.

[26]  Paul Ammann,et al.  Using formal methods to derive test frames in category-partition testing , 1994, Proceedings of COMPASS'94 - 1994 IEEE 9th Annual Conference on Computer Assurance.

[27]  Debra J. Richardson,et al.  Developing and integrating ProDAG in the Arcadia environment , 1992, SDE.

[28]  M. Karnaugh The map method for synthesis of combinational logic circuits , 1953, Transactions of the American Institute of Electrical Engineers, Part I: Communication and Electronics.

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

[30]  Jeffrey J. Joyce,et al.  5.1.4 Applying an Automated Test Description Tool to Testing Based on System Level Requirements , 1998 .

[31]  Michael R. Donat Automating Formal Speci cation-Based Testing To Appear: TAPSOFT '97 , 1997 .

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

[33]  Philip Newcomb,et al.  Formal specification tools for test coverage analysis , 1994, Proceedings KBSE '94. Ninth Knowledge-Based Software Engineering Conference.

[34]  J. Michael Spivey,et al.  Understanding Z : A specification language and its formal semantics , 1985, Cambridge tracts in theoretical computer science.

[35]  Alan Bundy,et al.  The Computer Modelling of Mathematical Reasoning , 1983 .

[36]  Marie-Claude Gaudel,et al.  Testing Can Be Formal, Too , 1995, TAPSOFT.

[37]  Christian P. Schinagl VDM Specification of the Steam-Boiler Control Using RSL Notation , 1995, Formal Methods for Industrial Applications.

[38]  David A. Carrington,et al.  A Framework for Specification-Based Testing , 1996, IEEE Trans. Software Eng..

[39]  Lawrence C. Paulson,et al.  Designing a Theorem Prover , 1993, LICS 1993.

[40]  Gilbert Thomas Laycock,et al.  The theory and practice of specification based software testing , 1993 .

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

[42]  Randal E. Bryant,et al.  Graph-Based Algorithms for Boolean Function Manipulation , 1986, IEEE Transactions on Computers.

[43]  Thomas Santen,et al.  Automating Test Case Generation from Z Specifications with Isabelle , 1997, ZUM.