Search NASASearch

Engineering topics

Payne, Jeffery E.

Publications and source records attributed to Payne, Jeffery E..

Automating test case generation for coverages required by FAA standard DO-178B

Coverage testing techniques are required by the FAA for various levels of subsystem criticality at the unit testing level. Higher levels of criticality require coverage schemes that frequently require more and more test cases, particularly when the number of conditions in a decision grows. For example, if we have a decision with n conditions of the form: if (/ci/ or /c2/ or .... or /cn/) then there are 2(n) possible combinations of condition outcomes. Given the enormous number of inputs that may be required to satisfy different coverages, and given that there are no automated tools for determining these inputs (to our knowledge), we will show how one alternative testing technique, mutation testing, can be coerced into generating inputs that satisfy a code coverage scheme X, i.e., if we modify the rules for mutant generation during mutation testing, this technique will provide test cases that satisfy X.

Voas, Jeffrey M.

Software testability and its application to avionic software

Randomly generated black-box testing is an established yet controversial method of estimating software reliability. Unfortunately, as software applications have required higher reliabilities, practical difficulties with black-box testing have become increasingly problematic. These practical problems are particularly acute in life-critical avionics software, where requirements of 10 exp -7 failures per hour of system reliability can translate into a probability of failure (POF) of perhaps 10 exp -9 or less for each individual execution of the software. This paper describes the application of one type of testability analysis called 'sensitivity analysis' to B-737 avionics software; one application of sensitivity analysis is to quantify whether software testing is capable of detecting faults in a particular program and thus whether we can be confident that a tested program is not hiding faults. We so 80 by finding the testabilities of the individual statements of the program, and then use those statement testabilities to find the testabilities of the functions and modules. For the B-737 system we analyzed, we were able to isolate those functions that are more prone to hide errors during system/reliability testing.

Voas, Jeffrey M.

PISCES: A Tool for Predicting Software Testability

Before a program can fail, a software fault must be executed, that execution must alter the data state, and the incorrect data state must propagate to a state that results directly in an incorrect output. This paper describes a tool called PISCES (developed by Reliable Software Technologies Corporation) for predicting the probability that faults in a particular program location will accomplish all three of these steps causing program failure. PISCES is a tool that is used during software verification and validation to predict a program's testability.

Voas, Jeffrey M.