Software testing is the process of evaluation a software item to detect differences between given input and expected output. Also to assess the feature of A software item. Testing assesses the quality of the product. Software testing is a process that should be done during the development process. In other words software testing is a verification and validation process.
Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation. Test techniques include, but are not limited to the process of executing a program or application with the intent of finding software bugs (errors or other defects).
Software testing can be stated as the process of validating and verifying that a 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.
Software Development Process Cycle:-
PLAN (P): Device a plan. Define your objective and determine the strategy and supporting methods required to achieve that objective.
DO (D): Execute the plan. Create the conditions and perform the necessary training to execute the plan.
CHECK (C): Check the results. Check to determine whether work is progressing according to the plan and whether the results are obtained.
ACTION (A): Take the necessary and appropriate action if checkup reveals that the work is not being performed according to plan or not as anticipated.
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:
Testing should be based on use
requirements.
Time & resources are limited
Impossible to test everything
Use effective resources to test
Test planning should be done early.
Testing 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
26. White-box test design
techniques
Control flow testing
Data flow testing
Branch testing
Path testing
Statement coverage
Decision coverage.
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