Some observations on partition testing

The term “partition testing”, in its broadest sense, refers to a very general family of testing strategies. The primary characteristic is that the program’s input domain is divided into subsets, with the tester selecting one or more element from each subdomain. In this paper, we shall not restrict the term “partition” to the formal mathematical meaning of a division into disjoint subsets which together span the space being considered. Instead we shall use it in the more familiar sense to refer to a division into, possibly overlapping, subsets. The goal of such a partitioning is to make the division in such a way that when the tester selects test cases based on the subsets, the resulting test set is a good representation of the entire domain. Ideally, the partition divides the domain into disjoint subdomains with the property that within each subdomain, either the program produces the correct answer for every element or the program produces an incorrect answer for every element. In [WO], we called such a subdomain revealing.

[1]  Richard J. Lipton,et al.  Hints on Test Data Selection: Help for the Practicing Programmer , 1978, Computer.

[2]  Simeon C. Ntafos,et al.  An Evaluation of Random Testing , 1984, IEEE Transactions on Software Engineering.

[3]  R. Taylor,et al.  Partition testing does not inspire confidence , 1988, [1988] Proceedings. Second Workshop on Software Testing, Verification, and Analysis.

[4]  Elaine J. Weyuker,et al.  Theories of Program Testing and the Application of Revealing Subdomains , 1980, IEEE Transactions on Software Engineering.

[5]  Lori A. Clarke,et al.  A partition analysis method to increase program reliability , 1981, ICSE '81.

[6]  Richard J. Lipton,et al.  Theoretical and empirical studies on using program mutation to test the functional correctness of programs , 1980, POPL '80.

[7]  Elaine J. Weyuker,et al.  Selecting Software Test Data Using Data Flow Information , 1985, IEEE Transactions on Software Engineering.