3. Software Testing Introduction
Introduction to Software Testing
Software Development Process
Project vs. Product
Error / Fault / Failure
Why Software has defects
Cost of fixing defects
Most common defects
Verification vs Validation
Objectives of Testing
Role of a Tester
4. Software Development Life Cycle
(SDLC)
SDLC Phases
SDLC Models
Waterfall Model
V Model
Agile Model
13. Defect / Bug Life Cycle & Defect Management
What is defect?
Defect Classification
Defect report Template
Test Closure
Criteria for Test Closure
Test Summary Report
Software Configuration Management
14. Software Testing
What is Software Testing?
Testing is the process in which the defects are identified ,
separate, subjected for rectification and ensure that the
product is defect free in order to produce defect free
product.
OR
Software testing is nothing but detecting error in the
software.
15. What do you mean by Product Development?
Product development is done assuming a wide range of
customers and their needs. This type of development involves
customers from all domains and collecting requirements from
many different environments.
For example
1) Microsoft that develops its products like windows and
others.
2) Nokia that develop mobiles and after marketing sells that in
the market.
16. What do You mean by Project Development ?
Project Development is done by focusing a particular
customer's need, gathering data from his environment and
bringing out a valid set of information that will help as a
pillar to development process.
17. What do you mean by Service based Companies?
1. A Services based company is the one that provides its
services to the client for completing his requirements.
2. If you have an IT software company and you get an
order from the client to develop a software according to
the client needs and you use your staff service in
developing that software so your company is an Service
provider, which serves the client.
3. Even the service oriented products can develop their
own products and sell in the market.
18. Difference between error , failure and fault
Error means any deviations in the applications from
the requirements.
Failure is a deviation from expected behavior.
Fault: is a condition that causes the software to fail to
perform its required function.
19. Verification and Validation
♥ Verification is set of activities to ensure that the
function that is developing properly.
[ Verification: Are we producing the right product?]
♥ Validation is a different set of activities to ensure that
the function that has been built is working properly.
[Validation: Are we building the right system?]
21. Analysis Phase
Detail Study of Requirement in order to check whether
the requirements are possible within the available
time, budget and resources.
The resources and time will be temporarily planned
here in this phase
The list of all technologies that are required to
accomplish this project successfully and details of the
environment which will be suitable for this application
will be clearly analyzed here in this phase.
22. Requirement Selection Phase
The list of all the requirements like human
resources, software and hardware requirement to
accomplish the project successfully will be analyzed
here.
The proof document of the requirement phase is
SRS(System Requirement Specification)
23. Design Phase
The chief architect will divide the whole project into
modules by drawing Some diagrams using
UML(Unified Modeling Language).
The technical Lead will divide the module into sub
modules using same UML diagrams.
Again by using UML diagram technical lead will
design GUI part of the application and also develops
pseudo code.
Pseudo code is nothing but set of English statements
which will help developer while developing actual
code.
25. Testing Phase
The test engineer will be receiving the requirement
document and starts understanding the requirement.
While understanding the requirement, if at all they get
any doubt then they will list out all the doubts in
RCN(Requirement Clarification Note)
Once the clarifications are given and after
understanding all the requirement clearly tester will
start preparing test cases using test case template.
26. Once the first built is released, testers will execute test
cases.
If at all any defects are found then they will list of all
the defects and send those defects to development
team and testers will wait for the next built.
Once the next built is ready then testers will re-
execute the required test cases.
And cycles goes on.
27. Delivery and Maintenance Phase
The development manager will go to the client place
and install the application into the customer’s
environment and hand over the application to the
client
One the application is delivered, the customers will
use that application and while using that application if
they get any problems, them that problem will become
a task, again that task will be assigned to particular
team, this type of task is called maintenance
29. Features of a Waterfall Model
A waterfall model is easy to follow.
It can be implemented for any size project.
Every stage has to be done separately at the right time
so you cannot jump stages.
Documentation is produced at every stage of a
waterfall model allowing people to understand what
has been done.
Testing is done at every stage.
30. Advantages of a Waterfall Model
A waterfall model helps find problems earlier on which
can cost a business less than if it was found later on.
Requirements will be set and these wouldn't be
changed.
As everything is documented a new team member can
easily understand what's to be done.
Implementers have to follow the design accurately
31. Disadvantages of a Waterfall Model
If requirements may change the Waterfall model may
not work.
Many believe it is impossible to make one stage of the
projects life cycle perfect.
Difficult to estimate time and cost for each stage of the
development process.
Constant testing of the design is needed.
33. The V-Shaped Model
• V-Model evolved from waterfall Model.
• Each phase must be completed before the next phase begins.
• Instead of moving down in a linear way, the process steps are bent upwards
after the coding phase, to form the typical V shape.
• Testing is emphasized in this model more than in the waterfall model.
• It is a structured approach to testing.
• Brings high quality into the development of our products.
34. Steps in the V-Shaped Model
Quality is guaranteed at each project stage.
35. Stage Containment
This term is used to identify problems existing in the product being
developed before proceeding to the following stage.
• More errors than defects.
• Cost and effort for fixing problems is minimized.
Defect Detailed Design
Component Assembly Test
Analyze Design Test Prod Test Deploy
Origin
Defect Detailed Design Component Assembly Test
Discovered Analyze Design Test Prod Test Deploy
With Stage Containment
36. Without Stage Containment
• More defects than errors.
• Fixes become more expensive and difficult.
Defect Detailed Design
Component Assembly Test
Analyze Design Test Prod Test Deploy
Origin
Defect Detailed Design Component Assembly Test
Discovered Analyze Design Test Prod Test Deploy
37. Without Stage Containment
Defect Detailed Design
Component Assembly Test
Analyze Design Test Prod Test Deploy
Origin
Defect Detailed Design Component Assembly Test
Discovered Analyze Design Test Prod Test Deploy
Worst Case!
38. Entry and Exit Criteria
Entry Criteria
• The Term Entry Criteria refers tot the input conditions
required from the previous processes to support a specific stage.
Exit Criteria
• The term Exit Criteria refers to the output conditions required
by a specific process to determine its thoroughness and correct
completion.
• The Exit Criteria for one stage can constitute part of the Entry
Criteria for the following stage.
39. The Five Key Deliverables of Test Planning
Deliverable Description
Test Approach Explains the objectives and scope of the test;
Documents entry/exit criteria and key dates
Test Scenarios Provides high-level descriptions of functionality to be
tested
Test Conditions and Expected Describes all items and results that must be covered
Results to fulfill each Test Scenarios
Test Cycle Control Sheet Groups test scripts into logical categories (or cycles);
documents when and by whom each cycle will be
executed.
Test Scripts Provides step-bystep instructions and detailed
results for a test executor to follow during test
execution
40. Unit testing
The most ‘micro’ scale of Testing
A unit = smallest testable software component
Objects and methods
Procedures / functions
Performed by Programmer
A tester can help.
Requires detailed knowledge of the internal program design and
code.
The units are tested in isolation.
Ensures the component is working according to the detailed
design/build specifications of the module.
Not to be confused with debugging.
Also known as component, module, or program testing.
41. Integration Testing
Testing of more than one (tested) unit together to determine
if they function correctly.
Focus on interfaces
Communication between units
It is done using the integration test design prepared during
the architecture design phase.
Helps assembling incrementally a whole system, ensuring
the correct ‘flow’ of data from the first through the final
component.
Done by developers/designers and testers in collaboration
Also called Interface Testing or Assembly Testing.
42. System testing
Testing the system as a whole - Black-box type testing that is based
on overall requirements specifications; covers all combined parts of
a system.
Ensures that system meets all functional and business
requirements.
Focus
Verifying that specifications are met
Validating that the system can be used for the intended
purpose
The system test design is derived from the system design
documents and is used in this phase.
It can involve a number of specialized types of tests to check
performance, stress, documentation etc. Sometimes testing is
automated using testing tools.
Done by Independent testing group
43. Acceptance testing
To determine whether a system satisfies its acceptance criteria and
business requirements or not.
Similar to System testing in that the whole system is checked, but the
important difference is the change in focus.
Done by real business users.
It enables the customer to determine whether to accept the system or
not.
Also called as Beta Testing, Application Testing or End User Testing.
Approach
Should be performed in real operating environment .
Customer should be able to perform any test based on their
business processes.
Final Customer sign-off.
44. Benefits of V-Model
• Faults are prevented and it stops fault multiplication.
• Avoids the downward flow of defect.
• Lower defect Resolution cost due to earlier detection.
• Improved quality and reliability.
• Reduction in the amount of Re-work.
• Improved Risk Management
• Validation and Verification at each level of stage containment
• Allows testers to be active in the project early in the project’s
lifecycle. They develop critical knowledge about the system.
45. What is Agile Scrum Process Model
Agile is a very recent software development methodology based on the
agile manifesto.
This was developed to solve some shortcoming in the traditional V-
Model and Waterfall software development methodologies.
Agile methods are based on giving high priority to the customer
participation early in the development cycle
In Agile whole project gets divided into sprints usually 2 to 4 weeks
duration each.
Sprint have fixed duration to each regular deliveries and helps
development teams to focus on shippable product in the end of each
sprint
46. Scrum meetings:--
Daily time boxed meetings where team members answers the
following questions:
What you did yesterday?
What has impeded your work?
What you plan to do today?
Sprint review meeting:--
Provides an inspection of project progress at the end of the
every Sprint. The goal is to improve development process by
introducing new practices, changing existing practices, etc.