Shared Execution for Efficiently Testing Product Lines

A software product line (SPL) is a family of related programs, each of which is uniquely defined by a combination of features. Testing an SPL requires running each of its programs, which may be computationally expensive as the number of programs in an SPL is potentially exponential in the number of features. It is also wasteful since bytecode instructions common to many programs must be repeatedly executed, rather than just once. To reduce this waste, we propose the idea of shared execution, which runs instructions just once for a set of programs until a variable read yields multiple values, causing execution to branch for each value until a common execution point that allows shared execution to resume. Experiments show that shared execution can be faster than conventionally running each program from start to finish, despite its overhead.

Chang Hwan Peter Kim is a final-year PhD candidate in the Department of Computer Science at the University of Texas at Austin, supervised by Don Batory and Sarfraz Khurshid. He developed a suite of static and dynamic analysis techniques to reduce the execution space of configurable systems. He is interested in automated development of reliable software and in particular, testing, static and dynamic program analysis, feature-oriented programming, product lines, aspect-oriented programming, model-driven engineering, and requirements engineering.