Why Do the Majority of Test Automation Projects End in Failure?

Dilusha Rasangi Kumarage
7 min readApr 20, 2023
Image source: https://www.perfecto.io/blog/types-of-test-cases-to-automate

“Automation”, When teams and companies hear the word “Test Automation,” they frequently become enthusiastic. It’s similar to a new device that, at first, everyone wants a piece of. Nevertheless, after a month or two, nobody is interested anymore, and we turn our attention to other project priorities and advancements.

Companies need to approach ‘Test Automation’ with realistic goals, the correct mindset, and a commitment to make it work for them if they want it to be a long-term success rather than just a passing fad.

Regardless of the domain or organization, there are a few common problems that plague new automation initiatives. Here, I’ll outline some of the key causes for automation efforts to fail, and keeping these pitfalls in mind will help you to avoid them and instead build stable and a reliable automation framework.

  1. Lack of Planning
  2. Lack of Technically-Skilled Resources
  3. Minimal Visibility around Automation
  4. No Procedure to Handle Flaky Tests
  5. The Goals of the Automation are Vague
  6. Lack of Manual Testing Knowledge
  7. Lack of Maintenance

1. Lack of Planning

The lack of a strong plan for your test automation project causes needless delays, high-cost overruns, and insufficient test coverage. You must be certain of your test automation goals and the steps you will take to achieve them before you can move further.
This is the time to ask and answer every possible question about the project, such as;

  • What technology stack/ tools would be appropriate and effective?
  • Which test cases are going to be automated? , which ones will still need a certain amount of human involvement?
  • Who will write the test scripts? , who will be responsible for maintaining them?

Solutions;

  • Choose the right tool mainly based on the technology stack of the system, scalability, compatibility, ease of writing test scripts and maintenance, reporting mechanism, cost, and risk coverage.
  • Refrain from attempting to automate every test case at once. A much better strategy that will result in a more effective deployment is to prioritize the most crucial test cases first, and then build on that process gradually.
  • Try to automate things that are reliable, less likely to change, need to be done repeatedly, or would help us save valuable testing time.

2. Lack of Technically-Skilled Resources

Doing automation the right way requires testers to have a certain level of technical expertise.
Even though it might be costly and time-consuming to find qualified individuals with sufficient technical understanding, it is always wise to hire testers having deep technical knowledge. So that the returns you will be getting will be worth it.

Solutions;

  • Hire at least a small number of technical testers who can launch automation projects and coach other team members to involve in the automation effort.
  • If there aren’t enough technical resources available or it’s not possible to recruit some technical testers, invest in a tool that anyone can use to perform automation, regardless of technical proficiency.

3. Minimal Visibility around Automation

It’s often seen that out of all the team members, only a few members are in charge of automation and no one else has any clue of what is going on in terms of the automation efforts.
If you are unable to demonstrate how your efforts contribute to the solution of testing problems and add value, you are setting yourself up for failure. This is because no one will take your work seriously.

Solutions;

  • Maintain documentation related to the automation such as ‘Tool Selection’, ‘Framework Setup’, ‘Automation Test Strategy’, Failure Analysis, Deviation plans, ROI of Test automation, etc.
  • Make your automation outcomes accessible to the entire team through email notifications and dashboards, and discuss the progress in daily stand-ups and other team meetings.
  • Share the ROI of the ‘Test Automation’ periodically with appropriate facts such as time-saving over manual intervention and a number of bugs that could be tracked and etc.

4. No Procedure to Handle Flaky Tests

‘Flaky tests’ are one of the biggest hurdles in maintaining reliable automation frameworks.

We frequently hear testers reporting that tests are passing locally but failing on CI, or that some tests fail randomly. Simply a ‘Flaky test’ is a test that is considered to be flaky when it can pass and fail across multiple retry attempts without any code changes.

Teams lose interest in automation as a result of these claims, and testers begin to doubt their own tests.
So, it’s critical to identify the underlying reason for such failing tests (Flaky tests).

