A primary purpose for
testing is to detect system failures so that defects may be
uncovered and corrected.Not all System defects are caused by
coding errors. One common source of expensive defects is
caused by requirement gaps ie unrecognized requirements, that
result in errors of omission .
Code Review:Code
review is the process of making pieces of source code
available for other developers to review, with the intention
of catching bugs and design errors before the code becomes
part of the product. There are 2 types of code
reviews,pre-commit and post-commit. Pre-commit review is a
form of code review where code is reviewed before going into
the codebase.Post-commit review is where the code is reviewed
after going into the codebase.
Walkthroughs is to
describe the process of inspecting algorithms and source code
by following paths through the algorithms or code as
determined by input conditions and choices made along the way.
The purpose of such code walkthroughs is generally to provide
assurance of the fitness for purpose of the algorithm or
code.
Dynamic
Testing:Dynamic Testing methods are
traditionally divided into black box testing and white box
testing.
Black Box testing is testing that occurs from
the viewpoint of an end user. Black box tests find bugs such
as incorrect functions, interface problems, and database
errors In order to make sure that purpose of black box testing
is met, various techniques can be used for data selection they
are Boundary value analysis , Equivalence partitioning and
All-pairs testing.
In Equivalence partitioning design documents
such as the requirement specification,Design Specification are
reviewed.Input data for each input conditions are identified
then dividedinto partitions. An input has certain ranges which
are valid and other ranges which are invalid.Invalid data does
not mean that the data is incorrect, it means that this data
lies outside of specific partition.
In Boundary value Analysis select values that
lie along the extremes. Boundary values include
minimum,maximum,just inside boundaries,just out side
boundaries, typical values and error values.
All-pairs testing or pairwise testing is a
combinatorial software testing method that, for each pair of
input parameters to a system, tests all possible discrete
combinations of those parameters.
White Box
Testing
White box testing traditionally refers to the
use of program source code as a as the basis for designing
tests and test cases.White-box testing is concerned with
testing the implementation of the program. The intent of this
testing is not to exercise all the different input or output
conditions (although that may be a by-product) but to exercise
the different programming structures and data structures used
in the program.
White box testing can be performed at various
level starting from unit to system testing Below are the types
of white box testing.
Fault Injection:fault
injection is a technique for improving the coverage of a test
by introducing faults in order to test code paths, in
particular error handling code paths, that might otherwise
rarely be followed.
API Testing :An API
(Application Programming Interface) is a collection of
software functions and procedures, called API calls, that can
be executed by other software applications. API testing is
mostly used for the system which has collection of API that
needs to be tested. The system could be system software,
application software or libraries."API testing" mean to test
the individual building blocks of a program or system.
Code Coverage: It describes
the degree to which the source code of a program has been
tested. It is a form of testing that inspects the code
directly and is therefore a form of white box testing. Two
common forms of code coverage used by testers are statement
(or line) coverage and path (or edge) coverage.
What are the Levels of testing
?
Unit Testing: Unit Testing is
primarily carried out by the developers themselves.Deals
functional correctness and the completeness of individual
program units.White box testing methods are employed.
Integration Testing:Deals
with testing when several program modules are
integrated.
Methods for Integration Testing.
Regression testing : Change
of behavior due to modification or addition is called
‘Regression’. Used to bring changes from worst to least.
Incremental Integration
Testing : Checks out for bugs which encounter when a
module has been integrated to the existing system.
Smoke Testing : Checks the
basic functionality of program. If fails then the program is
not sent for further testing.
System Testing:Deals with
testing the whole program system for its intended
purpose.
Methods for System Testing
Recovery testing : System is
forced to fail and is checked out how well the system recovers
the failure.
Security Testing : Checks the
capability of system to defend itself from hostile attack on
intruder programs and data.
Stress Testing : The system
is tested for max load and extreme stress points are figured
out.
Performance Testing : Used to
determine the processing speed.
Installation Testing :
Installation & uninstallation is checked out in the target
platform
Acceptance Testing. UAT
ensures that the System satisfies the customer requirements.
Methods in Aceeptance Testing.
Alpha Testing : It is the
test done by the client at the developer’s site.
Beta Testing : This is the
test done by the end-users at the client’s site. Long
Term Testing : Checks out for faults
occurrence in a long term usage of the product.
Compatibility Testing :
Determines how well the product is substantial to product
transition.
|