This updated and reorganized fourth edition of Software Testing: A Craftsman's Approach applies the strong mathematics content of previous editions to a coherent treatment of Model-Based Testing for both code-based (structural) and specification-based (functional) testing. These techniques are extended from the usual unit testing discussions to full coverage of less understood levels integration and system testing.a The Fourth Edition:Emphasizes technical inspections and is supplemented by an appendix with a full package of documents required for a sample Use Case technical inspectionIntroduces an innovative approach that merges the Event-Driven Petri Nets from the earlier editions with the "e;Swim Lane"e; concept from the Unified Modeling Language (UML) that permits model-based testing for four levels of interaction among constituents in a System of SystemsIntroduces model-based development and provides an explanation of how to conduct testing within model-based development environments Presents a new section on methods for testing software in an Agile programming environment Explores test-driven development, reexamines all-pairs testing, and explains the four contexts of software testingThoroughly revised and updated, Software Testing: A Craftsman's Approach, Fourth Edition is sure to become a standard reference for those who need to stay up to date with evolving technologies in software testing. Carrying on the tradition of previous editions, it will continue to serve as a valuable reference for software testers, developers, and engineers.