Home Page Icon
Home Page
Table of Contents for
Software Testing
Close
Software Testing
by Fairouz Tchier, Ali Mili
Software Testing: Concepts and Operations
Cover
Title page
Preface
ACKNOWLEDGMENT
Part I: Introduction to Software Testing
1 Software Engineering: A Discipline Like No Other
1.1 A YOUNG, RESTLESS DISCIPLINE
1.2 AN INDUSTRY UNDER STRESS
1.3 LARGE, COMPLEX PRODUCTS
1.4 EXPENSIVE PRODUCTS
1.5 ABSENCE OF REUSE PRACTICE
1.6 FAULT-PRONE DESIGNS
1.7 PARADOXICAL ECONOMICS
1.8 CHAPTER SUMMARY
1.9 BIBLIOGRAPHIC NOTES
2 Software Quality Attributes
2.1 FUNCTIONAL ATTRIBUTES
2.2 OPERATIONAL ATTRIBUTES
2.3 USABILITY ATTRIBUTES
2.4 BUSINESS ATTRIBUTES
2.5 STRUCTURAL ATTRIBUTES
2.6 CHAPTER SUMMARY
2.7 EXERCISES
2.8 BIBLIOGRAPHIC NOTES
3 A Software Testing Lifecycle
3.1 A SOFTWARE ENGINEERING LIFECYCLE
3.2 A SOFTWARE TESTING LIFECYCLE
3.3 THE V-MODEL OF SOFTWARE TESTING
3.4 CHAPTER SUMMARY
3.5 BIBLIOGRAPHIC NOTES
Part II: Foundations of Software Testing
4 Software Specifications
4.1 PRINCIPLES OF SOUND SPECIFICATION
4.2 RELATIONAL MATHEMATICS
4.3 SIMPLE INPUT OUTPUT PROGRAMS
4.4 RELIABILITY VERSUS SAFETY
4.5 STATE-BASED SYSTEMS
4.6 CHAPTER SUMMARY
4.7 EXERCISES
4.8 PROBLEMS
4.9 BIBLIOGRAPHIC NOTES
5 Program Correctness and Verification
5.1 CORRECTNESS: A DEFINITION
5.2 CORRECTNESS: PROPOSITIONS
5.3 VERIFICATION
5.4 CHAPTER SUMMARY
5.5 EXERCISES
5.6 PROBLEMS
5.7 BIBLIOGRAPHIC NOTES
6 Failures, Errors, and Faults
6.1 FAILURE, ERROR, AND FAULT
6.2 FAULTS AND RELATIVE CORRECTNESS
6.3 CONTINGENT FAULTS AND DEFINITE FAULTS
6.4 FAULT MANAGEMENT
6.5 CHAPTER SUMMARY
6.6 EXERCISES
6.7 PROBLEMS
6.8 BIBLIOGRAPHIC NOTES
7 A Software Testing Taxonomy
7.1 THE TROUBLE WITH HYPHENATED TESTING
7.2 A CLASSIFICATION SCHEME
7.3 TESTING TAXONOMY
7.4 EXERCISES
7.5 BIBLIOGRAPHIC NOTES
Part III: Test Data Generation
8 Test Generation Concepts
8.1 TEST GENERATION AND TARGET ATTRIBUTES
8.2 TEST OUTCOMES
8.3 TEST GENERATION REQUIREMENTS
8.4 TEST GENERATION CRITERIA
8.5 EMPIRICAL ADEQUACY ASSESSMENT
8.6 CHAPTER SUMMARY
8.7 EXERCISES
8.8 BIBLIOGRAPHIC NOTES
8.9 APPENDIX: MUTATION PROGRAM
9 Functional Criteria
9.1 DOMAIN PARTITIONING
9.2 TEST DATA GENERATION FROM TABULAR EXPRESSIONS
9.3 TEST GENERATION FOR STATE BASED SYSTEMS
9.4 RANDOM TEST DATA GENERATION
9.5 TOURISM AS A METAPHOR FOR TEST DATA SELECTION
9.6 CHAPTER SUMMARY
9.7 EXERCISES
9.8 BIBLIOGRAPHIC NOTES
10 Structural Criteria
10.1 PATHS AND PATH CONDITIONS
10.2 CONTROL FLOW COVERAGE
10.3 DATA FLOW COVERAGE
10.4 FAULT-BASED TEST GENERATION
10.5 CHAPTER SUMMARY
10.6 EXERCISES
10.7 BIBLIOGRAPHIC NOTES
Part IV: Test Deployment and Analysis
11 Test Oracle Design
11.1 DILEMMAS OF ORACLE DESIGN
11.2 FROM SPECIFICATIONS TO ORACLES
11.3 ORACLES FOR STATE-BASED PRODUCTS
11.4 CHAPTER SUMMARY
11.5 EXERCISES
12 Test Driver Design
12.1 SELECTING A SPECIFICATION
12.2 SELECTING A PROCESS
12.3 SELECTING A SPECIFICATION MODEL
12.4 TESTING BY SYMBOLIC EXECUTION
12.5 CHAPTER SUMMARY
12.6 EXERCISES
12.7 BIBLIOGRAPHIC NOTES
13 Test Outcome Analysis
13.1 LOGICAL CLAIMS
13.2 STOCHASTIC CLAIMS: FAULT DENSITY
13.3 STOCHASTIC CLAIMS: FAILURE PROBABILITY
13.4 CHAPTER SUMMARY
13.5 EXERCISES
13.6 PROBLEMS
13.7 BIBLIOGRAPHIC NOTES
Part V: Management of Software Testing
14 Metrics for Software Testing
14.1 FAULT PRONENESS
14.2 FAULT DETECTABILITY
14.3 ERROR DETECTABILITY
14.4 ERROR MASKABILITY
14.5 FAILURE AVOIDANCE
14.6 FAILURE TOLERANCE
14.7 AN ILLUSTRATIVE EXAMPLE
14.8 CHAPTER SUMMARY
14.9 EXERCISES
14.10 BIBLIOGRAPHIC NOTES
15 Software Testing Tools
15.1 A CLASSIFICATION SCHEME
15.2 SCRIPTING TOOLS
15.3 RECORD-AND-REPLAY TOOLS
15.4 PERFORMANCE-TESTING TOOLS
15.5 ORACLE DESIGN TOOLS
15.6 EXCEPTION DISCOVERY
15.7 COLLABORATIVE TOOLS
15.8 CHAPTER SUMMARY
16 Testing Product Lines
16.1 PLE: A STREAMLINED REUSE MODEL
16.2 TESTING ISSUES
16.3 TESTING APPROACHES
16.4 ILLUSTRATION
16.5 CHAPTER SUMMARY
16.6 EXERCISES
16.7 PROBLEMS
16.8 BIBLIOGRAPHIC REFERENCES
Bibliography
Index
End User License Agreement
Search in book...
Toggle Font Controls
Playlists
Add To
Create new playlist
Name your new playlist
Playlist description (optional)
Cancel
Create playlist
Sign In
Email address
Password
Forgot Password?
Create account
Login
or
Continue with Facebook
Continue with Google
Sign Up
Full Name
Email address
Confirm Email Address
Password
Login
Create account
or
Continue with Facebook
Continue with Google
Prev
Previous Chapter
Cover
Next
Next Chapter
Software Testing
CONTENTS
Cover
Title page
Preface
ACKNOWLEDGMENT
Part I: Introduction to Software Testing
1 Software Engineering: A Discipline Like No Other
1.1 A YOUNG, RESTLESS DISCIPLINE
1.2 AN INDUSTRY UNDER STRESS
1.3 LARGE, COMPLEX PRODUCTS
1.4 EXPENSIVE PRODUCTS
1.5 ABSENCE OF REUSE PRACTICE
1.6 FAULT-PRONE DESIGNS
1.7 PARADOXICAL ECONOMICS
1.8 CHAPTER SUMMARY
1.9 BIBLIOGRAPHIC NOTES
2 Software Quality Attributes
2.1 FUNCTIONAL ATTRIBUTES
2.2 OPERATIONAL ATTRIBUTES
2.3 USABILITY ATTRIBUTES
2.4 BUSINESS ATTRIBUTES
2.5 STRUCTURAL ATTRIBUTES
2.6 CHAPTER SUMMARY
2.7 EXERCISES
2.8 BIBLIOGRAPHIC NOTES
3 A Software Testing Lifecycle
3.1 A SOFTWARE ENGINEERING LIFECYCLE
3.2 A SOFTWARE TESTING LIFECYCLE
3.3 THE V-MODEL OF SOFTWARE TESTING
3.4 CHAPTER SUMMARY
3.5 BIBLIOGRAPHIC NOTES
Part II: Foundations of Software Testing
4 Software Specifications
4.1 PRINCIPLES OF SOUND SPECIFICATION
4.2 RELATIONAL MATHEMATICS
4.3 SIMPLE INPUT OUTPUT PROGRAMS
4.4 RELIABILITY VERSUS SAFETY
4.5 STATE-BASED SYSTEMS
4.6 CHAPTER SUMMARY
4.7 EXERCISES
4.8 PROBLEMS
4.9 BIBLIOGRAPHIC NOTES
5 Program Correctness and Verification
5.1 CORRECTNESS: A DEFINITION
5.2 CORRECTNESS: PROPOSITIONS
5.3 VERIFICATION
5.4 CHAPTER SUMMARY
5.5 EXERCISES
5.6 PROBLEMS
5.7 BIBLIOGRAPHIC NOTES
6 Failures, Errors, and Faults
6.1 FAILURE, ERROR, AND FAULT
6.2 FAULTS AND RELATIVE CORRECTNESS
6.3 CONTINGENT FAULTS AND DEFINITE FAULTS
6.4 FAULT MANAGEMENT
6.5 CHAPTER SUMMARY
6.6 EXERCISES
6.7 PROBLEMS
6.8 BIBLIOGRAPHIC NOTES
7 A Software Testing Taxonomy
7.1 THE TROUBLE WITH HYPHENATED TESTING
7.2 A CLASSIFICATION SCHEME
7.3 TESTING TAXONOMY
7.4 EXERCISES
7.5 BIBLIOGRAPHIC NOTES
Part III: Test Data Generation
8 Test Generation Concepts
8.1 TEST GENERATION AND TARGET ATTRIBUTES
8.2 TEST OUTCOMES
8.3 TEST GENERATION REQUIREMENTS
8.4 TEST GENERATION CRITERIA
8.5 EMPIRICAL ADEQUACY ASSESSMENT
8.6 CHAPTER SUMMARY
8.7 EXERCISES
8.8 BIBLIOGRAPHIC NOTES
8.9 APPENDIX: MUTATION PROGRAM
9 Functional Criteria
9.1 DOMAIN PARTITIONING
9.2 TEST DATA GENERATION FROM TABULAR EXPRESSIONS
9.3 TEST GENERATION FOR STATE BASED SYSTEMS
9.4 RANDOM TEST DATA GENERATION
9.5 TOURISM AS A METAPHOR FOR TEST DATA SELECTION
9.6 CHAPTER SUMMARY
9.7 EXERCISES
9.8 BIBLIOGRAPHIC NOTES
10 Structural Criteria
10.1 PATHS AND PATH CONDITIONS
10.2 CONTROL FLOW COVERAGE
10.3 DATA FLOW COVERAGE
10.4 FAULT-BASED TEST GENERATION
10.5 CHAPTER SUMMARY
10.6 EXERCISES
10.7 BIBLIOGRAPHIC NOTES
Part IV: Test Deployment and Analysis
11 Test Oracle Design
11.1 DILEMMAS OF ORACLE DESIGN
11.2 FROM SPECIFICATIONS TO ORACLES
11.3 ORACLES FOR STATE-BASED PRODUCTS
11.4 CHAPTER SUMMARY
11.5 EXERCISES
12 Test Driver Design
12.1 SELECTING A SPECIFICATION
12.2 SELECTING A PROCESS
12.3 SELECTING A SPECIFICATION MODEL
12.4 TESTING BY SYMBOLIC EXECUTION
12.5 CHAPTER SUMMARY
12.6 EXERCISES
12.7 BIBLIOGRAPHIC NOTES
13 Test Outcome Analysis
13.1 LOGICAL CLAIMS
13.2 STOCHASTIC CLAIMS: FAULT DENSITY
13.3 STOCHASTIC CLAIMS: FAILURE PROBABILITY
13.4 CHAPTER SUMMARY
13.5 EXERCISES
13.6 PROBLEMS
13.7 BIBLIOGRAPHIC NOTES
Part V: Management of Software Testing
14 Metrics for Software Testing
14.1 FAULT PRONENESS
14.2 FAULT DETECTABILITY
14.3 ERROR DETECTABILITY
14.4 ERROR MASKABILITY
14.5 FAILURE AVOIDANCE
14.6 FAILURE TOLERANCE
14.7 AN ILLUSTRATIVE EXAMPLE
14.8 CHAPTER SUMMARY
14.9 EXERCISES
14.10 BIBLIOGRAPHIC NOTES
15 Software Testing Tools
15.1 A CLASSIFICATION SCHEME
15.2 SCRIPTING TOOLS
15.3 RECORD-AND-REPLAY TOOLS
15.4 PERFORMANCE-TESTING TOOLS
15.5 ORACLE DESIGN TOOLS
15.6 EXCEPTION DISCOVERY
15.7 COLLABORATIVE TOOLS
15.8 CHAPTER SUMMARY
16 Testing Product Lines
16.1 PLE: A STREAMLINED REUSE MODEL
16.2 TESTING ISSUES
16.3 TESTING APPROACHES
16.4 ILLUSTRATION
16.5 CHAPTER SUMMARY
16.6 EXERCISES
16.7 PROBLEMS
16.8 BIBLIOGRAPHIC REFERENCES
Bibliography
Index
End User License Agreement
List of Tables
Chapter 01
Table 1.1 Lifecycle cost distribution: design versus manufacturing
Table 1.2 Lifecycle cost distribution: development versus testing
Table 1.3 Maintenance cost distribution: corrective versus adaptive
Table 1.4 Corrective maintenance cost distribution: design versus wear and tear
List of Illustrations
Chapter 01
Figure 1.1 Diseconomies of scale in software engineering.
Chapter 03
Figure 3.1 A reference software lifecycle.
Figure 3.2 Verification and validation.
Figure 3.3 A generic testing lifecycle.
Figure 3.4 The V-model of software testing.
Chapter 04
Figure 4.1 Special relations.
Figure 4.2 Complement and inverse.
Figure 4.3 Relational representation of sets.
Figure 4.4 Relational product.
Figure 4.5 Multiplying with universal relation.
Figure 4.6 Pre and post restriction.
Figure 4.7 Properties of relations.
Figure 4.8 A lattice of refinement.
Figure 4.9 R′ and R″ refine R.
Figure 4.10 Least upper bound of relations R
1
and R
2
.
Figure 4.11 The Join of compatible relations.
Figure 4.12 Incompatible relations.
Figure 4.13 Range of valid specifications.
Figure 4.14 Safety vs. reliability.
Chapter 05
Figure 5.1 Interpretation of dom(R ∩ P).
Figure 5.2 Flowchart of if-statement.
Figure 5.3 Flowchart of if-else statement.
Figure 5.4 Flowchart of while statement.
Figure 5.5 Structure of an Inference.
Chapter 06
Figure 6.1 Relative correctness and relative reliability.
Figure 6.2 To be more-correct without duplicating correct behavior.
Figure 6.3 Ordering candidate programs by relative correctness.
Figure 6.4 A framework for monotonic fault removal.
Chapter 08
Figure 8.1 A hierarchy of attributes.
Figure 8.2 Inadequate test data.
Figure 8.3 Possibly adequate test data.
Figure 8.4 Certainly adequate test data.
Figure 8.5 Partitioning the domain of the specification.
Figure 8.6 Mimicking a probability distribution.
Chapter 09
Figure 9.1 Partitioning the set of triangles.
Figure 9.2 Visiting each state.
Figure 9.3 Visiting each state transition.
Chapter 10
Figure 10.1 Flowchart of a GCD program.
Figure 10.2 Flowchart of a Triangle program: nested version.
Figure 10.3 Flowchart of a Triangle program: sequential version.
Figure 10.4 Hierarchy of test generation criteria.
Chapter 13
Figure 13.1 Fault distribution (native vs. seeded).
Figure 13.2 Estimating native faults.
Figure 13.3 Impact of usage patterns.
Figure 13.4 Targeted test coverage.
Figure 13.5 Regression log(MTTF) by N.
Chapter 14
Figure 14.1 Counting nodes and edges.
Figure 14.2 Measuring non-injectivity.
Figure 14.3 Enlarging the output space, preserving the range.
Chapter 16
Figure 16.1 Domain engineering and application engineering lifecycles.
Figure 16.2 Reference architecture of the queue simulation product line.
Guide
Cover
Table of Contents
Begin Reading
Pages
ii
iii
iv
v
xiv
xv
xvi
xvii
1
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
Add Highlight
No Comment
..................Content has been hidden....................
You can't read the all page of ebook, please click
here
login for view all page.
Day Mode
Cloud Mode
Night Mode
Reset