Software Testing and Analysis: Process, Principles and Techniques
April 2007, ©2008
1 Software Test and Analysis in a Nutshell
2 A Framework for Test and Analysis
3 Basic Principles
4 Test and Analysis Activities Within a Software Process
II Basic Techniques
5 Finite Models
6 Dependence and Data Flow Models
7 Symbolic Execution and Proof of Properties
8 Finite State Verification
III Problems and Methods
9 Test Case Selection and Adequacy
10 Functional Testing
11 Combinatorial Testing
12 Structural Testing
13 Data Flow Testing
14 Model-Based Testing
15 Testing Object-Oriented Software
16 Fault-Based Testing
17 Test Execution
19 Program Analysis
20 Planning and Monitoring the Process
21 Integration and Component-based Software Testing
22 System, Acceptance, and Regression Testing
23 Automating Analysis and Test
24 Documenting Analysis and Test
Mauro Pezzè, PhD, is Professor of Computer Science at the University of Milano–Bicocca. He received his PhD degree in computer science from Politecnico di Milano (Italy). Dr. Pezzè has served as technical program chair of the 2006 ACM International Symposium on Software Testing and Analysis. He has been technical lead for several multi-year international research and development projects in close collaboration with leading European information and communication companies including IBM, Phillips, Elsag, and Siemens, among others. He also has an active consulting practice.
* Interplay among technical and non-technical issues in crafting an approach to software quality, with chapters devoted to planning and monitoring the software quality process.
* A selection of practical techniques ranging from inspection to automated program and design analyses to unit, integration, system, and regression testing, with technical material set in the context of real-world problems and constraints in software development.
* A coherent view of the state of the art and practice, with technical and organizational approaches to push the state of practice toward the state of the art.
Throughout, the text covers techniques that are suitable for near-term application, with sufficient technical background to help you know how and when to apply them. Exercises reinforce the instruction and ensure that you master each topic before proceeding.
By incorporating software testing and analysis techniques into modern practice, Software Testing and Analysis: Process, Principles, and Techniques provides both students and professionals with realistic strategies for reliable and cost-effective software development.