Browse Prior Art Database

Tutorial: Static Analysis and Dynamic Testing of Computer Software

IP.com Disclosure Number: IPCOM000131292D
Original Publication Date: 1978-Apr-01
Included in the Prior Art Database: 2005-Nov-10
Document File: 15 page(s) / 52K

Publishing Venue

Software Patent Institute

Related People

Richard E. Fairley: AUTHOR [+3]

Abstract

Computer programs can be checked for errors statically and dynamically. Static analysis looks for structural and semantic faults in programs. Dynamic analysis affirms proper operation -- and helps identify errors.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 7% of the total text.

Page 1 of 15

THIS DOCUMENT IS AN APPROXIMATE REPRESENTATION OF THE ORIGINAL.

This record contains textual material that is copyright ©; 1978 by the Institute of Electrical and Electronics Engineers, Inc. All rights reserved. Contact the IEEE Computer Society http://www.computer.org/ (714-821-8380) for copies of the complete work that was the source of this textual material and for all use beyond that as a record from the SPI Database.

Tutorial: Static Analysis and Dynamic Testing of Computer Software

Richard E. Fairley

Colorado State University

Computer programs can be checked for errors statically and dynamically. Static analysis looks for structural and semantic faults in programs. Dynamic analysis affirms proper operation -- and helps identify errors.

The goal of software validation is to demonstrate that a computer program satisfies its specifications. Validation is performed by analyzing and testing the code in various ways to determine the degree of correspondence between code and specifications. During the past few years, several techniques for performing validation have been developed. These include structured walkthroughs, static analysis, dynamic testing, symbolic execution, and proofs of correctness- However, this tutorial paper discusses only static analysis and dynamic testing. Both the conceptual aspects and automated facilities in these areas are described. In static analysis, the structure of the code is analyzed, but the code is not executed On the other hand, dynamic testing involves deriving a test plan, executing test cases, and evaluating the results.

Test standard.

In a systematic validation effort, the specifications are the standard against which code is validated. Two types of specifications that a program must satisfy are requirement specifications, which state the functional nature of the program (whatI, and design specifications, which state the logical nature of the program (how). Thus, the two categories of errors to be discovered are functional errors -- departures from requirements, and logical errors -- errors in implementing the design. Ideally, the specifications will be explicit, complete, concise, understandable, and unambiguous. In reality specifications are almost always incomplete, ambiguous, and subject to change. Thus, a software system can be validated (shown to satisfy the specifications) and still exhibit unsatisfactory performance because the specifications are ambiguous, incomplete, and/or incorrect. Many of the problems of validating software are caused by faulty specifications; however, the size, complexity, and evolutionary nature of software systems make the development of satisfactory specifications a difficult, and sometimes impossible, task.

Validation.

Two situations in which systematic validation occurs are system validation, prior to release of the software, and revalidation following maintenance. System validation is often accomplished by a testing group that is independent of the impl...