Finding Failure, Not Bugs

As testers, we are wired to find and prevent software defects during the application development lifecycle. As agile and DevOps practices become predominant, that type of testing becomes more of a challenge as software is delivered more quickly and more frequently. The likelihood of defects manifesting themselves in production becomes higher.

Yet we continue to focus on finding defects and assessing risks prior to deployment. Further, we are ill-prepared to respond quickly when a failure occurs in production, because such a scenario has never been a defined goal of the practice of testing.

This presentation describes a paradigm shift in testing from preventing defects prior to delivery to responding quickly and accurately to their appearance in production. To make this radical shift in priorities, testers have to become experts at understanding the deployment environment, identifying when an application fails, and working within cross-functional teams to quickly diagnose and fix those failures.

Testers can do this by practicing application failures, devising and executing scenarios in which features cease working or the application slows down. We also need to employ chaos engineering, deliberately causing production failures to investigate the weaknesses of the application and addressing those weaknesses prior to an actual failure. By changing the focus of testing to focus more on production, the testing profession can add new value to the full application lifecycle.