When we talk about continuous testing, the term automation gets used a lot. Basically, this means the use of technology to complete a task. However, when it comes to testing, there are some things that you need to take into account. Let’s start with the basics and define the two types of automation when it comes to testing.
There are two types of automation in the world of testing in general and continuous testing in particular.
- Automated Testing
- Test Automation
It is easy to assume that these might be just two different ways of saying the same thing, but truth is, these terms are actually very different.
The first term stands for the act of conducting specific tests via automation as opposed to conducting them manually, while the second refers to automating the process of tracking and managing the different tests.
Both are important to continuous testing, but it’s test automation that is the real star of the process.
Why Test Automation Is Critical to Continuous Testing
Before going into further detail, we should establish a clear understanding of what continuous testing is. It is basically an approach to software testing that aims to ensure quality at all times.
Traditionally, testing is performed at the end of the development cycle, but we now live in times where the continuous delivery model is taking over and software is being constantly developed. Well, this is where continuous testing steps in – to ensure quality at every stage of the process.
While this looks like the better way of testing software that is being constantly improved, issues such as deadlines start to occur. For example, if something breaks down and needs to be improved, it holds up everything else and slows down the release of new developments.
This is exactly where test automation steps in and eases the burden of dealing with so many tests by automating the tracking. It allows testers to focus on creating effective test cases, ensuring the quality of the software as they are no longer engaged in managing all the trivial details of testing needs.
How Does This Work in Reality?
The concept of test automation is the perfect fit for tests that are subjected to continuous testing, but let’s have a look at what actually happens when reality strikes.
In a typical scenario, tests need to:
#1. Communicate with the product owner or representative to distill the essence of the potential problems by gathering product requirements.
#2. Break those product requirements into user stories.
#3. Write a combination of test cases to fulfill the contract of the requirements.
#4. Keep track of the progress of each step for each phase.
- Developer branches that compose components of the feature
- Deployment artifacts that compose parts of the systems and services needed to support that feature
- Regressions to ensure that those changes don’t affect other aspects of the system
- Functional verifications to ensure the product is fulfilling its original purpose
Of course, every product has its own specifics, but having this scenario in mind has given testers the idea of creating a solution that can help automate the process of creating test cases for each and every work item and scheduling the execution of those tests.
That solution should allow automation by:
- Managing each and every test case by flagging lists of all work items to bring new needs to the testers’ attention automatically
- Integrating with the Application Lifecycle Management (ALM) so that when a particular type of task gets created in the ALM, a copy of the same task gets created at the same time.
- Allowing users to categorize work items by logical containers (by feature, for example) to make it easy for the users to ensure proper coverage for each pipeline.
Embracing Continuous Testing
As continuous delivery models are becoming the norm, so is continuous testing. Testers should already think about that and more importantly, think about what it will take to manage the change that comes with performing tests throughout the entire development process.
It is clear that test automation is the lethal weapon in every tester’s arsenal given its ability to help keep track of all the different tests that need to be performed at every stage of the development and take place at various points in the pipeline.