ISTQB
ISTQB
Static Techniques
programming
Drawbacks
- Stress may arise if the author is confronted directly
- Experts involved in reviews need to attain specific product know
ledge, good preparation is necessary
- Considerable time investment (10% - 15% of the overall budget)
- Moderator / participants influence review quality directly
1. Planning phases
Organizing the review, select and supplementary information
2. Organizational preparation (and-kick-off)
Hand out of review objects and supplementary information
3. Individual preparation
Reviewers inspect objects, note item in need of clarification
4. Review meeting
Meting of review members, reviewers present their results
5. Rework
Author fixes any defects addressed by inspectors
6. Follow up
The review meeting protocol is distributed to the manager, stating object
under test, participants, roles, recommendation
• Phases of a review:
Planning- preparation – individual preparation – meeting – follow up
• Types of reviews:
Inspection – Walkthrough – Technical review – Informal review
• Method
1. Code structure is represented as a
control flow graph
2. Directed graph
a. Nodes represent statements or
sequences of statements
b. Edges represent control flow transfer,
as in decisions and loops
c. Tools based construction
Result
• easy understandable overview of program
code
• anomalies* can easily be detected, defects
stick out
• loops exited by jumps
• dead branches
• multiple returns
• a control flow graph is just a simplified version
of flow chart ?
Aim
1. To discover data flow anomalies with help of control flow
graph and sensible assumption of data flow sequences
Benefits
1. Reliable detection of data flow anomalies
2. Exact locating of errors can be determined easily
3. A good supplement for other testing methods
Drawbacks
1. Limited to a narrow range of error types
For this example the values of The data flow analysis shows: This example can be
two variables are exchanged -Variable Help is still corrected easily:
via an auxiliary variable, if undefined when it gets
they are not stored by value. referenced: ur- anomaly
void minMax (int Min, int void minMax ( int Min, int
Max) { -Variable Max gets defined Max){
int Help: twice without any reference int Help:
If (Min > Max) { in between: dd-anomaly If (Min > Max) {
Max = Help; Help = Max;
Max = Min; - Defined value for Help gets Max = Min;
Help = Min; undefined (program ends) Min = Help;
} without reference: du- }
End minMax anomaly End minMax
} }
2
3
2
3 4 7
5
4 6
8
5 6 7 8 9
20 11
17 9
16
15 12
10 10
11
13 12
18
13
14
14
19
15
Cyclomatic Complexity
1 program part : p = 1
15 nodes : n = 15
20 edges : e = 20
Analysis results
• The control flow diagram shows the program flow and
allows for the detection of “dead branches” and
unreachable code
• Data anomalies are found using data flow analysis
• Metrics can be used to access the structural complexity,
leading to an estimation of testing efforts to expect