What is software testing and
its types
Testing
► Testing
is the process of executing a
program with the intention of finding
errors
Software testing
► Software testing is a process that should
be done during the development
process. In other words software testing
is a verification and validation process.
What is Verification?
► Verification
is the process to make
sure the product satisfies the
conditions imposed at the start of the
development phase.
► to
make sure the product behaves the
way we want it to.
What is Validation?
► Validation
is the process to make sure
the product satisfies the specified
requirements at the end of the
development phase.
► tomake sure the product is built
as per customer requirements.
Purpose of Software
Testing
► Testing verifies that the system meets
the different requirements including,
functional, performance, reliability,
security, usability and so on. This
verification is done to
ensure that we are building the
system right.
Method of Testing
Black Box Testing
► The method in which internal structure
of the product is not known to the
tester.
► Also Called blind testing or closed box
system .
► The tester does not have access to
the source code.
Some more about black
testing
► The term black box is used because we
do not look inside the application
technical working
► Programming knowledge is not required
for it.
► Input and output are tested and
checked against the expected outputs.
► Programming knowledge is not required
White box testing
► The method in which internal structure of
the product is known to developer.
► Also called glass testing or open box testing
► The term white box is used because we can
look inside the application technical
working
► Developer test the application in white box
testing
► Internal functionality is tested here.
► Programming knowledge is required here
Grey Box testing
► Grey box testing is defined as another
derived method of testing in which both
techniques of white box and black box
testing are applied.
► In another words grey box testing is a
method in which basically the test
engineer will be performing black box
testing on functionality but having internal
structure knowledge in terms of program
or design or environment
Level of testing
Functional Testing
► Functional testing is the testing to
ensure that the specified functionality
required in the system requirements
works.
► It is not concerned about the
source code of the application
► What do you test in Functional Testing?
► Theprime objective of Functional testing is
checking the functionalities of the software
system.
Mainline functions: Testing the main
functions of an application
Basic Usability: It involves basic usability
testing of the system. It checks whether an
user can freely navigate through the screens
without any difficulties.
► Accessibility:Checks the accessibility
of the system for the user
► ErrorConditions: Usage of testing
techniques to check for error
conditions. It checks whether suitable
error messages are displayed
Functional Testing
Unit testing
► Testing of individual software components
or modules. typically done by the
programmer not by the testers, as it
requires detail knowledge of the internal
program design and code.
► A unit is a small testable part of an
application like function/ procedure,
classes, interface.
► Unit tests are typically written and run by
software developers to ensure that code
meets its design and behave as intended.
Integration Testing
► Integration testing is the phase in
which individual software modules are
combined and tested as a group to
make verify integrated system is ready
for system testing.
► It occurs after unit testing and before
validation testing
► Integration testing is done by a specific
integration tester or test team
► Also, the interaction between software
and hardware is tested in integration
testing if software and hardware
components have any relation
► Goal of Integration Testing
► To discover faults that are due to
incorrect interaction Between different
software module
System testing
► System Testing tests the system as a
whole. Black box type testing that is
based on overall requirement
specification, covers all combined
parts of a system
► Once all the components are
integrated, the application as a whole
is tested rigorously to see that it
meets Quality Standards.
Regression Testing
► The addition of a new module as a part
of integration testing may cause
problems with the functions that
previously worked flawlessly.
► What is it
► The re-execution of some subset of test
cases that have already been conducted
to ensure that changes/additions do not
create new side effects
► How is it done
► Regression testing may be
Manual/Automated
Capture
►
/playback tools
► These tools enable the SW engineer to
capture the test cases and their results
for subsequent playback and comparison
► What test is conducted
► Examine the functionality of all
modules
► Focus on functionality that is most
likely to get affected by the newly
integrated module.
► Test only those SW component that
have changed
Acceptance testing
► Normally this type of testing is done to
verify if the system meets the customer
specified requirements.
► Conduct when software is develop for
specific customer and not for large public
► Purpose : allow customer to validate all
requirements.
► Process: customer test the SW
Feedback
modification done final SW deliver
Alpha and Beta testing
► Conduct when the product is
developed for anonymous customer
and acceptance testing is not possible.
► Carried out by customer
Alpha testing Beta testing
Done by customer at Done by customer at user’s/
developer’s site customer’s site
Conduct in a controlled Conduct in a real time
environment environment not under the
developers control
Developer present ? Developer present ?
Yes No
Carried out before the Carried out after the release
release of the product to of product to customer
customer.
Error/ failure are recorded Failure are reported
White + black box testing Black box testing
Non functional testing
Performance testing
►A testing performed to determine how a
system perform in term of responsiveness
and stability under a particular workload.
► It can also serve to investigate, measure,
validate or verify other quality attributes
of system such as speed, scalability,
reliability and resource usage
► Load testing, stress testing, soak testing
are types of performance testing
Load testing
► Itis simplest form of performance
testing. A load test is usually conducted
to understand the behaviour of the
system under a specific expected load.
► This load can be the expected
concurrent number of users on the
application performing a specific
number of transactions within the set
duration.
Stress testing
► Stress testing is normally used to
understand the upper limits of capacity
within the system. This kind of test is
done to determine the systems
robustness in term of extreme load and
helps application administrators to
determine if the system perform
sufficiently if the current load goes well
above the expected maximum
Soak testing
► Soak testing also known as endurance
testing, is usually done to determine if the
system can sustain the continuous expected
load. During soak test memory utilization is
monitored to detect potential leaks.
► But often overlooked is performance
degradation , i.e to ensure that the
throughput and/or response time after some
long period of sustained activity are as good.
► The goal is to discover how the system
behave under sustained use.
Usability testing
► User friendliness check. Application
flow tested , can new user understand
the application easily proper help
documented whenever user stuck at
any point. Basically system navigation
is checked in this testing
Security testing
► Can system be penetrated by any
hacking way. Testing how well the
system protects against unauthorized
internal or external access. Checked if
the system , database is safe from
external attacks.
Portability Testing
► Portability
Testing is the testing of
Software with intend that it should be
re-useable and can be moved from
another Software as well.