Automatic Test-Case Reduction in Proof Assistants: A Case Study in Coq

02/28/2022
by   Jason Gross, et al.
0

As the adoption of proof assistants increases, there is a need for efficiency in identifying, documenting, and fixing compatibility issues that arise from proof assistant evolution. We present the Coq Bug Minimizer, a tool for reproducing buggy behavior with minimal and standalone files, integrated with coqbot to trigger automatically on Coq reverse CI failures. Our tool eliminates the overhead of having to download, set up, compile, and then explore and understand large developments: enabling Coq developers to easily obtain modular test-case files for fast experimentation. In this paper, we describe insights about how test-case reduction is different in Coq than in traditional compilers. We expect that our insights will generalize to other proof assistants. We evaluate the Coq Bug Minimizer on over 150 CI failures. Our tool succeeds in reducing failures to smaller test cases in roughly 75 The minimizer produces a fully standalone test case 89 on average about one-third the size of the original test. The average reduced test case compiles in 1.25 seconds, with 75

READ FULL TEXT

page 5

page 7

page 9

page 11

page 13

page 14

page 15

page 17

research
03/22/2021

Leveraging Models to Reduce Test Cases in Software Repositories

Given a failing test case, test case reduction yields a smaller test cas...
research
03/17/2021

On the Distribution of "Simple Stupid Bugs" in Unit Test Files: An Exploratory Study

A key aspect of ensuring the quality of a software system is the practic...
research
04/08/2021

Extending Hierarchical Delta Debugging with Hoisting

Minimizing failing test cases is an important pre-processing step on the...
research
06/03/2019

Empirical Analysis of Factors and their Effect on Test Flakiness - Practitioners' Perceptions

Developers always wish to ensure that their latest changes to the code b...
research
05/31/2022

K-Detector: Identifying Duplicate Crash Failures in Large-Scale Software Delivery

After a developer submits code, corresponding test cases arise to ensure...
research
06/11/2018

Greybox fuzzing as a contextual bandits problem

Greybox fuzzing is one of the most useful and effective techniques for t...
research
05/27/2023

Synthesizing Speech Test Cases with Text-to-Speech? An Empirical Study on the False Alarms in Automated Speech Recognition Testing

Recent studies have proposed the use of Text-To-Speech (TTS) systems to ...

Please sign up or login with your details

Forgot password? Click here to reset