You are on page 1of 20

Module 2

Testing throughout the Life Cycle


By
K.N.Sasidhar

Testing throughout the Life Cycle

Models for Testing


V-Model
Test Levels
Test Types
Maintenance Testing

Models for Testing

The Waterfall model


V Model
Spiral model
Iterative development model
Clean-room software engineering model
Synch and Stabilize model
Agile methodology and Extreme Programming

Waterfall model:
- Sequential follow up of SDLC activities
- Requirements Analysis, HLD,DLD,
Coding/Development, Testing, Maintenance
- Late attention to the testing activity
- When earlier phases in the development slips it is the testing
phase that gets squeezed
- Harder to ensure quality because the testing team has not been
involved in the project from the earliest phase
- Errors are more costly to correct
- Testing is seen as a test execution phase
- Difficult to deal with the changes
- Working version of the software appears very late in the process

V-Model:
- Integrates development and testing activities
- Shows development activities on the left-hand and the
corresponding test activities on the right-hand
- Testing is not seen as a phase that happens at the end of
development
- For every stage of development,an equal stage of testing
needs to occur
- Testing based on documents/Errors found early/less
expensive/in build quality
- Correct tests are created
- Testing viewed as through out the life cycle

Iterative development models:


- Prototyping
- Spiral
- RAD
- Rational unified process
- Agile development are examples

Testing within a lifecycle model


In any life cycle model, there are Several characteristics of
good testing:
- For every development activity there is a corresponding
testing activity
- Each test level has test objectives specific to that level
- The analysis and design of tests for a given test level
should begin during the corresponding development activity
- Testers should be involved in reviewing documents as
soon as drafts are available in the development life cycle

Verification, Validation and Testing


Verification:
The Process of evaluating a system or component to determine
whether the products of the given development phase satisfy
the conditions imposed at the start of the phase
or
According to BS 7925-1
Confirmation by examination and provision of objective
evidence that specified requirements have been fulfilled
Have I built the system according to specification

Verification, Validation and Testing


Validation:
According to BS 7925-1
Confirmation by examination and provision of
objective evidence that the particular requirements
for a specified intended use have been fulfilled.
Was the Specification correct
Ensuring that we have built the product as the user
intended it to be used

Testing Definition
The Process of exercising software to verify
that it satisfies specified requirements and
to detect errors
BS 7925-1
Testing is :
- the confirmation that we have built the
product right (Verification) and have built
the right product(Validation)

Test Levels

Component Testing
Integration Testing
System Testing
Acceptance Testing

Component Testing
Testing of individual software components(BS 7925 1)
Also known as Unit testing,Module testing, Program testing
Searches for defects in, and verifies the functioning of software
components(Programs,Objects,Classes etc)
Stubs ,drivers and simulators may be used
May include testing of functionality and specific non-functional
characteristics such as memory leaks etc.
Also includes structural testing(eg: branch coverage) with access to the
code
Usually done by the programmer who wrote the code
Defects are typically fixed as soon as they are found,without formally
recording incidents
Prepare and automate test cases (eg: J Unit)
BS 7925 2 defines techniques for the design and measurement of
component testing.

Integration Testing
Testing performed to expose faults in the interfaces and in
the interaction between integrated components.

Two Types:
Integration in the Small
Integration in the Large

Integration Testing in the Small


Four approaches are there:- Top-down
- Bottom-up
- Big-bang
- Functional Incrementation Testing

Top-down Testing:
Main Program is tested first
Modules are integrated one at a time
Major emphasis is on testing interfaces
Interface errors are discovered early
Test Stubs are needed
Errors in critical modules at low levels are found late
Uses Depth-First approach
Design errors detected early
Stubs are used as passive subprograms to allow high level
control routines to be tested when low level component is
unavailable

Bottom-up Testing:

Tests low-level units first


Modules are integrated one at a time
Test Drivers s are needed
Errors in critical modules at low levels are found early
Uses Breadth-First approach
Design errors discovered late

Drivers are used to run low-level modules and to test the


interfaces or links between them

System Testing
Testing the System based on what it is supposed to
do (Functional) and how well it is doing(NonFunctional)
Two Types
Functional
Non-functional

Non-Functional requirements include:


Security,Reliability,Usability,Installability, Recovery,
Interoperability etc

Acceptance Testing:
Formal testing conducted to enable a user,customer
or other authorized entity to determine whether to
accept a system or component
Acceptance testing is high on the V model , a
counter part to the Requirement specification
process
User Acceptance Testing:
Testing conducted by and visible to customer
It is conducted at the final stage of Validation
Contract Acceptance Testing:
A demonstration of the acceptance criteria which
would have been defined in the contract being met.

Alpha & Beta Testing:


-Alpha tests are Performed at the developers
site while beta tests are performed at the
users sites.
- Alpha : Less Quality , by the developer or
customer, controlled environment,Developer
looking over the shoulder of the customer
- Beta : Testing at the customers site by the end
users of the product , under different
conditions.

Maintenance Testing
- Testing changes to the software after it has gone into
production
- Maintenance testing is something that can go for as
long as the system is in use after it has gone into
production
- Problem with maintenance testing may be old code &
their specs may be poor
- Scope of the maintenance testing to be judged in
relation to the changed code , how much has changed,
what areas does it really affect etc

You might also like