0% found this document useful (0 votes)
42 views

Software Testingppt

The document discusses various topics related to software testing: 1. It defines software testing as executing a program to find bugs and ensure it meets requirements. Testing verifies and validates software. 2. It outlines seven principles of testing including that exhaustive testing is impossible and testing shows presence but not absence of defects. 3. It describes different software development life cycle models like waterfall and V-model and discusses their advantages, disadvantages, and when to use them.

Uploaded by

rathodshri
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
42 views

Software Testingppt

The document discusses various topics related to software testing: 1. It defines software testing as executing a program to find bugs and ensure it meets requirements. Testing verifies and validates software. 2. It outlines seven principles of testing including that exhaustive testing is impossible and testing shows presence but not absence of defects. 3. It describes different software development life cycle models like waterfall and V-model and discusses their advantages, disadvantages, and when to use them.

Uploaded by

rathodshri
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 32

Software Testing:

Software Testing is a process of executing a


program or application with the intent of finding
the software bugs. It can also be stated as the
process of validating and verifying that a
software program or application or product,
which meets the business and technical
requirements that guided its design and
development, works as expected, and can be
implemented with the same characteristic.
Software Quality
Quality software means reasonably 
bug or defect free, delivered on time and
within budget,
meets requirements and/or expectations, and
is maintainable.
What are Principles of testing
There are seven principles of testing. They are as
follows:
1) Testing shows presence of defects: Testing can
show the defects are present, but cannot prove that
there are no defects. Even after testing
the application or product thoroughly we cannot say
that the product is 100% defect free. Testing always
reduces the number of undiscovered defects
remaining in the software but even if no defects are
found, it is not a proof of correctness.
2) Exhaustive testing is impossible: Testing
everything including all combinations of inputs and
preconditions is not possible. So, instead of doing
the exhaustive testing we can use risks and
priorities to focus testing efforts.
3) Early testing: In the software development life
cycle testing activities should start as early as
possible and should be focused on defined objectives.
4) Defect clustering: A small number of modules
contains most of the defects discovered during pre-
release testing or shows the most operational failures.
5) Pesticide paradox: If the same kinds of tests are
repeated again and again, eventually the same set of
test cases will no longer be able to find any new bugs.
To overcome this “Pesticide Paradox”, it is really very
important to review the test cases regularly and new
and different tests need to be written to exercise
different parts of the software or system to potentially
find more defects.
 6) Testing is context depending: Testing is
basically context dependent. Different kinds of
sites are tested differently. For example, safety –
critical software is tested differently from an e-
commerce site.
 7) Absence – of – errors fallacy: If the system
built is unusable and does not fulfil the user’s
needs and expectations then finding and fixing
defects does not help
Key aspects of quality for the
customer include
Good design – looks and style.
Good functionality – it does the job well.
Reliable – acceptable level of breakdowns or
failure.
Consistency.
Durable – lasts as long as it should.
Good after sales service.
Value for money.
Main purpose of Software testing
Software testing has three main purposes :
The verification process confirms that the
software meets its technical specifications.
The validation process confirms that the
software meets the business requirements.
A defect is a variance between the expected
and actual result. The defect’s ultimate
source may be traced to a fault introduced in
the specification, design, or development
(coding) phases.
Why Does Software Testing
Does it really work as expected?
Does it meet the users’ requirements?
Is it what the users expect?
Do the users like it?
Is it compatible with our other systems?
How does it perform?
How does it scale when more users are added?
Which areas need more work?
Is it ready for release?
What to Test
First, test what’s important. Focus on the core
functionality—the parts that are critical or popular
—before looking at the ‘nice to have’ features.
Concentrate on the application’s capabilities in
common usage situations before going on to
unlikely situations. For example, if the application
retrieves data and performance are important,
test reasonable queries with a normal load on
the server before going on to unlikely ones at
peak usage times. It’s worth saying again: focus
on what’s important. Good business
requirements will tell you what’s important
Who Does Testing
Software testing is not a one person job. It takes a team, but
the team may be larger or smaller depending on the size and
complexity of the application being tested. Testers must be
cautious, curious, critical but non-judgmental, and good
communicators.
How well does it work?
What does it mean to you that “it works”?
How do you know it works?
What evidence do you have?
In what ways could it seem to work but still have something
wrong?
In what ways could it seem to not work but really be working?
What might cause it to not to work well? A good developer
does not necessarily make a good.
Why is testing necessary
Testing is necessary because we all make mistakes.
Some of those mistakes are unimportant, but some of
them are expensive or dangerous. We need to
check everything and anything we produce because
things can always go wrong –
humans make mistakes all the time. 
Since we assume that our work may have mistakes,
hence we all need to check our own work. However
some mistakes come from bad assumptions and
blind spots, so we might make the same mistakes when
we check our own work as we made when we did it. So
we may not notice the flaws in what we have done.
What are the Software
Development Life Cycle phases
There are various software development approaches defined and
designed, which are
used/employed during development process of software, these
approaches are also referred as “Software Development Process
Models”(e.g. Waterfall model, incremental model, V-model, 
iterative model, etc.).
There are following six phases in every Software development life
cycle model:
Requirement gathering and analysis.
Design.
Implementation or coding.
Testing.
Deployment.
Maintenance.
What is Waterfall model
The Waterfall Model is the first Process Model to
be introduced. It is also referred to as a linear
sequential life cycle model.  It is very simple to
understand and use.  In a waterfall model, each
phase must be completed fully before the next
phase can begin.   At the end of each phase, a
review takes place to determine if the project is
on the right path and whether or not to continue
or discard the project. In waterfall model phases
do not overlap.
Advantages of waterfall model
Simple and easy to understand and use.
Easy to manage due to the rigidity of the
model – each phase has specific
deliverables and a review process.
Phases are processed and completed one
at a time.
Works well for smaller projects where
requirements are very well understood.
Disadvantages of waterfall model
Once an application is in the testing stage, 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 late during
the life cycle.
High amounts of risk and uncertainty.
Not a good model for complex and object-
oriented projects.
Poor model for long and ongoing projects.
Not suitable for the projects where requirements
are at a moderate to high risk of changing.
When to use the waterfall model
If requirements are very well known, clear
and fixed.
If product definition is stable.
If technology is understood.
If there are no ambiguous requirements.
If ample resources with required expertise
are available freely.
If the project is short.
What is V-model
V- Model means Verification and Validation
model. Just like the waterfall model, the V-
Shaped life cycle is a sequential path of
execution of processes. Each phase must
be completed before the next phase
begins.  Testing of the product is planned
in parallel with a corresponding phase of
development.
Requirements:
Like BRS and SRS begin the life cycle model just like the waterfall
model. But, in this model before development is started, a system test
 plan is created.  The test plan focuses on meeting the functionality
