Software
testing is a critical element of software quality assurance and represents the
ultimate review of specification, designing and coding.
TESTING OBJECTIVES:
·
Testing is the process
of executing a program with the intent of finding an error.
·
A good test case
design is one that has a probability of finding a yet undiscovered error.
·
A successful test
is one that uncovers an as yet undiscovered error.
These
above objectives imply a dramatic change in view port. Testing cannot show the
absence of defects, it can only show the software errors are present.
TEST
CASE DESIGN:
Any
engineering product can be tested in one of two ways:
Levels of testing
Client Needs
|
Acceptance Testing
|
Requirements
|
System Testing
|
Design
|
Integration Testing
|
Code
|
Unit Testing
|
1. White Box Testing: This testing is also
called as glass box testing. In this testing, by knowing the specified function
that a product has been designed to perform, test can be conducted that
demonstrates each function is fully operation at the same time searching for
errors in each function. It is a test case design method that uses the control
structure of the procedural design to derive test cases. Basis path testing is
a white box testing. Basis Path Testing:
·
Flow graph
notation
·
Cyclomatic
Complexity
·
Deriving test
cases
·
Graph matrices
Control
Structure Testing:
·
Condition testing
·
Data flow testing
·
Loop testing
2. Black Box Testing: In this testing by knowing the internal operation of
a product, tests can be conducted to ensure that “all gears mesh”, that is the
internal operation performs according to specification and all internal
components have been adequately exercised. It fundamentally focuses on the
functional requirements of the software. The steps involved in black box test
case design are:
·
Graph based
testing methods
·
Equivalence
partitioning
·
Boundary value
analysis
·
Comparison
testing
SOFTWARE TESTING STRATEGIES:
A
software testing strategy provides a road map for the software developer.
Testing is a set of activities that can be planned in advance and conducted
systematically. For this reason a template for software testing a set of steps
into which we can place specific test case design methods should be defined for
software engineering process. Any software testing strategy should have the
following characteristics:
1. Testing begins at the module level and works
“outward” toward the integration of the entire computer based system.
2. Different testing techniques are appropriate at
different points in time.
3. The developer of the software and an independent
test group conducts testing.
4.
Testing and Debugging are different activities but debugging must be
accommodated in any testing strategy.
TEST
PLAN
The
Software Test Plan (STP) is designed to prescribe the scope, approach,
resources, and schedule of all testing activities. The plan will identify items
to be tested, the features to be tested, the types of testing to be performed,
the personnel responsible for testing, the resources and schedule required to
complete testing. The purpose of the software test plan is such as:
·
To achieve the
correct code and ensure all Functional and Design
·
Requirements are
implemented as specified in the documentation.
·
To provide a
procedure for Unit and System Testing.
·
To identify the
test methods for Unit and System Testing.