Computer Science Colloquia
Tuesday, May 1, 2012
Advisor: Mary Lou Soffa
Attending Faculty: Wes Weimer, Chair; Sudhanva Gurumurthi, Gregory Kapfhammer, and Gregory Gerling.
2:00 PM, Rice Hall, Rm. 242
Ph.D. Dissertation presentation
Testing in Resource-Constrained Environments
In recent software development environments, resources including time, memory, and power constrain the execution of software test cases. Often the cost of running all test cases is prohibitively expensive, necessitating techniques to select test cases of the highest quality for test execution. While many test case selection and prioritization techniques exist to select test cases that are more likely to find faults, none take the resource constraints under which the tests will operate directly into consideration. Structural testing is an important technique, in which during execution, test cases are also evaluated for structural coverage. This is typically performed through the use of code instrumentation. However, instrumentation incurs high overhead in terms of time and code growth, making it difficult to use in resource-constrained environments such as mobile device testing. This thesis develops and evaluates techniques for efficient and effective execution of test cases in resource-constrained environments. The first set of techniques selects high quality test cases from test suites while taking resource constraints into account. The resulting test selection is guaranteed to execute within the specified resource constraints, and the resulting test cases should have the highest possible potential for overall fault detection during its constrained execution. The selected tests are additionally ordered in a way that is likely to find faults earlier in test execution rather than later. The second set of techniques evaluates the quality of test cases during execution without the need of expensive and intrusive instrumentation. Instead, our quality evaluation techniques exploit recent hardware advances to monitor program execution. By leveraging these hardware advances, quality analysis can be performed with a reduced time and memory overhead compared to instrumentation. Additionally, the techniques require little or no code modification or dynamic code insertion and can run on commodity machines, tablets, or mobile devices. No specialized hardware or components are required. The techniques are combined into a runtime and static testing system called THeME: Testing by Hardware Monitoring Events. THeME is a portable, extensible system, making it applicable for use in a wide range of resource-constrained environments.