Conventional programming wisdom has long said that most
software failures result from a mere two variables colliding in an unforeseen
way. Finding these possible bugs can be an arduous and expensive undertaking
for large programs. Computer scientists and mathematicians at the National
Institute of Standards and Technology (NIST) and the University of Texas,
Arlington are developing a new, open source application
that can test for these bugs quickly and inexpensively.
Though their research shows that most of these program bugs
are caused by only two variables interacting, faults caused by the interaction
of six variables or more are not unseen. The application under development by
the NIST-University of Texas team takes this into consideration, using a
technique more commonly used in the chemistry field known as combinatorial
testing.
Trying all combinations of 10 variables in a given program
would take 1,024 tests. The software, however, would be able to generate
smarter tests, making the count for every combination of three of the variables
interacting just 13 tests. Using the combinatorial approach, it can test 120 of
the three-way combinations simultaneously. The tool has no problem generating
efficient tests for combinations of six or more variables and does so quickly.
Given that many software programs -- even a simple web
browser -- can have many more than 10 variables interacting in interesting ways
in many different combinations, the approach would be a boon for bug testing
for many programmers and software engineers. The researchers are looking to
release the open source application next year.
The team is currently inviting developers to use the
software in beta testing. The application could be useful for programming in
everything from e-commerce to robotic assembly lines.