Solutions;

  • Do not get overwhelmed by flaky tests. Even though finding the source of these sporadic failing tests can be frustrating, take it as a way to improve in thinking strategy and try to find solutions by yourself or pair up with another tester or developer.
  • Try to put the failing tests in groups and identify a unifying pattern. There might be a common theme between failing tests.
  • A test may pass when it’s run individually but fails while running in combination with other tests. If it’s that the case, check the test/tests which ran previously and run both together.
  • Most of the ‘Test automation’ tools contain inbuild functions to detect, flag, and track flaky tests. Try to use them.
    Ex: https://docs.cypress.io/guides/cloud/flaky-test-management
  • Apply ‘Auto Retry’ for E2E UI Test Automation Suits to reduce the Test Flakiness.
    Ex:
    https://docs.cypress.io/guides/guides/test-retries

5. The Goals of Automation are Vague

We begin with creating a robust automation framework with wonderful goals like running in a stable and consistent manner, being maintainable, seamlessly integrating with the CI/CD pipeline, etc.

All these goals are perfect on paper. However, when it comes to executing the steps, there is a severe lack of clarity among team members.

This is one of the main reasons for the failure of automation projects where the team begins with doing something complex with automation, but when they discover they are not reaping the expected benefits, they are forced to refactor the entire system.
As a result, the team ends up losing a lot of time, money, and effort.

Solutions;

  • Pick out a few stable functionalities in the system and begin with their automation initially. Next, you can gather feedback on what went well, what went wrong, and suggestions to improve the framework and the scripts. Once you achieve consistency in test runs, you can gradually start automating the other functionalities.
  • Needs may vary for different project contexts, therefore apply a customized approach for executing the test automation projects.
    Creating separate automation projects as a personal preference will be a fantastic idea; Ex :
    - Smoke Test Suite: Runs automatically after every code check-in
    - Regression Test Suite: Runs on a daily basis as scheduled

6. Lack of Manual Testing Skills

The tester should have solid knowledge and expertise in functional testing carried out manually in order to flourish as an automation tester. It will be beneficial if the tester has a strong understanding of the domain in addition to application knowledge and scripting skills.

The automation test team cannot accomplish adequate test coverage and greater test accuracy if they are not well-versed in the application’s functionality, the domain, and end-user thinking.
If the automated scripts don’t cover the right test scenarios and the scope, this will cause the Test Automation projects to fail.

Solutions;

  • Automation testers must have a thorough understanding of the STLC (Software test life cycle) and how the testing is performed at each step just as manual testers do.
  • If the Automation testers have thorough functional knowledge of the application and are well-versed in the domain, they can increase test accuracy and coverage in test automation.

7. Lack of Maintenance

Implementing automated tests is an investment. It almost always costs more than manual testing. The cost of doing tests is significantly decreased by automation because human intervention is no longer necessary.

The maintenance of manual tests is not very costly in terms of time, However, this is not the case with automated tests. Since automated tests typically consist of code, their upkeep is more expensive than manual testing’ because the tests must be modified or regenerated.

Automated test maintenance is crucial because if they are not up to date, they will not be able to achieve their goal. Unmaintained tests add up, creating a technical debt that keeps rising.
If the automated tests continue to fail but are disregarded by the team because they are not up to date, this will result in coverage gaps that cause significant or catastrophic production failures that these tests would have caught. Then the test automation project will become obsolete and be abandoned.

Solutions;

  • In order to avoid the problem of maintenance, you must obviously maintain your tests. But as this may time consuming and costly, the team must put in place certain good practices to avoid this problem as follows;
    - Limit the number of tests: So that the maintenance is sustainable by the team
    - Build your tests in order to limit their maintenance:
    Automated tests are code. As such, good code practices must be used.

Conclusion

  • Keep an eye on the aforementioned criteria to avoid having test automation initiatives fail.
  • Take the essential actions to avoid failure with test automation projects.
  • Keep up the enthusiasm we had when we first began the test automation.
  • Foster an automation testing culture in your organization for successful test automation projects.
  • Consider yourself to be a full-stack quality engineer.

--

--