Foundations of Software Testing

Hardcover (Print)
Used and New from Other Sellers
Used and New from Other Sellers
from $42.79
Usually ships in 1-2 business days
(Save 42%)
Other sellers (Hardcover)
  • All (3) from $42.79   
  • Used (3) from $42.79   
Close
Sort by
Page 1 of 1
Showing All
Note: Marketplace items are not eligible for any BN.com coupons and promotions
$42.79
Seller since 2014

Feedback rating:

(15)

Condition:

New — never opened or used in original packaging.

Like New — packaging may have been opened. A "Like New" item is suitable to give as a gift.

Very Good — may have minor signs of wear on packaging but item works perfectly and has no damage.

Good — item is in good condition but packaging may have signs of shelf wear/aging or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Acceptable — item is in working order but may show signs of wear such as scratches or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Used — An item that has been opened and may show signs of wear. All specific defects should be noted in the Comments section associated with each item.

Refurbished — A used item that has been renewed or updated and verified to be in proper working condition. Not necessarily completed by the original manufacturer.

Good
2008 Hardcover Good Item may show signs of shelf wear. Pages may include limited notes and highlighting. Includes supplemental or companion materials if applicable. Access ... codes may or may not work. Connecting readers since 1972. Customer service is our top priority. Read more Show Less

Ships from: Dallas, TX

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
$42.79
Seller since 2014

Feedback rating:

(15)

Condition: Good
2008 Hardcover Good 043 Item may show signs of shelf wear. Pages may include limited notes and highlighting. Includes supplemental or companion materials if applicable. Access ... codes may or may not work. Connecting readers since 1972. Customer service is our top priority. Read more Show Less

Ships from: Dallas, TX

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
$61.10
Seller since 2008

Feedback rating:

(17653)

Condition: Acceptable
Used, Acceptable Condition, may show signs of wear and previous use. Please allow 4-14 business days for delivery. 100% Money Back Guarantee, Over 1,000,000 customers served.

Ships from: Westminster, MD

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
Page 1 of 1
Showing All
Close
Sort by

Overview

This book presents sound engineering approaches for software test generation, selection, minimization, assessment, and enhancement. Using numerous examples, it offers a lucid description of a wide range of techniques for a variety of testing-related tasks.

Students, practitioners and researchers will find this book an excellent source of simple-to-advanced techniques to use and improve their knowledge of and expertise in software testing.

About the Author:
Aditya P. Mathur is Professor and Head, Department of Computer Science, at Purdue University, Indiana

Read More Show Less

Product Details

  • ISBN-13: 9788131716601
  • Publisher: Addison-Wesley
  • Publication date: 4/7/2008
  • Edition description: New Edition
  • Pages: 689
  • Product dimensions: 7.40 (w) x 9.70 (h) x 1.90 (d)

Meet the Author

Aditya Mathur is a Professor of Computer Science at Purdue University in West Lafayette, IN, and also the Head of Pillar Information Systems Technology and Design at the Singapore University of Technology and Design. He is a founding member of the Department of Computer Science at the Birla Institute of Technology and Science, Pilani. He has taught courses in Computer Sciences at all levels since 1972. His book titled Introduction to Microprocessors was the first text of its kind in India published in 1980. This book continues to a favorite of thousands of students. Aditya is a prolific researcher and has published extensively in quality international journals and conferences in the area of software engineering.

Read More Show Less

Table of Contents


