There is much talk in the software community about the upcoming trends in software testing—and about whether testers will even still be relevant or necessary in the years to come. I, for one, don’t think automation could replace the exploratory skills of a human tester, but that doesn’t mean our jobs won’t be changing at all.
There are lots of exciting possibilities and opportunities for tomorrow’s testers. Let’s see how this profession can be expected to evolve in the upcoming decade and beyond.
Skills and Technologies
Thanks to user behavior-analyzing tools such as Adobe Analytics and Google Analytics, requirements design can be tailored to specific customer groups. This has great potential to influence the Pareto principle—that 80 percent of your effects (sales, revenue, etc.) come from 20 percent of your causes (products, employees, etc).
Having this data lets you create very specific sets of requirements, specialized to customer profile groups based on their behavior and usage and weighted with expected results from these groups. The fulfillment of these requirements will have to be tested more precisely, so there will be less space for exploratory testing and more reliance on testers using their common knowledge and data analytical skills.
This is what persona testing is based on. This area has just started to develop in the last couple of years. In a few years, I predict we will be pairing persona testing with smart data, or the processed and cleaned big data, to get persona testing frameworks with perfectly optimized and measured A/B testing prototypes. There will be hardly any product, be it a webpage or wearable, without a marketing strategy aiming for the prime focus group, so a targeted approach to testing will hold essential business value.
I also predict that there will be a greater demand for testers to learn at least some basic programming. Scripting languages are becoming more and more effective and easier to learn; you don’t need to write fifty lines of assembly code to be able to script a test of a login function. Even manual testers are learning languages like Python, Selenium, or Perl because their rich online documentation makes the scripting of routine tasks even easier.
Automation tools also provide fantastic compatibility with functional, object-oriented, keyword-driven, and other kind of programming languages. Their rise makes building precise, fine-tuned automated test frameworks simpler. Consider how useful automation is when performing health checks of production environments in order to help lower the downtime of customer-facing services to a minimum. This is especially important with the rise of ever-available mobile apps and 24/7 services, such as online banking and health care providers.
Roles and Dynamics
Testers and developers are working more closely, with some testers even being embedded in the development or project team. While learning the fundamentals of testing is relatively easy—you often can start working after taking a good course or reading a detailed book—setting up and managing a test process requires years of experience and knowledge, and I don’t see that going away.
This knowledge will also be required in cross-functional teams working with continuous development. While all team members can test a given area pretty well, there’s a definite need for guidance. This also applies to crowd testing mobile devices or cloud setups. Testers may be integrated in other teams, and developers may be asked to perform some testing earlier in the development cycle—and that’s a good thing—but we will still need testers with defined expertise.