Table of Contents
Team Guides for Software
Conflux Books
Acknowledgements
Praise for Software Testability
Exercises
Introduction
Why is testability important?
What does hard-to-test feel like?
What does testable feel like?
What leads to testability being neglected?
What is covered in this book?
How to use this book
Why we wrote this book
Feedback and suggestions
1. Set a pragmatic direction for improving testability using trade-off sliders
1.1 Overcome common challenges to setting a team testability focus
1.2 Exercise: do the Team Test for Testability for a quick testability health check
1.3 Exercise: use Trade-Off Sliders to guide your testability focus
1.4 Summary
2. Create testability targets to improve interactions with dependencies
2.1 Recognize needs and contributions from different roles to create an effective testability mindset
2.2 Exercise: employ Testability Dependency Targets to improve interactions with dependent teams and systems
2.3 Summary
3. Adopt testability mapping to expose hard-to-test architectures
3.1 Poor architectural testability causes slow feedback and flawed decisions
3.2 Identify the symptoms of poor architectural testability
3.3 Exercise: Use testing smells to diagnose poor architectural testability
3.4 Exercise: adopt testability mapping to measure testing feedback and waste
3.5 Summary
4. Apply the CODS model to increase architectural testability for faster feedback
4.1 Explicitly design your architecture for testability
4.2 Principles of implementing high testability architectures
4.3 Exercise: Use 'CODS' to increase architectural testability
4.4 Moving from hard-to-test to high architectural testability
4.5 Summary
5. Adopt ephemeral development environments for fast feedback
5.1 Common challenges with static test environments
5.2 Use your development environment for fast feedback
5.3 Exercise: Use the Agile Test Quadrants to extend testing in your development environment
5.4 Summary
6. Use production data to enhance your testing strategy
6.1 Static test strategies cause problems in dynamic production environments
6.2 Exercise: employ data from production to keep your test strategy relevant
6.3 Use deploy and release patterns for feedback on high risk changes
6.4 Summary
7. Use team testing reviews to enable sustainable delivery
7.1 Testing debt affects wellbeing and sustainable delivery
7.2 Adopt a whole-team approach to minimizing testing debt
7.3 Exercise: use the 10 P's of Testability to track team testing culture
7.4 Exercise: adopt incident reviews to target testability improvement actions
7.5 Create a board to visualize & prioritize testing debt
7.6 Summary
Terminology
References
Chapter 1 - Testability Priorities
Chapter 2 - Testability and Dependencies
Chapter 3 - Testability Mapping
Chapter 4 - Architectural Testability
Chapter 5 - Ephemeral Development Environments
Chapter 6 - Use Production to Enhance Test Strategy
Chapter 7 - Team Testing Reviews for Sustainable Testability
Appendix - Notes on 10 P's of Testability
1 - People
2 - Philosophy
3 - Product
4 - Process
5 - Problem
6 - Project
7 - Pipeline
8 - Productivity
9 - Production Issues
10 - Proactivity
About the authors
Index