Frequent Test Automation Pitfalls

It does not matter if we have an experienced Testing team, or exceptional automation technology for testing the product, writing a little code to exercise a system is not a big deal. Although it's essential to consider writing Test Automation with robust test design, in the absence of which, organisations can encounter a plethora of complications that compound to create inefficient, sketchy, and hard-to-maintain tests. 

To ensure quality, cost efficiency, and speed, it becomes crucial to identify the symptoms that your tests aren't offering optimally. Below are few "anti-patterns," or unreliable exercises I have withdrawn in my projects for the best testing experience.


No Framework Design

We make strategies to win and counter failures. But in the case of test automation, often, the design takes a backseat in the event of automating. And all the glittery things catches eyeballs for showcasing something not going to be worth after a while. Lack of thinking from the scalability and reusability standpoint will fail test automation to deliver its core value. Some of the misleading practices ones should be careful of:

  • Fragile design
  • Cyclomatic Complexity
  • Less Scalability/Reusability

It is essential to discuss and design how to automate something and investigate objectives to make it mature.


Absence of Test Strategy

Fortunately, every organisation knows what they want. Most teams have the ambition to have test automation in place. But the crux of having the Test Automation in the project requires - 

  • Using the right tool for automation
  • Integration with CICD pipeline
  • Approach to the testing environment
  • Cost-Value analysis
  • Maintenance of framework

For example, the strategy of creating the passageway to the test environment that classifies the progression of testing on an artificial development environment to the deliverable system is an evolving process. The team need to set aside the time for maturing the entire pipeline, including the environments.

Another good example is skipping Cost-Value analysis from the strategy. It is an anti-pattern. Inability to identify What not to automate is is far more critical. Teams with the syndrome of believing everything/anything can be automated end up creating a mammoth to maintain & feed, which won't yield desired results. I will talk about in my other article.


Ignoring Build-Test-Deploy Pipeline

I happen to consult a team, who are following agile methodologies, on adopting good automation practices and code hygiene. When I tried to explore the build process and the new deployment, to my surprise, it wasn't on the menu. The goal of the team was only to automate the testing process.

Consider ourselves in this situation. It's not sufficient. There's a lot more to testing than test execution and reporting. Environment setup, test design, strategy, test data set up. All of these are part of testing. Not taking them into record when viewing into test tooling leaves you automating only a tiny part of the process. I know teams where we get started by running automated checks by hand.

I suggest teams should start with one check that runs end-to-end, through the continuous integration server, running on every build. An then build additional scripts to that. 



Quality is Testing

'Quality is testing' is a misconception. The world isn't perfect, and many of us aren't lucky enough to have applications developed with testability in mind. But it's not the end of the world! 

Here is what I have learned. Quality is everyone's responsibility. Testers and Developers work as a team to make our application more testable.

Test automation is not writing and running test scenarios. It is about controlling the quality of the product with the ease of rolling out to production through automated checks. Not being able to test your application easily is a sign of inadequate development practices. It means that you will need to leave your desk and communicate across silos to break down conversation limitations. It is part of your job, irrespective of your functional role. You need to deliver across teams and work together to create a stable product. If the product fails, the whole team fails. 

It is essential to consider the above items as the first few steps to build a test automation system. The consequences of a poorly designed Test Automation are significant as they only show up during the last stage. The teams must have a reasonable knowledge of these pitfalls to having more prolific and significant Test Automation.

On that note, I will leave you to think about these pieces before you start investing yourself in these directions.

Happy Testing!!



Comments

Popular posts from this blog

Anti-Patterns in Test Automation - Part 1

Exploratory testing Vs Documentation in Agile