Testing Just Shifted To the Future

Post

I’ve been chatting with test professionals, investors, CEOs, and engineering teams the past few weeks to see how the recent work-from-home and macro environment has been impacting testers and testing activity. It seems that many previously slow-moving trends are accelerating, and will likely have a significant residual impact after things seem to be headed back to ‘normal’.

There have been major shifts before; desktop, web, mobile, and cloud. You could also argue waterfall, agile and everything in between were also shifts. But those were simply technological and process shifts. The world of testing just got nudged pretty hard by world events. Everyone has felt the shift, but may not realize the long term impact on the profession. We are in the acceleration phase of a new shift, one that will impact who, what, where, when, why and how testing will be done in the near future. The recent mass experiment of working from home, under pressure, under economic shock, with realtime changes, under government watch, the software now considered the critical infrastructure, and a lot of ambiguity will change the face of testing forever. Sure things will eventually normalize to a degree. But, these shifts were already underway, and the world just accelerated them for us. These shifts will be the new normal soon. Best to get ready for these shifts today

Who is doing the testing

In this new quick-turnaround, high-pressure world, the developer, product managers, and users are doing far more of the testing. The dedicated testers are there, sure, but often checking deployments after the fact because their manual test passes take too long, or the changes in their applications broke their regression automation and didn’t have reliable test results for the team to evaluate quality before the world and the business needed to ship. Developers are testing their code before checking in, running unit tests, and manually checking staging and production for risky aspects of the software related to their changes, hand in hand with product managers.

The testers are doing their normal work in the background, often after the software has been released. Yes they find issues after days of grueling manual regression or updating their test scripts, and the issues get fixed--but they are getting fixed after the fact in many cases right now. The old adage of ‘bugs are more expensive to fix when found later’, is being replaced by ‘it is more expensive not to ship quicky, then fix a few things later’.

The long-trending shift toward testing in production is accelerating to the point that many critical issues are being found by the users. Users are find websites are erroring out when the load on them is high. Some companies are experiencing a surge of 3-20X usage, and these users are encountering horrible usability, security, and reliability issues. Some of these apps even have the FBI issuing warnings. Many of these issues were likely known, but quiet and rare, or the testers were so busy running regression tests that they didn’t do load or exploratory/negative testing. The end-users, even the government, are now testing software in production.

An important question is who are the best testers for this environment--for the future. Testers that are highly adaptive, creative, great communicators, and not stuck to old, or any particular dogmas are the best testers to have on board. Some testers debate the minutiae and miss the forest for the trees. Some testers argue on automation versus manual when the answer is both. Some testers debate the semantics of ‘testing’ vs ‘checking’, or point out that automation is actually manual because coding is ‘manual’, or endlessly discuss what really is ‘AI vs Machine Learning’ or argue that ‘no product can be fully tested due to combinatorics’. The world needs more testing regardless of dogmas and ego. I’ve not seen any high-quality product teams recently where these debates are raging. The world needs testers who can analyze all aspects of the problem, familiar with all forms of testing and quality activities, apply creativity under time constraints, and ensure that software can work reliably under very demanding circumstances for users, for the business, and for the world. Oh, and teams are realizing they can get by with fewer testers.