Litcius/Paper detail

Towards Reliable Online Just-in-Time Software Defect Prediction

George G. Cabral, Leandro L. Minku

2022IEEE Transactions on Software Engineering42 citationsDOIOpen Access PDF

Abstract

Throughout its development period, a software project experiences different phases, comprises modules with different complexities and is touched by many different developers. Hence, it is natural that problems such as Just-in-Time Software Defect Prediction (JIT-SDP) are affected by changes in the defect generating process (concept drifts), potentially hindering predictive performance. JIT-SDP also suffers from delays in receiving the labels of training examples (verification latency), potentially exacerbating the challenges posed by concept drift and further hindering predictive performance. However, little is known about what types of concept drift affect JIT-SDP and how they affect JIT-SDP classifiers in view of verification latency. This work performs the first detailed analysis of that. Among others, it reveals that different types of concept drift together with verification latency significantly impair the stability of the predictive performance of existing JIT-SDP approaches, drastically affecting their reliability over time. Based on the findings, a new JIT-SDP approach is proposed, aimed at providing higher and more stable predictive performance (i.e., reliable) over time. Experiments based on ten GitHub open source projects show that our approach was capable of produce significantly more stable predictive performances in all investigated datasets while maintaining or improving the predictive performance obtained by state-of-art methods.

Topics & Concepts

Computer scienceLatency (audio)SoftwareConcept driftReliability (semiconductor)Execution timePredictive modellingProcess (computing)Software bugMachine learningReliability engineeringArtificial intelligenceDistributed computingOperating systemEngineeringQuantum mechanicsPhysicsData stream miningPower (physics)TelecommunicationsData Stream Mining TechniquesSoftware Engineering ResearchSoftware System Performance and Reliability