AKS - Fotolia
Testing is a real profession, but it's undergone significant upheaval and change in recent years. Don't expect that to change in the future. If you like rapid change and a fresh challenge with every project, the software testing profession can be a challenging and exciting career.
Just as programming offers a wide range of career choices, testing does as well. You can do anything from traditional UI testing to working with medical devices or even wearable devices. Depending on your skills, inclinations and, yes, job opportunities, there are many different directions to take your career in testing. Whether it can become a true career depends on your ability to reinvent yourself on a regular basis.
The software testing profession, as well as its knowledge and skills requirements, has changed substantially in the last decade. First, it has diversified. As testers, we understand the language of requirements, test plans, test scripts and defects. We create automation frameworks and run performance tests. Yet, the testing world has become increasingly more complex and fluid.
The software testing profession offers so many new areas of specialization. Big data, security, the internet of things (IoT), wearables, mobile and embedded as well as user experience, customer experience and even machine learning and artificial intelligence are just a few of the possibilities. And there are certifications in many of these areas.
Testers don't necessarily have to choose a specialization; in fact, because computing changes so rapidly, a single specialization may be too limiting to give you the breadth of experiences you need over a long career. However, there are some trends in technology and methodologies which all testers must embrace in order to really take the software testing profession seriously.
First are the Agile methodologies, which have largely become the mainstream of development methodologies. In Agile teams, the testers take on multiple roles, the most important of which is championing quality and helping the team to see quality as the responsibility of every team member. Testers also play a critical role in test-driven development where the tests are created first and code is developed to pass the test. Testers also have the opportunity to pair with developers in testing as the code is being developed.
DevOps is another trend that testers can't ignore and must contribute to. DevOps principles are based on breaking down barriers between development, testing, preproduction and operations, in order to get software into users' hands as quickly as possible, and to find faults and fix them in real time. In DevOps, testers' primary responsibility is ensuring the quality process.
Work on your communications skills
Communication and collaboration skills have never been more important. Testers are often the ones delivering the bad news, and they have to do so in a way that doesn't lay blame or responsibility. Further, they typically work as part of a larger team, and have to establish respect while advocating sometimes-unpopular positions.
Although the software testing profession is, of course, still viable, there can be disadvantages to a testing career. While most organizations need developers and IT people, some methodologies have been trending away from formal testing as practiced in many waterfall-based methodologies. In particular, Agile and DevOps are focused primarily on automated build and delivery chains, so automation skills are a requirement. Wearable, IoT and other devices may require knowledge of electronics and hardware-in-the-loop testing.
Generally, testing is no longer the gateway through which an application has to pass in order to be successively deployed. Companies have become far more willing to deploy software that may fail, as long as it does so fast. Yes, testers may face obstacles, but companies figure (often correctly) that users will help them tune their applications for more widespread use.
The upshot is that testing has become much more ambiguous than it has been in the past. To effectively keep up with the software testing profession, it is critical to develop skills related to defining and executing tests earlier and faster, and to be more attuned to the ambiguity of software releases and feedback.
Testers must manage their own careers by getting the experience and training they need to thrive and grow in the testing profession. Creative approaches for obtaining some of these experiences include volunteering for other projects that may be using innovative new techniques, or by participating in or even organizing corporate learning activities such as workshops and lunch-and-learn functions. Testers will have to invest in their own careers, perhaps by taking Agile or DevOps courses and certifications, or by working on independent open source projects.
Finally, to create a career in testing, it is important to recognize testing as a profession. Get involved in the testing community through conferences, online groups and meet-ups. These are not only great learning opportunities, but they offer testers a chance to mentor each other and to build recognition of testing as a profession.
How BizDevOps is going to change software testing again
Be the best software tester you can be
Here's why software testers need to be continuous learners