You are on page 1of 41

Software testing

Software Testing Introduction

Lilaram Anjane

Contents:

Introduction to software Testing


When to start and stop Testing.
Seven Principles of Testing.
Software Development Life Cycle.
(Waterfall model, Incremental Model,
Prototype Model, Spiral Model,V model,
Agile Model.)
Software testing Life cycle.

Introduction to Software
Testing
Software

testing is an activity to check whether the actual


result match the expected result and to ensure that software
system is defect free.

Testing

is process of evaluating a system or its components


with intent to find that whether it satisfies requirements or not.

three important factors for software testing


1)Software should test within time period.
2)It should be cost effective.
3)It should be quality product.

When to start and stop


testing
Start of testing1)As early as possible.
2)At requirement gathering phase
3)Depend of software development model.

Stop of testing1)Completion of test case execution.


2)Completion of Functional and code coverage to
certain point.
3)Testing Deadlines.
4)No high priority bugs are identified.
5)Management decision.

Seven Principles of testing


P1 ->Testing shows Presence of defects.
P2->Exhaustive testing is impossible.
P3->Early Testing.
P4->Defect Clustering.
P5->Pesticide Paradox.
P6->Testing is Context depending.
P7->Absence of errors Fallacy.

Software Development Life


Cycle

Software Development
Model.
1)Water Fall Model
2)Incremental model
3) Prototype Model
4)RAD Model
5)Spiral Model
6)V Model
7)Agile Model

Water Fall Model

Advantages of water fall model Simple and easy understand and use.

Phases are processed and completed one at


a time.

Works well for smaller projects where


requirements are very well understood.

Disadvantages of water fall model It is very difficult to go back and change something
that was not well thought out in the concept stage.
No working software is produced until during the
life cycle.
High amount of risk and uncertainty.
Not a good model for complex and object oriented
projects.
Poor model for long and ongoing project.
Not suitable for the projects where requirements
are at a moderate to high risk of changing.

Incremental Model

Advantages Of Incremental
Model
1)Generates working s/w quickly and early
during the software life cycle.
2)More flexible less costly to change scope
and requirements.
3)Easier to test and debug during a smaller
iterations.
4)Customer can respond to each built.
5)easier to manage risk because risky
pieces are identified and handled during its
iteration.

Disadvantages of Incremental
model

1)Needs good planning and design.

2)Needs a clear and complete definition of


the whole system before it can be broken
down and built incrementally.

Prototype Model

Advantages of prototype model


Users are actively involved in the
development
It provides a better system to users, as
users have natural tendency to change their
mind in specifying requirements and this
method of developing systems supports this
user tendency.
Errors can be detected much earlier as the
system is mode side by side.
Quicker user feedback is available leading
to better solutions.

Disadvantage of prototype
model

Leads to implementing and then repairing


way of building systems.

Practically, this methodology may increase


the complexity of the system as scope of
the system may expand beyond original
plans.

RAD Model

Advantages of the RAD Model


1)Reduced development time.
2)Increase reusability of components.
3)Quick initial reviews occur.
4)Encourages customer feedback.
5)Integration from very beginning solves a
lot of integration issues.

Disadavantages of RAD model


Depends on strong team and individual
performances for identifying business
requirements.
Only system that can be modularized can
be built using RAD.
Requires highly skilled
developers/designers.
High dependency on modeling skills.
Inapplicable to cheaper projects as cost of
modeling and automated code generation is
very high.

Spiral Model

Cumulative cost
Determine objectives,
alternatives & constraints

Prototypes

Evaluate alternatives,
Identify & resolve risks

Operational
Prototype

Start P1
P2
P3
Requirements
Concept
Design, Detailed design
plan
Of Operation Validation
Development
& Verification
plan
Requirements
Coding
validation
Integration &
Test plan
Unit & Integration
Testing
End Acceptance
Develop & verify
Plan next phase
Testing
next-level product

Review &
commitment

Spiral Model

Advantages of Spiral
model
High amount of risk analysis hence,
avoidance of risk is enhanced.
Good for large and mission-critical projects.
Strong approval and documentation control.
Additional functionality can be added at a
later date.
Software is produced early in the software
life cycle.

Disadvantages of spiral model


Can be costly model to use
Risk analysis requires highly specific
expertise.
Projects success is highly dependent on the
risk analysis phase.
Does not work well for smaller projects.

V Model

Advantages of V model
Development and progress is very
organized and systematic
Works well for smaller to medium sized
projects.
Testing starts from beginning so ambiguities
are identified from the beginning.
Easy to manage as each phase has well
defined objectives and goals.

disadvantages of V model
Not suitable for bigger and complex projects
Not suitable if the requirements are not
consistent.
No working software is produced in the
intermediate stage.
No provision for doing risk analysis so
uncertainty and risks are there.

Agile model

Advantages of Agile Model

Customer satisfaction by rapid, Continuous


delivery of useful s/w.
People and interactions are emphasized rather
than process and tools, Customers developers and
testers constantly interact with each other.
Working s/w is delivered frequently(Weeks rather
than months).
Face to face communication is the best form of
communication.
Close daily cooperation between business people
and developers.

Disadvantages of Agile model


In case of some s/w deliverables, especially
the large ones, it is diffcult to assess the
effort required at the beginning of the s/w
development life cycle.
There is lack of emphasis on necessary
designing and documentation.
The project can easily get taken off track if
the customer representative is not clear
what final outcome that they want.

Software Testing Life Cycle

Requirement
gathering

Requirement
Analysis

Design

Test planning ,Test


design

Coding or
development

SDLC
VS
STLC

Test case writing

Testing

Testcase
development

Deployment

Final test
execution

Maintenance

Maintenance
Testing

REFERENCES

Google.com

THANK YOU !!!