Building Self Adaptive Software Systems via Test-based Modifications
Building software systems that adapt to changing environment is challenging. Developers cannot anticipate all the changes in advance, and even if they could, the effort required to handle such situations is too onerous for practical purposes. Self Adaptive Software System (SASS) adapts itself as per changing environment. The area of building SASS has observed immense contribution from both researchers and practitioners. Many techniques, algorithms, tools, and processes have been proposed to allow the automatic building of SASS. Most of these techniques are at the prototype level and target specific scenario or application. They require developers to learn Domain Specific Languages(DSL), formal specifications or modeling approaches. All these prevent industry adoption of these techniques.
In the first part of our research, We propose using existing tests to capture relaxed specifications by simply labeling tests. We propose a conceptually simple but highly applicable new technique called test-based program minimization that combines Hierarchical Delta Debugger with statement deletion mutation that can build SASS automatically using labeled test suite. We implement the technique using a new tool called hddRASS. We demonstrate our technique by conducting a case study on NetBeans IDE, by building memory adaptive NetBeans IDE and also by applying it on a large number of open source java subjects.
Test-based program minimization is simple and highly applicable but very inefficient technique. In the second part of our research, we discover reasons for inefficiency and try to mitigate some of them. We call the end product of minimization reduction. By conducting a large study of test-based program minimization we establish certain qualities of reduction. (1) Reductions are small in size. (2) They are simple in complexity. (3) Certain types of program entities dominate reductions. (4) They have a well- defined relationship with the test suite. Based on these we propose 4 heuristics to limit processing targets of the technique to improve efficiency.
In the third part of our research, we further investigate the relationship between labeled test suite and reduction. We realize that checked coverage of program entities has a very strong relationship with reduction. We use this information to build a new tool checkReduce to efficiently and automatically build SASS based on the labeled test suite. We compare the checkReduce approach with the hddRASS approach for efficiency and accuracy.
In the last part of our research, we expand both of our techniques to allow program transformations other than statement deletion.
Major Advisor: Alex Groce
Committee: Danny Dig
Committee: Carlos Jensen
Committee: Xiaoli Fern
GCR: Maggie Niess
Tuesday, June 5, 2018 at 11:00am to 1:00pm
Kelley Engineering Center, 3057
110 SW Park Terrace, Corvallis, OR 97331
Calvin Hughes
5417373617
No recent activity