It is not only about End to End Automation

How many times have you encountered when you are discussing automation in software testing or test (check) automation and the other party always refers it to e2e (end to end) automation? In my case, almost all the time.

It is true, for some reason recruiters, testers, interviewers, managers, developers, and maybe others thought that automation is merely about simulating the end user’s behaviors from the application.

So therefore when they put a job offer as a test automation engineer, it mostly contains a skill list of selenium and BDD (Behaviour Driven Development). Is it because of the name? (what is in the name?) 

Test Automation Engineer is more than just building an End to End automation. I personally think the test automation engineer’s job is to make the work of testing easier and more efficient. It can include preparing test and staging environment, preparing test data,  make sure that the data are consistent through the whole chain, make a deployment script, make a database script, automate notifications, automate test reports, and a lot of others. 

Let me give you an example: several years ago (in 2013) I was a software tester for a company that offers a framework to build a portal or dashboard or application which enables the non-technical person to build it themselves with minimum help from developers. The framework is required to be deployed to the application/web server chosen by the client. The list of application servers is huge including WebSphere, WebLogic, JBoss, and Tomcat (and some more with different versions). It also needs to run a database script to database server which is supported such as MySQL, MSSQL Server, DB2, and Oracle. And we can start testing the application just after we deployed the framework, run the database script, and set the configuration. So we can see all the possible combination matrixes and if you have experienced deploying packages to WebLogic, WebSphere, and JBoss, you will understand the hell of it. 

In this case, automation is really needed to automate the deployment, the database script execution, and to set the configurations. In this case, the tester will be able to focus on testing the application on the different possibilities of combination without being bothered by all of the nitty-gritty of the pre-requisite work.  

Another example I had when I work as a Chain tester in 2019.  It is not an easy test such as you access the web application, do something, and then see the output from the application itself. It was a complex systems consisting multiple applications and backends. It has queueing mechanism and it also has several front applications.

In order to start the actual testing, I had to create many test data in several systems and these data needs to be valid and synchronised. The test preparation itself when it is done by hand took several days (and dont forget that different systems are owned by different department – which made it even longer to prepare). In this case, automation comes in handy to prepare all of those data in different systems and check if they are valid and synchronised. So the tester will be able to focus to the actual test execution.

I used these two examples are representative to show that automation in software testing is much more than just End to End Automation. In fact, IMHO E2E automation is not the biggest picture of automation but people made it so. 

What do you think?