TL;DR: The concepts of information theory are applied to the problem of testing digital circuits by analyzing the information throughput of the circuit and an expression for the probability of detecting a hardware fault is derived.
Abstract: The concepts of information theory are applied to the problem of testing digital circuits. By analyzing the information throughput of the circuit an expression for the probability of detecting a hardware fault is derived. Examples are given to illustrate an application of the present study in designing efficient pattern generators for testing.
TL;DR: A criterion for test completeness is introduced in this paper which measures the ability of a set of tests to distinguish between functions which are implemented by parts of programs.
Abstract: Program testing metrics are based on criteria for measuring the completeness of a set of program tests. Branch testing measures the percentage of program branches that are traversed during a set of tests. Mutation testing measures the ability of a set of tests to distinguish a program from similar programs. A criterion for test completeness is introduced in this paper which measures the ability of a set of tests to distinguish between functions which are implemented by parts of programs. The criterion is applied to functions which are implemented by different kinds of programming language statements. It is more effective than branch testing and incorporates some of the advantages of mutation testing. Its effectiveness can be discussed formally and it can be described as part of an integrated approach to testing. A tool can be used to implement the method.
TL;DR: This paper presents an analysis of the effectiveness of individual paths for testing predicates in linearly domained programs and a measure is derived to show that any predicate in such programs may be sufficiently tested using at most m+n+1 paths.
Abstract: Many testing methods require the selection of a set of paths over which testing is to be conducted. This paper presents an analysis of the effectiveness of individual paths for testing predicates in linearly domained programs. A measure is derived for the marginal advantage of testing another path after several paths have already been tested. This measure is used to show that any predicate in such programs may be sufficiently tested using at most m+n+1 paths, where m is the number of input values and n is the number of program variables.
TL;DR: An approach to data space analysis is introduced with an associated notation to identify the sensitivity of the software to a change in a specific data item.
Abstract: A complete software testing process must concentrate on examination of the software characteristics as they may impact reliability. Software testing has largely been concerned with structural tests, that is, test of program logic flow. In this paper, a companion software test technique for the program data called data space testing is described.An approach to data space analysis is introduced with an associated notation. The concept is to identify the sensitivity of the software to a change in a specific data item. The collective information on the sensitivity of the program to all data items is used as a basis for test selection and generation of input values.
TL;DR: Simulation results are presented which treat path and partition testing in a reasonably favorable way, and yet still suggest that random testing may often be more cost effective.
Abstract: Random testing of programs is usually (but not always) viewed as a worst case of program testing. Test case generation that takes into account the program structure is usually preferred. Path testing is an often proposed ideal for structural testing. Path testing is treated here as an instance of partition testing. (Partition testing is any testing scheme which forces execution of at least one test case from each subset of a partition of the input domain.) Simulation results are presented which treat path and partition testing in a reasonably favorable way, and yet still suggest that random testing may often be more cost effective. Results of actual random testing experiments are presented which tend to confirm the viability of random testing as a useful validation tool.