Towards exhaustive branch coverage with PathCrawler

05/12/2021
by   Nicky Williams, et al.
0

Branch coverage of source code is a very widely used test criterion. Moreover, branch coverage is a similar problem to line coverage, MC/DC and the coverage of assertion violations, certain runtime errors and various other types of test objective. Indeed, establishing that a large number of test objectives are unreachable, or conversely, providing the test inputs which reach them, is at the heart of many verification tasks. However, automatic test generation for exhaustive branch coverage remains an elusive goal: many modern tools obtain high coverage scores without being able to provide an explanation for why some branches are not covered, such as a demonstration that they are unreachable. Concolic test generation offers the promise of exhaustive coverage but covers paths more efficiently than branches. In this paper, I explain why, and propose different strategies to improve its performance on exhaustive branch coverage. A comparison of these strategies on examples of real code shows promising results.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
03/04/2022

Basic Block Coverage for Search-based Unit Testing and Crash Reproduction

Search-based techniques have been widely used for white-box test generat...
research
12/30/2022

BlueCov: Integrating Test Coverage and Model Checking with JBMC

Automated test case generation tools help businesses to write tests and ...
research
05/20/2020

Coverage Analysis of Net Inscriptions in Coloured Petri Net Models

High-level Petri net such as Coloured Petri Nets (CPNs) are characterise...
research
02/26/2022

BeDivFuzz: Integrating Behavioral Diversity into Generator-based Fuzzing

A popular metric to evaluate the performance of fuzzers is branch covera...
research
05/04/2023

SlipCover: Near Zero-Overhead Code Coverage for Python

Coverage analysis is widely used but can suffer from high overhead. This...
research
02/04/2021

Refined Grey-Box Fuzzing with SIVO

We design and implement from scratch a new fuzzer called SIVO that refin...
research
02/23/2023

Sequence-Based Incremental Concolic Testing of RTL Models

Concolic testing is a scalable solution for automated generation of dire...

Please sign up or login with your details

Forgot password? Click here to reset