Skip to main content

What are you looking for?

Explore our services and discover how we can help you achieve your goals

Software acceptance criteria: how buyers write tests that end arguments

Acceptance criteria are the buyer's written tests for a milestone: observable conditions, the evidence that proves each one, and the person who decides. Write one criterion per behaviour, state the starting situation, the action and the expected result, attach sample data, and agree before work starts what counts as a pass, a defect or a change.

Submit a project See how milestones are accepted

Reviewed by David Nguyen (CEO) · Updated 28 Sep 2026 · 9 min read

star

Contents

Why should the buyer write the criteria?

The person who accepts the work is the person who knows what "done" means for the business. When a supplier writes the criteria alone, they tend to describe what it plans to build; when the buyer writes them, they describe what the business needs to be true. The supplier should still review every criterion for testability and cost, but the first draft belongs to the buyer's product or process owner.

Buyer-written criteria also settle the most common acceptance argument before it starts. A defect is work that fails an agreed criterion; a new wish is a change. Without written criteria, every disappointment at review time becomes a negotiation about which of the two it is.

This page is the buyer's authoring method. The supplier's side of acceptance, with internal verification, review and the three recorded outcomes, is described on the project delivery page.

What does a good acceptance criterion look like?

OutsourcingVN is operated by Netbase JSC, which delivers software against criteria like these, so read the template as one used by a supplier as well as recommended to buyers. It suits any supplier. Each criterion is one row with seven fields.

Field What to write Example
ID and scope link A short ID and the scope item it proves AC-07, listing search
Given The starting situation, including data 30 active listings, 4 in the "Furniture" category in Hanoi
When One action by one kind of user A visitor filters by Furniture and Hanoi
Then The observable result Exactly the 4 matching listings appear, newest first
Evidence What the reviewer will look at Screen recording on staging, plus the seeded data file
Verified by The named person who decides Buyer's product owner
Pass rule What passes, and what does not block Passes if all 4 appear in order; styling notes are logged, not blocking

The Given, When, Then shape comes from behaviour-driven development; Cucumber's Gherkin reference describes Given as the initial context, When as the event and Then as the expected outcome compared with the actual one. You do not need the tooling to use the shape. You need the discipline of one situation, one action and one checkable result.

Which kinds of criteria does a milestone need?

A feature-only list misses most of what makes a release acceptable. Draft criteria in five families and check that each milestone has at least one row where it matters:

  • Behaviour. "Given an unverified phone number, when the user requests a code, then an OTP arrives and expires after the agreed period."
  • Data. "Given the supplied export of 2,000 customer records, when the import runs, then every record appears with its email and tier, and rejected rows are listed in a report."
  • Content and language. "Given the French interface, when any checkout page loads, then no English strings remain, using the supplied glossary."
  • Non-functional. "Given the checkout pages, when checked against WCAG 2.2 level AA, then no failures remain on the agreed success criteria." Name the browsers, devices and load you care about in the same way.
  • Operational. "Given a failed payment callback, when it occurs, then the admin sees the order flagged and an alert reaches the named mailbox."

For AI features such as classification or a chatbot, a single example is not a test. Criteria there describe a test set, a threshold agreed in advance and a human-review rule; the AI workflow evaluation guide covers how to build that set.

How do you write the criteria, step by step?

  1. Start from the scope map

    Every in-scope row in the scope boundaries guide needs at least one criterion; an item without one is not really in scope.

  2. Write the unhappy paths first

    Wrong password, empty search, expired session, failed payment. Suppliers build happy paths without being asked.

  3. Attach real sample data

    Criteria that say "some products" cannot be checked. Provide the file.

  4. Name the reviewer and the review window

    One person decides; others may comment.

  5. Separate blocking from non-blocking

    Decide in advance that a colour preference does not block a milestone and a lost order does.

  6. Send the draft to the supplier for testability review

    Ask it to flag anything ambiguous or costly before work starts.

  7. Freeze the criteria with the milestone

    After that, a new criterion is a change request, handled through change control.

  8. Accept against the list, row by row

    Record pass, fail with evidence, or blocked by a dependency.

Worked scenario: accepting a quotation-request milestone

