More efficient modeling to test software updates
Software developers use modeling to test reliability, but since software gets updated regularly, modeling future versions may take valuable time.
Allison Sullivan, assistant professor in the Computer Science and Engineering (CSE) Department at The University of Texas at Arlington, recently received a three-year, $490,000 grant from the National Science Foundation to explore testing software updates without testing unchanged parts of the code.
“Software is growing more and more complex. It’s hard to create a software model with millions of lines of code and multiple developers,” Sullivan said. “So if all we’ve done is added a feature, can we just run a model on that change? If so, we can cut the time it takes to test code from several hours overnight to maybe just an hour.”
Using modeling software called Alloy, Sullivan will focus on three ways of interacting with a model: writing, testing and synthesizing.
For writing, the research will look at ways to maximize the use of past scenarios. It will also look at techniques for new strategies based on what components of the model changed and present the impact of the changes to the user.
Testing will involve writing the model, executing the code and observing what the model allows. This includes tests that reason over the changed code. Users can then decide whether to allow specific errors or to correct them.
Synthesizing allows the user to refine testing by giving the model an expected set of behaviors, then automatically generating Java, C or C++ programs to match the behaviors. Sullivan said she hopes to develop a way to write test cases over the model and automatically build a new model that will just look at changes and not re-run the entire process.
“Traditionally, it has been very expensive to analyze models,” she said. “With hardware advances, it is now more feasible to apply software to analyze models of real-world systems, and we are working to make the process more efficient.”
Sullivan’s grant is important because it will help software developers improve their products while also increasing efficiency, said Hong Jiang, CSE chair.
“Software models are the gold standard for testing, but writing a model correctly and applying it to immense amounts of code, no matter how small a change, is time-consuming and inefficient,” Jiang said. “Dr. Sullivan’s work has the potential to make testing easier and better, which will improve quality.”
-- Written by Jeremy Agor, College of Engineering