The Impact of Design and Code Reviews on Software Quality: an Empirical Study Based on PSP Data

The Impact of Design and Code Reviews on Software Quality: an Empirical Study Based on PSP Data

IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 35, NO. XX, XXXX 2009 1 The Impact of Design and Code Reviews on Software Quality: An Empirical Study Based on PSP Data Chris F. Kemerer, Member, IEEE Computer Society, and Mark C. Paulk, Senior Member, IEEE Abstract—This research investigates the effect of review rate on defect removal effectiveness and the quality of software products, while controlling for a number of potential confounding factors. Two data sets of 371 and 246 programs, respectively, from a Personal Software Process (PSP) approach were analyzed using both regression and mixed models. Review activities in the PSP process are those steps performed by the developer in a traditional inspection process. The results show that the PSP review rate is a significant factor affecting defect removal effectiveness, even after accounting for developer ability and other significant process variables. The recommended review rate of 200 LOC/hour or less was found to be an effective rate for individual reviews, identifying nearly two-thirds of the defects in design reviews and more than half of the defects in code reviews. Index Terms—Code reviews, design reviews, inspections, software process, software quality, defects, software measurement, mixed models, personal software process (PSP). Ç 1INTRODUCTION UALITY is well understood to be an important factor in An example of an important process where there is Qsoftware. Deming succinctly describes the business debate over the factors that materially affect performance chain reaction resulting from quality: improving quality is the inspection of work products to identify and remove leads to decreasing rework, costs, and schedules, which all defects [17], [18]. Although there is general agreement lead to improved capability, which leads to lower prices that inspections are a powerful software engineering and larger market share, which leads to increased profits technique for building high-quality software products and business continuity [14]. Software process improve- [1], Porter and Votta’s research concluded that “we have ment is inspired by this chain reaction and focuses on yet to identify the fundamental drivers of inspection costs implementing disciplined processes, i.e., performing work and benefits” [44]. In particular, the optimal rate at which consistently according to documented policies and proce- reviewers should perform inspections has been widely dures [37]. If these disciplined processes conform to discussed, but subject to only limited investigations [6], accepted best practice for doing the work, and if they are [21], [45], [47]. continually and measurably improving, they are character- The research reported in this paper investigates the ized as mature processes. impactofthereviewrateonsoftwarequality,while The empirical evidence for the effectiveness of process controlling for a comprehensive set of factors that may affect improvement is typically based on before-and-after analyses, the analysis. The data come from the Personal Software yet the quality of process outputs depends upon a variety of Process (PSP), which implements the developer subset of the factors, including the objectives and constraints for the activities performed in inspections. Specifically, the PSP process, the quality of incoming materials, the ability of the design and code review rates correspond to the preparation people doing the work, and the capability of the tools used, as rates in inspections. well as the process steps followed. Empirical analyses are The paper is organized as follows: Section 2 describes rarely able to control for differences in these factors in real- relevant previously published research. Section 3 describes world industrial projects. And, even within such a project, the methodology and data used in the empirical analyses. these factors may change over the project’s life. Section 4 summarizes the results of the various statistical models characterizing software quality. Section 5 describes the implications of these results and the conclusions that . C.F. Kemerer is with the Katz Graduate School of Business, University of may be drawn. Pittsburgh, 278A Mervis Hall, Pittsburgh, PA 15260. E-mail: [email protected]. M.C. Paulk is with the IT Services Qualification Center, Carnegie Mellon 2BACKGROUND University, 5000 Forbes Avenue, Pittsburgh, PA 15213. E-mail: [email protected]. Although a wide variety of detailed software process Manuscript received 12 Nov. 2007; revised 6 Jan. 2009; accepted 13 Jan. 2009; models exists, the software process can be seen at a high published online 1 Apr. 2009. level as consisting of activities for requirements analysis, Recommended for acceptance by A.A. Porter. design, coding, and testing. Reviews of documents and For information on obtaining reprints of this article, please send e-mail to: [email protected], and reference IEEECS Log Number TSE-2007-11-0322. artifacts, including design documents and code, are Digital Object Identifier no. 10.1109/TSE.2009.27. important quality control activities, and are techniques that 0098-5589/09/$25.00 ß 2009 IEEE Published by the IEEE Computer Society 2 IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 35, NO. XX, XXXX 2009 Fig. 1. A conceptual view of the software development process and its foundations. Fig. 2. Production and review steps. can be employed in a wide variety of software process life Typical reported defect density rates range from 52 to cycles [36]. Our analysis of the impact of review rate on 110 per thousand lines of code (KLOC) [5], [24].1 software quality is based on previous empirical research on Empirical research in software defect prediction models reviews and it considers variables found to be useful in a has produced a range of factors as drivers for software number of defect prediction models [5], [32]. quality. As different models have been found to be the best for different environments, it appears unlikely that a single 2.1 A Life Cycle Model for Software Quality superior model will be found [8], [53]. For example, Fenton A conceptual model for the software life cycle is illustrated and Neil point out that defect prediction models based on in Fig. 1. It shows four primary engineering processes for measures of size and complexity do not consider the developing software—requirements analysis of customer difficulty of the problem, the complexity of the proposed needs, designing the software system, writing code, and solution, the skill of the developer, or the software testing the software. A process can be defined as a set of engineering techniques used [19]. Therefore, the extent to activities that transforms inputs to outputs to achieve a which these factors (and potentially others) can affect given purpose [36]. As illustrated in Fig. 1, the engineering software quality remains an open empirical question. processes within the overall software life cycle transform However, based on the prior literature and starting from input work products, e.g., the design, into outputs, e.g., the the general model shown in Fig. 1, the relevant software code, which ultimately result in a software product engineering activity can be described in terms of a delivered to a customer. These general engineering production step and a review step, as shown in Fig. 2. processes may be delivered via a variety of life cycles, This figure can be read from left to right as follows. e.g., evolutionary or incremental. The quality of the outputs Production results in an initial work product whose quality of these engineering processes depends on the ability of the in terms of injected defects depends upon the quality of software professionals doing the work, the activities they predecessor work products, the technologies used in production, the ability of the developer, and the effort do, the technologies they use, and the quality of the input expended on production. The quality of production can be work products. measured by the number of defects in the resulting work Early empirical research on software quality identified product, which typically is normalized by the size of the size as a critical driver [2], and the size of work products work product to create a defect density ratio [5], [22], [24], remains a widely used variable in defect prediction [52]. The initial work product may be reviewed to capture models [32]. Customer requirements and the technologies and remove defects, and the quality of the resulting employed (such as the programming language) are corrected work product depends upon the size and quality primary drivers of size. Finally, since software develop- of the initial work product, the ability of the developer, and ment is a human-centric activity, developer ability is the effort expended in the review. Given a measure of the commonly accepted as a critical driver of quality [3], [12], number of defects in the work product at the time of the [13], [49], [55]. review, the quality of reviews can be seen as the effective- The cumulative impact of the input quality can be seen in ness of the review in removing defects. the defect prevention models that use data from the various phases in the software’s life cycle to estimate test defects. 2.3 Reviews For example, predicting the number of released defects has Reviews of work products are designed to identify defects been accomplished by multiplying the sizes of interim work and product improvement opportunities [36]. They may be products by the quality of the work products and the performed at multiple points during development, as percentage of defects escaping detection [11]. 1. It should be noted that a complete view of “quality” would include many attributes, such as availability, features, and cost. However, as an in- 2.2 Production of Engineering Work Products process measure, the number of defects in the software provides insight Although software quality can be characterized in a number into potential customer satisfaction, when the software will be ready to release, how effective and efficient the quality control processes are, how of ways, defects, as measured by defect density (defects/lines much rework needs to be done, and what processes need to be improved.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    17 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us