Becoming a Modern Software Tester
Many testers will say their biggest asset is the ability to understand what a business user wants. While that can be beneficial, it’s not as important for today’s technology teams. As hard as it may sound, the modern tester needs to look a lot more like a developer than a business user. It may seem like I just devalued the entire role of testing, but in fact, it makes testers more valuable than ever before.
Companies are either working in agile or they are on their way. That means testers are now on teams that have a product owner from the business. So, for the tester, the most important trait is not understanding what the business user wants, but being able to integrate the business need into tests.
With agile, testing needs to keep up with development so the team can deliver throughout the sprint, every sprint. To maintain that pace, the tester needs to ensure testing is fast.
But testing faster does not mean cutting corners. It’s about testing in a way that we can still hit what is important and the developer and product owner know quickly whether something is working or not. Automation is the key.
Unfortunately, the best automation tools require some level of programming. This does not mean you have to be an expert programmer, but you must be able to read code and write basic functions, typically in Java.
Once you can automate tests, you must understand the continuous integration (CI) tools your team is using. You need to know how these tools work because they are the foundation of the assembly line that brings code from development to production. Your tests need to integrate with that assembly line, and you need to know how to create integration to execute your tests, as well as understand the results and make determinations if other processes should run based on those results.
Once your tests are running more frequently, you will expose constraints that you have most likely been overcoming in manual testing, like test data or third-party interfaces. Because the expectation is that your tests will now run multiple times per day, every day, you will need to leverage tools like service virtualization to eliminate those constraints.
For test data, you need the capability to provision your data on the fly, whether that is via a tool or a stub. For third parties or downstream systems, you must eliminate dependencies on their availability, another place where virtualization can play a critical role.
As your company adopts agile and begins to deliver more frequently, you have to become a modern tester by learning to code, understanding CI, and using tools to eliminate constraints.
Adam Auerbach is presenting the keynote Testing and DevOps: Organizations and Their Culture Must Change at STARWEST 2017, October 1–6 in Anaheim, California.