This presentation provides an overview of different types of software testing, including unit testing, integration testing, system testing, acceptance testing, black-box testing, and white-box testing. It discusses the principles and goals of testing at each level. Key points covered include how unit testing validates individual components, integration testing exposes faults in component interaction, system testing evaluates compliance of the full system, and acceptance testing assesses if requirements are met before user delivery. Black-box and white-box testing approaches are also summarized.
2. Project Overview
Introduction
Good testing process
Principle of software testing
Myths of software testing
Levels of Testing
Black-box testing
white-box testing
Alpha testing
Beta testing
3. INTRODUCTION
“Testing is the process of executing a
program with the intention of finding
errors.” – Myers
“Testing can show the presence of bugs
but never their absence.” – Dijkstra
4. Software testing can be stated as the
process of validating and verifying that
computer program/application/product:
🞅meets the requirements that guided
its design and development,
🞅works as expected,
🞅can be implemented with the same
characteristics,
🞅and satisfies the needs of
stakeholders.
5. Good Testing
Practices
A good test case is one that has a
high probability of detecting an
undiscovered defect, not one that
shows that the program works
correctly
It is impossible to test your own
program
A necessary part of every test case
is a description of the expected
result
6. Avoid non-reproducible or on-the-fly
testing
Write test cases for valid as well as
invalid input conditions.
Thoroughly inspect the results of
each test
As the number of detected defects
in a piece of software increases, the
probability of the existence of more
undetected defects also increases
7. Assign your best people to testing
Ensure that testability is a key
objective in your software design
Never alter the program to make
testing easier
Testing, like almost every other
activity, must start with objectives
8. Principle of software
testing:
🞅T
esting should be based on use
requirements.
🞅Time & resources are limited
🞅Impossible to test everything
🞅Use effective resources to test
🞅T
est planning should be done early.
🞅T
esting should begin at module
🞅Done by an independent party
🞅Keep s/w static during test
🞅Documents test case and result
9. Testing Myths
Testing is time consuming.
Testing is too expensive.
Testing cannot be started if the product is
not fully developed.
Complete Testing is Possible.
Missed defects are due to Testers.
Testers should be responsible for the
quality of a product
Any one can test a Software application.
A tester’s task is only to find bugs.
11. Unit Testing:-
Unit Testing is a level of the
software testing process where
individual units/components of a
software/system are tested. The
purpose is to validate that each
unit of the software performs as
designed.
12. A good unit test is:
🞅 Able to be fully automated
🞅 Has full control over all the pieces running (Use mocks
or stubs to achieve this isolation when needed)
🞅 Can be run in any order if part of many other tests
🞅 Runs in memory (no DB or File access, for example)
🞅 Consistently returns the same result (You always run the
same test, so no random numbers, for example. save
those for integration or range tests)
🞅 Runs fast
🞅 Tests a single logical concept in the system
🞅 Readable
🞅 Maintainable
🞅 Trustworthy (when you see its result, you don’t need to
debug the code just to be sure)
13. Benefits of Unit testing:-
Find problems early
Facilitates change
Simplifies integration
Documentation
Design
14. Integration testing:-
Integration Testing is a level of
the software testing process
where individual units are
combined and tested as a group.
The purpose of this level of
testing is to expose faults in the
interaction between integrated
units.
16. 1. Big Bang
Big Bang Integration testing approach used to
find the bugs when all the developed modules
are interacted with each other and create a
complete software system then its produced
result satisfying with original requirement.
2. Top down
In Top down integrated testing approach, all
Top level integrated modules are tested first and
its sub modules tested from top to down step by
step.
3. Bottom up
In Bottom up integrated testing approach, all
bottom (Sub Modules) level integrated sub
modules are tested first and its main modules
tested from bottom to up step by step.
17. Why Integration Testing Is
Necessary:-
🞅 One module can have an adverse effect on another
🞅 Sub-functions, when combined, may not produce
the desired major function
🞅 Individually acceptable imprecision in calculations
may be magnified to unacceptable levels
🞅 Interfacing errors not detected in unit testing may
appear
🞅 Timing problems (in real-time systems) are not
detectable by unit testing
🞅 Resource contention problems are not detectable
by unit testing
18. System Testing:-
with the specified
requiremeSystem Testing is a
level of the software testing
process where a complete,
integrated system/software is
tested. The purpose of this test is
to evaluate the system’s
compliance nts
19. Why system testing
is important:
🞅the first level of testing where the
System is tested as a whole.
🞅check if system meets functional
requirement or not.
🞅validate and verify both the
Application Architecture and
Business requirements
20. Acceptance
Testing:-
Acceptance Testing is a level of
the software testing process
where a system is tested for
acceptability. The purpose of this
test is to evaluate the system’s
compliance with the business
requirements and assess whether
it is acceptable for delivery.
21. Why acceptance
testing requires:-
In acceptance test, tester goes through the
application and verifies its each and every
functionality with requirement documents.
Acceptance testing is final testing and is
performed before the delivery of application
or software to end user for use. Its main
purpose is to find the bugs but to get the
confidence of end users requirements are
fulfilled or not. Acceptance test is the last
phase of STLC. After that, maintenance
testing is performed on software or
application if required.
23. Methods of Black
box Testing
1. Graph Based Testing
Methods
2. Error Guessing
3. Boundary Value Analysis
24. White-box testing
White-box testing (also known
as clear box testing, glass box
testing, transparent box
testing, and structural
testing) is a method of
testing software that tests
internal structures or workings of
an application, as opposed to its
functionality (i.e. black-box
testing).
25. Three basic steps that white-
box testing:-
i. Input
ii. Processing Unit
iii. Output
27. Advantages:-
I. Side effects of having the
knowledge of the source code.
II. Optimization of code by revealing
hidden errors and being able to
remove these possible defects.
III.Gives the programmer
introspection
28. Disadvantages:-
🞅White-box testing brings complexity
🞅it is not realistic to be able to test
every single existing condition of the
application and some conditions will
be untested
29. Alpha testing
Testing done when development
is nearing completion; minor
design changes may still be made
as a result of such testing.
30. Beta Testing
Testing when development
and testing are essentially
completed and final bugs and
problems need to be found
before release