Skip to content
Innopulse Consulting

Checklist: accepting software without nasty surprises

For: Clients of software projects

Updated: 2026-11

In short

Software acceptance succeeds when acceptance criteria are fixed before testing: test cases derived from requirements, realistic test data, testing by future users, a clear classification of defects by severity, a signed protocol and an orderly handover to operations with documentation and access.

Acceptance is the moment a software project ends contractually and responsibility changes hands. Doing it without preparation means either accepting too early or arguing about defects that were never defined.

This checklist applies equally to agile and traditional projects. In HERMES projects it corresponds to the end of realisation and deployment.

The checklist

  1. 01

    Define acceptance criteria

    Before testing, derive from the requirements what must be met for acceptance.

    Done when: Every acceptance-relevant requirement has at least one verifiable criterion, and both sides have confirmed the list.

  2. 02

    Write test cases

    Write a test case with steps and expected result for each criterion.

    Done when: Test cases cover all acceptance-relevant requirements, visible in a traceability table.

  3. 03

    Provide test data and environment

    Set up a production-like test environment with realistic, privacy-compliant test data.

    Done when: The test environment matches the target in version and configuration; test data contains no real personal data without a legal basis.

  4. 04

    Have users run the tests

    Future users execute the test cases, not only the development team.

    Done when: Every test case has a documented result with date and tester.

  5. 05

    Classify defects

    Classify defects by agreed classes, such as blocking, major and minor.

    Done when: Every defect has a class, a reproduction description and an owner.

  6. 06

    Record acceptance

    Record the result, open defects with deadlines and any reservations in writing.

    Done when: A protocol is signed by both sides and lists open points with deadlines.

  7. 07

    Arrange handover to operations

    Hand over documentation, source code, access, operations manual and support arrangements.

    Done when: Operations can restart, back up and restore without asking the project team.

Common mistakes

  • —Discussing acceptance criteria only during testing.
  • —Letting only the development team test, which knows the software too well.
  • —Accepting under time pressure with many major defects and no deadline for fixing them.
  • —Not treating source code, documentation and access as part of acceptance.

What this checklist does not cover

  • —The checklist does not replace contractual rules on acceptance and its legal consequences, which follow from the contract and applicable law.
  • —Load, security and penetration tests are separate examinations not covered here.
  • —Public clients may have additional formal requirements.

Parent service: Custom Software Engineering

FAQ

What is the difference between testing and acceptance?

Testing checks whether the software works. Acceptance is the formal declaration that it meets the agreed requirements.

Can you accept with open defects?

Yes, with minor defects recorded in the protocol with a deadline. Blocking defects must be fixed first.

Who writes the test cases?

Ideally the business side with support from business analysis, derived from the acceptance criteria.

LM
Reviewed by
Founder & CEO · MSc Innovation Management (FFHS) · PMP · IREB CPRE · Author of “Identity Over Discipline”
Mandates incl. EDA, MeteoSwiss, FSO, SERI, FINMA, Swisscom and BLS
Working on something similar?

Checklist: accepting software without nasty surprises