Skip to content

Software Testing: A Craftsman's Approach

ISBN-10: 1466560681

ISBN-13: 9781466560680

Edition: 2013

Authors: Paul C. Jorgensen

List price: $99.95
Shipping box This item qualifies for FREE shipping.
Blue ribbon 30 day, 100% satisfaction guarantee!
Rent eBooks
Buy eBooks
what's this?
Rush Rewards U
Members Receive:
Carrot Coin icon
XP icon
You have reached 400 XP and carrot coins. That is the daily max!


The fourth edition of the widely adopted text and reference book is completely revised and updated and features a new section on Life Cycle-Based Testing. New chapters cover Software Complexity and Mutation Testing and Error Seeding. The text still provides a solid mathematical background in discrete mathematics and linear graph theory that is fundamental to understating software testing. The book also describes specification-based (functional) and code-based (structural) test development techniques, while extending this theoretical approach to less understood levels of integration and system testing.
Customers also bought

Book details

List price: $99.95
Copyright year: 2013
Publisher: Taylor & Francis
Binding: Cloth Text 
Pages: 500
Size: 6.00" wide x 9.00" long x 1.00" tall
Weight: 2.486
Language: English

A Mathematical Context
A Perspective on Testing
Basic Definitions
Test Cases
Insights from a Venn Diagram
Identifying Test Cases
Fault Taxonomies
Levels of Testing
Generalized Pseudocode
The Triangle Problem
The NextDate Function
The Commission Problem
The SATM System
The Currency Converter
Saturn Windshield Wiper Controller
Garage Door Opener
Discrete Math for Testers
Set Theory
Propositional Logic
Probability Theory
Graph Theory for Testers
Directed Graphs
Graphs for Testing
Unit Testing
Boundary Value Testing
Normal Boundary Value Testing
Robust Boundary Value Testing
Worst-Case Boundary Value Testing
Special Value Testing
Random Testing
Guidelines for Boundary Value Testing
Equivalence Class Testing
Equivalence Classes
Traditional Equivalence Class Testing
Improved Equivalence Class Testing
Equivalence Class Test Cases for the Triangle Problem
Equivalence Class Test Cases for the NextDate Function
Equivalence Class Test Cases for the Commission Problem
Edge Testing
Guidelines and Observations
Decision Table-Based Testing
Decision Tables
Decision Table Techniques
Test Cases for the Triangle Problem
Test Cases for the NextDate Function
Test Cases for the Commission Problem
Cause-and-Effect Graphing
Guidelines and Observations
Path Testing
Program Graphs
Test Coverage Metrics
Basis Path Testing
Guidelines and Observations
Data Flow Testing
Define/Use Testing
Slice-Based Testing
Program Slicing Tools
Retrospective on Unit Testing
The Test Method Pendulum
Traversing the Pendulum
Evaluating Test Methods
Insurance Premium Case Study
Beyond Unit Testing
Life Cycle-Based Testing
Traditional Waterfall Testing
Testing in Iterative Life Cycles
Agile Testing
Agile Model-Driven Development
Model-Based Testing
Testing Based on Models
Appropriate Models
Commercial Tool Support for Model-Based Testing
Integration Testing
Decomposition-Based Integration
Call Graph-Based Integration
Path-Based Integration
Example: integrationNextDate
Conclusions and Recommendations
System Testing
Basis Concepts for Requirements Specification
Model-Based Threads
Use Case-Based Threads
Long versus Short Use Cases
How Many Use Cases?
Coverage Metrics for System Testing
Supplemental Approaches to System Testing
Nonfunctional System Testing
Atomic System Function Testing Example
Object-Oriented Testing
Issues in Testing Object-Oriented Software
Example: ooNextDate
Object-Oriented Unit Testing
Object-Oriented Integration Testing
Object-Oriented System Testing
Software Complexity
Unit-Level Complexity
Integration-Level Complexity
Software Complexity Example
Object-Oriented Complexity
System-Level Complexity
Model-Based Testing for Systems of Systems
Characteristics of Systems of Systems
Sample Systems of Systems
Software Engineering for Systems of Systems
Communication Primitives for Systems of Systems
Effect of Systems of Systems Levels on Prompts
Exploratory Testing
Exploratory Testing Explored
Exploring a Familiar Example
Observations and Conclusions
Test-Driven Development
Test-Then-Code Cycles
Automated Test Execution (Testing Frameworks)
Java and JUnit Example
Remaining Questions
Pros, Cons, and Open Questions of TDD
Retrospective on MDD versus TDD
A Closer Look at All Pairs Testing
The All Pairs Technique
A Closer Look at the NIST Study
Appropriate Applications for All Pairs Testing
Recommendations for All Pairs Testing
Evaluating Test Cases
Mutation Testing
Fishing Creel Counts and Fault Insertion
Software Technical Reviews
Roles in a Review
Types of Reviews
Contents of an Inspection Packet
An Industrial-Strength Inspection Process
Inspection Case Study
Epilogue: Software Testing Excellence
Best Practices of Software Testing
My Top 10 Best Practices for Software Testing Excellence
Mapping Best Practices to Diverse Projects
Appendix: Complete Technical Inspection Packet