Testing is a critical step in the software development lifecycle but also the part of the process most DevOps teams trip over. The solution — test automation — has been talked about for years but has been far easier said than done. However, with new technologies on the rise, test automation is taking off. DevOps teams need to be prepared with modern software testing skills. Here's how to get started.
The benefits of automated software testing
In GitLab's 2021 Global DevSecOps Survey of over 4,000 developers, security professionals, and operations team members, respondents agreed on one universal truth: Software testing is the biggest reason why development is delayed.
It’s critical to get software testing right because it’s financially disastrous to get it wrong. How much money do software mistakes add up to? Somewhere in the trillions. Yes, with a “t.”
DevOps.com reported that software failures in companies’ operations systems cost a total of almost $1.6 trillion in the U.S. in 2019 alone.
But testing has traditionally been difficult to do efficiently and not particularly popular with developers. The solution? Test automation combined with modern software testing skills.
It’s a hands-on start
DevOps teams looking to up their test game need to take a step back... into manual testing.
(The irony is not lost on us.)
A manual testing mindset can actually improve all facets of automated software testing. As devs perform basic tests on their code as it’s being written, channeling their inner manual tester can be helpful. Whether it’s looking at the requirements again or running failed fixes one more time, that attention to detail should be brought into how automated test cases are built and executed.
Take the modern view
Once developers have incorporated some old-school habits into their test cases, it’s time to consider some fresh perspectives, up to and including a deep understanding of the organization’s goals and objectives.
According to Modern Testing, there are key principles of modern testing that every developer needs to be aware of for successful testing at any stage:
- Job one is to make the business better.
- Rely on trusted resources like Lean Thinking and the Theory of Constraints.
- Fail fast but focus on success.
- Always be the customer when testing.
- Do data-driven work.
- Testers are evangelists.
As the saying goes, every little bit helps. Though it is not required, a training program or certification course in software testing can enhance team capabilities.
If there's interest in this option, research courses online that might fit. From beginners to experienced testers, there’s something for everyone.
Not sure where to start? Teams can explore the International Software Testing Qualifications Board (ISTQB) Foundation Level Certification for CTFL certification. This is required before taking any other certifications (see the full list of ISTQB prerequisites). After CTFL, there are many interesting certification options.
Embrace new technologies
Artificial intelligence and machine learning are at the core of test automation, so a thorough understanding of the technologies is a key modern software testing skill to have onboard. If AI/ML is already in use, ask to shadow or “apprentice” those working with it. Organize a Q&A for the DevOps team with an expert, and pull together a suggested reading list. The more understanding and experience, the easier it will be to get the most out of an ML bot.
Dive into the metrics
Automation is not only going to lead to faster releases, it's going to make it possible to do even more testing, which is great but, of course, also means there will be even more data than ever before. It can be easy to feel overwhelmed by it all, so it's critical DevOps teams decide and focus on the metrics that matter most to the organization. It could be pipeline stability, time to first failure, or the "age" of open bugs... but whatever they are, they're important to continue to measure and understand.
The bottom line on modern software testing skills
Testers, who’ve often been overlooked when it comes to DevOps fame and glory, have an opportunity to reinvent themselves and their QA roles if they can take advantage of modern software testing skills. It’s a critical step in the process that is finally getting some much needed attention and tech investment, so it makes sense to take it seriously.