Software testing by Unify

Automation

Automation

Automation can come in many forms. There are various tool options which can be used at different points during your development and testing cycles. Examples include: SOAP UI for APIs or Web services, J Unit and Cucumber for Unit tests and Selenium for User Interface and browser-based tests. They are each great in their own right, but if used early, they can add a great deal of benefit in terms of proving that your code has not been significantly impacted by any new changes.

When automating, look for tests which can be re-run and cover the critical business flows and scenarios.

Bear in mind, with automation testing, there needs to be a constant focus on the quality of the tests. When tests fail, we need to assess the root cause of the problem (it could be an invalid test step, spurious data or a valid fail which results in a defect being raised).

Often automation is used to execute regression tests towards the end of the development lifecycle, but why not execute it earlier? Arguably, any code which is introduced should fundamentally, not impact any previously delivered functions. If automation testing is done early enough, it should make your other types of testing a little easier, less risky and speedier.

Understanding When to Automate (and when not to)

Automation can often be seen as a silver bullet to improve test efficiency, and it can be – as long as it is used strategically.

A common trap is to fall into ‘over-automation’ for maximum coverage of every flow – such as an attempt to completely replace manual testing. In this case, the automation tests can be very heavyweight and difficult to maintain. This would lead to inconsistent test execution results, where it becomes difficult to interpret the validity of results (false positives). Overall it may not be clear about the benefit that test automation is adding vs the overhead of implementation, maintenance and quality of results.

The answer is to automate strategically, following the Automation Pyramid, using Unit Testing, API Testing and UI automation tools. This involves focused automation of critical flows, using well-structured functions, to automate alongside manual testing to get the most out of both test disciplines. Automating strategically in this way will give the best balance of investment in resources and clear results delivered. Building automated tests which don’t rely on data also helps. This is because when the data is changed, it won’t mean that you have to constantly change your tests.

Tools continually change and new innovations can help make this process easier. For this reason it’s important to stay in touch with what is happening. Consider inviting a consultancy to review what you’re doing and how. Their feedback may help you to make some positive change.

Get in touch with us today to discuss your requirements.

+44 (0)114 399 2820

[email protected]

Get in touch