Team Guide to Software Testability: Better software through greater testability
By Ash Winter and Rob Meaney
()
About this ebook
Testability is a vital property of modern software. It enables software teams to make changes rapidly and safely with clear feedback loops to understand the impact of changes. When your product is testable, it is more likely to meet all of your customer's needs. If you want to drive improvements in both speed and agility, testability is the fuel
Related to Team Guide to Software Testability
Titles in the series (2)
Team Guide to Metrics for Business Decisions: Pocket-sized insights for software teams Rating: 0 out of 5 stars0 ratingsTeam Guide to Software Testability: Better software through greater testability Rating: 0 out of 5 stars0 ratings
Related ebooks
Devops in Practice: Reliable and automated software delivery Rating: 1 out of 5 stars1/5CI/CD Pipeline with Docker and Jenkins: Learn How to Build and Manage Your CI/CD Pipelines Effectively (English Edition) Rating: 0 out of 5 stars0 ratingsThe DevOps Mokitas: Avoid the Elephants in Your DevOps Adoption: A Handbook of Devops Mistakes to Avoid Rating: 0 out of 5 stars0 ratingsDevOps A Complete Guide - 2020 Edition Rating: 0 out of 5 stars0 ratingsSoftware architecture A Complete Guide - 2019 Edition Rating: 0 out of 5 stars0 ratingsSonar Code Quality Testing Essentials Rating: 0 out of 5 stars0 ratingsChaos Engineering A Clear and Concise Reference Rating: 0 out of 5 stars0 ratingsKubernetes A Complete Guide Rating: 0 out of 5 stars0 ratingsScrum Release Management: Successful Combination of Scrum, Lean Startup, and User Story Mapping Rating: 0 out of 5 stars0 ratingsMicroservices with Azure Complete Self-Assessment Guide Rating: 0 out of 5 stars0 ratingsBanking on Cloud Data Platforms: A Guide Rating: 0 out of 5 stars0 ratingsDeveloping Web Services with Java APIs for XML Using WSDP Rating: 0 out of 5 stars0 ratingsjQuery UI 1.7: The User Interface Library for jQuery Rating: 0 out of 5 stars0 ratingsAsynchronous Android Rating: 4 out of 5 stars4/5Microservices with Azure A Complete Guide - 2019 Edition Rating: 0 out of 5 stars0 ratingsMongoDB High Availability Rating: 5 out of 5 stars5/5Java Enterprise Design Patterns: Patterns in Java Rating: 2 out of 5 stars2/5Testing with JUnit Rating: 0 out of 5 stars0 ratingsDocker Complete Self-Assessment Guide Rating: 0 out of 5 stars0 ratingsScala Programming for Big Data Analytics: Get Started With Big Data Analytics Using Apache Spark Rating: 0 out of 5 stars0 ratingsBuilding Microservices with .NET Core Rating: 1 out of 5 stars1/5Mobile Web Performance Optimization Rating: 0 out of 5 stars0 ratingsDeveloping Cloud Native Applications in Azure using .NET Core: A Practitioner’s Guide to Design, Develop and Deploy Apps Rating: 0 out of 5 stars0 ratingsCloud Development and Deployment with CloudBees Rating: 0 out of 5 stars0 ratingsJava Complete Self-Assessment Guide Rating: 0 out of 5 stars0 ratingsApplied Architecture Patterns on the Microsoft Platform Second Edition Rating: 0 out of 5 stars0 ratings
Technology & Engineering For You
The 48 Laws of Power in Practice: The 3 Most Powerful Laws & The 4 Indispensable Power Principles Rating: 5 out of 5 stars5/5Longitude: The True Story of a Lone Genius Who Solved the Greatest Scientific Problem of His Time Rating: 4 out of 5 stars4/5The Art of War Rating: 4 out of 5 stars4/5A Night to Remember: The Sinking of the Titanic Rating: 4 out of 5 stars4/5Vanderbilt: The Rise and Fall of an American Dynasty Rating: 4 out of 5 stars4/5How to Disappear and Live Off the Grid: A CIA Insider's Guide Rating: 0 out of 5 stars0 ratingsThe Invisible Rainbow: A History of Electricity and Life Rating: 4 out of 5 stars4/5The Art of War Rating: 4 out of 5 stars4/5The Big Book of Maker Skills: Tools & Techniques for Building Great Tech Projects Rating: 4 out of 5 stars4/5The Systems Thinker: Essential Thinking Skills For Solving Problems, Managing Chaos, Rating: 4 out of 5 stars4/5The Right Stuff Rating: 4 out of 5 stars4/580/20 Principle: The Secret to Working Less and Making More Rating: 5 out of 5 stars5/5The Big Book of Hacks: 264 Amazing DIY Tech Projects Rating: 4 out of 5 stars4/5Ultralearning: Master Hard Skills, Outsmart the Competition, and Accelerate Your Career Rating: 4 out of 5 stars4/5Artificial Intelligence: A Guide for Thinking Humans Rating: 4 out of 5 stars4/5Smart Phone Dumb Phone: Free Yourself from Digital Addiction Rating: 0 out of 5 stars0 ratingsDeath in Mud Lick: A Coal Country Fight against the Drug Companies That Delivered the Opioid Epidemic Rating: 4 out of 5 stars4/5The Fast Track to Your Technician Class Ham Radio License: For Exams July 1, 2022 - June 30, 2026 Rating: 5 out of 5 stars5/5No Nonsense Technician Class License Study Guide: for Tests Given Between July 2018 and June 2022 Rating: 5 out of 5 stars5/5Logic Pro X For Dummies Rating: 0 out of 5 stars0 ratingsThe ChatGPT Millionaire Handbook: Make Money Online With the Power of AI Technology Rating: 0 out of 5 stars0 ratingsUnderstanding Media: The Extensions of Man Rating: 4 out of 5 stars4/5Broken Money: Why Our Financial System is Failing Us and How We Can Make it Better Rating: 5 out of 5 stars5/5The CIA Lockpicking Manual Rating: 5 out of 5 stars5/5Summary of Nicolas Cole's The Art and Business of Online Writing Rating: 4 out of 5 stars4/5
Reviews for Team Guide to Software Testability
0 ratings0 reviews
Book preview
Team Guide to Software Testability - Ash Winter
Team Guide to Software Testability
Better software through greater testability
Ash Winter and Rob Meaney
Copyright © 2016 - 2021 Ash Winter and Rob Meaney. All rights reserved.
Published by Conflux Books, a trading name of Conflux Digital Ltd, Leeds, UK.
Commissioning Editor: Matthew Skelton
Cover Design: Elementary Digital and Matthew Oglesby
For information about bulk discounts or booking the authors for an event, please email info@confluxbooks.com
ISBN: 978-1-912058-66-2
eBook ISBN: 978-1-912058-67-9
Kindle ISBN: 978-1-912058-79-2
PDF ISBN: 978-1-912058-69-3
The views expressed in this work are those of the author(s) and do not represent the publisher views. While the publisher and the author have used good faith efforts to ensure that the information and instructions contained in this work are accurate, the publisher and the author disclaim all responsibility for errors or omissions, including without limitation responsibility for damages resulting from the use of or reliance on this work. Use of the information and instructions contained in this work is at your own risk. If any code samples or other technology this work contains or describes is subject to open source licenses or the intellectual property rights of others, it is your responsibility to ensure that your use thereof complies with such licenses and/or rights.
publisher's logoConflux Books: confluxbooks.com
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
Team Guides for Software
Pocket-sized insights for software teams
The Team Guides for Software series takes a team-first approach to software systems with the aim of empowering whole teams to build and operate software systems more effectively. The books are written and curated by experienced software practitioners and emphasize the need for collaboration and learning, with the team at the centre.
Titles in the Team Guides for Software series include:
Software Operability by Matthew Skelton, Alex Moore, and Rob Thatcher
Metrics for Business Decisions by Mattia Battiston and Chris Young
Software Testability by Ash Winter and Rob Meaney
Software Releasability by Manuel Pais and Chris O’Dell
Find out more about the Team Guides for Software series by visiting: http://teamguidesforsoftware.com/
Conflux Books
Books for technologists by technologists
Our books help to accelerate and deepen your learning in the field of software systems. We focus on subjects that don’t go out of date: fundamental software principles & practices, team interactions, and technology-independent skills.
Current and planned titles in the Conflux Books series include:
Build Quality In edited by Steve Smith and Matthew Skelton (B01)
Better Whiteboard Sketches by Matthew Skelton (B02)
Internal Tech Conferences by Victoria Morgan-Smith and Matthew Skelton (B03)
Technical Writing for Blogs and Articles by Matthew Skelton (B04)
Find out more about the Conflux Books series by visiting: confluxbooks.com
Acknowledgements
We’ve learned and taken huge inspiration from many experts and practitioners whilst writing this book. We would like to thank the following people for their help and inspiration (in alphabetical order): Andy Butcher, Angie Jones, Christopher Chant, James Bach, Janet Gregory, Jon Allspaw, Lisa Crispin, Maria Kedemo, Mark Winteringham, Nicola Lindgren, Nicole Forsgren, Richard Bradshaw, Sally Goble, Steve Smith, Tom Hudson.
We also give a big thank you
to our reviewers: Ali Hill, Christopher Chant, Dave Harrison, Joost van Wollingen, Lisa Crispin, Urbano Freitas.
Ash would also like to thank: Rob for being a constant font of ideas and models as well as a good friend; Gwen for reminding me that writing clearly is more important than the vocabulary; Manuel for guarding the former when it slipped past Gwen; Matthew for his drive to get the books moving and his ability to impart his growing knowledge of the publishing industry. Finally, a special thank you to Martin Gijsen for asking the right questions to focus my mind on what testability really means to me.
Rob writes: I’d like to thank the testing community for supporting and encouraging me throughout the years, Matthew for the opportunity to share my ideas and Manuel for the guidance in expressing them. I’d like to thank Ash firstly for all his help is putting this book together but more importantly for being such a patient, wonderful person throughout the process. Lastly, I’d like to thank Tom and Mary for planting the seed and Miriam, Adam and Abigail for being my light
.
– Ash Winter and Rob Meaney
Praise for Software Testability
Finally, practical exercises with real-life examples and effective visual models so that your team can make real improvements to your product’s testability. We’ve needed this book for decades. Get it today, dive into any chapter that seems to relate to your team’s needs, and start improving one small step at a time.
– Lisa Crispin, Quality Owner at OutSystems and co-author of ‘Agile Testing’
Ash and Rob’s vast experience shines through in this fantastic book. Packed with revealing activities, the book will give you a great set of tools to improve testability throughout your company. I love that the authors demonstrate the benefits to individual roles, providing the reader with clarity on why quality is a team responsibility.
– Christopher Chant, Head of Production at Shelby Finance Limited
A must-read for anybody that wants to create quality software. The book covers all aspects of testability and gives readers everything they need to become testability-advocates themselves.
– Joost van Wollingen, Head of Test Engineering at iptiQ
This book does an amazing job at describing testability. The practical exercises allow you to confidently explore testability concepts with your team. A must read for anyone involved in software development!
– Ali Hill, Consultant at ECS Digital
This is a great book! It engages the entire team on a path to increased testability in the systems and applications that they release. Testability is something that the entire team needs to own. Rob and Ash have set a path for an all-team engaged approach with real-world examples and actionable content.
– Dave Harrison, Software Testing Practice Lead at Fiserv
Beside insightful content I really like all the exercises that allow teams to put in practice the knowledge captured and shared in the book. So I can learn not just the theory but also put it into practice in a guided way!
– Urbano Freitas, Professional Services DevOps Head of Practice at OutSystems
Exercises
Chapter 1 exercises
Team Test for Testability - page 4
Trade Off Sliders - page 9
Chapter 2 exercises
Testability Dependency Targets - page 21
Chapter 3 exercises
Testing Smells - page 35
Testability Mapping - page 43
Chapter 4 exercises
CODS model - page 58
Chapter 5 exercises
Agile Test Quadrants - page 85
Chapter 6 exercises
Data from Production - page 97
Chapter 7 exercises
10 P’s of Testability - page 122
Incident Reviews - page 130
Introduction