How Software Testers Can Stay Relevant
Sometimes odd things happen in an industry that wants to move forward. In our industry, this change is putting particular pressure on the testing profession. With the increasing technical complexity of systems and the challenges of fitting testing into processes like DevOps, some companies have decided to fire their testers and replace them with developers. The idea is that developers are better able to cope with automation and will have more insight into what to test and the architecture of the systems than testers.
I consider this a case of a bad solution getting in the way of a good problem. Testers can bring a lot of value to the table, whereas developers may not like testing. Given that develoeprs are often in short supply, it may not always make sense to let developers create extensive functional testing.
A large number of improvements are made by development to improve quality, even before testers are involved. These include unit testing, better system designs, ready-to-use frameworks, and more organized processes. This gives testers some serious "competition".
A positive development is more effective cooperation between disciplines, like developers, product owners, users, testers, and operations. This allows testers to find their spot and provide the testing that contributes most to the team.
The tester profession is still in demand, even making Fortune’s 2016–2017 list of the top ten in-demand jobs.
In my view, testers have an important responsibility to protect and further their craft. Many people who want to be considered testers should engage in career development more than they might have in the past. Here are four areas that testers need to understand to stay relevant:
First there is the profession itself. Make sure you know and understand testing techniques. These have been developed over the years, and there are many resources to help you become more practiced in your craft.
Second is domain knowledge. Try to understand the functionalities under test, which can include working with people like domain experts and product owners. If you work for a bank, make sure to understanding banking and financial processes. This kind of knowledge can increase your value.
Third is engineering knowledge. You should be familiar with SOA (in particular REST), containers, and micro-services. You should also understand the DevOps world very well—including the tools and techniques around CI and CD. You should be able to define configurations and use a cloud service.
And then there is the tester attitude. As a tester you need to find bugs. If bugs were easy to find they wouldn't be there. A tester needs to have a certain curiosity and aggressiveness. Many bugs are not coding bugs but are wrong responses to unexpected situations and are things testers need to be adept in recognizing. Developers may have built the system that was specified and even have tested individual units and entire services, but if all parts of a system come together and get confronted with real-world usage, things can still go wrong. Exploratory approaches, both in test development and hands-on testing, can help find the unexpected.