automated testing Can we fully automate our software testing?

Know when to choose automated vs. manual testing

Vendors have inched toward automated application testing for a long time, yet there is still room for growth. Software tester Amy Reichert offers her insights.

Automated application testing has been at the forefront of the testing discussion for decades. However, manual testing is enjoying a renaissance of sorts as it becomes more credible and valued, due to the expertise and nuance QA engineers bring to the table -- especially when it comes to exploratory tests and edge cases.

Several questions remain for all software development businesses: When should they use automated vs. manual testing? Which type of testing provides the most business value? Does automated testing provide more valid, reliable testing results? Does manual testing irreplaceably represent how human customers work with software applications?

The choice of automated vs. manual testing comes down to their distinctive strengths: verification vs. validation. Let's explore those criteria to determine which is a better fit for your application testing requirements.

Manual testing: Better for validation

With manual testing, QA engineers both verify and validate software code with a variety of techniques. Validation is a unique strength of manual testing, a human judgement call to assess whether the application performs functions promised to the customer. Validation is less about logic and calculation, and more about if the application meets customer expectations during use.

To validate applications, you can perform internal manual QA testing, or augment it with temporary testing services. Internal QA testing provides an advantage in that testers understand the application's functions and use. However, testing services provide insight on how well an application delivers on various users' needs. For example, crowd-sourced testing services provide a group of global users with different types of devices. Consider a mix of both internal and testing services; or select one that best represents your application's customer base. You can always decide to add either, if a single approach doesn't provide enough testing coverage to keep your application users happy and productive.

Automated testing: Better for verification

Automated test suites provide exceptional verification testing for application code. Verification-type test execution is more consistent and reliable, because automated test suites repeat the exact same actions with each execution and verify the exact same workflow. Each logical calculation, when scripted with appropriate verification points, is tested in exactly the same way every time.

For verification-type testing, automated testing provides more reliable, consistent test coverage. For automated tests to provide verification test coverage, however, they must be coded with enough depth and complexity to truly test how the application functions under use.

Historically, organizations' poor planning and unrealistic expectations led to frequent failures with automated testing. It takes time to ensure that an automated test tool handles simple and complex functions in application code. Take time to research automated testing tools to determine which will be most effective for your application. Take advantage of free trial periods to help make a purchasing decision.

After you select a tool, plan the testing approach you'll use. Which types of tests will you automate first? Start with critical functions, and automate critical smoke tests first. This adds instant and significant value, because the smoke tests will run automatically while you refine the tool and remaining scripts. As you expand the depth of coverage on your critical functional test suite, add the complexity that your application offers and coverage for end-to-end workflows. If you can build out these types of tests first, you'll improve quality for the most valuable and critical functions of the application.

When to use automated vs. manual testing

Both manual and automated testing have advantages. Automated testing provides better verification test coverage when your test development strategy has specific, realistic functional goals. Manual tests are better at covering validation in all its typical, non-logical, end-user glory. If you invest the time in proper test automation development, you get more reliable, consistent test coverage time after time with no human-induced variation.

Ideally, a combination of manual testing and automated testing gives you the best value. If you must choose one or the other, determine whether validation or verification is more crucial to an application's success. Decide if you need human testing to gauge how an application performs, or if pure verification of logic, calculations and coding is enough to ensure an application delivers the intended functionality for your customer base.

Next Steps

Finding the best automated testing tools for your business

How autonomous software testing could change QA

Dig Deeper on Software testing tools and techniques

Cloud Computing
App Architecture