Search NASASearch

Engineering topics

Voas, Jeffrey

Publications and source records attributed to Voas, Jeffrey.

A Dynamic Failure Model for Predicting the Impact that a Program Location has on the Program

This paper presents a dynamic technique for predicting the effect that a "location" of a program will have on the program's computational behavior. The technique is based on the three necessary and sufficient conditions for software failure to occur: (1) a fault must be executed, (2) the fault must adversely affect the data state, and (3) the adverse effect in a data state must affect program output. In order to predict the effect that a location of a program will have on the program's computational behavior, the following characteristics of each program location are estimated: (1) the probability that a location of the program is executed, (2) the probability that a location of the program noticeably affects the program state created by the location, and (3) the probability that the data states created by a location affect the program's output. With estimates of these characteristics for each location in a program, we can predict those locations where a fault can more easily remain undetected during testing, as well as predict the degree of testing necessary to be convinced that a fault is not remaining undetected in a particular location.

Voas, Jeffrey

A Dynamic Testing Complexity Metric

This paper introduces a dynamic metric that is based on the estimated ability of a program to withstand the effects of injected "semantic mutants" during execution by computing the same function as if the semantic mutants had not been injected. Semantic mutants include: (1) syntactic mutants injected into an executing program and (2) randomly selected values injected into an executing program's internal states. The metric is a function of a program, the method used for injecting these two types of mutants, and the program's input distribution; this metric is found through dynamic executions of the program. A program's ability to withstand the effects of injected semantic mutants by computing the same function when executed is then used as a tool for predicting the difficulty that will be incurred during random testing to reveal the existence of faults, i.e., the metric suggests the likelihood that a program will expose the existence of faults during random testing assuming faults were to exist. If the metric is applied to a module rather than to a program, the metric can be used to guide the allocation of testing resources among a program's modules. In this manner the metric acts as a white-box testing tool for determining where to concentrate testing resources. Index Terms: Revealing ability, random testing, input distribution, program, fault, failure.

Voas, Jeffrey

Using Dynamic Sensitivity Analysis to Assess Testability

This paper discusses sensitivity analysis and its relationship to random black box testing. Sensitivity analysis estimates the impact that a programming fault at a particular location would have on the program's input/output behavior. Locations that are relatively \"insensitive" to faults can render random black box testing unlikely to uncover programming faults. Therefore, sensitivity analysis gives new insight when interpreting random black box testing results. Although sensitivity analysis is computationally intensive, it requires no oracle and no human intervention.

Voas, Jeffrey