An Experimentation with Statistical Testing
Hélène Waeselynck, Pascale Thévenod-Fosse · 1994
Statistical testing is based on a probabilistic generation of test data: classical structural or functional criteria serve as guides for defining an input profile and a test size. The method is intended to compensate for the imperfect connection of current criteria with software faults, and should not be confused with random testing, a blind approach that uses a uniform profile over the input domain. This paper reports on experimental results obtained on a software component from the nuclear field: • unit testing of four functions ‐ statistical input sets were designed according to structural criteria; their efficiency was compared to the one of 1) deterministic sets derived from the same criteria and 2) uniform random sets; the comparison involved 2816 faults of mutation type seeded one by one in the source codes. • whole component testing ‐ statistical functional testing was designed from behaviour models of the component: finite state machines, decision tables, Statecharts; its efficiency was compared to the one of random testing, using two versions of the component: the real one, in which a minor fault was found, and a student version with 12 revealed faults. The results showed the high fault revealing power of statistical testing, and its best efficiency in comparison to deterministic and random testing.