If you've ever had to take on a test automation project, whether starting from scratch or jumping into an existing implementation, it's a bit intimidating. Where do you start your test suite? Which areas need automated coverage as soon as possible, and which ones can you defer until later? The overwhelm often leads testers down one of two paths: paralysis by not knowing what to do or wasting time on the wrong testing activities.
The most common suggestion to this indecision is "Just get started and figure it out as you go." While it's always good to take action in moments like these, it can also lead you astray. I've seen plenty of well-intentioned teams jump straight into their test automation tasks haphazardly with no strategy in place, and it often doesn't end well for them. It's understandable to start like this since it's hard to know which direction to take. But if you dive in head-first without a plan in place, you'll likely dig a hole that will become difficult to climb out of in the future. The issues always show up in the form of flaky, unmaintainable, and useless tests.
Right off the bat, know that there's no surefire way to know for certain what's the right testing path for you and your team. However, you do have some ways to narrow down your choices and drastically increase the odds of success for your long-term testing plans. Mainly, I've used two simple questions that work time and time again to get any QA team unstuck when it comes to automated testing. If you're feeling stuck with your testing, ask yourself these questions to start moving you in the right direction.
Question 1: Which areas would cause the company to lose money or customers if it stops working?
No matter which company you work for or which industry you're a part of, never forget the primary reason your organization creates products and employs people like you and me - to make money. It's a business, after all, and they need money to keep the lights on. Even non-profit organizations need a steady infusion of cash to further their cause. Without money, there's no company, and we wouldn't be employed, as simple as that.
For most commercial products and software applications, the quality of its functionality is critical. If the product doesn't work as advertised—or even perceived not to work as intended—the company will lose time, money, and inevitably their customers. There's a real cost to handling customer support queries in any organization. The more problems your product has, the more employees are needed to keep customer churn down. If not taken care of in a timely manner, your company's customers will bolt, taking their money elsewhere.
As a tester, one of your main focuses should be on ensuring the product or application under your care works as intended. That means part of your responsibility is making sure your organization isn't losing customers or money due to a buggy experience. Some testers I've talked with don't believe that they're accountable for the company's bottom line, which is unfortunate because the role is crucial to any product's success. Without testers providing a solid, high-quality experience, usage of the product or application won't happen, at least not on a significant scale.
The focus on testing isn't limited to simply making the customer's experience as bug-free as possible, either. Although we focus more on bugs during testing, a good customer experience goes beyond running into fewer defects. As a tester, you must also smoke out other areas of potential customer abandonment, such as performance and security. Testing needs to include this as part of your everyday routine because it can become the difference between a successful product or a product that heads straight to the graveyard.
Question 2: Which areas of the project slow down manual testing the most?
As any product or software application grows, the higher the chance some areas will accumulate additional complexity. For instance, a straightforward single-page signup process on a website eventually becomes a multi-step wizard that branches off in different directions for different types of customers. Almost every kind of software-related product will have a few sections that are difficult to test manually, usually because they're time-consuming or prone to human error.
These areas are where automated testing truly shines and provides some of the most value you can get out of your efforts. Automation takes away most of the struggles and mistakes that occur during manual testing. Instead of spending hours on repetitive tasks, a few well-written scripts will give you the space to do other valuable testing work. Automated tests still require routine maintenance, and they aren't a silver bullet. Still, it'll make the average workday easier.
Focusing on automated tests for the more intricate areas of a project also ties into the first question. In my experience as a software developer, the places with the most complexity are often the places with the highest value for a business—their "secret sauce", if you will. After all, if the thing that makes a product or application valuable were easy to replicate, you can bet that any competitors would have the same functionality, and it wouldn't be that valuable in the first place.
Take a look at the current product you're responsible for in your work, and you'll likely find that the things that differentiate it from similar products in the market are the places where you spend the most time testing. Besides having the highest business value, those spots probably also contain the most time-consuming scenarios to validate. When you spot those sections, you can essentially double your effectiveness regarding automated tests. Combining these two questions will yield what I consider the top places to consider for test automation before anything else.
These aren't the only questions you should ask
These two questions can help you get started or unblock your path with automated testing for any product or application. But like almost everything in life, it's never as clear-cut as asking a few simple questions. Your testing situation will likely be different from most other testers out there, even if you work in the same industry and similar products. Priorities, timelines, resources, and further details come into play when you're planning out your test automation needs.
These two questions will get you far for most products and applications out there, especially in software products like a SaaS or desktop applications. They might be the only two questions you'll ever need. But they also might not serve your team's purpose whatsoever. If you already have an existing automation implementation for QA, you may be looking at improving internal processes, like making sure your test suite isn't slowing down development or deployment of new functionality.
Other products will have other priorities that need an entirely different set of questions. For example, if your organization builds a product that can potentially cause physical harm if they malfunction, like electronic medical devices or avionics software, you'll have other responsibilities with legal mandates in place. These products require an entirely different set of questions and approaches to testing. In these cases, you'll likely place your focus on ensuring the products pass their required certifications, and any defects won't hurt anyone.
The point is that everyone's situation is different. While I provided two questions to get you going, it doesn't mean you shouldn't look at your unique perspective and come up with the questions that better fit your needs. There's not a catch-all response for giving advice about what to test. It's up to each team and tester to use their judgment for the current situation and find the path that's right for you. As long as you put your circumstances into perspective, you'll be able to come up with better questions that will make your automated testing much more effective.
What questions do you and your team ask to move forward with your test automation plans? Share them with your fellow testers in the comments section!