Robyn Lutz received funding for an NSF project entitled, "SHF: Small: Towards Variability-Aware Software Analysis and Testing." The project duration is three years with the intended award amount of $298,785 to Iowa State University. This project is collaborative with Dr. Tuba Yavuz at the University of Florida.
Abstract: Much of the software upon which society depends is highly configurable, with many optional and alternative features that can be turned on or off. Some combinations of options “play well” together. Other combinations of options may cause the software to crash or behave incorrectly and must be avoided. A wrong variety of features can be dangerous in safety-critical applications, such as in the health or aerospace domains. As software becomes more complex and offers more features, the risk of disconnects increases between those combinations that are disallowed per the requirements specifications and those constraints that are actually implemented in the code. The project will enable more effective analysis and testing of software product lines and configurable systems compared to the state-of-the-art. It will train students in the increasingly automated software analysis needed to verify complex, highly configurable software systems and product lines.
This project aims to extend software analysis techniques to automatically extract feature constraints from the program’s code and check them against the feature constraints in the software requirements. The goal is to help automatically repair any inconsistencies and to derive tests that achieve high coverage of the variability constraints. The project will leverage variability-aware software analysis by adapting program analysis techniques such as symbolic execution and static analysis to be variability-aware at the intermediate-representation level. Variability constraints will be automatically extracted from software using variability-aware analysis. This will enable evaluating the impact of variability on the functional as well as non-functional properties. Additionally, extracted variability constraints will be used to check whether the software meets variability requirements and identify any required repairs. The project will apply and evaluate the proposed approach to real-world systems, paying particular attention to safety-critical constraints, and develop a set of challenge problems that reflect difficulties that developers face in practice for use by researchers and in coursework.