Software Testing
•
Testing is a process of
executing a
Types of Testing
• Manual Testing
Manual Testing
• Manual testing is the process of manually
testing software for defects.
• It requires a tester to play the role of an end
Drawbacks of Manual Testing
• Time consuming.
• More resources required. • Human Errors
• Repetition of the Task • Tiredness
• Simultaneous auctions are not possible
Automation Testing
• Automation testing is an Automatic technique
where the tester writes scripts by own and uses suitable software to test the software.
• Automation testing uses automation tools to
write and execute test cases, no manual
Validation
&
Validation
• The process of evaluating the final product to
check whether the software meets the customer expectations and requirements.
• Validation: "Is the right software being
Verification
• Verification is the process of confirming if the
software is meeting the business requirements.
• Verification: ”Is the software being developed in
Black-box testing
&
Black-box testing
• It is carried out to test functionality of the
program.
• It is also called ‘Behavioral’ testing.
• if the output matches with the desired results,
Black-box testing
•
In this testing method,
the design
White-box testing
• It is conducted to test program and its
implementation, in order to improve code
efficiency or structure.
• It is also known as ‘Structural’ testing.
• In this testing method, the design and
Organizing for software testing
or
Software
testing strategy
• The ITG is part of the software development
project team in the sense that it becomes
Unit Testing
• It begins at the vortex of the spiral and
concentrates on each unit of the software as implemented in source code.
• It falls under the class of white box testing.
• It is often done by the programmer to test that
Integration testing
• Integration testing is a testing in which a group of components
are combined to produce output.
• Also, the interaction between software and hardware is tested
in integration testing if software and hardware components have any relation.
• It may fall under both white box testing and black box testing.
• In integration testing the focus is on design and the
Validation Testing
• Validation testing where requirements established
as part of software requirements analysis are
validated against the software that has been constructed.
• Validation testing provides final assurance that
software needs all functional, behavioral and performance requirements.
• Black-box testing techniques are used exclusively
System Testing
• System Testing is a black box testing technique
performed to evaluate the complete system against specified requirements.
• In System testing, the functionalities of the
Path Testing
• In software testing, there are many paths
between the entry and exit of a software program.
• The method was first proposed by McCabe in
1980's.
• Path testing is designed to execute all or
Below are the steps of this technique:
• Draw a control flow graph.
• Determine Cyclomatic complexity. • Find a basis set of paths.
Step 1: Draw a control flow graph
On a control flow graph, we can see that:
Arrows or edges represent flows of
control.
Circles or nodes represent actions. Areas bounded by edges and nodes are called regions.
Step 2: Determine Cyclomatic complexity
• Cyclomatic complexity is a software metric
used to indicate the complexity of a program.
• There are several different methods to
1. Cyclomatic complexity =
edges - nodes + 2p
2. Cyclomatic complexity= Number of
Predicate Nodes + 1
3. Cyclomatic complexity =number of regions
in the control flow graph
Step 3: Find a basis set of paths
• The Cyclomatic complexity tells us the number
In the example, we
have 3 paths,
and our basis set of
paths is:
Path 1
: 1, 2, 3, 5, 6, 7.
Path 2
: 1, 2, 4, 5, 6, 7.
Step 4: Generate test cases for each path
• After determining the basis set of path, we can
generate the test case for each path.
• Usually we need at least one test case to cover
one path.
• In the example, however, Path 3 is already
Graph matrix:
• Graph matrix is used to develop software tool that in
turn helps in carrying 'out basis path testing.
• It is defined as a data structure used to represent the
flow graph of a program in a tabular form.
• This matrix is also used to evaluate the control structures present in the program during testing.
• Graph matrix is a square matrix of the size NxN,