DIRECT AND INDIRECT EFFECTS OF SOFTWARE DEFECT PREDICTORS ON DEVELOPMENT LIFECYCLE: AN INDUSTRIAL CASE STUDY

Ayse Tosun,  Burak Turhan,  Ayse Bener

Bogazici University

ayse.tosun@boun.edu.tr


Abstract

In this paper, we share our experience for building defect predictors in a large telecommunication system and present our initial results. We have been working with the largest GSM operator (more than 70 % market share) in Turkey, Turkcell, to improve code quality and to predict defects before the testing phase. Turkcell is a global company whose stocks are traded in NYSE and operates in Turkey, Azerbaijan, Kazakhstan, Georgia, Northern Cyprus and Ukraine with a customer base of 53,4 million. The underlying system is standard 3-tier architecture, with presentation, application and data layers. Our analysis focuses on the presentation and application layers. However, the content in these layers cannot be separated as distinct projects. We were able to identify 25 critical components, which we will refer to as project throughout this paper. We used a defect prediction model that is based on static code attributes like lines of code, Halstead and McCabe attributes. The company has time and monetary constraints due to severe competition in the market and continuous launch of new campaigns in short periods of time. Hence they need to decrease their life cycle costs such as testing effort, to decrease the defect rate, to improve code quality and to measure/ control the time to repair defects. Our study consists of code measurement, bug trace and match, implementation of a tool to capture code complexity and building a defect predictor. Our model is a learning based model where we collect static code features together with the defect data that is matched at the module level o train the system from past projects in order to predict for the future ones.