Automation..The Pro’s..The Con’s



Test Automation has many advantages and disadvantages when applied to the STLC (Software Testing Life Cycle). In this post we will discuss a list of pro’s vs con’s so without  further ado here are my thoughts on the pro’s vs the cons with test automation.


Time Saving – When working in agile development environment repeated change is invertible, this will lead to regression testing having to be performed on numerous occasions based on changes made to the application. Having QA repeatedly run the same tests over and over again can often lead to human error.

In some cases (which I have seen) tests can be skipped out due to time constraints. With automation, tests can be run over night leaving QA the time to focus on exploratory testing and find unknown defects in the application.

Economical – A lot of test automation tools such as Selenium WebDriver, Appium, Rest Assured, Postman are open source tools. Meaning these do not cost your organisation anything to implement them as part the testing approach.

Once the automation test suites are correctly in place and you have a robust, maintainable, scalable and reusable test automation framework you will invertible require less resources running tests which will bring about a cost saving to the  organisation.

Speed – Automation tests can run at speeds that humans simply cannot keep pace with a single test case with multiple steps can run in milliseconds. This will produce faster feedback to the project team on the current status of the tests being ran and the state of the application.

Clarity – When it comes to running manual tests, a lot of the time its hard to get clarity on the overall picture of how many tests are currently being run, how many tests have passed and failed which areas of tests are currently being executed.  With automation this problem is easily solved if implemented correctly using a continuous integration tool like Jenkins, TeamCity or Travis CI. These tools providing great reporting mechanisms during and after test execution.


Learning Curve – Using test automation tools in a proficient manner  for various types of tests such as Performance, API and UI test almost certainly will require a good core understand of programming languages i.e Java, design patterns i.e page object model and framework approaches i.e data driven framework. This can prove a steep learning curve for manual testers with a fear to move out their comfort zone.

The sliver bullet syndrome –  Test Automation is no replacement for manual testing. Test Automation is not considered by many top guru’s in the world of testing to be testing at all…gasp…. yeah I know right! Its checking by running predefined steps to result in an end goal. Current automation tools cannot think out of the box like a human can to determine varying paths to test a particular area in an application. This then limits the scope of how dynamic tests can actual be.

In the next post I will be diving into writing our first basic UI automation test script using Selenium WebDriver with Java.


So What Is Automation Testing..?

Screen Shot 2018-09-30 at 17.34.56

Automation testing is an approach were a skilled resource writes coded scripts by utilising various programming languages and software to automatically process tests    for the AUT (application under test). It replicates the manual process of testing without the need of actual manual  intervention.

Typical automation testing lends itself to regression, load and performance testing.      The main goal of automation testing is to increase the testing efficiency and ensure the quality of the software is at the high standards before release to the end-user.

Why Automate?     

 In today’s world business’s are coming up with constant improvements, enhancements to applications on a daily, weekly and monthly basis.With this in mind developers and QA engineers have their work cut out with ensuring the current system and new enhancements work as expected.

Imagine an update to the Amazon website were a user is able to buy an item now and pay for it later. The developer would have to implement this new feature and QA would have to ensure this feature works as expected with no deviation. On top of this QA would also need to ensure this change have not broken any parts of the existing system.

In my personal experience I have seen cases were changes similar to this could have around 20+ test cases just to check the feature works. However the regression suite of tests could be in excess of 1000 test cases! Yes I said 1000 test cases Amazon is a huge site.

Now imagine the team only has 3 QA resources to test 1020 tests in five days. That would mean each QA would have 340 tests to run in 5 days…meaning 68 tests per day. This would increase pressure on the QA team to deliver the completed suite of tests in the allotted time.

Due to the time constraints QA would probably not have enough time to conducted a personal favourite testing approach of mine “exploratory” testing. More on exploratory testing in another post. This is were automation testing comes into the mix.

Imagine those 1000 test cases some how could be automatically executed in less than 24hrs. How great would that be! Those 20+ tests would only require manual intervention. This would allow more time to explore the application as a whole to uncover defects that might have gone unnoticed.

The automation process would take care of the regression test execution then report back the results of the test run. This would give faster feedback as to the state of the AUT. Then the team can determine if the AUT is ready to be released in the wild.

In the next post I will be discussing the pro’s and the con’s of automation testing.