Foundations of software testing: fundamental algorithms and techniques
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Delhi [u.a.]
Pearson Education
2009
|
Ausgabe: | 2. impr. |
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | XX, 689 S. graph. Darst. |
ISBN: | 9788131716601 8131716600 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV035276132 | ||
003 | DE-604 | ||
005 | 20120220 | ||
007 | t | ||
008 | 090128s2009 d||| |||| 00||| eng d | ||
020 | |a 9788131716601 |9 978-81-317-1660-1 | ||
020 | |a 8131716600 |9 81-317-1660-0 | ||
035 | |a (OCoLC)634862166 | ||
035 | |a (DE-599)BSZ301698651 | ||
040 | |a DE-604 |b ger | ||
041 | 0 | |a eng | |
049 | |a DE-92 |a DE-473 |a DE-634 |a DE-M347 | ||
084 | |a ST 233 |0 (DE-625)143620: |2 rvk | ||
100 | 1 | |a Mathur, Aditya |e Verfasser |0 (DE-588)136281028 |4 aut | |
245 | 1 | 0 | |a Foundations of software testing |b fundamental algorithms and techniques |c Aditya P. Mathur |
250 | |a 2. impr. | ||
264 | 1 | |a Delhi [u.a.] |b Pearson Education |c 2009 | |
300 | |a XX, 689 S. |b graph. Darst. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 0 | 7 | |a Softwaretest |0 (DE-588)4132652-0 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Softwaretest |0 (DE-588)4132652-0 |D s |
689 | 0 | |5 DE-604 | |
856 | 4 | 2 | |m Digitalisierung UB Bamberg |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=017081420&sequence=000004&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-017081420 |
Datensatz im Suchindex
_version_ | 1804138566037536768 |
---|---|
adam_text | Contents
Preface
xiii
Acknowledgments
xix
PfiRT I: PR6UMINRRI6S
1. ßflSICS
Of SOFTUIfiR€ TESTING
1.1.
Humans, errors, and testing
1.1.1.
Errors, faults, and failures
1.1.2.
Test automation
1.1.3.
Developer and tester as two roles
1.2.
Software quality
1.2.1.
Quality attributes
1.2.2.
Reliability
1.3.
Requirements, behavior, and correctness
1.3.1.
Input domain and program correctness
1.3.2.
Valid and invalid inputs
1.4.
Correctness versus reliability
1.4.1.
Correctness
1.4.2.
Reliability
1.4.3.
Program use and the operational profile
1.5.
Testing and debugging
1.5.1.
Preparing a test plan
1.5.2.
Constructing test data
1.5.3.
Executing the program
1.5.4.
Specifying program behavior
1.5.5.
Assessing (he correctness of
program behavior
1.5.6.
Construction of oracles
1.6.
Test metrics
27
1.6.1.
Organizational metrics
28
1.6.2.
Project metrics
29
1.6.3.
Process metrics
29
1
1.6,4.
Product metrics: Generic
29
1.6.5.
Product metrics: OO software
31
3
1.6.6.
Progress monitoring and trends
32
л
1,6.7.
Static and dynamic metrics
32
4
5
1.6.8.
Testability
33
7
1.7.
Software and hardware testing
34
7
1.8.
Testing and verification
36
8
1.9.
Defect management
37
Ő
1.10.
Execution history
38
10
1.11.
Test-generation strategies
39
11
1.12.
Static testing
41
12
1.12.1.
Walkthroughs
-42
13
1.12.2.
inspections
42
15
1.12.3.
Use of static code analysis fools in
15
static testing
43
16
1.12.4.
Software complexity and
16
static testing
44
Ί7
1.13.
Model-based testing and
MODEL CHECKING
45
17
18
1.14.
Control-flow graph
46
20
1.14.1.
Basic block
46
21
1.14.2.
Flow graph: Definition and
pictorial representation
48
24
1.14.3.
Path
50
26
1.15.
DOMINATORS AND POSTDOMINATORS
54
VÜI
CONTENTS
1.16.
Program-dependence graph
1.16.1.
Data dependence
1.16.2.
Control dependence
1.17.
Strings, languages, and
regular expressions
1.18.
Types of testing
1.18.1.
Classifier C1: Source of test
generation
1.18.2.
Classifier C2: Life cycle phase
1.18.3.
Classifier C3: Goal-directed testing
1.18.4.
Classifier C4: Artifact under test
1.18.5.
Classifier C5: Test process models
1.19.
The saturation effect
1.19.1.
Confidence and true reliability
1.19.2.
Saturation region
1.19.3.
False sense of confidence
1.19.4.
Reducing A
1.19.5.
Impact on test process
Summary
Bibliographic Notes
Exercises
PflRT II: T€ST
G€N€RfìTION
2.
T€ST G€N€fifiTION FROM
Requirements
2.1.
Introduction
2.2.
The test-selection problem
2.3.
Equivalence partitioning
2.3.1.
Faults targeted
2.3.2.
Relations and equivalence partitioning
2.3.3.
Equivalence classes for variables
2.3.4.
Unidimensional
versus
multidimensional partitioning
2.3.5.
A systematic procedure for
equivalence partitioning
2.3.6.
Test selection based on
equivalence classes
2.3.7.
GUI design and equivalence classes
2.4.
Boundary-value analysis
2.5.
Category-partition method
2.5.1
Steps in the category-partition method
56
56
57
59
60
Є
í
64
65
68
70
74
75
76
76
77
78
79
80
85
89
2.6.
Cause-effect graphing
132
2.6.1.
Notation used in cause-effect graphing
133
2.6.2.
Creating cause-effect graphs
136
2.6.3.
Decision table from cause-effect graph
140
2.6.4.
Heuristics to avoid combinatorial
explosion
145
2.6.5.
Test generation from a decision table
148
2.7.
Test generation from predicates
149
2.7.1.
Predicates and boolean expressions ISO
2.7.2.
Fault model for predicate testing
152
2.7.3.
Predicate constraints
154
2.7.4.
Predicate-testing criteria
156
2.7.5.
Generating
BOR-. BRO-,
and
BRE-adequate tests
158
2.7.6.
Cause-effect graphs and
predicale
testing
173
2.7.7.
Fault
propagation
174
2.7.8.
Predicate testing in practice
176
Summary
180
Bibliographic Notes
181
Exercises
184
3.
ТбЅТ
GeNÉRRTION
FROM
Models
193
3.1.
Software design and testing
194
3.2.
Finite-state machines
196
91
3.2.1.
Excitation using an input sequence
200
92
3.2.2.
Tabular representation
201
93
95
3.2.3.
Properties of FSM
3.3.
CONFORMANCE TESTING
3.3.1.
Reset inputs
202
203
205
96
07
3.3.2.
The testing problem
207
??/
і
02
3.4.
A FAULT MODEL
208
3.4.1.
Mutants of FSMs
211
106
3.4.2.
Fault coverage
213
3j5- Characterization set
214
108
3.5.1.
Construction
oí
the
k-equivalenœ
partitions
215
114
3.5.2.
Deriving the characterization set
218
117
3.5.3.
identification sets
221
119
3.6.
The w-method
221
125
3.6,1.
Assumptions
222
125
3.6.2.
Maximum number of states
222
CONTENTS
¡X
3.6.3.
Computation of the transition cover set
223
3.6.4.
Constructing
Z
224
3.6.5.
Deriving a test set
. 2.2.5
3.6.6.
Testing using the W-method
226
3.8.7.
The error-detection process
228
3.7.
The partial w-method
229
3.7.1.
Testing using the Wp-method
for
m
=
η
231
3.7.2.
Testing using the Wp-method
for m>n
234
3.8.
The UIO-sequence method
236
3.8.1.
Assumptions
237
3.8.2.
U
Ю
sequences
237
3.8.3.
Core and noncore behavior
239
3,8.4.
Generation of
DIO
sequences
241
3.8.5.
Distinguishing signatures
253
3.8.6,
Test generation
256
3.8.7.
Test optimization
258
3.8.8.
Fault detection
259
3.9.
Automata theoretic versus
CONTROL-FLOW-BASED TECHNIQUES
262
3.9.1.
n-switch-cover
265
3,9.2.
Comparing automata-theoretic
methods
267
Summery
269
Bibliographic Notes
270
Exercises
273
4.
TeST
GëNCRRTION
FROM
Designs
4.1.
Combinatorial designs
4.1.1.
Test configuration and test set
4.1.2.
Modeling the input and
configuration spaces
4.2.
a combinatorial test-design process
4.3.
Fault model
4.3.1.
Fault vectors
4.4.
latin squares
4.5.
Mutually orthogonal latin squares
4.6.
Pairwise design: binary factors
4.7.
Pairwise design: multivalued factors
4,7.1.
Shortcomings of using
MOLS
for test design
279
280
281
281
287
289
291
292
294
296
301
309
4.8.
Orthogonal arrays
309
4.8.1.
Mixed-level orthogonal arrays
311
4.9.
Covering and mixed-level
covering arrays
314
4.9.1.
Covering arrays
314
4.9.2.
Mixed-level covering arrays
314
4.10.
Arrays of strength >2
315
4.11.
Generating covering arrays
316
Summary
32.6
Bibliographic Notes
327
Exercises
330
5.
Теѕт
SaeaioN,
Μινιμιζρπίον,
find
prirritizñtion
for regression
Toting
335
5.1.
What is regression testing?
336
5.2.
Regression-test process
337
5.2.1.
Test revalidation, selection,
minimization, and prioritization
338
5.2.2.
Test setup
339
5.2.3.
Test sequencing
340
5.2.4.
Test execution
342
5.2.5.
Output comparison
343
5.3.
RTS: the problem
343
5.4.
Selecting regression tests
344
5.4.1,
Testait
345
5.4.2,
Random selection
345
5.4.3,
Selecting modification-traversing tests
345
5.4.4,
Test minimization
346
5.4.5,
Test prioritization
347
5.5.
Test selection using execution trace
347
5.5.1.
Obtaining the execution trace
348
5.5.2.
Selecting regression tests
350
5.5.3.
Handling function calls
355
5.5.4.
Handling changes in declarations
355
5.6.
Test selection using dynamic slicing
358
5.6.1.
Dynamic slicing
380
5.6.2.
Computation of dynamic slices
360
5.6.3.
Selecting tests
362
5.6.4.
Potential dependence
363
5.6.5.
Computing the relevant slice
367
5.6.6.
Addition and deletion of statements
367
X
CONTENTS
5.6.7.
Identifying
variaties
tor slicing
369
5.6.8.
Reduced dynamic-dependence graph
369
5.7.
Scalability of test-selection
algorithms
371
5.8.
Test minimization
373
5.8.1.
The set-cover problem
374
5.8.2,
A procedure for test minimization
375
5.9.
Test prioritization
377
5.10.
Tools for regression testing
381
Summary
384
Bibliographic Notes
385
Exercises
391
PflRT III: T6ST
RSS6SSM6NT
fìND
б.
ТбЅТ
flDÉQUflCV: ñSS€SSM€NT USING
Control
Рюш
ñND Drtr
Рюш
6.1.
Test adequacy: basics
6.1.1.
What is test adequacy?
в.
1.2.
Measurement of test adequacy
6.1,3.
Tes
enhancement using
measurements of adequacy
6.1.4.
Infeasibility and test adequacy
6.1.5.
Error detection and test enhancement
8.1.6.
Single and multiple executions
6.2.
Adequacy criteria based on
control flow
6.2.1.
Statement and block coverage
6.2.2.
Conditions
and decisions
6.2.3.
Decision coverage
6.2.4.
Condition coverage
6.2.5.
Condition/decision coverage
6.2.6.
Multiple
condition coverage.
6.2.7.
Linear code sequence and jump
(LCSAJ) coverage
6.2.S. Modified condition/decision coverage
6.2.9.
MC/DC-adequate tests for
compound conditions
6.2.10.
Definition of MC/DC coverage
8.2.11. Minimal MC/DC
tests
399
401
402
402
403
405
409
411
414
415
475
418
42.0
422
424
426
429
433
ЛЭ4
448
6.2.12.
Error detection and MC/DC adequacy
448
6.2.13.
Short-circuit evaluation and
infeasibility
450
6.2.14.
Tracing test cases to requirements
452
6.3.
Data-flow concepts
454
6.3.1.
Definitions and uses
455
6.3.2.
с
-use
and p-use
456
6.3.3.
Global and local definitions and uses
457
6.3.4.
Data-flow graph
458
6.3.5.
Def
-dear paths
460
6.3.6.
Def-use pairs
461
6.3.7.
Def-use chains
462
6.3.8.
A tittle optimization
463
6.3.9.
Data contexts and ordered
data contexts
464
6.4.
Adequacy criteria based on data flow
467
6.4.1.
с
-use
coverage
468
6.4.2.
p-use coverage
469
6.4.3.
ail-uses coverage
■ 471
6.4.4.
k-dr chain coverage
471
6.4.5.
Using the k-dr chain coverage
473
6.4.6.
Infeasible
с
-uses and p-uses
474
6.4.7.
Context coverage
475
6.5.
Control flow versus data flow
478
6.6.
The subsumes relation
480
6.7.
Structural and functional testing
482
6.8.
Scalability of coverage measurement
483
Summary
486
Bibliographic Notes
487
Exercises
494
7.
TesT-Fbeouflcv Rss€ssm€nt Using
Progrrm Mutrtion
502
7.1.
Introduction
503
7.2.
Mutation and mutants
504
7.2.1.
First-order and higher-order mutants
505
7.2.2.
Syntax and semantics of mutants
506
7.2.3.
Strong and weak mutations
509
7.2.4.
Why mutate
? 511
7.3.
Test assessment using mutation
512
7.3.1.
A procedure for test-adequacy
assessment
512
CONTENTS
XI
7.3.2.
Alternate procedures for
test-adequacy assessment
520
7.3.3.
Distinguished versus killed mutants
521
7.3.4.
Conditions for distinguishing a mutant
522.
7.4.
Mutation operators
524
7.4.1
Operator types
525
7.4.2
Language dependence of
mutation operators
527
7.5.
Design of mutation operators
529
7.5.1.
Goodness criteria for mutation
operators
529
7.5.2.
Guidelines
530
7.6.
Founding principles of mutation testing
531
7.6.
1, The competent programmer
hypothesis
531
7.6.2,
The coupling effect
532
7.7.
Equivalent mutants
532
7.8.
Fault detection using mutation
533
7.9.
Types of mutants
536
7.10.
Mutation operators for
С
537
7.10.1.
What is not mutated?
537
7.10.2.
Linearization
538
7.10.3.
Execution sequence
540
7.10.4.
Effect of an execution sequence
543
7.10.5 .
Global and local identifier sets
544
7.10.6.
Global and
locai
reference sets
544
7.10.7.
Mutating program constants
547
7.10.3,
Mutating operators
549
7.10.9.
Mutating statements
555
7.10.10.
Mutating program variables
570
7.11.
Mutation operators for
java
575
7.11.1.
Traditional mutation operators
577
7.11.2.
Inheritence
578
7.11.3.
Polymorphism and dynamic binding
581
7.11.4.
Method overloading
582
7.11.5.
Java-specific mutation operators
584
7.12.
Mutation operators for
fortran
77,
c, and java:
a comparison
585
7.13.
Tools for mutation testing
588
7.14.
Mutation testing within budget
590
7.14.1.
Prioritizing functions to be mutated
590
7.14.2.
Selecting a subset of mutation
operators
59
1
Summary
593
Bibliographic Notes
594
Exercises
606
Relerences
615
Subject Index
653
Name index
685
|
any_adam_object | 1 |
author | Mathur, Aditya |
author_GND | (DE-588)136281028 |
author_facet | Mathur, Aditya |
author_role | aut |
author_sort | Mathur, Aditya |
author_variant | a m am |
building | Verbundindex |
bvnumber | BV035276132 |
classification_rvk | ST 233 |
ctrlnum | (OCoLC)634862166 (DE-599)BSZ301698651 |
discipline | Informatik |
edition | 2. impr. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01292nam a2200337 c 4500</leader><controlfield tag="001">BV035276132</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20120220 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">090128s2009 d||| |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9788131716601</subfield><subfield code="9">978-81-317-1660-1</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">8131716600</subfield><subfield code="9">81-317-1660-0</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)634862166</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BSZ301698651</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-92</subfield><subfield code="a">DE-473</subfield><subfield code="a">DE-634</subfield><subfield code="a">DE-M347</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 233</subfield><subfield code="0">(DE-625)143620:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Mathur, Aditya</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)136281028</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Foundations of software testing</subfield><subfield code="b">fundamental algorithms and techniques</subfield><subfield code="c">Aditya P. Mathur</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">2. impr.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Delhi [u.a.]</subfield><subfield code="b">Pearson Education</subfield><subfield code="c">2009</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XX, 689 S.</subfield><subfield code="b">graph. Darst.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Softwaretest</subfield><subfield code="0">(DE-588)4132652-0</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Softwaretest</subfield><subfield code="0">(DE-588)4132652-0</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Bamberg</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=017081420&sequence=000004&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-017081420</subfield></datafield></record></collection> |
id | DE-604.BV035276132 |
illustrated | Illustrated |
indexdate | 2024-07-09T21:30:13Z |
institution | BVB |
isbn | 9788131716601 8131716600 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-017081420 |
oclc_num | 634862166 |
open_access_boolean | |
owner | DE-92 DE-473 DE-BY-UBG DE-634 DE-M347 |
owner_facet | DE-92 DE-473 DE-BY-UBG DE-634 DE-M347 |
physical | XX, 689 S. graph. Darst. |
publishDate | 2009 |
publishDateSearch | 2009 |
publishDateSort | 2009 |
publisher | Pearson Education |
record_format | marc |
spelling | Mathur, Aditya Verfasser (DE-588)136281028 aut Foundations of software testing fundamental algorithms and techniques Aditya P. Mathur 2. impr. Delhi [u.a.] Pearson Education 2009 XX, 689 S. graph. Darst. txt rdacontent n rdamedia nc rdacarrier Softwaretest (DE-588)4132652-0 gnd rswk-swf Softwaretest (DE-588)4132652-0 s DE-604 Digitalisierung UB Bamberg application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=017081420&sequence=000004&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Mathur, Aditya Foundations of software testing fundamental algorithms and techniques Softwaretest (DE-588)4132652-0 gnd |
subject_GND | (DE-588)4132652-0 |
title | Foundations of software testing fundamental algorithms and techniques |
title_auth | Foundations of software testing fundamental algorithms and techniques |
title_exact_search | Foundations of software testing fundamental algorithms and techniques |
title_full | Foundations of software testing fundamental algorithms and techniques Aditya P. Mathur |
title_fullStr | Foundations of software testing fundamental algorithms and techniques Aditya P. Mathur |
title_full_unstemmed | Foundations of software testing fundamental algorithms and techniques Aditya P. Mathur |
title_short | Foundations of software testing |
title_sort | foundations of software testing fundamental algorithms and techniques |
title_sub | fundamental algorithms and techniques |
topic | Softwaretest (DE-588)4132652-0 gnd |
topic_facet | Softwaretest |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=017081420&sequence=000004&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT mathuraditya foundationsofsoftwaretestingfundamentalalgorithmsandtechniques |