As software becomes more complex, test automation becomes an increasingly important component of software development teams. Test automation engineers are instrumental in helping organizations achieve their software development and business goals. In this blog post, I'll detail the essential skills and strategies that elevate aspiring test automation engineers to rock star status.
What Does Effective Test Automation Look Like?
Before I detail how people can become test automation rock stars, let me first cover what effective test automation looks like.
Some mistakenly believe that test automation is all about the execution of tests. It's far more than that. Effective test automation is a strategic approach that is not only aligned with project goals, but also contributes to broader business objectives.
Effective test automation includes high-value activities and tests focused on user experience, application integrity, application performance and more. It needs to be reliable and provide fast feedback. By identifying issues and bottlenecks in the development pipeline quickly, automation helps create an efficient software delivery lifecycle.
Continuous improvement is another important aspect of an effective test automation strategy. Effective test automation engineers are always looking for ways to improve their solutions and add more value. And finally, effective test automation allows testers to focus on high-value testing tasks: finding issues that need to be addressed.
The First Step In Becoming a Test Automation Rock Star
The path to becoming a test automation rock star will be different for everyone. As with most things in life, how you reach a destination depends on where you start. So first find your starting point.
Here's a self-assessment mind map to help you determine where you are today:
As you go through each area of the mind map, be specific and realistic about your specific strengths and weaknesses. Understanding your gaps will help you plot an efficient path for growth.
Plotting Your Path to Becoming a Rock Star
To address the gaps in your skill sets, I recommend taking things in this order:
- Software testing skills
- General tech skills
- Programming skills
- Test automation skills
The first step along this path is learning the craft of software testing. I’ve found the following capabilities are key components to becoming a rock star.
- Understand the importance of viewing testing as a craft that requires specialized skills
- Learn the levels of testing (unit, integration, etc.) and how they complement each other
- Learn a variety of testing techniques and when to use them
- Understand how testing adds value throughout the software delivery cycle
- Learn how to communicate the value of testing to product stakeholders
To expand your knowledge of software testing fundamentals and techniques, I recommend these books and blogs:
Books
- Perfect Software and Other Illusions About Testing (Weinberg)
- Pragmatic Unit Testing (Langr, Hunt and Thomas)
- Software Testing: A Craftsman's Approach (Jorgensen)
- Software Testing Techniques (Belzer)
- Testing Computer Software (Kaner)
- Testing Object Oriented Systems (Binder)
- The Craft of Software Testing (Marick)
Blogs
- Developsense Blog (testing focused)
- Google Testing Blog (testing focused)
- Ministry of Testing (testing community)
- Satisfice Blog (testing focused)
- Thinking Tester (testing focused)
- Visible Quality (testing & QA focused)
After you've brushed up on software testing fundamentals, it's time to move on to software testing in modern software development. Here are some books and blogs that are worth reading:
Books
- Agile Testing: A Practical Guide for Testers in Agile Teams (Crispin and Gregory)
- More Agile Testing (Crispin and Gregory)
- Practical Guide to Testing in DevOps (Clokie)
Blogs
- Agile Testing Fellowship (Agile testing community with blog and training courses)
- Continuous Testing and DevOps (DevOps testing)
- Katrina the Tester (DevOps testing)
- Lisa Crispin blog (Agile testing)
How Rock Stars Approach Test Automation
An important aspect of being a rock star is figuring out what NOT to do.
A lot of organizations take a naive approach to test automation. They start with a tool or framework focus. They overengineer it, adding a lot of bells and whistles that don't add value. Meanwhile, they're ignoring foundational factors for success, such as test data management and environment management.
Next, they move on to automating tests, taking existing scripted tests and automating them verbatim. This often leads them to taking a UI-heavy approach, testing all layers of the application through the user interface.
On execution, they execute late in the sprint – or worse, in the next sprint. Execution becomes flaky with irrelevant failures (i.e., failures that have nothing to do with the application). They measure counting metrics, such as the number of tests automated.
Don’t take this approach and end up being a rock star groupie. Instead, focus on these principles:
- Understand that test automation is a process, NOT a tool or framework
- Automate testing activities to further software development goals, not for the sake of automation. Always look to add value
- Learn how to assess your readiness to succeed with test automation
- Learn test automation design techniques to ensure reliability and maintainability
- Learn how to communicate the value of test automation to product stakeholders
The Test Suite Canvas
The Test Suite Canvas is an excellent framework for determining what test suites you need and how to best implement them. It's a set of questions to help you think critically about your test automation readiness. It comes from Ashley Hunsberger's presentation at SauceCon 2018, and was adapted from the original concept that Katrina Clokie introduced in her blog post Test Automation Canvas:
For more details, download our white paper, "The Test Suite Canvas: A Framework for Effective DevOps Testing" (free registration required).
Test Automation Strategies
When you get to automating tests, don’t let up - focus on these approaches to ensure you’re adding value- Interact with the application in the most direct way
- UI level for testing UI mechanics
- API or component level for testing variation on the backend components
- Consider contract tests vs. end-to-end automation across systems. End-to-end automated tests make great demos, but typically require a lot of complex setup and have many unnecessary failure points.
- Avoid automating existing test scripts verbatim. Find the most efficient way to satisfy test objectives with automation.
- Provide actionable feedback to facilitate test failure analysis. This means clear information in logs and reports about what a test was doing when it failed.
Also be sure to take a context-driven approach. Don't let your current tools or knowledge be your hammer and make every automation opportunity look like a nail. Consider all testing activities for automation, not just scripted test steps. Broaden your definition of what a test automation "tool" is. Use the right tool for the job and think critically about your automation scope. Be sure to focus on high-value activities and tests - not just what is easiest to automate.
Finally, be sure to demonstrate the value of test automation to stakeholders across the organization:
- Align test automation with business and software development goals
- Avoid a focus on counting metrics (e.g., number or percentage of tests automated)
- Map automation coverage to areas of risk
- Measure the effectiveness of your automated test suite with the following metrics
- Number of irrelevant failures
- Maintenance effort
- Time to analyze root cause of failures
- Don't automate for the sake of automation
Key Characteristics of Test Automation Rock Stars
Summarizing the blog post, here are five foundational characteristics of Test Automation Rock Stars:
- Test automation rock stars follow their own unique path to rock star status
- Test automation rock stars have a foundation of software testing expertise
- Test automation rock stars strive for continuous improvement
- Test automation rock stars continuously focus on adding value
- Test automation rock stars never automate for the sake of automation