ConPredictor: Concurrency Defect Prediction in Real-World Applications

04/10/2018
by   Tingting Yu, et al.
0

Concurrent programs are difficult to test due to their inherent non-determinism. To address this problem, testing often requires the exploration of thread schedules of a program; this can be time-consuming when applied to real-world programs. Software defect prediction has been used to help developers find faults and prioritize their testing efforts. Prior studies have used machine learning to build such predicting models based on designed features that encode the characteristics of programs. However, research has focused on sequential programs; to date, no work has considered defect prediction for concurrent programs, with program characteristics distinguished from sequential programs. In this paper, we present ConPredictor, an approach to predict defects specific to concurrent programs by combining both static and dynamic program metrics. Specifically, we propose a set of novel static code metrics based on the unique properties of concurrent programs. We also leverage additional guidance from dynamic metrics constructed based on mutation analysis. Our evaluation on four large open source projects shows that ConPredictor improved both within-project defect prediction and cross-project defect prediction compared to traditional features.

READ FULL TEXT
research
08/24/2017

From Concurrent Programs to Simulating Sequential Programs: Correctness of a Transformation

Frama-C is a software analysis framework that provides a common infrastr...
research
01/12/2023

Naturalistic Static Program Analysis

Static program analysis development is a non-trivial and time-consuming ...
research
06/01/2021

Modular Verification of Concurrent Programs via Sequential Model Checking

This work utilizes the plethora of work on verification of sequential pr...
research
09/05/2020

Computer Program Decomposition and Dynamic/Behavioral Modeling

Decomposition, statically dividing a program into multiple units, is a c...
research
07/27/2018

A Validation and Quality Assessment Method with Metamorphic Relations for Unsupervised Machine Learning Software

Unsupervised machine learning is a task of modeling the underlying struc...
research
09/04/2023

Productive Development of Scalable Network Functions with NFork

Despite decades of research, developing correct and scalable concurrent ...
research
11/07/2022

SLOPT: Bandit Optimization Framework for Mutation-Based Fuzzing

Mutation-based fuzzing has become one of the most common vulnerability d...

Please sign up or login with your details

Forgot password? Click here to reset