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.