A feature that matches the demo and one that matches the spec are not the same claim

Functional Testing Services

A feature can look finished in a demo and still fail the requirement it was actually built against. A demo shows the path someone chose to click through, not the path the specification describes. This practice tests against the written requirement itself, tracing every test case back to the acceptance criteria a feature was supposed to satisfy.

AI augmented, human governedEvidence before estimatesYour IP from day oneOne accountable owner per engagementFounded in 2011. Part of the Vinove Group500+ full-time engineers, as of September 2026NASSCOM member
Watch · the 90-second brief

How a test case traces back to a written requirement

Acceptance criteria, execution and defect logging that names the exact rule broken.

90 secWatch without filling in a form.
A functional test case traced back to its written requirement.90 secSample frame · video pending

01Before scoping execution

Manual or scripted execution is a real choice here

Both are legitimate, and picking the wrong one either wastes engineering time or leaves a repeated flow untested every release. Four questions settle it against your actual feature.

How often will this exact flow be tested again?

A feature tested once before a single release rarely earns back the cost of scripting it. A flow re-tested every release earns that cost quickly.

How stable is the requirement behind it?

Scripting against a requirement still being revised means rewriting the script almost as often as running it.

How much judgement does the test actually need?

Visual or usability nuances often need a human eye, while deterministic input-output behaviour scripts cleanly.

What is the cost of a missed defect here?

A checkout flow justifies more rigorous, repeatable execution than an internal admin screen a handful of people use.

Manual against scripted functional execution
Manual executionScripted execution
Setup costLow, start immediatelyHigher, pays back on reuse
Best forOne-off or exploratory checksFlows re-tested every release
CatchesUsability and visual nuanceDeterministic regressions fast
Best fitNew or unstable requirementsStable, frequently repeated flows

02Agreed before execution starts

The ledger that keeps a sign-off honest

Functional testing drifts when 'it passed' gets said about the path someone happened to click, not the requirement actually on file. This ledger sets out what you bring, what we execute, what comes back, and what stays yours to decide.

  1. Your side

    You bring

    • The requirement or user story the feature was built against
    • Access to a working build of the feature
    • Any acceptance criteria already agreed with stakeholders
  2. Our side

    We build

    • Test cases derived directly from the requirement and its acceptance criteria
    • Manual and scripted execution across the feature's real paths
    • Defects logged and traced back to the specific criterion violated
  3. Your side

    You receive

    • A sign-off report mapped to every acceptance criterion
    • A defect list a developer can act on without reinterpreting it
    • A regression pack the feature can be re-verified against later

Never leaves you

  • The requirement and the decision to change it
  • The call on which defects block release versus ship as known issues
  • The relationship with the product owner who wrote the requirement

Where the line sitsWe test against the requirement; you decide what counts as done. A traced defect list settles disagreements a demo alone never can.

03From requirement to traced sign-off

Four stages, each closing on a specific artefact

A sign-off that means nothing usually skipped one of these stages along the way. This system closes each stage on something a developer or product owner can actually use.

  1. Design test cases from the requirement

    Test cases get written directly from the user story or requirement document, not from clicking around the feature and guessing at intended behaviour.

    Requirements as the actual test spec
  2. Execute across the feature's real paths

    Manual and scripted execution covers the paths the requirement actually describes, including the branches and exceptions a quick demo tends to skip.

    Every documented path, not just the obvious one
  3. Log defects against the specific criterion

    Every defect gets tied to the exact acceptance criterion it violates, so a developer knows precisely what to fix rather than guessing at intent.

    A defect traced to the rule it broke
  4. Report sign-off against the requirement, not a vibe

    The final report states plainly which acceptance criteria passed, which failed, and which were never actually testable as written.

    Sign-off that means something specific

04What actually moves the number

Four drivers, sized from the requirement

Functional testing is priced against the feature's actual complexity, because these four factors change scope well beyond a simple page count.

Driver 01

Number of paths and branches in the requirement

A simple linear flow tests faster than a feature with several conditional branches and exception paths to cover.

Driver 02

How mature the requirement is

