Start with expected behaviour and business risk

When a web application is being built or updated, the question of testing always arises. The core distinction is straightforward: manual testing means a person sits in front of the system, follows steps and uses their judgement to decide whether something works correctly. Automated testing means a piece of software runs those same checks on its own, comparing actual results against expected results without a person watching each time.

Neither approach replaces the other. They answer different questions. Manual testing asks "does this make sense to a human?" Automated testing asks "does this still produce the same result it produced yesterday?" Understanding that difference prevents the most common spending mistake in this area: paying to automate checks that need human judgement, or relying on manual effort for checks that a machine could repeat reliably at a fraction of the cost.

The cost structures differ significantly. Manual testing is priced as labour: every time you want something checked, someone spends time doing it. If a release cycle includes ten rounds of testing the same thirty processes, that is three hundred manual checks, each costing the same as the first. Automated testing has a higher upfront cost to write the test scripts, but the per-run cost drops to near zero. The break-even point depends on how often a check needs to repeat and how stable the feature being tested is likely to be.

Ownership of test assets matters in the same way as source-code ownership. If a supplier writes automated tests, the scripts, the test data and the framework configuration are assets your business has paid for. Whether you receive those assets, can run them independently and can pass them to another supplier should be confirmed in the contract before work begins, not discovered later during a handover.

Control pointWhat must be provedEvidence to retain
Where manual testing is the stronger choiceUse people to assess usability, ambiguous workflows, visual behaviour and new features whose expected result is still evolving.Test cases, actual results, defect status, acceptance owner and dated approval evidence.
Where automated testing justifies the upfront costAutomate stable, repeatable checks that need to run frequently and where a clear pass or fail result can be defined.Documented assumptions, exclusions, ranges, approval limits and actual-versus-plan reporting.
Thinking about return on the investmentCompare automation build and maintenance cost with the frequency, duration and business impact of the checks it replaces.A named owner, current-state evidence, unresolved questions and a dated decision record.
Mistakes that inflate cost without improving qualityDefine the expected outcome, the responsible owner and the evidence needed to verify it.Documented assumptions, exclusions, ranges, approval limits and actual-versus-plan reporting.

Where manual testing is the stronger choice

Exploratory testing is inherently manual. When a new feature has just been built and nobody yet knows exactly how users will interact with it, a skilled tester investigating the system, trying unexpected sequences and observing where the experience feels wrong delivers value that no script can replicate. Usability assessment, visual layout checks and subjective judgements about whether a workflow feels logical all require a person.

One-off validations also suit manual testing. If a data migration runs once and will not be repeated in the same form, writing an automated check for it may cost more than simply having someone verify the results directly. The same applies to features that are expected to change significantly in the next release — writing an automated test for something about to be rewritten is wasted investment.

Where automated testing justifies the upfront cost

Regression testing is the clearest use case for automation. As a system grows, every new release carries the risk of breaking something that previously worked. If your application has forty core processes — login, create a record, assign a task, generate a report, process a payment — each release potentially affects all of them. Repeating those forty checks manually before every release is labour-intensive and error-prone because people get tired and skip steps. Automated tests run the same forty checks identically every time, in minutes rather than hours.

Data-heavy validations benefit from automation. Checking that a calculation produces the correct result across a hundred input combinations, or that a bulk import handles every error condition, is work suited to a script. Integration points between your system and third-party services — payment gateways, accounting software, email providers — are also strong candidates because the expected behaviour is precise and repeatable.

Thinking about return on the investment

A practical way to evaluate whether a specific check should be automated is to estimate how many times it will run before the feature changes. If a check will run twice, manual is almost always cheaper. If it will run fifty times across future releases, the automation cost is likely to recover itself. This is not a precise formula — test maintenance, script fragility and the skill of the people involved all affect the real outcome — but it provides a starting point for a conversation with your supplier about where to allocate testing budget.

It is also worth asking who will maintain the automated tests. Tests are software. When the application changes, tests that depend on the old behaviour will fail and need updating. If your supplier builds the tests but your internal team is expected to keep them running, ensure the team has the skills and access to do so, or budget for ongoing supplier support.

Mistakes that inflate cost without improving quality

  • Automating everything. Not every check benefits from automation. Features in active development, visual assessments and one-off processes are often cheaper and more effective to test manually. A supplier who proposes automating the entire test suite without distinguishing between stable and volatile areas may be optimising for their own margin rather than your outcome.
  • Automating nothing. At the other extreme, relying entirely on manual testing creates an escalating regression problem. As the system grows, the manual testing window lengthens, releases slow down and checks get skipped under time pressure. This is a common cause of production defects in mature business systems.
  • Counting tests instead of measuring coverage. A large number of automated tests that all check the same happy path gives a false sense of security. What matters is whether the tests cover the processes, edge cases and error conditions that matter to your business — not the total count.
  • Treating automated tests as a substitute for user acceptance testing. Automated tests confirm that the system behaves as the test specifies. They do not confirm that the specification matched what your business actually needed. User acceptance testing, performed by people who understand the business context, remains necessary regardless of how much automation is in place.

Limitations to keep in view

Automated tests cannot tell you whether a workflow is confusing, whether a label is misleading or whether the page layout works on an unusual screen size. They check outputs, not experiences. They also cannot adapt to situations the test writer did not anticipate — a manual tester noticing something odd can investigate on the spot; an automated test will simply pass or fail against its predefined criteria.

Test maintenance is an ongoing cost that is frequently underestimated. When a field is renamed, a form gains a step or a navigation path changes, every automated test that touches that element needs updating. If the original test scripts were written without considering maintainability — for example, with hard-coded values instead of reusable data — the maintenance burden can become significant.

Questions to put to a supplier

  • Which tests do you recommend automating, and what is the reasoning for each?
  • Which tests do you recommend keeping manual, and why?
  • Who owns the automated test scripts, and will we receive them on completion?
  • What framework do the tests use, and can another supplier run them without difficulty?
  • How are tests maintained when the application changes, and is that maintenance included in the support arrangement?
  • How do you distinguish between a test failure caused by a defect and a test failure caused by the test itself needing an update?
  • What is your regression strategy as the system grows — how do you decide which tests to run on each release?

These questions shift the conversation from a vague commitment to "testing" towards a specific, auditable plan. The goal is not to maximise automation or minimise it, but to apply each approach where it genuinely reduces risk and cost for your particular system and release cadence.