A packaging distributor commissions a quotation-request form feeding its sales inbox and CRM. The operations manager writes nine criteria: four behaviour rows, two data rows, one content row, one accessibility row and one operational row for failed CRM sync.

At review, seven rows pass on the staging recording. One behaviour row fails: a request with an attached file over the limit shows a generic error instead of the agreed message. That is a defect against AC-04 and goes back to the supplier. The operations manager also asks for a new "urgent" checkbox. There is no criterion for it, so it is logged as a change request with its own estimate, and the milestone is accepted once AC-04 passes. Nobody argues about whether the checkbox was "implied".

What do Netbase records show about milestones and acceptance?

Netbase's delivery lifecycle includes agile execution with outcome-based milestones, and delivery runs with weekly reviews and a named project manager, which gives buyers a regular point to check work against criteria rather than a single test at the end.

For a founder who is not named, Netbase delivered a bilingual English and Nepali classifieds platform in six milestones over four months with training and six months of support. The platform used AI-powered content filtering that detects and flags offensive content into an admin moderation dashboard. The classifieds platform record shows a scope large enough that acceptance only works milestone by milestone.

For a client who is not named, Netbase built a WhatsApp Business AI chatbot with intent and conversation-flow handling, an LLM API and CRM synchronisation, delivered in milestones from design and prototype to documentation, knowledge transfer and 30 days of support over 4-8 weeks. The chatbot and CRM record is a useful model for splitting acceptance between a prototype and the documented, supported release.

Which questions should you ask a supplier about acceptance?

  • Will you review my criteria for testability before we sign? A supplier that accepts every criterion unread will dispute them later.
  • Which environment will I accept on, and with what data? Staging with realistic data beats a demo on a developer's machine.
  • What evidence will you hand over with each milestone? Recordings, test reports and release notes.
  • How do you tell a defect from a change? Expect an answer that points to the written criteria.
  • How long is the review window, and what happens if I miss it? Agree it in writing.
  • What is re-tested when a defect is fixed? Fixes should not quietly break rows that already passed.

Which acceptance criteria cause rework?

  • Adjectives instead of results. "Fast", "intuitive" and "modern" cannot pass or fail. Replace them with a measurable condition or remove them.
  • Criteria written after the build. They describe what was built, not what was needed.
  • One criterion covering a whole feature. Split it until each row has one action.
  • Missing data. A test that depends on "typical orders" fails the day real orders arrive.
  • No named reviewer. Five people commenting means nobody accepting.
  • Release readiness confused with acceptance. A milestone can pass its criteria and still not be ready to launch; run the release readiness checklist before go-live.

How this guide is sourced and where it stops

This guide combines Cucumber's Gherkin reference and the W3C WCAG 2.2 recommendation with Netbase records approved in the OutsourcingVN claim register: the delivery lifecycle, weekly reviews, the classifieds platform and the WhatsApp chatbot. The methodology explains how records are sourced. Those records describe milestone delivery and scope; they include no measured rework rate or acceptance statistic, and this page claims none. The quotation-request scenario is illustrative, not a client project.

Plan the next step for your project

Common questions

Enough that every in-scope item has at least one row and every important unhappy path is covered. A small milestone may need ten; a checkout or integration milestone may need forty.

Reference them from the contract or the milestone schedule, and keep the list itself as a versioned document both sides sign when the milestone starts.

You can, as a change request. The supplier estimates the effect, you approve it, and the new row joins the list. Adding it silently reopens scope.

Under a fixed-scope milestone, failing an agreed criterion is normally the supplier's defect to fix; the project agreement sets the exact terms. A behaviour nobody wrote down is not a defect.

No. The supplier should verify its own work first; your criteria are the final, business-facing check, not the whole test effort.

Bring your first criteria

A draft list of criteria, even rough, makes a proposal far more precise. Custom Product Engineering builds against milestones accepted this way.

OutsourcingVN is Netbase's own outsourcing-services platform. Submit a project with your brief and a few sample criteria, and a person will reply with the questions that would make them testable.

Custom product engineering for a bounded release outcome Custom product engineering for a bounded release outcome

One defined release of your product, built to named outcomes and handed over with acceptance evidence.

Learn More
line

Tell us what you want to build or automate.

Submit a project