BlueCov: Integrating Test Coverage and Model Checking with JBMC

12/30/2022
by   Matthias Gudemann, et al.
0

Automated test case generation tools help businesses to write tests and increase the safety net provided by high regression test coverage when making code changes. Test generation needs to cover as much as possible of the uncovered code while avoiding generating redundant tests for code that is already covered by an existing test-suite. In this paper we present our work on a tool for the real world application of integrating formal analysis with automatic test case generation. The test case generation is based on coverage analysis using the Java bounded model checker (JBMC). Counterexamples of the model checker can be translated into Java method calls with specific parameters. In order to avoid the generation of redundant tests, it is necessary to measure the coverage in the exact same way as JBMC generates its coverage goals. Each existing coverage measurement tool uses a slightly different instrumentation and thus a different coverage criterion. This makes integration with a test case generator based on formal analysis difficult. Therefore, we developed BlueCov as a specific runtime coverage measurement tool which uses the exact same coverage criteria as JBMC does. This approach also allows for incremental test-case generation, only generating test coverage for previously untested code, e.g., to complete existing test suites.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
09/07/2020

Code Coverage Aware Test Generation Using Constraint Solver

Code coverage has been used in the software testing context mostly as a ...
research
09/16/2016

Model-based Test Generation for Robotic Software: Automata versus Belief-Desire-Intention Agents

Robotic code needs to be verified to ensure its safety and functional co...
research
11/28/2022

P4Testgen: An Extensible Test Oracle For P4

We present P4Testgen, a test oracle for the P4_16 language. P4Testgen su...
research
04/20/2018

Ticket Coverage: Putting Test Coverage into Context

There is no metric that determines how well the implementation of a tick...
research
05/12/2021

Towards exhaustive branch coverage with PathCrawler

Branch coverage of source code is a very widely used test criterion. Mor...
research
08/29/2017

Freeing Testers from Polluting Test Objectives

Testing is the primary approach for detecting software defects. A major ...
research
07/19/2019

Testing with Fewer Resources: An Adaptive Approach to Performance-Aware Test Case Generation

Automated test case generation is an effective technique to yield high-c...

Please sign up or login with your details

Forgot password? Click here to reset