Tuesday, April 12, 2016
Saving Software from Itself
ISR’s Christian Kästner Receives NSF Career Award for Work on Feature Interaction in Software
Dr. Christian Kästner, Assistant Professor in the Institute for Software Research, was recently named a recipient of the National Science Foundation’s Career Award for his work on variational execution and feature interaction in highly configurable software systems.
The NSF Faculty Early Career Development (CAREER) award recognizes early career achievement by junior faculty whose work exemplifies the integration of research and education while building a solid basis for a lifetime of meaningful work to come.
Kästner was recognized for his innovative work in studying the intricacies of highly configurable systems. “Most software these days is configurable in some form or another,” Kästner explains, “Whether it's a set of plugins for your web browser or the configuration options in your phone’s operating system, there is a tremendous amount of variation that is either built into or built on top of software we use everyday.”
But the freedom to customize comes at a cost, Kästner warns. “Oftentimes these features are developed in isolation. When they interact with one another for the first time, all sorts of interactions can occur.”
Some are intentional, he explains, while others prove to be problematic. “One non-software example would be a building that has both a fire suppression and a flood prevention system. Both were developed independent of the other and each works as intended in isolation. But, in this hypothetical building, let's say there was a fire. The fire suppression system, detecting the fire, would activate the sprinklers to put out the fire. Meanwhile, the flood prevention system, detecting large amounts of standing water on the floor, would shut down water to the building. The sprinklers would no longer work and the fire would spread. Such interaction can be very difficult to detect considering that technical systems often consist of dozens or hundreds of independently developed components.”
While not always as dire as this example, feature interaction is a real concern in a world where the capability to customize your software is becoming standard. The ability to test for interactions though is daunting. “These systems are extremely complex. Wordpress alone has approximately 40,000 plugins available. And the Linux kernel, the central core of the Linux operating system, has over 10,000 configuration options at compile time alone. Brute force testing of all possible configurations simply isn’t an option,” explains Kästner “A system with 320 independent options would generate more possible configurations than there are atoms in the universe.”
If testing each option in sequence isn’t feasible, surely testing 10,000 all at once is impossible. But not so, says Kästner “Most of the configurations in a system are relatively similar. With Wordpress, almost everything about the Wordpress site will render the same with a plugin enabled as without.” It is this level of similarity which has allowed Kästner to develop his simultaneous execution technique and allow for large scale analysis of interactions across these massive configuration spaces. “So, since so much of the execution is shared across options, we execute all features configurationally enabled but we share almost all parts of the execution except for where the configurations matter. From there we can see where there are interactions in a much more efficient way.”
As for the award itself, Kästner is excited and honored. “This award means that I can really dedicate myself to studying this area,” he explains. “There are a lot of potential applications out there if we can better understand how to test for these interactions and design systems with them in mind. This award can bring us just a little bit closer to software that works well right out of the box, no matter how we set it up!”
For more information on Kästner’s work on feature interaction and simultaneous execution, review his paper in the Proceedings of the 36th International Conference on Software Engineering (ICSE), entitled Exploring Variability-Aware Execution for Testing Plugin-Based Web Applications (H. Nguyen, C. Kästner, and T. Nguyen)
By: Josh Quicksall, email@example.com