1 / 12

Interleaving static and dynamic analyses to generate path tests for C functions

Interleaving static and dynamic analyses to generate path tests for C functions. Nicky Williams, Bruno Marre, Patricia Mouy. Objective. automation of the test process for fast , rigorous , systematic testing of rapidly evolving software and a quantifiable increase in confidence

brigit
Download Presentation

Interleaving static and dynamic analyses to generate path tests for C functions

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Interleaving static and dynamic analyses togenerate path tests for C functions Nicky Williams, Bruno Marre, Patricia Mouy

  2. Objective • automation of the test process for fast, rigorous, systematic testing of rapidly evolving software and a quantifiable increase in confidence • test input generation must be automated and it is possible !

  3. Others aim: make generation more automatic criteria: branch/user-defined coverage existing tests / spec. test-case => test objective in CFG staticdynamic symbolic executionexecute case => path predicate path covered constraint solving heuristical optimisation problems loops, alias number of executions complexity termination PathCrawler aim:fully automatic criteria:all-paths dynamic execute case path covered static => path predicate rest input domain constraint solving combines the advantages of static and dynamic approaches Structural test-case generation : a new approach

  4. PathCrawler : path-test generator • Inputs :sourcecode and definition domain of program • Output : tests covering 100% feasible execution k-paths • An original approach : • instead of CFG, iteratively construct execution path tree • only analyse individual feasible (complete) paths with unrolled loops (can take aliases into account) • use the structure of covered paths to search efficiently for the next test-case using constraint logic programming • Application : imperative languages, sequential software • prototype for C • status: imprecision current treatment floats • cast, union,… not treated yet

  5. PathCrawler : input domains D0 : program definition domain

  6. PathCrawler : input domains D0 : program definition domain case1

  7. test1 PathCrawler : input domains D0 : program definition domain case1 path1 D1

  8. test1 PathCrawler : input domains D0 : program definition domain case1 path1 case2 D1

  9. test1 test2 PathCrawler : input domains D0 : program definition domain D2 path2 case1 path1 case2 D1

  10. test1 test2 PathCrawler : input domains D0 : program definition domain D2 path2 case1 path1 case2 D1 case3

  11. PathCrawler: process

  12. Future directions • (PhD Patricia Mouy) making use of specifications to: • avoid combinatorial explosion due to function calls • automatically generate an oracle if user cannot supply it • structurally cover functional domains to detect missing paths • Combining path testing and static analysis to measure Worst Case Execution Time • Path testing of reactivesystems • Fault location from intersections of faulty paths • Partial proof

More Related