Preface     xiii
Acknowledgments     xix
Preliminaries     1
Basics of Software Testing     3
Humans, errors, and testing     4
Errors, faults, and failures     5
Test automation     7
Developer and tester as two roles     7
Software quality     8
Quality attributes     8
Reliability     10
Requirements, behavior, and correctiness     11
Input domain and program correctness     12
Valid and invalid inputs     13
Correctness versus reliability     15
Correctness     15
Reliability     16
Program use and the operational profile     16
Testing and debugging     17
Preparing a test plan     17
Constructing test data     18
Executing the program     20
Specifying program behavior     21
Assessing the correctness of program behavior     24
Construction of oracles     26
Test metrics     27
Organizational metrics     28
Project metrics     29
Process metrics     29
Product metrics: Generic     29
Product metrics: OO software     31
Progress monitoring and trends     32
Static and dynamic metrics     32
Testability     33
Software and hardware testing     34
Testing and verification     36
Defect management     37
Execution history     38
Test-generation strategies     39
Static testing     41
Walkthroughs     42
Inspections     42
Use of static code analysis tools in static testing     43
Software complexity and static testing     44
Model-based testing and model checking     45
Control-flow graph     46
Basic block     46
Flow graph: Definition and pictorial representation     48
Path     50
Dominators and postdominators     54
Program-dependence graph     56
Data dependence     56
Control dependence     57
Strings, languages, and regular expressions     59
Types of testing     60
Classifier C1: Source of test generation     61
Classifier C2: Life cycle phase     64
Classifier C3: Goal-directed testing      65
Classifier C4: Artifact under test     68
Classifier C5: Test process models     70
The saturation effect     74
Confidence and true reliability     75
Saturation region     76
False sense of confidence     76
Reducing [Delta]     77
Impact on test process     78
Summary     79
Bibliographic Notes     80
Exercises     85
Test Generation     89
Test Generation from Requirements     91
Introduction     92
The test-selection problem     93
Equivalence partitioning     95
Faults targeted     96
Relations and equivalence partitioning     97
Equivalence classes for variables     102
Unidimensional versus multidimensional partitioning     106
A systematic procedure for equivalence partitioning     108
Test selection based on equivalence classes     114
GUI design and equivalence classes     117
Boundary-value analysis     119
Category-partition method     125
Steps in the category-partition method     125
Cause-effect graphing     132
Notation used in cause-effect graphing     133
Creating cause-effect graphs     136
Decision table from cause-effect graph     140
Heuristics to avoid combinatorial explosion     145
Test generation from a decision table     148
Test generation from predicates     149
Predicates and boolean expressions     150
Fault model for predicate testing     152
Predicate constraints     154
Predicate-testing criteria     156
Generating BOR-, BRO-, and BRE-adequate tests     158
Cause-effect graphs and predicate testing     173
Fault propagation     174
Predicate testing in practice     176
Summary     180
Bibliographic Notes     181
Exercises     184
Test Generation from Finite-State Models     193
Software design and testing     194
Finite-state machines     196
Excitation using an input sequence     200
Tabular representation     201
Properties of FSM     202
Conformance testing     203
Reset inputs     205
The testing problem     207
A fault model     208
Mutants of FSMs     211
Fault coverage     213
Characterization set     214
Construction of the k-equivalence partitions     215
Deriving the characterization set     218
Identification sets     221
The w-method     221
Assumptions     222
Maximum number of states     222
Computation of the transition cover set     223
Constructing Z     224
Deriving a test set     225
Testing using the W-method     226
The error-detection process     228
The partial w-method     229
Testing using the Wp-method for m = n     231
Testing using the Wp-method for m > n     234
The UIO-sequence method     236
Assumptions     237
UIO sequences     237
Core and noncore behavior     239
Generation of UIO sequences     241
Distinguishing signatures     253
Test generation     256
Test optimization     258
Fault detection     259
Automata theoretic versus control-flow-based techniques     262
n-switch-cover     265
Comparing automata-theoretic methods      267
Summary     269
Bibliographic Notes     270
Exercises     273
Test Generation from Combinatorial Designs     279
Combinatorial designs     280
Test configuration and test set     281
Modeling the input and configuration spaces     281
A combinatorial test-design process     287
Fault model     289
Fault vectors     291
Latin squares     292
Mutually orthogonal latin squares     294
Pairwise design: binary factors     296
Pairwise design: multivalued factors     301
Shortcomings of using MOLS for test design     309
Orthogonal arrays     309
Mixed-level orthogonal arrays     311
Covering and mixed-level covering arrays     314
Covering arrays     314
Mixed-level covering arrays     314
Arrays of strength >2     315
Generating covering arrays     316
Summary     326
Bibliographic Notes     327
Exercises     330
Test Selection, Minimizations, and Priaritization for Regression Testing     335
What is regression testing?      336
Regression-test process     337
Test revalidation, selection, minimization, and prioritization     338
Test setup     339
Test sequencing     340
Test execution     342
Output comparison     343
RTS: the problem     343
Selecting regression tests     344
Test all     345
Random selection     345
Selecting modification-traversing tests     345
Test minimization     346
Test prioritization     347
Test selection using execution trace     347
Obtaining the execution trace     348
Selecting regression tests     350
Handling function calls     355
Handling changes in declarations     355
Test selection using dynamic slicing     358
Dynamic slicing     360
Computation of dynamic slices     360
Selecting tests     362
Potential dependence     363
Computing the relevant slice     367
Addition and deletion of statements     367
Identifying variables for slicing     369
Reduced dynamic-dependence graph     369
Scalability of test-selection algorithms      371
Test minimization     373
The set-cover problem     374
A procedure for test minimization     375
Test prioritization     377
Tools for regression testing     381
Summary     384
Bibliographic Notes     385
Exercises     391
Test Adequacy Assessment and Enhancement     399
Test Adequacy: Assessment using Control Flow and Data Flow     401
Test adequacy: basics     402
What is test adequacy?     402
Measurement of test adequacy     403
Test enhancement using measurements of adequacy     405
Infeasibility and test adequacy     409
Error detection and test enhancement     411
Single and multiple executions     414
Adequacy criteria based on control flow     415
Statement and block coverage     415
Conditions and decisions     418
Decision coverage     420
Condition coverage     422
Condition/decision coverage     424
Multiple condition coverage     426
Linear code sequence and jump (LCSAJ) coverage     429
Modified condition/decision coverage      433
MC/DC-adequate tests for compound conditions     434
Definition of MC/DC coverage     440
Minimal MC/DC tests     448
Error detection and MC/DC adequacy     448
Short-circuit evaluation and infeasibility     450
Tracing test cases to requirements     452
Data-flow concepts     454
Definitions and uses     455
c-use and p-use     456
Global and local definitions and uses     457
Data-flow graph     458
Def-clear paths     460
Def-use pairs     461
Def-use chains     462
A little optimization     463
Data contexts and ordered data contexts     464
Adequacy criteria based on data flow     467
c-use coverage     468
p-use coverage     469
all-uses coverage     471
k-dr chain coverage     471
Using the k-dr chain coverage     473
Infeasible c-uses and p-uses     474
Context coverage     475
Control flow versus data flow     478
The subsumes relation     480
Structural and functional testing     482
Scalability of coverage measurement      483
Summary     486
Bibliographic Notes     487
Exercises     494
Test-Adequacy Assessment Using Program Mutation     502
Introduction     503
Mutation and mutants     504
First-order and higher-order mutants     505
Syntax and semantics of mutants     506
Strong and weak mutations     509
Why mutate?     511
Test assessment using mutation     512
A procedure for test-adequacy assessment     512
Alternate procedures for test-adequacy assessment     520
Distinguished versus killed mutants     521
Conditions for distinguishing a mutant     522
Mutation operators     524
Operator types     525
Language dependence of mutation operators     527
Design of mutation operators     529
Goodness criteria for mutation operators     529
Guidelines     530
Founding principles of mutation testing     531
The competent programmer hypothesis     531
The coupling effect     532
Equivalent mutants     532
Fault detection using mutation     533
Types of mutants      536
Mutation operators for C     537
What is not mutated?     537
Linearization     538
Execution sequence     540
Effect of an execution sequence     543
Global and local identifier sets     544
Global and local reference sets     544
Mutating program constants     547
Mutating operators     549
Mutating statements     555
Mutating program variables     570
Mutation operators for java     575
Traditional mutation operators     577
Inheritence     578
Polymorphism and dynamic binding     581
Method overloading     582
Java-specific mutation operators     584
Mutation operators for fortran 77, C, and java: a comparison     585
Tools for mutation testing     588
Mutation testing within budget     590
Prioritizing functions to be mutated     590
Selecting a subset of mutation operators     591
Summary     593
Bibliographic Notes     594
Exercises     606
References     615
Subject Index     653
Name Index     685
Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star

(0)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)