software methadology
International Journal of Soft Computing and Engineering (IJSCE)
ISSN: 2231-2307, Volume-2, Issue-3, July 2012
251
Abstract— In recent years, software testing is becoming more popular and important in the software development industry.
Indeed, software testing is a broad term encircling a variety of
activities along the development cycle and beyond, aimed at
different goals. Hence, software testing research faces a collection
of challenges. A consistent roadmap of most relevant challenges is
proposed here. In it, the starting point is constituted by some
important past achievements, while the destination consists of two
major identified goals to which research ultimately leads, but
which remains as reachable as goals. The routes from the
achievements to the goals are paved by outstanding research
challenges, which are discussed in the paper along with the
ongoing work.
Software testing is as old as the hills in the history of digital
computers. The testing of software is an important means of
assessing the software to determine its quality. Since testing
typically consumes 40~50% of development efforts, and consumes
more effort for systems that require higher levels of reliability, it is
a significant part of the software engineering
Software testing is a very broad area, which involves many
other technical and non-technical areas, such as specification,
design and implementation, maintenance, process and
management issues in software engineering. Our study focuses on
the state of the art in testing techniques, as well as the latest
techniques which representing the future direction of this area.
Today, testing is the most challenging and dominating activity
used by industry, therefore, improvement in its effectiveness, both
with respect to the time and resources, is taken as a major factor
by many researchers
The purpose of testing can be quality assurance, verification,
and validation or reliability estimation. It is a tradeoff between
budget, time and quality. Software Quality is the central concern
of software engineering. Testing is the single most widely used
approach to ensuring software quality.
(Keywords: SDLC, Software quality, Testing techniq
Technique .)
I. INTRODUCTION
I. Introduction: Software Testing
Software testing is the process of executing a program or
system with the intent of finding errors. Software is not unlike
other physical processes where inputs are received and
outputs are produced. Where software differs is in the manner
in which it fails. Most physical systems fail in a fixed (and
reasonably small) set of ways. By contrast, software can fail in
Manuscript received: on July, 2012
Maneela Tuteja, Department of Information TechnologyDronacharya
College of Engineering, Gurgaon, Haryana,.
Gaurav Dubey, Amity School of Computer Sciences, Amity University,
Uttar Pradesh,India.,
.
many bizarre ways. Detecting all of the different failure
modes for software is generally infeasible.
Discovering the design defects in software, is equally
difficult, for the same reason of complexity. Because software
and any digital systems are not continuous, testing boundary
values are not sufficient to guarantee correctness. All the
possible values need to be tested and verified, but complete
testing is infeasible. Exhaustively testing a simple program to
add only two integer inputs of 32-bits (yielding 2^64 distinct
test cases) would take hundreds of years, even if tests were
performed at a rate of thousands per second.
The iterative process of software testing consists of
1. Designing tests
2. Executing tests
3. Identifying problems.
4. Getting problems fixed.
A. Objective of Testing
The objective of testing is to find problems and fix them to
improve quality. Software testing typically represents 40% of
a software development budget. There are four main
objectives of testing:
(a) Demonstration: It shows that, system can be used for
integration with acceptable risk. It demonstrates
functions under special conditions and shows that
products are ready for integration or use.
(b) Detection: It discovers defects, errors and deficiencies.
Determines system capabilities and limitations quality
of components, work products and the system.
(c) Prevention: It provides information to prevent or reduce
the number of errors clarify system specifications and
performance. Identify ways to avoid risk and problems
in the future.
(d) Improving Quality: By doing effective testing, we can
minimize errors and hence improve the quality of
software.
II. TYPES OF SOFTWARE TESTING
There are various types of testing techniques that have been
invented. Each testing technique serves a different purpose for
testing different artifacts like designing, coding and planning
software requirement specification.
All the testing techniques are divided into mainly three
categories, black box, white box or grey box testing.
Techniques which tests external behavior of the system are
categorized in Black box testing and which tests internal
behavior of the system are termed as white box testing and
A Research Study on importance of Testing and
Quality Assurance in Software Development
Life Cycle (SDLC) Models
Maneela Tuteja, Gaurav Dubey
A Research study on Importance of Testing and Quality Assurance in Software Development Life Cycle (SDLC)
Models
252
which tests both internal and external behavior are called grey
box testing.
Software Testing Techniques
Black
box
Testing
White box
Testing
Grey
box
Testing
Function
al and
system
testing,
Stress
testing,
Performa
nce
testing,
Usability
testing,
Acceptan
ce
Testing,
Beta
testing,
Ad hoc
Testing,
Regressi
on
testing,
Intersyst
em
testing,
Volume
testing,
Parallal
testing,
Boundar
y value
Unit testing,
Error
handling
testing, Desk
checking,
Code walk
through,
Code
reviews and
inspection,
Code
coverage
testing,
Statement/
Path/
Function/
Condition
testing,
complexity
testing/
Cyclomatic
complexity,
Mutation
testing
Integrati
on
Testing,
Regressi
on
Testing.
III. SDLC AND QUALITY ASSURANCE
SDLC refers to software development life cycle, i.e. the
various stages used in the life cycle of software development.
There are various software development approaches defined
and designed which are used during development process of
software, these approaches are also referred as “Software
Development Process Models”.
A. SDLC Models
Software development life cycle is basically a systematic way
of developing software. It includes various phases starting
from the functional requirement of software (means what
software is supposed to do). After that designing takes place
then development and then testing. After testing is finished,
the source code is generally released for Unit Acceptance
Testing (UAT) in client testing environment. After approval
from client, the source code is released into production
environment [1]. There is various software development
approaches defined and designed which are used during
development process of software, these approaches are also
referred as "Software Development Process Models". Each
process model follows a particular life cycle in order to
ensure success in process of software development.
Various types of SDLC Models are :
Water-fall Model
Prototype Model
RAD Model
V Model
The waterfall Model
Waterfall approach was first process model to be introduced
and followed widely in software engineering to ensure
success of the project. In "The Waterfall" approach, the
whole process of software development is divided into
separate process phases. The phases in Waterfall model
are: Requirement Specifications phase, Software Design,
Implementation, Testing, Deployment of system &
Maintenance [1]. All these phases are cascaded to each
other so that second phase is started as and when defined set
of goals are achieved for first phase and it is signed off, so
the name “Waterfall Model”. Fig 3.1 shows all the phases in
water fall model.
Com m unic a t ion
Planning
Mode ling
Const r uc t ion De ploy m e nt
analysis
design code
t est
proje c t init ia t ion
re quire m e nt ga t he ring estimating
scheduling
tracking
de liv e ry
s upport
f e e dba c k
Fig (a) : The phases of Waterfall Model
Advantages
In W ater fall model, every phase is implemented in a
sequential order. Waterfall model is used where the duration
of project is very less, and it is best suited for small projects.
Also, Waterfall model is suitable when the specification and
requirements are clearly stated for the software project.
Disadvantages
In Waterfall model, the output of one phase forms the
input of the next phase. This concept actually turns a s i t s
d i s a d v a n t a g e i . e . When a mi s t a k e o c c u r s i n a
particular phase, the same mistakes gets carried over to the
last phase. Waterfall model is time intensive process and
almost provides little or no option to change user
requirements. This model is useful only when the
requirements are free zed.
The Prototyping Model
A prototype is a working model that is functionally
equivalent to a component of the product. In many instances
the client only has a general view of what is expected from
the software product [27]. In such a scenario where there is
an absence of detailed information regarding the input to the
system, the processing needs and the output requirements,
International Journal of Soft Computing and Engineering (IJSCE)
ISSN: 2231-2307, Volume-2, Issue-3, July 2012
253
the prototyping model may be employed.
Co m m u n icat io n
Q u i ck p l an
Co n st r u ct io n
o f
p r o t o t yp e
Mo d e l i n g
Q u i ck d e si g n
De live r y
& Fe e d b ack
Deployment
Fig. (b) The Prototyping Model
Advantages
With reduced time and costs, Prototyping can improve the
quality of requirements and specifications provided to
developers. Prototyping requires user involvement and
allows them to see and interact with a prototype allowing
them to provide better and more complete feedback and
specifications.
Disadvantages
Insufficient analysis: The focus on a limited prototype can
distract developers from properly analyzing the complete
project. User can begin to think that a prototype, intended
to be thrown away, it is actually a final system that merely
needs to be finished or polished developer attachment to
prototype.
The Spiral Model The spiral model, also known as the spiral lifecycle model,
is a systems development method (SDM) used in
information technology (IT) [1]. This model of
development combines the features of the prototyping
model and the waterfall model. The spiral model is
intended for large, expensive, and complicated projects.
Fig (c) The Spiral Model
Advantages
Estimates (i.e. budget, schedule, etc.) Become more
realistic as work progresses, because important issues are
discovered earlier. It is more able to cope with the (nearly
inevitab le ) c h a n g e s t h a t software d e v e l o p me n t
generally entails. Software engineers (who can get restless
with protracted design processes) can get their hands in and
start working on a project earlier.
Disadvantages
As it is highly customized so there is limiting re-usability. It
is applied differently for each application. There is a risk of
not meeting budget or schedule.
B. Quality Assurance
Everyone is committed to quality; however, the following
statement shows some of the confusing ideas shared by
many individuals that inhibit achieving a quality
commitment: Quality requires a commitment, particularly
from top management. Close cooperation of management
and staff is required in order to make it happen.
• Many individuals believe that defect-free products and
services are impossible, and accept certain levels of defects
as normal and acceptable [1].
• Quality is frequently associated with cost, meaning that
high quality equals high cost. This is confusion between
quality of design and quality of conformance [2].
• Quality demands requirement specifications in enough
detail that the products produced can be quantitatively
measured against those specifications. Many organizations
a r e n o t capable or willing to expend the effort to
produce specifications at the level of detail required [3].
Technical personnel often believe that standards stifle their
creativity, and thus do not abide by standards compliance.
However, for quality to happen, well-defined standards and
procedures must be followed [1].
Quality cannot be achieved by assessing an already
completed product. The aim therefore, is to prevent quality
defects or deficiencies in the first place, and to make the
products assessable by quality assurance measures. Some
quality assurance measures include: structuring the
development process with a software development standard
and supporting the development process with methods,
techniques, and tools. The undetected bugs in the software
that caused millions of losses to business have necessitated
the growth of independent testing, which is performed by
a company other than the developers of the system [8].
In addition to product assessments, process assessments are
essential to a quality management program. Examples
include documentation of coding standards, prescription
and use of standards, methods, and tools, procedures for data
backup, test methodology, change management, defect
documentation, and reconciliation. Quality management
decreases production costs because the sooner a defect is
located and corrected, the less costly it will be in the long
run [7]. With the advent of automated testing tools, although
the initial investment can be substantial, the long-term result
will be higher-quality products and reduced maintenance
costs. The total cost of effective quality management is
the sum of four component costs: prevention, inspection,
internal failure, and external failure. Prevention costs
consist of actions taken to prevent defects from occurring in
the first place. Inspection costs consist of measuring,
evaluating, and auditing products or services for
conformance to standards and specifications [9]. Internal
A Research study on Importance of Testing and Quality Assurance in Software Development Life Cycle (SDLC)
Models
254
failure costs are those incurred in fixing defective products
before they are delivered.
IV. PROBLEM STATEMENT
A. Problem Definition
The study of various software development process
models reveal that in almost all these models, software
testing is included as one phase, but testing is required at
each phase and not at a particular stage. The main purpose of
software testing is to uncover errors which are not simply
syntax errors in code but various other types of errors in all
the documents produced during the software
development ,e.g. software requirements document, design
document, test plan etc. Various types of software testing
techniques have been developed till date, but which type of
testing technique will be suitable and sufficient for checking
a particular document in which phase of software
development life cycle (SDLC) is not yet clear. So here the
problem is to
1. Identify the testing techniques which can be applied
at different levels and phases of software development
life cycles
Also, software quality is an essential part of any software
project. Various quality assurance and control activities may
be used to ensure quality in the software project. Different
quality attributes need different types of testing to measure
software quality. The problem is that out of numerous
testing techniques possible, which testing technique should
be applied to measure which quality attribute is not very
clear. So the next problem takes here is
2. Identify the testing techniques which can be
applied to measure which software quality attribute
B. Justification
By categorizing which type of testing to be applied at
which phase of software development will help us plan for
testing in that phase efficiently and to take full advantage of
all the types of testing techniques to improve quality in that
phase and consequently the overall quality of the software
project. The relation between various quality attributes and
the testing techniques required for each of these will help
save time and produce quicker results and streamlined
testing of the project for that particular software quality
attribute.
This defines the statement of problem. Next we’ll
describes the Proposed Solutions according to the problem of
statement.
C. Proposed solution
According to the problem statement above, a model
“Software Development Life Cycle Testing Model” is
proposed in which all types of testing techniques related to
test all phases of SDLC are specified. V model of testing
given by Mr. Perry includes only 5 phases of SDLC. Here
this model is extended to include more phases of SDLC and
select the types of testing technique that can be applied in
each phase.
1. Apply Testing on all Phases of SDLC
It has always been a big question when to start testing.
Experts suggest that every step taken in the development of
the system must be tested thoroughly in a formal manner. It
means that testing must be done for requirements gathering,
designing, coding, and even for testing phase. Testing of
testing efforts may seem to be unusual and surprising but
it is an important effort because one needs to be sure about
the testing efforts to be able to rely on its reports. A good
testing life cycle begins during the requirements elicitation
phase of software development, and concludes when the
product is ready to install or ship, following a successful
system test. Fig given below shows that testing applied on all
the phases (Requirement gathering, Designing, Coding,
Testing, Implementation and Maintenance) of SDLC, not a
particular stage. The study of various software development
process models reveal that in almost all these models,
software testing is included as one phase, but testing is
required at each phase and not at a particular stage. In this
SDLC testing model we applied the testing at all the phases
of SDLC. By categorizing which type of testing technique
to be applied at which phase of software development life
cycle will help us plan for testing in that phase efficiently
and to take full advantage of all the types of testing
techniques to improve quality in that phase and consequently
the overall quality of the software project. Well-defined
traceable and controllable processes are required for
enhancing the quality of the software products and gaining
optimum benefits from applied effort. Software process is a
stepwise sequence of activities carried with the focus of
producing quality software in an economic manner it will be
possible when we applied testing at all the phases of software
development life cycle. Software testing is recommended to
be started as early as possible in the earliest phases of the
SDLC, most preferably in the requirement analysis phase
itself and should be performed by skilled testers only and
not by developers. Software development life cycle (SDLC)
processes involve activities of software requirements,
analysis, requirement specification, design, coding, testing,
delivery, and maintenance. The testing phase can be used in
all of these life cycle phases as an umbrella activity.
Fig. (d) Applying testing on all phases of SDLC
International Journal of Soft Computing and Engineering (IJSCE)
ISSN: 2231-2307, Volume-2, Issue-3, July 2012
255
2. Identifying Testing Techniques according to Phase of SDLC We identifying that which type of testing technique can be applied to which phase of SDLC. Fig (e) shows the phases of SDLC
and according to testing technique.
Fig (e) : SDLC Testing Model
3. Application of Testing to Measurement of Quality
Attributes
Different quality attributes need different types of testing
to measure software quality. Various types of testing
according to the quality feature it applies to in the table 6.3.
In given table we identified that for a particular software
quality feature which type of software testing technique can
be applied:
A Research study on Importance of Testing and Quality Assurance in Software Development Life Cycle (SDLC)
Models
256
Table 1: Testing Technique According to Quality Features
Quality
Attribute
Testing
Types
Performance Performance testing
Compatibility Compatibility testing
Reliability Stress testing,
Robustness testing, load testing
Vulnerability Penetrati
on
testing
Consistency Database testing, Table testing
Correctness Database testing, Table testing
Portability
Portabilit
y Testing
Recovery
Recove
ry
testing
Completeness
Boundary/Statement/Loo
p/Condition/Path
coverage testing
V. CONCLUSION & FUTURE WORK
Software testing is the activity that executes software with
an intention of finding errors in it. Testing should be
performed at different levels, including module level testing,
unit level testing, interface testing and system level testing.
Testing is done both at developer end and customer end and
it is performed by testers as well as the customer before
delivery of the product but it can ensure a fair level of
confidence in the predictable behaviour of the product in the
provided conditions.
Quality is the main focus of any software engineering
project. Without measuring, we cannot be sure of the level
of quality in software. So the methods of measuring the
quality are software testing techniques. This thesis report
relates various types of testing technique that we can apply
in measuring various quality attributes. Also which testing
are related to various phase of SDLC. General SDLC
processes are applied to different type of projects under
different conditions and requirements. There are various
type of SDLC model (Waterfall Model, RAD Mode,
Iterative Model, Proto Type Model, Spiral Model,
V-Model, etc). But in all these models, testing is applied
after a particular stage and not in all the phases. In this thesis
report, it is concluded that testing should be applied in all the
phases of SDLC and not at a particular stage. Which type
of testing technique can be applied to which type of SDLC
phase is also summarized.
Future work for this area will be to take more new coming
testing techniques and relating these to the phases of SDLC.
This will help taking the maximum advantage of that testing
technique. And this will be helpful to conclude that.
VI. REFERENCES
[I] Accessibility Summit. (2006). Public Sector NeedsBetter Guidance On
Web Accessibility, E-GovernmentBulletin (Issue 226, 13 November
2006)http://www.ukoln.ac.uk/webfocus/events/meetings/accessibility-s
ummit-2006-11/egovernment- 2006-11-13.php (Accessed August
30th2007)
[II] Alexander, Dey. (2003). How accessible
areAustralianusWeb03.http://ausweb.scu.edu.au/aw03/papers/alexande
r3/(Accessed August 30th 2007)BSI. (2005). PAS 78: Guide to
good practice incommissioning accessible websites. British Standards
Institute. http://www.bsi-
global.com/en/Standards-and-Publications/Industry-Sectors/ICT/PAS
-78/ (Accessed August 30th 2007) Carey, Kevin. (2005).
Accessibility: The Current Situation and New Directions. Ariadne 44,
June 2005. http://www.ariadne.ac.uk/issue44/carey/ (Accessed August
30th 2007)Chisholm, Wendy and Henry, Shawn. (2005).
Interdependent components of Web accessibility.Proceedings of W4A
at WWW2005: InternationalCross- Disciplinary Workshop on Web
Accessibility.New
York:ACM.Press.http://doi.acm.org/10.1145/1061811.1061818(Acces
sed Aug 30, 07)
[III] Clark, Joe.(2006).To Hell with WCAG 2. A List Apart No. 217.
http://alistapart.com/articles/tohellwithwcag2(Accessed August 30th
2007)Cooper, Martyn. 2006. Making online learning accessible to
disabled students: an institutional case study. ALT-J-Research in
Learning Technology, Vol. 14, No. 1, pp 103-115.DDA (2005)
Disability Discrimination Act 2005.
[IV]Web Accessibility 3.0: Learning From The Past,Planning For The
Future, Nevile, L. and Kelly, B.ADDW08. University of York, 22-24
September 2008. Retrieved February 4th
2009:http://www.ukoln.ac.uk/web-focus/papers/addw08/paper-2/
[V]Contextual Web Accessibility - Maximizing the Benefit of Accessibility
Guidelines, Sloan, D, Kelly, B., Heath, A., Petrie,
H., Hamilton, F and Phipps, L.WWW 2006 Edinburgh, Scotland 22-26 May
2006.Conference Proceedings, Special Interest Workshops (CD
ROM). RetrievedFebruary 4th 2009:
http://www.ukoln.ac.uk/webfocus/papers/w4a-2006/
[VI] IMS. (2004). IMS Guidelines for Developing Accessible Learning
Applications. Version 1.0 White Paper. IMS Global Learning
Consortium. http://www.imsglobal.org/accessibility/#accguide
(Accessed August 30th 2007) IWMW 20072007). Contextual
Accessibility in Institutional Web Accessibility Policies.
http://www.ukoln.ac.uk/webfocus/events/workshops/webmaster-2007/s
essions/sloan/(Accessed August 30th 2007) Kelly, Brian, Phipps,
Lawrie and Swift, Elaine. (2004).Developing A Holistic Approach for
E-Learning Accessibility. Canadian Journal of Learning and
Technology, 2004, Vol. 30, Issue
3.http://www.ukoln.ac.uk/web-focus/papers/cjtl- 2004/(Accessed
August 30th 2007)
[VII] Kelly, Brian, Sloan David, Phipps Lawrie, Petrie Helen and Hamilton,
Fraser. (2005). Forcing standardization or accommodating diversity? A
framework for applying the WCAG in the real world. Proceedings of the
2005 International Cross-Disciplinary Workshop on Web
Accessibility (W4A) (Chiba, Japan, 10 May 2005). New York:ACM
Press, 46-54. http://www.ukoln.ac.uk/webfocus/papers/w4a-2005/
(Accessed August 30th 2007) Kelly, Brian. (2006). Accessibility of
resources in institutional repositories, Digital Repositories mailing
List, 18 December 2006. on Aging. (2002). Older adults and
information technology: A compendium of scientific research and web
site accessibility guidelines. Washington, DC: U.S. Government
Printing Office. Nielsen, Jakob. (1994). Heuristic evaluation. In
Nielsen,J., and Mack, R.L. (Eds.), Usability Inspection Methods. New
York: John Wiley & Sons. Pickard, Jack. (2006). Whistle Stop WCAG 2
: To Hell… and back. Blog post August 2006.
http://www.thepickards.co.uk/index.php/200608/whistle
-stop-wcag-2-to-hell-and-back/ (Accessed August 30th 2007)
Raymond, Eric. (1998). The Cathedral and the Bazaar, First
http://www.firstmonday.org/issues/issue3_3/raymond/
International Journal of Soft Computing and Engineering (IJSCE)
ISSN: 2231-2307, Volume-2, Issue-3, July 2012
257
Maneela Tuteja, M-Tech (Computer Science Engineering)
from Amity School of Engineering &
Technology, Amity Unicersity Noida,
B-Tech (Information Technology) from
Kurukshetra University.
Having more than 5 years of professional
experience in IT, Services & Education.