2013 · 98 citations · 27 references
ComputingComputer EngineeringComputer ScienceDesign AutomationProgramming LanguagesSystems ProgrammingDesign For TestabilitySoftware TestingDynamic Analysis For TestingSoftware Product Line ArchitectureSoftware Product Line ModelingSoftware Product LinesTest ExecutionTest Suite GenerationTesting Strategies
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.
27
Model checking for programming languages using VeriSoft
Patrice Godefroid · 1997 · 829 citations · Full text
Chandrasekhar Boyapati, Sarfraz Khurshid, Darko Marinov · ACM SIGSOFT Software Engineering Notes · 2002 · 598 citations
Model checking <u>lots</u> of systems
Patrick Heymans, Pierre‐Yves Schobbens, Axel Legay et al. · 2010 · 363 citations
Chandrasekhar Boyapati, Sarfraz Khurshid, Darko Marinov · 2002 · 299 citations