Software Test Models and Implementation of Associated Test Drivers.

Abstract

In the past, more software tests were constructed by heuristics and by drawing upon experience with similar software. Recently, enough preliminary work has been done to propose an analytical construction of test cases. This report begins by defining five broad classes of software tests: Type 0, Type 1, Type 2, Type 3 and Type 4. In a Type 0 test, all instructions are exercised at least once. In a type 1 and 2 test, all flowchart paths are exercised at least once. Type 1 is performed by forced traversal and Type 2 by natural execution. Types 3 and 4 correspond to an exhaustive interaction of all INPUT AND STORED DATA. clearly, Types 3 and 4 are unfeasible and only a strategy lying between Type 1 and 2 can effectively be implemented. Since enumeration of all the paths in a given program is required for Type 1 and 2 tests, this report establishes the lower and upper bounds on the number of paths as a function of the number of deciders, describes a manual decomposition procedure to cut a graph into smaller subgraphs, and proposes an algorithm to machine-identify all paths. A complete Type 1.5 driver system for forced path traversal, implemented in PL/1, is then thoroughly described, together with suggestions on how to extend these techniques to other languages. A typical program is analyzed manually, tested with data and run through the system. Some evaluation of the usefulness of the system is eventually given in the light of the accumulated experience. (Author)

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Mar 01, 1980
Accession Number
ADA089997

Entities

People

  • Dennis L. Baggi
  • Martin L. Shooman

Organizations

  • New York University

Tags

DTIC Thesaurus Topics

  • Assembly Languages
  • Classification
  • Computations
  • Computer Programming
  • Computer Programs
  • Computers
  • Construction
  • Data Sets
  • Debugging
  • High Level Languages
  • Language
  • New York
  • Operating Systems
  • Programming Languages
  • Robotics
  • Software Development
  • Software Testing

Fields of Study

  • Computer science

Readers

  • Aerospace Test and Evaluation
  • Applied Combinatorial Optimization and Logic Circuit Design.
  • Computer Science.