5 Test Automation Best Practices from World-Class Teams
What test automation best practices do world-class teams have in common?
Angie Jones of Applitools did some digging and found some fascinating commonalities in her research. She shared her findings in our recent webinar - Successful Test Automation Practices From Innovative Brands.
As one of the country’s top Test Automation Consulting Services firms, we have had the opportunity to work with many world-class automation teams and have seen these test automation best practices in action.
Here are 5 Test Automation Best Practices that are shared by many of the top teams we’ve worked with:
1. Selenium Is Still The King… But Keep An Eye On Cypress
When it comes to frameworks for web testing, Selenium is still the de-facto standard for many top automation teams. Its flexibility in allowing coding to be done in several languages and overall maturity as a solution make it an easy choice. At tapQA, we have created test automation accelerators in multiple languages using Selenium that allow organizations to quickly get their automation efforts off the ground, shaving valuable time in eliminating the initial setup process in creating a framework.
Cypress has gained in popularity as an automation framework for web testing, and for many top automation teams reliant on JavaScript, has become a framework of choice. Cypress is incredibly quick and easy to install, allowing developers to implement an end-to-end testing solution in no time at all. Cypress prides itself as being a very “developer-friendly” tool, so for automation teams that rely more on developers handling their test automation, Cypress is an emerging choice.
2. Software Quality Is Driven From The Top
In today’s competitive software landscape, quality is seen as a key differentiator and selling point. The importance of software quality and testing has risen dramatically among surveys of CTOs and now sits among their very highest priorities. We’ve seen that the best test automation teams exist in organizations emphasize software quality as a huge part of their culture.
In those organizations that share a strong top-down commitment to quality, the shift has been made from quality control to quality engineering. Software is written with testing and test automation in mind. Whether test automation practices are built solely with developers or a hybrid approach (involving both development and QA), the emphasis on quality from technical leadership has allowed these organizations to “shift left” and focus on testing as part of the entire software development life cycle. There’s a direct correlation between strong buy-in from leadership on the importance of quality and the maturity of a test automation practice.
3. CI/CD Is The Ultimate Goal
Among the top software quality engineering teams we’ve worked with at tapQA, the ultimate goal is the successful implementation of continuous integration and continuous deployment (or delivery) principles. Every mature test automation and DevOps practice researched for the Webinar is practicing CI/CD. This allows organizations to speed up release cycles by automating the testing, build phase, and deployment of smaller software updates more frequently. It also allows organizations to catch small errors when they are manageable, before they become larger problems.
An important note – while having efficient CI/CD practices are a leading indicator of how mature an automation practice is, even the top test automation teams rarely achieve the “dream scenario” of having a full pipeline from check in to deployment.
Many clients we work with are still growing their CI/CD capabilities. We start with many organizations by building initial pipelines and utilizing tools like Jenkins, AWS, or Azure DevOps to get teams up and running with efficient CI processes. Overall Jenkins is the most popular CI tool utilized by organizations as it is an open source automation server that drives CI/CD. Learn more about how tapQA uses tools like Jenkins to help organizations achieve CI/CD.
4. Manual Test Professionals Play A Critical Role In Test Automation
While many top automation practices we’ve worked with heavily involve developers in creating the code for automated tests, a common theme is that developers often “don’t think like a tester” and don’t approach testing with the right approach.
Enter: The Quality Advocate. Some of the most valuable members of top test automation teams don’t write any code at all. Instead, these Quality Advocates, who are often strictly manual testers, help build these top automation practices by doing the following:
- Creating the overall test strategy
- Evaluating and selecting tests that should be automated, and how thoroughly to test based on risk
- Writing automatable test cases to hand off to development for them to code
- Coaching developers on proper test principles and on writing better tests
- Focusing on the “big picture”- the overall usability and end-user satisfaction of the software
- Identifying and eliminating unnecessary tests that might slow down the overall cycle
Many of the very best test automation teams heavily involve manual test professionals in their practices. Their quality acumen is a critical component to ensuring testing is done properly. The coding skills of development engineers and the testing strategy and mindset of QA professionals is a winning combination!
5. Automation Suites Aren’t Built In Any One Language
When it comes to the languages used in test automation frameworks, there is no “One Size Fits All” approach. The best practices we’ve seen focus on creating their frameworks in languages that are most native to their organizations. With the flexibility of test automation frameworks, organizations can take advantage of the languages most widely used by their internal teams for writing automated scripts. This allows for a strong hybrid approach in which teams can better utilize their in-house development talent.
Among the teams we work with, Java is still the dominant language for test automation, and many enterprises that develop software in the .NET framework build their automation suites in C#.
However, we have seen a huge rise in using JavaScript for automation given the increase in those learning it for use in web and Full Stack development. This has allowed developers to write automated tests quicker, keeping them more engaged in both the development and test automation processes.
We’ve also seen a large increase in companies that use Python for test automation scripting as well. A recent blog post from the IEEE Computer Society recognized Python as “the #1 language to learn in 2020” and continues to grow in popularity given its lightweight nature and low barrier to entry. As test automation frameworks expand into Artificial Intelligence, Python has become the chosen language of many involved with AI efforts.
How does your test automation compare to world-class teams?
Find out with our free Test Automation Maturity Assessment. One of our Senior Consultants reviews the current state of your automation (or readiness for automation). This includes current personnel and technology. The high-level road map we create will empower your organization to maximize your investment in test automation - increasing your test velocity and enabling you to release better software, faster.
Michael Wagner
Michael Wagner is a Test Architect and Principal Consultant with tap|QA. He has over 13 years of industry experience as a Software Tester, Engineer, Developer, and Architect; He is primarily focused on driving innovative test automation practices and strategies within a number of organizations ranging from software to hardware. He enjoys sharing his technical prowess with industry colleagues and has given several technical presentations on test automation strategies and best practices. His areas of expertise are software testing, artificial intelligence, test automation and open source technologies.
Have a QA question?
Our team would love to help!