Acceptance Criteria

Acceptance Criteria define the specific conditions that must be met for a SOW Item to be considered complete. They provide clear, measurable, and unambiguous definitions of "done" that all stakeholders can agree upon.

Overview

Acceptance Criteria in Test & Accept always belong to specific SOW Items and define precisely when those items are considered complete. They serve as the contractual definition of "done" for each requirement.

Acceptance Criteria:

  • Provide binary pass/fail conditions for requirements
  • Eliminate subjective interpretation of completeness
  • Form the foundation for test case development
  • Create clear contractual definitions of "done"
  • Facilitate alignment between all stakeholders

Well-crafted acceptance criteria are essential for successful project delivery as they provide absolute clarity on expectations and are the basis for verification through testing.

The Acceptance Criterion Model

  • Name
    id
    Type
    string
    Description

    Unique identifier for the acceptance criterion.

  • Name
    sowItemId
    Type
    string
    Description

    ID of the SOW Item this criterion belongs to.

  • Name
    description
    Type
    string
    Description

    The detailed description of the criterion.

  • Name
    status
    Type
    string
    Description

    Current status (e.g., "pending", "pass", "fail").

  • Name
    order
    Type
    number
    Description

    The relative order of this criterion within the SOW Item.

  • Name
    createdBy
    Type
    string
    Description

    The user ID of who created the criterion.

  • Name
    createdAt
    Type
    timestamp
    Description

    Timestamp of when the criterion was created.

  • Name
    updatedAt
    Type
    timestamp
    Description

    Timestamp of when the criterion was last updated.

Creating Acceptance Criteria

Via the UI

  1. Navigate to a SOW Item
  2. Click "Add Acceptance Criteria"
  3. Write a clear criterion statement using the recommended format
  4. Click "Save Criterion"

Via the API

// Create a new acceptance criterion
const newCriterion = await apiClient.acceptanceCriteria.create({
  sowItemId: "sow_item_id",
  description: "Given a user with valid credentials, when they attempt to log in, then they are successfully authenticated and redirected to the dashboard.",
  status: "pending"
});

Writing Effective Criteria

Acceptance criteria should be:

  1. Binary: Each criterion must have only two possible outcomes — pass or fail
  2. Specific: Clearly define the exact condition to be met
  3. Measurable: Include concrete details that can be objectively verified
  4. Unambiguous: Leave no room for interpretation or subjective judgment

Recommended Formats

Test & Accept supports two primary formats for acceptance criteria:

1. Given-When-Then Format

This format follows the Behavior-Driven Development (BDD) approach:

Given [context]
When [action]
Then [expected result]

Example:

Given a user with admin privileges
When they access the user management page
Then they can view, edit, and delete all user accounts

2. "It can be confirmed that" Format

This format is more direct and suitable for simpler conditions:

It can be confirmed that [expected condition]

Example:

It can be confirmed that the system automatically locks a user account after 5 failed login attempts

Managing Criteria Status

Acceptance criteria have three possible statuses:

  • Pending: The criterion has been defined but not yet tested
  • Pass: The criterion has been tested and satisfied
  • Fail: The criterion has been tested and not satisfied

To update a criterion's status:

// Update criterion status
await apiClient.acceptanceCriteria.updateStatus(
  "criterion_id",
  "pass"
);

Linking to Test Procedures

Acceptance criteria form the foundation for test procedures. Each criterion should have at least one test procedure that verifies whether it has been met. See the Acceptance Tests documentation for details on how to create test procedures for your criteria.

Best Practices

  • One Condition Per Criterion: Each criterion should test exactly one condition
  • Complete Coverage: Ensure all aspects of a requirement have criteria
  • No Implementation Details: Focus on outcomes, not how they're achieved
  • Concise Language: Be direct and specific in your wording
  • Collaboration: Develop criteria with stakeholders to ensure alignment
  • Early Definition: Define criteria before development begins
  • Consistent Format: Use a consistent format across all criteria

API Reference

EndpointMethodDescription
/api/v1/acceptance-criteriaGETList all acceptance criteria
/api/v1/acceptance-criteria/{id}GETGet criterion by ID
/api/v1/acceptance-criteriaPOSTCreate a new criterion
/api/v1/acceptance-criteria/{id}PUTUpdate a criterion
/api/v1/acceptance-criteria/{id}DELETEDelete a criterion
/api/v1/acceptance-criteria/{id}/statusPATCHUpdate criterion status
/api/v1/acceptance-criteria/reorderPOSTReorder criteria

For complete API details, refer to the API Reference.

Was this page helpful?