N-way Program Merging for Efficient Test Coverage of Configurable Software Malte Lochau (TU Darmstadt) (Joint Work with Dennis Reuling and Johannes Bürdek) FOSD Meeting 2017 Program Analysis yes ππ Software ModelChecker ππ β¨ ππππππ: ππ β₯ ππ β ππ β ππ ? ? no Counter-Example: ππ = ππ, ππ = ππ, ππ = ππ ο Witness for violation of safety property ππ ο Test input for test goal ¬ππ Counter-Example Guided Abstraction Refinement [Clarke et al. 2004] 4 π₯π₯ < π¦π¦ 5 ππ β π₯π₯ 15 π§π§ β π§π§ + 1 ππππππππππππ π₯π₯, π¦π¦, π§π§; ππππππ ππ; π₯π₯ β₯ π¦π¦ 7 ππ β π¦π¦ 24 ππππππππππππ π§π§ Program P Control-Flow Automaton (CFA) 4 5 π‘π‘π‘π‘π‘π‘π‘π‘ π₯π₯ < π¦π¦ 15 π₯π₯ < π¦π¦ β§ ππ = π₯π₯ 24 π₯π₯ < π¦π¦ β§ ππ = π₯π₯ β§ π§π§24 = π§π§0 + ππ β¨ ππ 7 π₯π₯ β₯ π¦π¦ 15 π₯π₯ β₯ π¦π¦ β§ ππ = π₯π₯ 24 π₯π₯ β₯ π¦π¦ β§ ππ = π¦π¦ β§ π§π§24 = π§π§0 + ππ β¨ ππ Abstract Reachability Graph (ARG) Product-based Product-Line Analysis Software ModelChecker P1 P2 P3 ππ P4 P5 P6 π¦π¦π¦π¦π¦π¦ ππππ (π₯π₯ = β― ) ππππ (π₯π₯ = β― ) ππππ (π₯π₯ = β― ) ππππ (π₯π₯ = β― ) π¦π¦π¦π¦π¦π¦ Family-based Product-Line Analysis Software ModelChecker π·π·π·π· = π³π³π³π³ β§ π·π·π·π·π·π·π·π· nππ (π₯π₯ = β― ) ππ [Apel et al., 2013] [Bürdek et al., 2015] Family-based Product-Line Analysis 1 LE π₯π₯ < π¦π¦ 5 π₯π₯ β₯ π¦π¦ 7 ππ β π₯π₯ ππ β π¦π¦ PLUS SPL Implementation π§π§ β π§π§ + ππ 3 18 24 ππππππππππππ π₯π₯, π¦π¦, π§π§; ππππππ ππ; π₯π₯ > π¦π¦ 10 ππ β π₯π₯ 3 GR π₯π₯ β€ π¦π¦ 12 ππ β π¦π¦ NOTNEG π§π§ β ππ β₯ 0π§π§ β ππ < 0 5 π‘π‘π‘π‘π‘π‘π‘π‘ ππππ π₯π₯ < π¦π¦ πΏπΏπΏπΏ 22 19 ππ β ππ β (β1) π§π§ β π§π§ β ππ ππππππππππππ π§π§ Superimposed CFA MINUS 24 π₯π₯ < π¦π¦ β§ ππ = π₯π₯ β§ π§π§24 = π§π§0 β 1 πΏπΏπΏπΏ β§ ππππππππ β§ ¬NOTNEG Featured ARG Challenges Scalability / Precision Trade-offs Partial / Incomplete / Evolving SPL Implementations Product/Family-based SPL Analysis Product/Family-based Analysis 1 LE π₯π₯ < π¦π¦ 5 π₯π₯ β₯ π¦π¦ 7 ππ β π₯π₯ ππ β π¦π¦ PLUS Partial/Evolving/Incomplete SPL Implementation Artifacts π§π§ β π§π§ + ππ ππππππππππππ π₯π₯, π¦π¦, π§π§; GR ππππππ ππ 3 ; π₯π₯ > π¦π¦ 10 12 18 24 ππ β π₯π₯ π§π§ β ππ β₯22 0 ππ β π¦π¦ NOTNEG π§π§ β ππ < 019 ππ β ππ β (β1) π§π§ β π§π§ β ππ ππππππππππππ π§π§ MINUS (Continuously) Superimposed CFA N-Way Model-Merging Given: ππ input models ππππ πΆπΆπΆπΆπ΄π΄1 πΆπΆπΆπΆπ΄π΄2 πΆπΆπΆπΆπ΄π΄3 πΆπΆπΆπΆπ΄π΄4 πΆπΆπΆπΆπ΄π΄5 Find: a correct and good family model ππ πΆπΆπΆπΆπ΄π΄6 ππππππππππππππππππππππππ πΆπΆπΆπΆπΆπΆ Compare, β¦ [Rubin and Chechik, 2013] ππ-tuple t = ππ1 , β¦ , ππππ β ππ, 1 β€ ππ β€ ππ, such that no two elements belong to the same input model ? ? ? ππππππππππππππ βΆ ππ β [0,1] ? ? ? β¦, Match, β¦ [Rubin and Chechik, 2013] Subset ππ β² β ππ is a (complete) match iff each model element occurs in exactly one ππ-tuple π‘π‘ β πππ Match πππ is minimal iff for every match ππππ it holds that β ππππππππππππππ π‘π‘π‘ β₯ βππππππππππππππ(π‘π‘π‘π‘) π‘π‘ β² β πππ π‘π‘ β²β² β ππππ β¦ and Merge [Rubin and Chechik, 2013] Compose ππ models into one by integrating matched elements Compare/Match/Merge has Problems Three hard problems to be solved at once 1. Enumerate ππ-tuples: βcombinatorial explosionβ 2. Compare locations: βpath explosionβ 3. Find minimal match: βknapsack problemβ Configuration information is not preserved Match/merge may produce ill-formed models as model elements are untyped Metrics for measuring quality of merging results? Location Prepartitioning l l l Group similar locations withβ¦ same type (initial, termination, sequence, branch, β¦) at least one equally labeled incoming edge similar block nestings => Parameter: Minimum Group Size (MGS) Incremental Location Matching β¦ l lβ l lβ l lβ β¦ β¦ Match grouped locations Combination of depth-first and bredth-first traversal Interleaved with randomized matching attempts => Parameter: Minimum Tuple Size (MTS) Merging with Variability Encoding ππππ ππππ ππππ a c b a c π‘π‘π‘ π‘π‘π‘π‘ a π‘π‘π‘π‘π‘ c π‘π‘π‘π‘π‘π‘ b c c (ππππ β¨ ππππ ) ¬(ππππ β¨ ππππ ) a b c c Evaluation Results for BusyBox MFB / Model Size Reduction Factor CPU Time Speedup Factor Test Suite Size Reduction Factor CbC 2.2 β 3.3 1.3 β 3.3 1.3 β 2.8 SPLFB 0.5 β 0.7 0.5 β 0.8 0.2 β 0.5 Thank You!
© Copyright 2025 Paperzz