specified in the requirements gathering.
The high-level design (HLD):
Phase focuses on system architecture and design. It provides
overview of solution, platform, system, product and service/process.
An integration test plan is created in this phase as well in order to test
the pieces of the software systems ability to work together.
The low-level design (LLD):
Phase is where the actual software components are designed. It
defines the actual logic for each and every component of the
system. Class diagram with all the methods and relation between
classes comes under LLD. Component tests are created in this phase
as well.
The implementation:
Phase is, again, where all coding takes place. Once coding is
complete, the path of execution continues up the right side of the V
where the test plans developed earlier are now put to use.
Coding:
This is at the bottom of the V-Shape model. Module design is
converted into code by developers
Advantages of V-model
Simple and easy to use.
Testing activities like planning, test designing
 happens well before coding. This saves a lot of
time. Hence higher chance of success over the
waterfall model.
Proactive defect tracking – that is defects are
found at early stage.
Avoids the downward flow of the defects.
Works well for small projects where
requirements are easily understood.
Disadvantages of V-model
Very rigid and least flexible.
Software is developed during the
implementation phase, so no early
prototypes of the software are produced.
If any changes happen in midway, then
the test documents along with requirement
documents has to be updated.
When to use the V-model
The V-shaped model should be used for small to
medium sized projects where requirements are
clearly defined and fixed.
The V-Shaped model should be chosen when
ample technical resources are available with
needed technical expertise.
High confidence of customer is required for
choosing the V-Shaped model approach. Since,
no prototypes are produced, there is a very high
risk involved in meeting customer expectations
What is Spiral model
The spiral model is similar to
the incremental model, with more
emphasis placed on risk analysis.
The spiral model has four phases:
Planning, Risk Analysis, Engineering and
evaluation. A software project repeatedly
passes through these phases in iterations
(called Spirals in this model)
Disadvantages of Spiral model
Can be a costly model to use.
Risk analysis requires highly specific
expertise.
Project’s success is highly dependent
on the risk analysis phase.
Doesn’t work well for smaller projects.
When to use Spiral model
 When costs and risk evaluation is
important.
 For medium to high-risk projects.

 Long-term project commitment unwise

because of potential changes to


economic priorities.
 Users are unsure of their needs.

 Requirements are complex.

 New product line.


What is Incremental model
In incremental model, the whole requirement is
divided into various builds. Multiple development
cycles take place here, “making the life cycle a
multi-waterfall” cycle.  Cycles are divided up into
smaller, more easily managed modules.  Each
module passes through the requirements,
design, implementation and testing phases. A
working version of software is produced during
the first module, so you have working software
early on during the software life cycle. Each
subsequent release of the module adds function
to the previous release. The process continues
till the complete system is achieved.
Advantages of Incremental
model
Generates working software quickly and early
during the software life cycle.
More flexible – less costly to change scope and
requirements.
Easier to test and debug during a smaller
iteration.
Customer can respond to each built.
Lowers initial delivery cost.
Easier to manage risk because risky pieces are
identified and handled during it’d iteration.
Disadvantages of Incremental
model

Needs good planning and design.


Needs a clear and complete definition of
the whole system before it can be broken
down and built incrementally.
Total cost is higher than waterfall
When to use the Incremental
model
Requirements of the complete system are
clearly defined and understood.
Major requirements must be defined; however,
some details can evolve with time.
There is a need to get a product to the market
early.
A new technology is being used.
Resources with needed skill set are not
available.
There are some high risk features and goals.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy