SPLat: lightweight dynamic analysis for reducing combinatorics in testing configurable systems

  • Authors:
  • Chang Hwan Peter Kim;Darko Marinov;Sarfraz Khurshid;Don Batory;Sabrina Souto;Paulo Barros;Marcelo D'Amorim

  • Affiliations:
  • University of Texas at Austin, USA;University of Illinois at Urbana-Champaign, USA / Groupon, USA;University of Texas at Austin, USA;University of Texas at Austin, USA;Federal University of Pernambuco, Brazil;Federal University of Pernambuco, Brazil;Federal University of Pernambuco, Brazil

  • Venue:
  • Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

Many programs can be configured through dynamic and/or static selection of configuration variables. A software product line (SPL), for example, specifies a family of programs where each program is defined by a unique combination of features. Systematically testing SPL programs is expensive as it can require running each test against a combinatorial number of configurations. Fortunately, a test is often independent of many configuration variables and need not be run against every combination. Configurations that are not required for a test can be pruned from execution. This paper presents SPLat, a new way to dynamically prune irrelevant configurations: the configurations to run for a test can be determined during test execution by monitoring accesses to configuration variables. SPLat achieves an optimal reduction in the number of configurations and is lightweight compared to prior work that used static analysis and heavyweight dynamic execution. Experimental results on 10 SPLs written in Java show that SPLat substantially reduces the total test execution time in many cases. Moreover, we demonstrate the scalability of SPLat by applying it to a large industrial code base written in Ruby on Rails.