19-10-2012, 11:09 AM
Defect Analysis and Prevention for Software Process Quality Improvement
Defect Analysis & Prevention.pdf (Size: 180.55 KB / Downloads: 63)
ABSTRACT
"An ounce of prevention is worth a pound of cure." In software,
these expressions translate into the common observation that the
longer a defect stays in process, the more expensive it is to fix
[10]. Moreover software defects are expensive and time
consuming. The cost of finding and correcting defects represents
one of the most expensive software development activities. And
that too, if the errors get carried away till the final acceptance
testing stage of the project life cycle, then the project is at a greater
risk in terms of its Time and Cost factors. A small amount of effort
spent on quality assurance will see good amount of cost savings in
terms of detecting and eliminating the defects.
To gain a deeper understanding of the effectiveness of the software
process, it is essential to examine the details of defects detected in
the past projects and to study how the same can be eliminated due
to process improvements and newer methodologies. This paper
will focus on finding the total number of defects that has occurred
in the software development process for five similar projects and
aims at classifying various defects using first level of Orthogonal
Defect Classification (ODC), finding root causes of the defects and
use the learning of the projects as preventive ideas. The paper also
showcases on how the preventive ideas are implemented in a new
set of projects resulting in the reduction of the number of similar
defects.
INTRODUCTION
Software Defect can be defined as “Imperfections in software
development process that would cause software to fail to meet the
desired expectations”.
In software development, lot of defects would emerge during the
development process. It is a fallacy to believe that defects get
injected in the beginning of the cycle and are removed through the
rest of the development process [8]. Defects occur all the way
through the development process. Hence, defect prevention
becomes an essential part of software process quality
improvement.
Defect prevention (DP) is a process of improving quality whose
purpose is to identify the common causes of defects, and change
the relevant process(es) to prevent that type of defect from
recurring[2]. DP also increases the quality of a software product
while reducing overall costs, schedule and resources. This ensures
a project can maintain cost – schedule – quality equilibrium.
The purpose of defect prevention is to identify those defects in the
beginning of the life cycle and prevent them from recurring so that
the defect may not surface again. In this study, in order to improve
software process quality, defects are first identified from a given
set of projects, classified and analyzed for patterns. These patterns
are then eliminated by finding the root causes, for which
preventive mechanisms are established for reducing re-occurrences
of similar defects in the subsequent projects, thus improving
Quality. This Cycle will be continuous to improve Quality of the
SDLC. The scope of this paper is to provide a comprehensive view
on the defect prevention techniques and practices that can be
followed in software development.
RELATED WORK
The earlier studies in defect prevention were focused on defect
prediction and decide upon the team size of the testing resources
required in order to complete the project on time and lot of effort
were utilized in the debugging and get the defects eliminated.
With the advent of SDLC processes many companies formulated
their own defect prevention mechanisms and many studies were
conducted towards defect prediction and prevention.
One study by Fang Chenbin [6] was introduction of a tool called
Bug Tracing System (BTS) for defect tracing, has the advantage of
popularity and low cost, and also improves the accuracy of tracking
the identified defects. Work done by Stefan Wagner [9]
summarizes the work on defect classification approaches that have
been proposed by two companies IBM and HP. The IBM approach
is called Orthogonal Defect Classification (ODC) and the HP
approach is based on three dimensions -Defect Origin, Types and
Modes. Pankaj Jalote and Naresh Agarwal [7] stressed on how
analysis of defects found in first iteration can provide feedback for
defect prevention in later iterations, leading to quality and
productivity improvement. Ajit Ashok Shenvi [1] worked under
the philosophy that “capturing defects in the earlier stage of the
life cycle” is a means of preventing defects in the later stages of
the product life cycle and concentrated on finding out preventive
action for functional defect types only. Suma V [11] aimed to
provide information on various methods and practices supporting
defect detection and prevention based on three case studies and
studied about the defect detection and defect prevention strategies
adopted in these three projects only. All the above methodologies
lacked some dimension in the defect prevention process and
needed more attention.
CONCLUSION
Implementation of defect preventive action not only helps to give a
quality project, but it is also a valuable investment. Defect
prevention practices enhance the ability of software developers to
learn from those errors and, more importantly, learn from the
mistakes of others. The benefits of adopting defect prevention
strategy would be enormous and to list a few, Defect prevention
reduces development time and cost, increases customer
satisfaction, reduces rework effort, thereby decreases cost and
improves product quality.
This study confirms to implementation of first level of Orthogonal
Defect Classification (ODC) for defect classification. To gain a
deeper understanding about the defect, the defects are to be
classified by implementing ODC to next level. Analysis of ODC
classified data helps in getting better defect preventive ideas that
would further improve the software quality process.