2. Introduction & Fundamentals
What is Software Testing?
Why testing is necessary?
Who does the testing?
What do we test?
3. Error ,Bug ,Fault ,Failure
A person makes an Error That creates a fault in software
That can cause a failure in operation Bug, Fault & Failure.
Error : An error is a human action that produces the
incorrect result.
Bug : The presence of error at the time of execution of
the software.
Fault : State of software caused by an error.
Failure : Deviation of the software from its expected
result.
4. Objectives of testing
The aim of the testing is to identify all defects existing
in a software product. It is not possible to guarantee
that the software is error free. This is because of the
fact that the input data domain of most software
products is very large.
A good test case is one that has a high probability of
finding an as-yet-undiscovered error.
A successful test is one that uncovers an as-yet-
undiscovered error.
What testing cannot do ?
o Cannot show the absence of errors.
5. Objectives of a Software Tester
Find bugs as early as possible and make sure they get
fixed.
To understand the application well.
Study the functionality in detail to find where the
bugs are likely to occur.
Study the code to ensure that each and every line of
code is tested.
Create test cases in such a way that testing is done to
uncover the hidden bugs and also ensure that the
software is usable and reliable.
6. Verification & Validation
Verification - refers to the set of activities that ensure
that software correctly implements a specific
function.
Validation- refers to a different set of activities that
ensure that the software that has been built is
traceable to customer requirements.
Verification: "Are we building the product right?"
Validation: "Are we building the right product?"
7. Testing Vs Debugging
Debugging is not Testing.
Debugging always occurs as a consequence of testing.
Debugging attempts to find the cause of an error and
correct it.
8. When to Start Testing in SDLC
Phases of SDLC
Feasibility Study
Requirements Analysis and Specification
Design
Coding
Testing
Maintenance
9. Types Of Testing
White Box Testing Black Box Testing
System Testing
Usability Testing
Static Testing Dynamic Testing Performance Test
Walkthrough Unit Testing
Code Reviews Integration Testing
Code Inspection Regression Testing
10. White Box Testing
The internals of software are tested to make sure that they
operate according to specification and design.
Test cases are based on internal structure of software.
Areas
Code Coverage ,Statement Coverage, Branch Coverage,
Condition Coverage ,Loop Coverage, Path Coverage ,Data Flow
Coverage.
• Techniques
o Flow graph testing ,Graph matrices ,Control structure testing ,
Data flow testing.
11. Static Testing
Static testing of a program carried out without executing the
program.
It aims to find defects in the software product in the early
stages of software development, so that they can be fixed
easily.
It can find errors that occur on paths uncovered by testing
It explores all possible execution paths in a program at compile
time.
Who
o By a team of individuals.
o By individual who didn’t write the code.
12. Code Review
o A code review can be done as a special kind of inspection in
which the team examines a sample of code and fixes any
defects in it. In a code review, a defect is a block of code which
does not properly implement its requirements, which does not
function as the programmer intended.
o Are the variables name meaningful?
o Are the variables initialized?
o Are pointers initialized properly?
o Are there infinite loops?
o Has the usage of operators like = and == or & and && been
checked or not?
13. Code Inspection
It is the most formal technique.
The aim of this review type is to uncover defects in the
document in the early stages of software development
and thereby improve the quality of the product.
An inspection is one of the most common review
practices found in software projects. In an inspection, a
work product is selected for review and a team is
gathered for an inspection meeting to review the work
product.
The goal of the inspection is to identify defects.
14. Code Inspection(continued…)
The stages in the inspections process are:
Planning: The inspection is planned by the moderator.
Overview meeting: The author describes the background of the work product.
Preparation: Each inspector examines the work product to identify possible
defects.
Inspection meeting: During this meeting the reader reads through the work
product, part by part and the inspectors point out the defects for every part.
Rework: The author makes changes to the work product according to the
action plans from the inspection meeting.
Follow-up: The changes by the author are checked to make sure everything is
correct.
The process is ended by the moderator when it satisfies some predefined exit
criteria.
15. Unit Testing
Objectives
The primary goal of unit testing is to take the smallest
module of testable software, and running it in isolation by
using prepared test cases and comparing with the actual
result to test the interfaces between modules.
When
After modules are coded
Who
Developer/programmer
Methods
o White Box testing techniques
16. What are Stubs, Drivers ?
A stub is a computer program which is used as a
substitute for the body of a software module or a dummy
module which simulates the function of a module called
by a given module under test.
Driver a module which transmits test cases in the form of
input arguments to the given module under test and
either prints or interprets the results produced by it.
17. Integration Testing
Objectives
To technically verify proper interfacing between modules,
and within sub-systems that satisfy functional
requirement.
When
After modules are unit tested
Who
Developers/Programmer
Methods
o White Box techniques
o Black Box techniques
20. Bottom Up Integration testing
Test
Drivers
Level N
Level N-1 Level N-1
Level NLevel N
Test
Drivers
Test
Drivers
Test
Drivers
Test
Drivers
21. Regression Testing
Objectives
o It is used to checks faults, defects propagated to other
modules by changes made to existing program.
o This testing is used to reduce the side effects of changes.
o Testing is done by re-executing the previous versions of
the application.
Who
Programmers or independent testers
22. Black Box Testing
In the black-box testing approach, test cases are designed
using only the functional specification of the software, i.e.
without any knowledge of the internal structure of the
software.
It explains the process of giving the input to the system
and checking the output, without considering how the
system generates the output. It is also known as
Behavioral Testing.
It attempts to find error in the external behavior of the
code.
23. System Testing
Objectives
The goal of system testing is not to find out faults but to
demonstrate performance.
What
The system testing is actually a series of different tests ,
primary purpose of which is to fully exercise the system.
All work to verify that all system elements have been properly
integrated and perform allocated functions.
When
After Integration Testing
Who
Development Team
24. Acceptance Testing
Objectives
To verify that the system meets the user requirements.
It is the system testing performed by the customer him/herself
after the product delivery to determine whether to accept or
reject the delivered product.
When
After System Testing
Who
Users / End Users
Methods
o Black Box techniques
25. Alpha Testing
It is a testing in which the version of complete software is
tested by the customer under the supervision of
developer.
This testing is performed at the developer's site in a
control environment under the guidance of a developer.
26. Beta Testing
It is a testing in which software is tested by a customer
without the developer being present.
This testing is performing at the customer's site.
Customer records the problems and reports it to the
developer then the developer makes appropriate
modifications.