Faster and More Efficient Software for the Air Force
Researchers at the University of Nebraska in Lincoln have addressed the issue of faulty software by developing an algorithm and open source tool that is 300 times faster at generating tests and also reduces current software testing time. The new algorithm has potential to increase the efficiency of the software testing process across systems.
The project, funded in part by an Air Force Office of Scientific Research (AFOSR) Young Investigator Award and through a National Science Foundation Early CAREER Award, is of particular interest to the military because of the potential to reduce errors in theater. This technology also will be helpful to the private sector where some agencies are reporting financial losses of up to 50 billion dollars per year because of poor software.
“Software failures have the potential to cause financial, environmental or bodily harm,” said lead researcher, Myra Cohen. “Our techniques will help to improve the quality of software in the military to help ensure that those systems behave properly in the field.”
“The ultimate goal of research like this is not just to reduce software testing costs, but to do so while maintaining or even increasing confidence in the tests themselves,” said AFOSR Program Manager, David Luginbuhl who is overseeing Cohen’s work.
“Although algorithms exist that can produce samples for testing, few can handle dependencies between features well. Either they run slowly or they select very large test schedules, which means that testing takes too long,” said Cohen.
Her project, called “Just Enough Testing” aims to re-use test results across different systems that share similar sets of features so the time to test a single system is reduced. Large and complex families of software systems are common, and within them, groups of interacting features may cause faults to occur. The scientists have examined ways to ensure that faults are found earlier and more often in these types of systems.
“In the long term, we expect that, as software product lines are used to produce large numbers of systems, and as they mature over time, we will be able to deploy new systems faster and with less likelihood of failure,” she said.