Everyone working on a software team is responsible for the quality of the software. Where is the direction software testing going? How does this relate to developers, infrastructure, and testers in how we make better quality software?
Typically as we have talked about automating our testing efforts we discuss the testing pyramid. This conveys where the most value in our testing occurs and its speed.
It is not the only part of the story. As software grows testing becomes more nuanced. How do we catch the bugs that reach it to production?
In order to master Continuous Integration and Delivery we need to master testing in production safely.
As we make and connect more systems we also increase points of failure. We need to embrace failure as a constant and use it as a rapid learning experience.
How can we make our software safer for the people that maintain it? How can we make it safer for the people using it?
New software we make must be made to be observable and explainable. If it is not it will cost significantly more to support and maintain over time.
Where we spend most of our time in tracking down problems
- How much of the problems we catch are because we have monitoring, alerting, and dashboards?
- When significant problems occur how long does it require a person to debug that code?
- How easy is it to debug or find the right information to track down the issue?
- What habits are we developing to make it easier for teams to catch where problems are introduced?