What is Continuous Test Automation?

Context:

We hear CI/CD/CT in the industry a lot these days. Especially all industries that are disrupted by Digital, need Continuous Delivery model in place. Continuous Delivery meaning that we are able to deploy changes to production in a continuous fashion on the fastest possible time. To reach that nirvana state, if we backtrack, we need to have Continuous Integration, Continuous Deployment and Continuous Test Automation capabilities built. While CI/CD/CT is more technical, it is a goal of Devops.

Devops

DevOps is a software development method that stresses communication, collaboration and integration between software developers and Information Technology (IT) professionals. DevOps is a response to the interdependence of software development and IT operations. It aims to help an organization rapidly produce software products and services

Devops

Continuous Integration

Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to detect problems early.

Continuous Deployment

Continuous deployment can be thought of as an extension of continuous integration, aiming at minimizing lead time, the time elapsed between development writing one new line of code and this new code being used by live users, in production.

Continuous Test Automation

Continuous Test Automation is a practice that encourages and aligns with the overall Continuous Delivery process. It is NOT only “Test Automation” but Test Automation done “continuously”.

I would like to spend some time here.

We know what Test Automation is right! Test Automation was traditionally thought as something ONLY for regression i.e. only after application has become stable, is responsive, can perform well etc.

However with the advent of Continuous Delivery model, “Test Automation” is not a siloed effort where a team would wait until manual test cases are written and then the team would pick them up and write automation scripts for the same. Yes that is still prevalent, however to move in the direction of Continuous Delivery, we need to have the mindset of Continuous Test Automation. This also falls inline with the Agile practices like ATDD,BDD and TDD. Test Automation can be started even before source code exists i.e. we can describe the behavior of the application in a scripty way.

Test Automation is already becoming a de facto way to test applications. Writing a bunch of word documents or static data in some system is waning fast in the industry. So start with Test Automation, but ultimately align with CI/CD/CT by doing the CT part i.e. Continuous Test Automation.

To summarize, Continuous Test Automation encompasses all(any) of the following:

  1. Continuously Test Automate
  2. With rapidly changing application, Continuous Test Automation is necessary
  3. Continuous Test Automation aligns with Continuous Delivery Model (CI/CD/CT)

An infographic that displays the overall view connecting the dots is as below. Obviously there can be many views to look at this whole system, however this is one of the many views. The right most block is what we refer to as Continuous Test Automation. There are lot of brands and company names however we are NOT recommending one over the other at this point.

cd

continuous_delivery

 

Workflow View

feedback_loop

Next

In our next section, we will implement a piece of the above model using a pattern. The pattern uses Jenkins CI server and page-object framework. Continue reading.