Researchers from the US National Institute of Standards and Technology (NIST) and the University of Texas have demonstrated an open-source tool that catches programming errors by using an emerging approach dubbed "combinatorial testing".
It creators say the NIST-Texas tool could save software developers " significant time and money" when it is released next year.
Studying software crashes in a variety of applications from medical devices to web browsers, NIST researchers obtained hard evidence to support long-held conventional wisdom: most software failures result from simple events rather than complex ones. Even for web browsers containing hundreds of different variables, most failures were caused by interactions between just two variables. Nonetheless, in the applications that the researchers studied, additional failures could result from interactions of up to six variables.
Based on this insight, the NIST-Texas team went beyond the popular practice of "pairwise testing", or exploring interactions between only two variables at a time, and designed a method for efficiently testing different combinations of settings in up to at least six interacting variables at a time.
"For example, imagine a word-processing program that features 10 different text formats. Certain combinations of settings (such as turning on superscript, subscript and italics at the same time) could cause the software to crash. Trying all possible combinations of the 10 effects together would require 1,024 tests," the researchers explained.
"However, testing all possible combinations of any three effects requires just 13 different tests, thanks in part to the fact that if the tests are selected judiciously the 10 different variables allow you to explore 120 combinations of 'triples' simultaneously."
The researchers plan to release the tool early next year as open-source code. They currently are inviting developers to participate in beta testing of the tool before release.





Do you agree?
Have your say on this article