Page 14 - SOFTWARE TESTING & QUALITY ASSURANCE
P. 14
Unit 1: Introduction to Software Testing
3. Design: In this phase, the requirements described during the analysis phase are defined in terms
of the software structure – for example, the database design is completed. These representations
help in determining the logical flow of the software and also help in quality assessment. These
specifications help the developers to provide inputs during the actual coding process.
4. Coding: This is the programming phase where the design is developed into a machine-readable
form. The developer writes the source code using a software language as per the design
specification.
5. Testing: In this phase, the software is tested against the documented test methods. Testing detects
the possible bugs and makes the necessary corrections. These tests also enable the developers to
know whether the software is performing according to the requirements.
6. Maintenance: As new requirements arise, there is a need to upgrade the software. There are
instances when problems which need to be solved during the live production environment arise.
These are done during the maintenance phase.
The main drawback of this model is that the errors and defects that are present in one phase of the
lifecycle are passed on to the other, which results in longer delays and additional costs as the problems
need to be solved at each stage.
1.3.2 Spiral Model
The drawbacks of the waterfall model are overcome in the spiral model. The model consists of four
phases - planning, risk analysis, design engineering and customer evaluation. The four phases are
iteratively followed till the problems are rectified. Two to three prototypes are developed before the
final product is delivered. Each prototype follows the entire cycle to solve problems. This method of
software development enables to understand the problems associated with a particular phase and deals
with those problems when the same phase is repeated again. The figure 1.2 is the pictorial
representation of spiral model. The various phases involved in each cycle are,
1. Plan: In this phase, the specifications, objectives, constraints, and alternatives of the project are
listed in logical order as per the project requirements. The objectives and specifications are
defined in order to decide the strategies to be followed during the project life cycle.
2. Risk Analysis: This is a very crucial phase of spiral model. During this phase, all the alternatives
that are helpful in developing a cost effective project are analyzed and all possible risks involved
in the project development are identified.
3. Design Engineering: This is the phase where the actual development of the software takes place.
The software product is developed iteratively and passed on to the next phase.
4. Testing: In this phase, the customer receives the product and gives comments and suggestions
which can help in identifying and resolving potential problems in the developed software.
During this cycle all the phases concentrate on the feedback received from the customer and the
testing team to resolve the drawbacks and bugs found in each prototype of the product. The main
drawback of the model is the amount of time taken to complete the iterations which can increase
costs. Testing at the customer’s end and fixing of bugs might require higher cost and time.
LOVELY PROFESSIONAL UNIVERSITY 7