Automation: What, When, Why, How?
As systems grow in complexity, coverage and accuracy of testing via manual systems becomes too labour intensive. Automation assists the team to achieve maintainability and flexibility of test suites, identifying issues quickly to ensure they are resolved at an early stage. Automation can be done repetitively and adds additional testing that would be difficult to cover through manual testing.
For example one of our clients has over 100 test scenarios that are run during regression testing. These tests would take hours when performed by a person. With automated testing, they can be covered and run earlier in the development cycle. This leaves manual testers with more time to test more complex scenarios and do more explorative tests to find edge case and unpredicted scenarios.
What is automation testing?
Automation testing uses scripts and software to verify functionality of a system. Automation testing can be used in conjunction with or as an alternative to manual testing performed by people.
Why test automation?
While the automation of tests can initially increase workload, done right, automated testing has a range of benefits.
- Boost Productivity – obtain a great amount of results in a minimum time frame. This helps the team collaborate and debug issues as they occur.
- Saves Time – often regression testing requires re-testing of an application once a change or fix is available. Automating regression testing can be programmed to run after every deployment so testers can focus on other areas which cannot be automated.
- Identify Early Defects – generally, bugs and issues are observed when testing is in integration or system phase. The introduction of automation will help to identify bugs before they slip into production and affect users.
- Speed – automated testing is faster than manual testing.
- Repeatability – tests can run many times and assist in avoiding human errors such as testers forgetting to execute or omit a step on a test script which may then report an invalid defect or fail to detect bugs. There is also no need to retype every scenario, since cases are reusable and placed in a single repository.
- Cost Reduction – it will reduce the number of resources required to execute a regression test. That way, you can reduce manpower and allot testing effort to other areas of the product testing.
When to automate?
Often testing teams don’t automate because they don’t have time. Ironically, they don’t have time because they didn’t automate! But ideally, automation can be initiated once the system is stable and no more additional features are requested.
There are also other factors to be considered when shifting from manual testing to automation testing. Key factors would be:
- When the overall development program is not meeting expectation.
- Testing is not being completed within the assigned time frame.
- Whenever change of requests are often done and there is a high amount of regression testing required.
- If the test cases are too complex to test manually – particularly referring to stress, load and performance testing which requires a lot of input data to measure how the system can process.
- When this happens, the team has two alternatives: grow the manual testing team or launch a test automation proof-of-concept (POC) to determine if automation can address the testing deficit.
- The latter will greatly benefit the team since it will boost productivity and increase knowledge of all team members.
When this happens, the team has two alternatives: grow the manual testing team or launch a test automation proof-of-concept (POC) to determine if automation can address the testing deficit. The latter will greatly benefit the team since it will boost productivity and increase knowledge of all team members.
What tools are available for automated testing?
There are many testing tools available in the market. Below are some that are commonly used:
- Selenium is a popular automated web testing tool and helps you automate web browsers across different platforms. Selenium has the support of some of the largest browser vendors who have taken steps to make Selenium a native part of their browser.
- TestComplete is a powerful and affordable automated software testing tool. It addresses a full range of software testing challenges facing corporate IT departments, product developers, QA engineers, and consultants. It enhances the software testing process by increasing efficiency, removing complexity and lowering costs.
- QTP (Re-Launched as Unified Functional Testing) – HP-QuickTest Professional which is launched as (UFT) software provides functional and regression test automation for software applications and environments. HP QuickTest Professional supports keyword and scripting interfaces and features a graphical user interface.
- Watir is a set of Ruby libraries for automating web browsers and allows you to write tests that are easy to read and maintain. Watir drives browsers the same way people do (it clicks links, fills in forms, presses buttons etc.) and also checks results such as whether expected text appears on the page.
- SoapUI is a cross-platform functional testing tool. It has been specifically designed to automatically test APIs such as SOAP and REST interfaces to ensure the interoperability of different applications.
- Telerik Test Studio is a Window-based testing tool used mostly for web and browser testing. It is a scriptless test recording and playback tool, which you can reuse to run a single test across different browsers. It is also integrated with Visual Studio which makes it more user friendly, even for non-testers.
How to implement a test automation program?
Executing a test automation program requires people, process and technology. The testing group will need training on the test automation paradigm and tool being used, while the program as a whole needs to consider how test automation will fit into the system development process.
In a nutshell, automation saves time and increases quality to our clients.
As a tester, automation allows us to maximize our effort in delivering a high quality product. As part of a development team, automation allows issues to be fixed earlier and improves team morale by providing meaty and relevant results to everyone involved.