ConPredictor: Concurrency Defect Prediction in Real-World Applications

Tingting Yu, Wei Wen, Xue Han, Jane Huffman Hayes

Research output: Contribution to journalArticlepeer-review

36 Scopus citations

Abstract

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.

Original languageEnglish
Article number8252721
Pages (from-to)558-575
Number of pages18
JournalIEEE Transactions on Software Engineering
Volume45
Issue number6
DOIs
StatePublished - Jun 1 2019

Bibliographical note

Publisher Copyright:
© 1976-2012 IEEE.

Keywords

  • Concurrency
  • defect prediction
  • software metrics
  • software quality

ASJC Scopus subject areas

  • Software

Fingerprint

Dive into the research topics of 'ConPredictor: Concurrency Defect Prediction in Real-World Applications'. Together they form a unique fingerprint.

Cite this