Methodologies like Continuous Integration and Continuous Delivery are impossible when paired with legacy, mostly manual testing. Automation is a must-have. Because of this, deciding which automated testing tools to use can often be a pivotal, make-or-break point in any CI/CD initiative. It is important to understand the differences in the types of tools you can choose for an automated testing initiative.
To help make sense of a crowded industry, here are three categories of tools that you and your team might consider when beginning the journey to automated testing:
Test Creation - first things first, you will need to decide in what framework you will be writing your tests in. For many, this means exploring open source tools such as Selenium or Appium. To choose one, you need to consider what types of apps you will be testing when selecting a framework. While Selenium is the most popular testing protocol, if you’re developing a mobile application then Appium might be a better choice. But frameworks like Selenium and Appium are simply API libraries. Once you choose between the base frameworks, you also need to consider which bindings work best with your programming language. For example, while WebDriverJS is a very popular binding for JavaScript, WebDriverIO would be a better choice for developers who are working in Node.js. Choosing the correct binding that will connect your code to the browser or device you want to test is crucial, so researching your options is important. Luckily, there are open source options available in nearly every language.
Test Management - Once you have decided on your framework and appropriate bindings, the next set of questions revolve around how you will capture requirements, design automated test cases, and collaborate across teams. All of these can be achieved by selecting a test management tool. These tools allow for ultimate traceability of your growing automated testing practice by keeping everything in one place. And no need to worry about competing with other tracking systems and repositories - many test management platforms can integrate into tools like Jira, Confluence, popular CI Servers, and more. Many test management tools also provide rich dashboards and analytics that measure how your teams are performing against their goals, and the quality of the tests that they create.
Test Execution - The purpose of automated testing is to allow for increased coverage while decreasing the amount of time it takes to run those tests. To accomplish this you will need a strategy for test execution, or the infrastructure required to run tests across every required browser, operating system and device. There are a couple of different options to achieve this, from building an infrastructure from scratch, to fully-hosted solutions that are on-premise or in the cloud, and everything in between. No matter which you choose, it’s important to consider a few different things, including:
The coverage you need to achieve in your test execution platform
The debugging information that is important for your team to understand why failures occur (such as screenshots, recordings of the test, additional debugging tools like HAR files or browser console logs, and more!)
Scalability of a platform allowing for test parallelization to reduce runtimes
How your test execution data is presented using dashboards and analytics tools
The time and cost it would take to build and maintain such a platform internally
Automated testing is becoming a mission critical component to any CI/CD project, and there are a number of tools that can help achieve a number of different goals. However, it’s important to understand where these tools fit into your automated testing process, and how they can add value in the three key areas of test creation, management and execution. Using this basic framework as a starting point, you will be well on your way to choosing the right automated testing tools for your needs.
Related Content: