Are You Ready for Test Automation?

DZone 's Guide to

Are You Ready for Test Automation?

We see considerable buzz around automation in the Agile and DevOps world. However, not all tests can and should be automated. How do you know when it’s time to automate?

· DevOps Zone ·
Free Resource

When we think of Agile testing, we often think of the motto, “Test early and test often.” It’s a logical approach: The earlier you test, the more time you have to find and fix bugs. It’s far easier to fix a bug before you’ve released that version of your software than it is once a bug has become a full-blown defect.

The more of these tests you are able to automate, the simpler life is for your testers. We see a considerable amount of buzz around automation in the Agile and DevOps world for good reason. However, not all tests can be automated — and in fact, not all tests should be.

So, how do you know when it’s time to automate? 

Look Out for Repetition

How many repetitive tests and tasks do you carry out during your software development and release process?

When you start to look towards testing automation, it’s important not to try to automate everything at once. Creating the right automated tests will save you considerable time and effort in the long run, but they also take the time to create.

Repetitive tests, like regression testing, make an ideal starting point. Tests that change very little from one iteration to the next are perfect for automation; setting up the same tests again and again is a poor use of resources, particularly when agile teams are releasing software frequently.

Taking some time to plan and create automated tests here is likely to be a very good investment.

Ask Questions

As you go further with your automation, the following questions should prove useful in identifying which tests to automate next.

  • Which tests are more prone to human error?
  • Which tests involve large amounts of data? Do you deal with different data formats?
  • Are there tests that can’t be done manually?

The tests these questions help you identify will all make good candidates for automation.

At this point, it’s also important to ask yourself how likely significant changes to your software’s functionality and UI are. If you’re likely to experience changes here, hold off on automating the tests that will be affected until there’s more certainty. Otherwise, you risk losing the time automation should save by having to frequently update your automated tests.

Asking questions is the best way to make sure you know your testing environment, your processes, and whether it’s right to automate.

Know When Manual Testing Is Still Best

Some tests are simply impossible to perform manually, such as load and performance testing. With other tests, automation might be possible, but the short amount of time you would save wouldn’t be worth the investment needed to create the automated tests in the first place.

In certain cases, manual is still best. When working on a very new app, for example, it’s likely to be subject to frequent changes. Automating too soon would be a poor investment of time.

When testing particularly complex functionality, test automation can be a real challenge. Here you need to plan carefully and evaluate the risk that the initial time and cost investment will end up outweighing the potential time saved later.

Likewise, things like the overall usability and look and feel of the UX require manual, human testing. Your end users will be human, after all!

Take Control of Your Testing

Test automation does more than save you time and resources, which in itself is a huge benefit to your testers and teams. To begin automation, you first need to take stock of your testing process and environment. By doing this, you take control.

In this post, we’re talking about the process and thinking behind automation, but of course, you also need to choose the right tools.

automation, devops, software testing

Published at DZone with permission of Francis Adanza . See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}