Unit 4 - Domain Testing
Unit 4 - Domain Testing
Domain Testing U3
• Domain Testing
• Domains
• Model, as a set, paths
• Predicates
• closure, dimensionality, assumptions
• Nice & ugly domains
• specified & implemented domains
• Nice domains – properties, testing implications
• Ugly domains, simplification by programmers & testers
• Domain testing
• Bugs & testing for those bugs
• Testing procedure
• Variations, tools, effectiveness
• Domains & Interface Testing
• Range, closure, span
• Interface range, domain compatibility
• Finding the values
• Domains & Testability
• Linearizing, coordinate transformations.
ref borisCanonical
beizer program form 3
Domain Testing - Domains & Paths U3
D1
D2
(x,y,z,…) Dn { Outcome }
DO CASE 2
DO CASE 3
DO CASE n
4
Domain Testing U3
Domain Testing
5
Domain Testing - Domains & Paths U3
Two Views
• Based on Specs
• Structural Technique
6
Domain Testing - Domains & Paths U3
• Variables
• Simple combinations of two variables
• Numbers from - to +
• Loop-free Programs
7
Domain Testing - Domains & Paths U3
8
Domain Testing - Domains & Paths U3
Domain (simplified)
9
Domain Testing - Domains & Paths U3
Predicates
• Interpretation
Paths
Summary:
Closed
Closed Open
MIN MAX
13
Domain Testing - Domains & Paths - Domain Closure
Boundary: Closed / Open
MAX
MIN
D2 D3
D1
14
Domain Testing - Domains & Paths - Domain Dimensionality U3
• Slicing Boundary
• Double-zero representation
defined
17
• Ambiguous domains
undefined
Domain Testing - Domains & Paths – Bug Assumptions.. U3
• Over-specified domains
X > 3 .AND. X < 2 .AND. Y > 3
• Boundary errors
18
Shifted
Domain Testing - Domains & Paths - Bug Assumptions U3
• Boundary errors….
Tilted
19
Extra boundary
Domain Testing - Domains & Paths - Bug Assumptions U3
X >= 3
• Closure Reversal
In General…
1. Coincidental Correctness
DT cannot detect
D1
• Representative outcome
Partition testing D2
F2(x) : -1 22
Input Equivalence
Domain Testing - Domains & Paths U3
D2
(x, y, z, …) { Outcome }
DO CASE 2
D3
DO CASE 3 f3
Dn
f4
DO CASE n
23
Domain Testing - Domains & Paths - - Restrictions U3
D1
0 16
24
Domain Testing - Domains & Paths - - Restrictions U3
Compound predicates….
• Impact of .OR.
• Concave, Disconnected
• Example
ABC + DEF
25
• Eliminate compound predicates
Domain Testing - Domains & Paths - Restrictions U3
26
Domain Testing - Domains & Paths - - Restrictions U3
• Polynomials
6. Loop-free Software
Definite loop
28
Domain Testing - Domains & Paths – Nice & Ugly domains U3
Nice Domains
Requirements
• Analyze specs
29
• Make the Boundary Specs Consistent & Complete
Domain Testing - Domains & Paths – Nice domains U3
Implemented Domains
• Incomplete, Inconsistent
30
Programmer’s / Designer’s Effort
Domain Testing - Domains & Paths – Nice domains U3
Nice Domains
U1 U2
V2 D21 D22
31
Domain Testing - Domains & Paths – Nice domains U3
Nice Domains
Advantages
32
Domain Testing - Domains & Paths – Nice domains U3
Nice Domains
Boundaries are
5. Closure consistency
1.Linear
1.Linear Boundaries
n-dim Hyperplane:
Non-Linear
34
• Transform
Domain Testing - Domains & Paths – Nice domains U3
2.Complete Boundaries
• Reasons
35
• Tests
Domain Testing - Domains & Paths - Nice domains U3
3. Systematic Boundaries
• DT
• Test a domain Tests for other Domains 36
Domain Testing - Domains & Paths - Nice domains U3
4. Orthogonal Boundaries
• Parallel to axes
• DT
• # Tests O (n) 37
Domain Testing - Domains & Paths - Nice domains U3
Orthogonal Boundaries
• Tilted sets
• transformation
• Test cases: O(n)
• Rectangular coordinates
• Polar
r ≥ aj .AND. r < aj+1 .AND.
38
≥ j .AND. < j+1
Domain Testing - Domains & Paths - Nice domains U3
Non-Orthogonal Boundaries
5. Closure Consistency
• Example
40
Domain Testing - Domains & Paths - Nice domains U3
6. Convex Domain
• DT
• n on-points & 1 off-pt
• In a single piece D2 D1 D3
D2
D1
• Programmer / Designer
42
• Convex part First
Domain Testing - Domains & Paths – Ugly Domains U3
Generally,
43
Domain Testing - Domains & Paths – Ugly Domains U3
Causes
1. Non-linear Boundaries
44
4. Rectifying boundary closures
Domain Testing - Domains & Paths – Ugly Domains U3
1. Non-linear Boundaries
• Transform
2. Ambiguities
• Missing boundary
46
Domain Testing - Domains & Paths – Ugly Domains U3
2. Contradictions..
• Overlapping of
• Domain Specs
D3
D1 D2
47
Domain Testing - Domains & Paths – Ugly Domains U3
• Complexity !
48
Domain Testing - Domains & Paths – Ugly Domains U3
49
Domain Testing - Domains & Paths – Ugly Domains U3
General DT Strategy
Generally,
• Interior point
• Epsilon neighborhood
• Extreme point
• On point 53
Domain Testing - Domains & Paths – Domain Testing U3
Extreme
point
Epsilon neighborhood
On Points
54
Domain D1
Domain Testing - Domains & Paths – Domain Testing U3
1. 1-d Domains
2. 2-d Domains
4. Random Testing
55
5. Testing n-dimensional Domains
Domain Testing - Domains & Paths – Domain Testing U3
B A B A
Closure Bug
x x
B A
Shift Right Bug
x x1
56
Domain Testing - Domains & Paths – Domain Testing U3
B A B A
Missing Boundary x
x x
• Closure bug
• Extra Boundary
• Missing Boundary
58
Domain Testing - Domains & Paths – Domain Testing U3
a
A
To avoid bugs
60
Domain Testing - Domains & Paths – Domain Testing U3
4. Random Testing
63
Domain Testing - Domains & Paths – Domain Testing U3
Procedure
Effectiveness
• Cost effective
65
Domain Testing - Domains & Paths – Domain Testing U3
• Domain
• Range
66
Domain Testing - Domains & Paths – Domain Testing U3
Variable
Range for Domain for Range for
Routine 1 Routine1
Routine 2 Routine2
Domain Routine2
67
Domain Testing - Domains & Paths – Domain Testing U3
• Closure compatibility
69
Domain Testing - Domains & Paths – Domain Testing U3
• Linearizing transformations
• Polynomial
• Rectangular to polar
71
Domain Testing - Domains & Paths – Domain Testing U3
• Co-ordinate transformations