1 This chapter describes the introduction of the research effort presented... this project. It illustrates the overview of the research that...

advertisement
1
CHAPTER 1
INTRODUCTION
1.1
Introduction
This chapter describes the introduction of the research effort presented throughout
this project. It illustrates the overview of the research that encourages the establishment
of defect prediction model for software testing phase. The discussion continues with
background of the research, problem statements, research objectives and the importance
of the research. The scope of work and project outline is then explained in the last
sections of this chapter.
1.2
Introduction to Defect Prediction Model for Software Testing
As an organization that aims to become a premier applied research centre in
frontier technologies, MIMOS has always committed to develop, produce and release
high quality software to the market. One of the key aspects to ensure it can be achieved is
by having effective and efficient software development process throughout entire SDLC.
Thus, prediction or estimation of defects for particular software during testing phase is
very crucial to enhance the testing process as part of process improvement in SDLC.
2
Being the last gate before acknowledging that the particular software is ready to
go to the market requires strong and accurate data and metrics. The initiative on having
defect prediction model for testing phase helps in determining defects that are likely to
occur during test execution and contributes in providing relevant software quality
metrics. Defect prediction model for testing contributes to zero-known post release
defects of a software product. This is determined by defect containment in testing phase.
Predicting total number of defects at the start of testing allows for wider test coverage to
be put in place. As more defects contained within testing phase, it helps in improving
quality of software product being delivered to end user. By using testing metrics for
predicting total defects, it demonstrates the stability of development effort of releasing a
software product.
1.3
Background of Company
MIMOS or Malaysian Institute for Microelectronics System was established on 1st
January 1985 as a unit of Prime Minister’s department following the initiative by group
of academicians led by Tengku Dr. Mohd Azzman Shariffadeen. The initial objective is
to conduct microelectronics research to support the industries as well as to develop
indigenous products. After going through corporatization exercise as a company under
Ministry of Finance (MOF), MIMOS has been focusing on three (3) core functions:
Research and Development (R&D), National IT Policy Development and Business
Development. Since then, MIMOS has embarking on various initiatives and projects
including manufacture affordable personal computer (PC), commission industrial-class
water fabrications plant, launch first Malaysia’s first Internet Service Provider (ISP)
called JARING, initiate Computer Forensic Services and also launch AgriBazaar. On 1
July 2006, Dato’ AbdulWahab Abdullah was appointed as new President and Chief
Executive Officer of MIMOS replacing Tengku Dr. Mohd Azzman Sharifadden. The
appointment of Dato’ Abdul Wahab has turned MIMOS from the R&D organization in
ICT and microelectronics to world class R&D Centre of Excellence.
3
With the tagline “Innovation for Life”, MIMOS is now the premier applied
research centre in frontier technologies aimed at growing globally competitive indigenous
industries. Through smart partnerships with local and international universities, research
institutes, industries and Malaysia Government, MIMOS focuses on frontier technologies
by pursuing exploratory and industry-driven applied research. To date, research and
technology areas in MIMOS are refined into eight (8) technology clusters: Advanced
Informatics, Communication Technology, Cyberspace Security, Encryption Systems,
Grid Computing, Knowledge Technology, Micro Energy, and Micro Systems
(MEMS/NEMS) cluster.
1.4
Background of the Problem
As defect becomes the main intention of software testing, test engineers of Test
Centre of Excellence (Test COE) are expected to find and discover any errors, bugs and
faults in the software through various kinds of testing techniques or strategies. Estimation
of defects to be found upfront at the start of testing phase is very important to strategize
on executing the test for the software. As this research problem concentrates on
formulating a defect prediction model for testing, several issues contribute to this
research problem.
1.4.1
Issue on Better Resource Planning for Test Execution Across Projects
Currently, number of test engineers allocated to a particular testing project is
based on the size of the project including how detail the requirements are and complexity
of the software being developed. At the same time, one test engineer can work in more
than one testing project. Thus, there is a need to estimate the number of defect to be
found in testing phase. Appropriate number of test engineers can be planned and
4
allocated across multiple projects. Estimated number of defects is required to support the
resource planning activities within the testing department to ensure the resources are
optimized and productivity of every test engineer is high.
1.4.2
Issue on Wider Test Coverage to Find Defect
Defects are found while test execution is still in progress. Test engineer applies
various testing techniques to find and discover as many defects as possible based on the
baseline requirements. There is no specific pre-determined factor that a test engineer can
use as a basis to find defects. As a result, test engineer will continue to find defects until
end of the execution schedule. To ensure wider and better test coverage, prediction of
defects could improve the way test engineers find defects as they are now having a target
of defects to be found. This can be in a form of adding more type of testing to use or
adding more and relevant scenarios on how users will utilize the software which results in
better root cause analysis of defects found and improve engineer’s understanding of the
software under test.
1.4.3
Issue on Improving Test Execution Time to Meet Project Deadline
As test engineer need to discover as many defect as possible during text
execution, there might be slip in schedule and cause the delay in the deliverables of the
software work product from the actual planned release date. This due to necessity of
ensuring all testing requirements for the software are fulfilled and covered. Putting defect
prediction in place will reduce and overcome the schedule slippage problem contributed
by testing activities. By having a target on estimated number of defects to be discovered,
every test engineer would be able to plan test execution accordingly to ensure project
deadline is achieved.
5
1.4.4
Issue on Reliability of Software to be Delivered
Defects found during testing phase are given back to development team for bugs
fixing. The fixed software is then retested in several iterations to validate the defects have
been resolved. More defects found within testing phase means more defects are contained
from escaping to field or market that will be using the software. However, test engineers
cannot give the exact figure of defect that be contained within testing phase. This is
where the existence of defect prediction is really needed to provide a direction on how
many defects engineers should discover and contain within the phase. Having this
estimated figure contributes to the zero-known post release defects of the software. In the
long run, the metrics associated with the defect prediction will portray the stability of the
development effort in completing and releasing software product.
1.5
Statement of the Problem
This research is intended to tackle the issues with regard to system testing process
as explained in Section 1.4. The main question to address that is “How to predict the total
number of defects to be found at the start of system testing phase using a model?”.
Followings are the list of sub-questions to support main research questions:
i.
What are the key contributors to test defect prediction model?
ii.
What are the factors that contribute to defect found in system testing
phase?
iii.
How to measure the relationship between the factors of defect with the
total number of defects in system testing phase?
iv.
What is the type of defect category that needs to be considered to calculate
the total defects of the software?
v.
How can the prediction model helps in improving the testing process and
improve the software quality?
vi.
What type of data should be gathered and how to get them?
6
1.6
Objectives of the Study
The research is aimed to achieve following set of objectives to address the issues
and problems mentioned before. The objectives are:
1) To establish a defect prediction model for software testing phase
2) To demonstrate the approach in building a defect prediction model using
Design for Six Sigma (DfSS) Methodology
3) To identify the significant factors that contribute to a reliable defect prediction
model
4) To determine the importance of defect prediction model for improving testing
process
1.7
Importance of Study
As the organization is moving towards achieving CMMI Level 5 status company,
it needs to improve and refine the Verification and Validation (V&V) Process Area. For
this reason, Test Centre of Excellence (Test COE) plays the important role to ensure the
goal is achieved by improving the internal testing process. As the testing approach being
applied is based on V-Model, it is essential to refine all processes with regard to V&V
across all phases in the life cycle, starting from requirement until actual system testing
phase. By having a model to estimate and predict total number of defects in the system
testing phase, it does help the testing team to contribute in achieving the said target.
Putting the defect prediction in the process serves as the preventive mechanism in
reducing the occurrence of defects (Mohapatra and Mohanty, 2001). Furthermore, it
could be beneficial tool to reduce testing time. Reduction in testing time is accomplished
by implementing effective test strategy in minimizing escaped defects while utilizing
resources efficiently. At the same time, the development team can use the model to guide
them in implementing higher quality codes. Obviously by looking from the overall
perspective of software development life cycle, defect prediction model for test does
7
improve the verification and validation process, specifically in ensuring zero-known post
release defects of a software product.
1.8
Scope of Work
In this research, the scope is focused on exploring and establishing a model of
defect prediction specifically for system testing phase. Study on the defects means the
identification of faults, errors and bugs in the software during system testing phase of
software development life cycle. It can be from functional defects, security defects,
usability defects to performance defects. In order to do the prediction for these defects,
analysis is done to determine the factors or contributors to the introduction of defects in
the testing phase. This involves identifying all possible significant factors such as faults
in requirement phase, design phase, code and unit test phase, size of the software, fault
density and historical defects. Moreover, the scope of work also emphasizes on
measuring the capability of test engineers in discovering defects.
The work on modeling is done to establish the relationship between the identified
predictors against the defects found in testing phase. Individual analysis of each possible
predictor need to be performed to determine which factors that has strong connection
with defects. The output is going to be the proposed model that will be normalized to suit
all kind of projects.
1.9
Project Schedule
The research which is also serves as the professional training started from 20
October 2008 until 17 April 2009. However, the actual end date for this project is on 30
May 2009 since it needs to follow the agreed schedule as per Six Sigma Green Belt
project methodology, in which it starts with Define phase, Measure phase, Analyze
8
phase, Design phase and Verify phase. For the purpose of this project, the results and
discussion will be presented up until end of Verify phase schedule. The schedule is
presented as below:
Table 1.1: Project schedule
1.10
Phase
Start Date
End Date
Define
Measure
Analyze
Design
Verify
20/10/2008
01/12/2008
01/02/2009
01/04/2009
01/05/2009
30/11/2008
31/01/2009
31/03/2009
30/04/2009
30/05/2009
Project Outline
This research encompasses the discussion on the several topics and subjects
related to establishing a defect prediction model for testing phase. Thus, the research is
organized into the followings for further understanding of the subject matter.
Chapter 2:
This chapter discusses on the literature review of the defect
prediction model. Discussion involves overview of the several techniques in
predicting software defects across Software Development Life Cycle, some issues
with regard to defect prediction, strategies in predicting defects for software
testing phase as well as application of the defect prediction model in improving
software process.
Chapter 3:
It discusses the research methodology applied in analyzing the
research problem and formulating the proposed solution with regard to Six Sigma
Green Belt DMADV track.
9
Chapter 4:
This chapter outlines the discussion on the outcome of the research
activities that covers the characteristics of data being gathered, analysis of
relationship on possible factors that contributes to the prediction defect as well as
establishing the proposed model that be verified and validated to ensure it is fit to
be incorporated into the software process.
Chapter 5:
This chapter summarizes the research studies that include the
achievement that have been obtained and how the proposed outcome of defect
prediction model for test could contribute to the user. Then, it concludes with the
limitation of the proposed solution together with recommendations for the future
research work.
Download