Software Testing: A Craftsman's Approach, Third Edition - Rilegato

Jorgensen, Paul C.

 
9780849374753: Software Testing: A Craftsman's Approach, Third Edition

Sinossi

Since the last publication of this international bestseller, software testing has seen a renaissance of renewed interest and technology. The biggest change comes in the growing prominence and acceptance of Agile Programming. Software Testing: A Craftsman’s Approach, Third Edition extends the combination of theory and practicality of the first two editions to include agile programming development and discusses the serious effect this emerging area is having on software testing.

The third edition of the widely adopted text and reference book is comprised of six parts. It begins by providing the mathematical background in discrete mathematics and linear graph theory that is used in subsequent sections. The book continues to describe specification-based (functional) and code-based (structural) test development techniques, while extending this theoretical approach to less understood levels of integration and system testing. The author further develops this discussion to include object-oriented software. A completely new section relates all of the previously discussed concepts to the agile software development movement and highlights issues such as how agile and XP development environments are radically changing the role of software testers by making testing integral at every phase of the development process.

Thoroughly revised and updated, Software Testing: A Craftsman’s Approach, Third 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.

Le informazioni nella sezione "Riassunto" possono far riferimento a edizioni diverse di questo titolo.

Contenuti

PART I: A MATHEMATICAL CONTEXT
A Perspective on Testing
Basic Definitions
Test Cases
Insights from a Venn Diagram 
Identifying Test Cases
Error and Fault Taxonomies
Levels of Testing
Examples
Generalized Pseudocode
The Triangle Problem
The NextDate Function 
The Commission Problem 
The SATM System 
The Currency Converter 
Saturn Windshield Wiper Controller
Discrete Math for Testers
Set Theory
Functions
Relations 
Propositional Logic
Probability Theory 
Graph Theory for Testers
Graphs
Directed Graphs
Graphs for Testing
PART II: FUNCTIONAL TESTING
Boundary Value Testing
Boundary Value Analysis
Robustness Testing
Worst-Case Testing
Special Value Testing
Examples
Random Testing 
Guidelines for Boundary Value Testing
Equivalence Class Testing
Equivalence Classes
Equivalence Class Test Cases for the Triangle Problem
Equivalence Class Test Cases for the NextDate Function
Equivalence Class Test Cases for the Commission Problem
Guidelines and Observations
Decision Table-Based Testing
Decision Tables
Test Cases for the Triangle Problem
Test Cases for the NextDate Function
Test Cases for the Commission Problem
Guidelines and Observations
Retrospective on Functional Testing
Testing Effort
Testing Efficiency
Testing Effectiveness 
Guidelines 
Case Study
PART III: STRUCTURAL TESTING
Path Testing
DD-Paths
Test Coverage Metrics
Basis Path Testing
Guidelines and Observations
Dataflow Testing
Define/Use Testing
Slice-Based Testing
Guidelines and Observations
Retrospective on Structural Testing
Gaps and Redundancies
Metrics for Method Evaluation
Case Study Revisited
PART IV: INTEGRATION AND SYSTEM TESTING
Levels of Testing
Traditional View of Testing Levels
Alternative Life Cycle Models
The SATM System
Separating Integration and System Testing
Integration Testing
A Closer Look at the SATM System
Decomposition-Based Integration
Call Graph-Based Integration
Path-Based Integration
Case Study
System Testing
Threads
Basis Concepts for Requirements Specification
Finding Threads
Structural Strategies for Thread Testing 
Functional Strategies for Thread Testing
SATM Test Threads
System Testing Guidelines
ASF Testing Example
Interaction Testing
Context of Interaction
A Taxonomy of Interactions
Interaction, Composition, and Determinism
Client/Server Testing
PART V: OBJECT-ORIENTED TESTING
Issues in Object-Oriented Testing
Units for Object-Oriented Testing
Implications of Composition and Encapsulation 
Implications of Inheritance 
Implications of Polymorphism
Levels of Object-Oriented Testing
GUI Testing
Dataflow Testing for Object-Oriented Software
Examples for Part V 
Class Testing
Methods as Units
Classes as Units 
Object-Oriented Integration Testing
UML Support for Integration Testing
MM-Paths for Object-Oriented Software
A Framework for Object-Oriented Dataflow Integration Testing
GUI Testing
The Currency Conversion Program
Unit Testing for the Currency Conversion Program
Integration Testing for the Currency Conversion Program
System Testing for the Currency Conversion Program
Object-Oriented System Testing
Currency Converter UML Description 
UML-Based System Testing
StateChart-Based System Testing
PART VI: MILLENNIUM TESTING
Exploratory Testing
The Context-Driven School
Exploring Exploratory Testing
Exploring a Familiar Example
Exploratory and Context-Driven Testing Observations 
Model-Based Testing
Testing Based on Models
Appropriate Models 
Use Case-Based Testing 
Commercial Tool Support for Model-Based Testing
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 
Epilogue: Software Testing Excellence 
Craftsmanship
Best Practices of Software Testing
Top Best Practices for Software Testing Excellence
Mapping Best Practices to Diverse Projects

Product Description

Book by Jorgensen Paul C

Le informazioni nella sezione "Su questo libro" possono far riferimento a edizioni diverse di questo titolo.