A dynamic failure model for performing propagation and infection analysis on computer programs

This thesis introduces a methodology for determining program locations where faults can easily hide. It is a program structure-based model that analyzes program flow both statically and dynamically; each program location is analyzed relative to its preceding locations and succeeding locations. A sta...

Full description

Bibliographic Details
Main Author: Voas, Jeffrey Mark
Format: Others
Language:English
Published: W&M ScholarWorks 1990
Subjects:
Online Access:https://scholarworks.wm.edu/etd/1539623788
https://scholarworks.wm.edu/cgi/viewcontent.cgi?article=3687&context=etd
Description
Summary:This thesis introduces a methodology for determining program locations where faults can easily hide. It is a program structure-based model that analyzes program flow both statically and dynamically; each program location is analyzed relative to its preceding locations and succeeding locations. A statistical model termed propagation analysis studies the relation between incorrect internal data states and their affect on the output. Infection analysis is a statistically model which studies the relation between classes of faults and internal data states. Together these two models combine to form one model of analyzing programs termed Propagation and Infection Analysis (PIA).;PIA employs aspects of both software testing methods and verification techniques. The results of PIA distinguish it from traditional verification efforts however. Verification compares a program with its specification. The ultimate goal of verification is to show the program with its specification. The ultimate goal of verification is to show the program is correct with respect to its specification. PIA characterizes a program in terms of how its failure behavior will be impacted by the presence of faults at various locations. A location which minimally impacts the failure behavior is called fault insensitive. The goal of PIA is to identify fault insensitive location. Since program correctness, safety, and reliability are all intricately connected to the presence (or absence) of faults in the code, PIA therefore provides information useful in quantifying the effectiveness of other verification activities.;The implementation of the propagation and infection analysis model is performed through dynamic executions of the program. Propagation analysis quantifies the impacts on a program after its internal data states have been altered; infection analysis quantifies the impacts on internal data states that "common" faults have once injected at program locations. The statistics gathered from both altered data states and altered locations are then used to make predictions about expected program behavior if a fault were there.;Models are also provided for applying the results from propagation and infection analysis to a variety of applications dealing with software quality assurance. These include software complexity, debugging, software testing, software reliability, software security, and probable correctness.