A clearly written requirement with defined acceptance criteria tests faster than one that needs clarifying before a single test case can be designed.

Driver 03

Manual versus scripted execution mix

A one-off manual pass costs less upfront than building scripts, which pay back only once the same flow gets tested repeatedly.

Driver 04

Regression scope around the feature

Testing one isolated feature costs less than also re-verifying every neighbouring feature a change could plausibly have touched.

05Evidence and proof

Sign-offs traced to a requirement, not a click-through.

Functional testing proof here is a defect traced to the exact acceptance criterion it violated. These records carry that bar while written approvals are secured.

Explore case studies
A checkout flow verified against its written acceptance criteria before release.
Aster North · Product SaaS, US

A checkout flow signed off against fourteen acceptance criteria, not a demo click-through.

Aster North needed its new checkout flow verified before a peak sales period. Test cases traced to every acceptance criterion found three defects a demo walkthrough had missed entirely.

Acceptance criteria verified
14
Defects found before release
3
Sample · pending client approval
A regression pass separating new defects from pre-existing ones.
Koru Health · Healthcare product, US

A regression pass that separated one new defect from two pre-existing ones.

Koru Health changed a scheduling feature and worried about effects on three neighbouring flows. A traced regression pass showed only one genuinely new defect.

Neighbouring flows re-verified
3
New defects introduced by the change
1
Sample · pending client approval
Portrait of an operations director reviewing a functional test report.

The defect list didn't just say something broke. It said exactly which requirement it broke, which ended the argument fast.

Mei TanakaDirector of Operations, Tern
Sample · pending client approval

06Read this first

When a single feature check is the wrong scope

Booking a narrow feature check when the real need spans an entire release leaves most of the risk untested. The exits are marked plainly.

  • You need the whole release covered, not one feature

    When quality needs owning across an entire release rather than one flow, software testing takes that broader scope instead.

    Software Testing
  • The same flow gets tested every release already

    A flow re-tested on a fixed cadence usually justifies investing in an automated suite instead of repeating manual execution each time.

    Test Automation
  • The question is really about strategy, not execution

    When the real gap is deciding what to test and how, not running the tests themselves, QA consulting is the better starting point.

    QA Consulting
Engagement shapes for functional testing work
ShapeBest whenYou directWe carry
Single feature checkOne flow needs sign-off before releaseAcceptance criteria and release timingTest design and execution
Regression passA change risks affecting nearby featuresScope of what could be affectedRe-execution and new defect triage
Ongoing feature testingEvery release ships several features needing checksRelease cadence and prioritiesA repeatable design-and-execution rhythm

07Straight answers

Asked before a feature gets signed off.

What's included in a functional testing engagement?

Test-case design from requirements and user stories, manual and scripted execution against agreed acceptance criteria, and defect logging traced to the specific requirement violated. The scope stays narrow: one feature or flow against its own written specification.

How is this different from software testing?

Functional testing verifies one feature against its specific requirement. Software testing owns quality across an entire release, blending functional, regression and exploratory work in one engagement.

Do you write test cases from our user stories, or do we provide them?

Either. Test cases can be designed directly from your existing user stories, or drafted from a requirement document if formal user stories do not exist yet.

What happens when the requirement itself is ambiguous?

Ambiguity gets surfaced as a specific, written question back to whoever owns the requirement, rather than guessed at silently. A test case built on a guess proves very little.

Do you test manually, or do you script everything?

Both, chosen against how often a flow will be tested again. A one-off release check often stays manual, while a frequently repeated flow earns the cost of scripting.

What does functional testing cost?

Cost scales with the number of paths and branches in the requirement, and whether execution is manual or scripted. A simple linear flow costs far less than one with many branches.

Can you also test what a change might have broken nearby?

Yes, a regression pass re-executes existing test cases against neighbouring features a change could plausibly affect, distinguishing genuinely new defects from pre-existing ones.

How is this different from test automation?

Functional testing designs and executes the test cases themselves. Test automation builds and maintains the framework those test cases can run on repeatedly, a distinct engineering discipline.