Abstract

In theory, software model checkers are well-suited for automated test-case generation. The idea is to perform (non-)reachability queries for the test goals and extract test cases from resulting counterexamples. However, in case of realistic programs, even simple coverage criteria (e.g., branch coverage) force model checkers to deal with several hundreds or even thousands of test goals. Processing each of these test goals in isolation with model checking techniques does not scale. Therefore, our tool HybridTiger builds on recent ideas on multi-property verification. However, since every additional property (i.e., test goal) reduces the model checker’s abstraction possibilities, we split the set of all test goals into different partitions. In Test-Comp 2019, we applied a random partitioning strategy and used predicate analysis as model checking technique. In Test-Comp 2020, we improved our technique in two ways. First, we exploit domination information among control-flow locations in our partitioning strategy to group test goals being located on (preferably) similar paths. Second, we account to inherent weaknesses of the predicate analysis by applying a hybrid software model-checking approach that switches between explicit model checking and predicate-based model checking on-the-fly. Our tool HybridTiger is integrated into the software analysis framework CPAchecker.

Highlights

  • The HybridTiger algorithm is implemented within the software verification framework CPAchecker [4]

  • CPAchecker allows developers to integrate new algorithms like HybridTiger, which may use other algorithms implemented in CPAchecker, such as counterexample-guided abstraction refinement (CEGAR) [5]

  • HybridTiger first extracts test goals from input programs and repeatedly executes reachability analyses provided by CPAchecker until every reachable test goal is covered by at least one test case

Read more

Summary

Software Architecture

The HybridTiger algorithm is implemented within the software verification framework CPAchecker [4]. HybridTiger uses the CoVeriTest [3] algorithm to sequentially combine test-case generation runs utilizing different verification techniques. Each test-case generation run applies the CPA/Tiger-MGP4(Tiger Multi-Goal-Partitioning) algorithm, which utilizes the CEGAR algorithm. HybridTiger first extracts test goals from input programs and repeatedly executes reachability analyses provided by CPAchecker until every reachable test goal is covered by at least one test case. To this end, test goals are encoded into (non-)reachability properties.

Interleaved Algorithm
Strengths and Weaknesses
Setup and Configuration
Project and Contributors
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call