Interactive Semi-automated Specification Mining for Debugging: An Experience Report

05/06/2019
by   Mohammad Jafar Mashhadi, et al.
0

Context: Specification mining techniques are typically used to extract the specification of a software in the absence of (up-to-date) specification documents. This is useful for program comprehension, testing, and anomaly detection. However, specification mining can also potentially be used for debugging, where a faulty behavior is abstracted to give developers a context about the bug and help them locating it. Objective: In this project, we investigate this idea in an industrial setting. We propose a very basic semi-automated specification mining approach for debugging and apply that on real reported issues from an AutoPilot software system from our industry partner, MicroPilot Inc. The objective is to assess the feasibility and usefulness of the approach in a real-world setting. Method: The approach is developed as a prototype tool, working on C code, which accept a set of relevant state fields and functions, per issue, and generates an extended finite state machine that represents the faulty behavior, abstracted with respect to the relevant context (the selected fields and functions). Results: We qualitatively evaluate the approach by a set of interviews (including observational studies) with the company's developers on their real-world reported bugs. The results show that a) our approach is feasible, b) it can be automated to some extent, and c) brings advantages over only using their code-level debugging tools. We also compared this approach with traditional fully automated state-merging algorithms and reported several issues when applying those techniques on a real-world debugging context. Conclusion: The main conclusion of this study is that the idea of an "interactive" specification mining rather than a fully automated mining tool is NOT impractical and indeed is useful for the debugging use case.

READ FULL TEXT
research
03/27/2019

An Empirical Study on Practicality of Specification Mining Algorithms on a Real-world Application

Dynamic model inference techniques have been the center of many research...
research
03/11/2020

On the Feasibility of Automated Issue Type Prediction

Context: Issue tracking systems are used to track and describe tasks in ...
research
03/19/2022

An Exploratory Study on Refactoring Documentation in Issues Handling

Understanding the practice of refactoring documentation is of paramount ...
research
11/27/2018

Experience Report on Formally Verifying Parts of OpenJDK's API with KeY

Deductive verification of software has not yet found its way into indust...
research
02/26/2021

Finding Bugs with Specification-Based Testing is Easy!

Automated specification-based testing has a long history with several no...
research
09/28/2021

Adopting Automated Bug Assignment in Practice – A Registered Report of an Industrial Case Study

[Background/Context] The continuous inflow of bug reports is a considera...
research
10/18/2018

Unsupervised Anomalous Data Space Specification

Computer algorithms are written with the intent that when run they perfo...

Please sign up or login with your details

Forgot password? Click here to reset