# Enhanced End-to-End (E2E) Testing Plan

Based on your feedback, we've refined the E2E testing plan to exclude Spotify-related functionalities and reorganize the test cases into more logical groupings. Additionally, we've incorporated the use of the Firebase Emulator Suite to facilitate comprehensive system testing. This approach ensures that both frontend and backend interactions are thoroughly validated in an isolated environment, enhancing test reliability and accuracy.

## **1. Overview**

- **Testing Framework:** Cypress
- **Backend Emulator:** Firebase Emulator Suite
- **Purpose:** Validate complete user journeys, ensuring seamless interaction between frontend components and backend services.
- **Scope:** Cover major user interactions, including user onboarding, game creation and joining, lobby management, game progression, and error handling.

## **2. Test Groupings**

Instead of organizing tests by epics, we've grouped them based on logical user flows and system functionalities. This structure aligns better with real-world user interactions and system operations.

### **2.1. User Onboarding and Authentication**

#### **2.1.1. Player Name Entry and Game Creation**

- **Test Case 1:** *Successful Name Entry and Game Creation*
  - **Description:** Verify that a user can enter a valid name and create a new game session.
  - **Steps:**
    1. Navigate to the Home Screen.
    2. Click on the "Create Game" button.
    3. Enter a valid player name.
    4. Submit the form.
    5. Confirm redirection to the Lobby Screen with correct game details.
  - **Assertions:**
    - Player name is accepted and stored.
    - A unique game code is generated and displayed.
    - User is navigated to the Lobby Screen.

- **Test Case 2:** *Validation Feedback for Invalid Name Entry*
  - **Description:** Ensure that entering an invalid name (e.g., empty string, exceeding character limits) provides appropriate feedback.
  - **Steps:**
    1. Navigate to the Create Game screen.
    2. Attempt to submit the form without entering a name.
    3. Enter a name that exceeds the character limit.
    4. Submit the form after each invalid input.
  - **Assertions:**
    - Relevant error messages are displayed for each invalid input.
    - Game creation is prevented until inputs are valid.

#### **2.1.2. User Authentication**

- **Test Case 3:** *Anonymous Authentication Setup*
  - **Description:** Validate that users are authenticated anonymously when creating or joining a game.
  - **Steps:**
    1. Initiate game creation or joining.
    2. Ensure that the authentication process is triggered.
    3. Confirm successful anonymous authentication.
  - **Assertions:**
    - Anonymous authentication is initiated.
    - User receives a unique `uid` upon successful authentication.
    - No user-related errors occur during the process.

### **2.2. Game Session Management**

#### **2.2.1. Creating a New Game**

- **Test Case 4:** *Game Creation with Valid Parameters*
  - **Description:** Verify that a game is created with valid parameters and stored correctly in Firestore.
  - **Steps:**
    1. Complete the game creation form with valid inputs.
    2. Submit the form.
    3. Check Firestore for the new game document.
  - **Assertions:**
    - Firestore contains the new game document with correct data.
    - The game status is set to "waiting."
    - The creator is assigned as the Round Host.

- **Test Case 5:** *Handling Game Creation Failures*
  - **Description:** Ensure that failures during game creation (e.g., Firestore errors) are handled gracefully.
  - **Steps:**
    1. Simulate a Firestore failure during game creation.
    2. Attempt to create a game.
    3. Observe the application's response.
  - **Assertions:**
    - An appropriate error message is displayed to the user.
    - The application remains stable without crashing.
    - No incomplete game documents are created in Firestore.

#### **2.2.2. Joining an Existing Game**

- **Test Case 6:** *Successful Game Join with Valid Code*
  - **Description:** Verify that a user can join an existing game using a valid game code.
  - **Steps:**
    1. Navigate to the Home Screen.
    2. Click on the "Join Game" button.
    3. Enter a valid game code.
    4. Submit the form.
    5. Confirm navigation to the Lobby Screen.
  - **Assertions:**
    - User is added to the game's player list.
    - Lobby displays the correct number of players.
    - User receives confirmation of successful join.

- **Test Case 7:** *Error Handling for Invalid or Non-Existent Game Codes*
  - **Description:** Ensure that entering an invalid or non-existent game code provides appropriate feedback.
  - **Steps:**
    1. Navigate to the Join Game screen.
    2. Enter an invalid or random game code.
    3. Submit the form.
  - **Assertions:**
    - Relevant error message is displayed (e.g., "Invalid game code.").
    - User remains on the Join Game screen without being navigated to the Lobby.

- **Test Case 8:** *Enforcing Unique Player Names Within a Game*
  - **Description:** Validate that duplicate player names are not allowed within the same game session.
  - **Steps:**
    1. User A creates a game.
    2. User B attempts to join the game using a name already taken by User A.
  - **Assertions:**
    - Application prevents User B from joining with a duplicate name.
    - An appropriate error message is displayed.
    - User B is prompted to choose a different, unique name.

- **Test Case 9:** *Allowing Unique Names Differing Only by Case*
  - **Description:** Ensure that player names differing only by case are allowed.
  - **Steps:**
    1. User A creates a game with the name "JohnDoe."
    2. User B attempts to join the same game with the name "johndoe."
  - **Assertions:**
    - Application allows User B to join with the name "johndoe."
    - Both players are successfully added to the game.

### **2.3. Lobby Management**

#### **2.3.1. Real-Time Player Updates**

- **Test Case 10:** *Real-Time Player Additions and Removals*
  - **Description:** Confirm that the lobby dynamically updates as players join or leave.
  - **Steps:**
    1. User A creates a game and navigates to the Lobby Screen.
    2. User B joins the same game using the game code.
    3. User C leaves the game.
    4. Observe the Lobby Screen for real-time updates.
  - **Assertions:**
    - Player list updates accurately with additions and removals.
    - Player counts reflect the current number of participants.

#### **2.3.2. Player Ready Status**

- **Test Case 11:** *Players Toggling Ready Status*
  - **Description:** Ensure that players can toggle their ready status and that the host is notified when all players are ready.
  - **Steps:**
    1. Multiple users join the same game and navigate to the Lobby Screen.
    2. Each player toggles their ready status.
    3. Host observes the ready status indicators.
  - **Assertions:**
    - Players' ready statuses update correctly.
    - Host receives a notification or sees an indicator when all players are ready.
    - The "Start Game" button becomes active/enabled for the host when conditions are met.

#### **2.3.3. Starting the Game**

- **Test Case 12:** *Host Initiates Game Start*
  - **Description:** Verify that the host can start the game once all players are ready.
  - **Steps:**
    1. Ensure all players have toggled their ready status.
    2. Host clicks the "Start Game" button.
    3. Confirm navigation to the game gameplay screen.
  - **Assertions:**
    - Game transitions from Lobby to Gameplay.
    - All players are navigated to the Gameplay screen simultaneously.
    - Game status updates to "in-progress" in Firestore.

### **2.4. Game Progression and Mechanics**

#### **2.4.1. Round Flow**

- **Test Case 13:** *Complete Round Progression*
  - **Description:** Validate the complete flow of a game round, including challenge selection, song selection, playback, voting, and scoring.
  - **Steps:**
    1. Start the game from the Lobby Screen.
    2. Round Host selects a challenge.
    3. Players select or contribute songs.
    4. Songs are played back in shuffled order.
    5. Players submit their rankings.
    6. Backend processes scores based on rankings and joker usage.
    7. Proceed to the next round or conclude the game.
  - **Assertions:**
    - All steps in the round progression execute without errors.
    - Scores are accurately calculated and displayed.
    - The role of Round Host rotates correctly.
    - Game concludes appropriately after the designated number of rounds.

### **2.5. Session Persistence**

- **Test Case 14:** *Session Persistence on Page Refresh*
  - **Description:** Ensure that a player's session persists after refreshing the page.
  - **Steps:**
    1. User joins a game and navigates to the Lobby Screen.
    2. Refresh the browser page.
    3. Confirm that the user remains in the game session without needing to re-enter their name or game code.
  - **Assertions:**
    - Player's game session is restored accurately.
    - No loss of data or navigation disruptions occur.

### **2.6. Error Handling and Edge Cases**

- **Test Case 15:** *Handling Game Creation Collisions*
  - **Description:** Ensure that the system retries generating a unique game code upon collision.
  - **Steps:**
    1. Simulate a game code collision during game creation.
    2. Attempt to create a game.
    3. Confirm that the system retries and generates a unique code.
  - **Assertions:**
    - The game creation process handles collisions gracefully.
    - A unique game code is eventually generated and used.
    - No duplicate game codes exist in Firestore.

- **Test Case 16:** *Starting Game with Insufficient Players*
  - **Description:** Ensure that starting a game with fewer than the required number of players is prevented.
  - **Steps:**
    1. Create a game with a set number of players (e.g., 4).
    2. Join the game with fewer players (e.g., 1 player).
    3. Attempt to start the game.
  - **Assertions:**
    - The system prevents the game from starting.
    - An appropriate error message is displayed indicating insufficient players.

## **3. Test Setup Using Firebase Emulator Suite**

Utilizing the Firebase Emulator Suite allows for comprehensive system testing by mirroring the production environment locally. This setup ensures that frontend and backend interactions are tested cohesively without affecting real data.

### **3.1. Installing and Configuring Firebase Emulator**

1. **Install Firebase CLI:**

   ```bash
   npm install -g firebase-tools
   ```

2. **Initialize Firebase Project (if not already done):**

   ```bash
   firebase init
   ```

3. **Start Firebase Emulators:**

   ```bash
   firebase emulators:start
   ```

   Ensure that Firestore, Authentication, and Functions emulators are running.

### **3.2. Cypress Configuration for Emulator Integration**

1. **Update `cypress.config.ts`:**

   ```typescript
   import { defineConfig } from 'cypress'

   export default defineConfig({
     e2e: {
       baseUrl: 'http://localhost:3000',
       setupNodeEvents(on, config) {
         // Implement node event listeners here if needed
       },
     },
   })
   ```

2. **Environment Variables:**

   Utilize Cypress environment variables to point frontend to the emulated backend services.

   ```json
   // cypress.env.json
   {
     "firestore_host": "localhost",
     "firestore_port": "8080",
     "auth_host": "localhost",
     "auth_port": "9099"
   }
   ```

3. **Modify Frontend Configuration for Testing:**

   Ensure that the frontend application connects to the Firebase emulators during E2E tests. This can typically be done by setting environment variables or using a specific configuration file for the testing environment.

   ```javascript
   // src/firebase/config.js
   import { initializeApp } from 'firebase/app'
   import { getFirestore, connectFirestoreEmulator } from 'firebase/firestore'
   import { getAuth, connectAuthEmulator } from 'firebase/auth'

   const firebaseConfig = {
     // Your Firebase config
   }

   const app = initializeApp(firebaseConfig)
   const db = getFirestore(app)
   const auth = getAuth(app)

   if (process.env.NODE_ENV === 'test') {
     connectFirestoreEmulator(db, 'localhost', 8080)
     connectAuthEmulator(auth, 'http://localhost:9099')
   }

   export { db, auth }
   ```

### **3.3. Seeding Test Data**

Implement scripts or Cypress commands to seed the Firebase emulators with necessary test data before running E2E tests.

```javascript
// cypress/support/commands.js

Cypress.Commands.add('seedFirestore', () => {
  cy.request('POST', 'http://localhost:5001/YOUR_PROJECT_ID/us-central1/seedFirestore')
})

Cypress.Commands.add('clearFirestore', () => {
  cy.request('POST', 'http://localhost:5001/YOUR_PROJECT_ID/us-central1/clearFirestore')
})
```

Ensure you have corresponding Firebase Functions (`seedFirestore` and `clearFirestore`) to handle seeding and clearing data.

### **3.4. Handling Authentication in Tests**

Automate authentication flows within Cypress tests to simulate user sign-ins.

```javascript
// cypress/support/commands.js

Cypress.Commands.add('loginAnonymously', () => {
  cy.task('loginAnonymously').then((token) => {
    window.localStorage.setItem('authToken', token)
  })
})
```

Configure Cypress to handle authentication tokens appropriately.

## **4. Implementing the Tests in Cypress**

Organize your Cypress tests within the `cypress/e2e` directory, categorizing them based on the logical groupings outlined above.

### **4.1. Example Test Structure**

```
cypress/
  e2e/
    userOnboarding/
      name_entry_and_game_creation.cy.ts
      authentication.cy.ts
    gameSessionManagement/
      create_game.cy.ts
      join_game.cy.ts
    lobbyManagement/
      lobby_updates.cy.ts
      ready_status.cy.ts
      start_game.cy.ts
    gameProgression/
      round_flow.cy.ts
    sessionPersistence/
      session_persistence.cy.ts
    errorHandling/
      game_creation_collision.cy.ts
      insufficient_players.cy.ts
```

### **4.2. Sample Test Case**

Here's an example of how to implement the **Successful Name Entry and Game Creation** test case using Cypress:

```javascript
// cypress/e2e/userOnboarding/name_entry_and_game_creation.cy.ts

describe('Player Name Entry and Game Creation', () => {
  beforeEach(() => {
    cy.visit('/')
    cy.loginAnonymously()
    cy.seedFirestore()
  })

  afterEach(() => {
    cy.clearFirestore()
  })

  it('should allow a user to enter a name and create a game successfully', () => {
    cy.get('[data-cy=create-game-button]').click()

    cy.get('[data-cy=player-name-input]').type('TestPlayer')
    cy.get('[data-cy=number-of-players-input]').type('4')
    cy.get('[data-cy=number-of-rounds-input]').type('5')
    cy.get('[data-cy=joker-usage-checkbox]').check()

    cy.get('[data-cy=submit-create-game]').click()

    cy.url().should('include', '/game-lobby/')
    cy.get('[data-cy=game-code]').should('exist')
    cy.get('[data-cy=player-name]').should('contain', 'TestPlayer')
  })
})
```

## **5. Benefits of Using Firebase Emulator Suite**

Integrating the Firebase Emulator Suite into your E2E testing provides several advantages:

- **Isolation:** Tests run against a local environment, preventing interference with production data.
- **Faster Testing:** No network latency as interactions are local.
- **Reproducibility:** Easily reset and seed the emulator for consistent test environments.
- **Comprehensive Coverage:** Ability to test backend logic, Firestore interactions, and authentication flows alongside frontend components.

## **6. Additional Recommendations**

- **Continuous Integration (CI):** Integrate Cypress E2E tests into your CI pipeline to ensure tests run automatically on code commits and pull requests.
- **Parallel Testing:** Utilize Cypress's parallelization features to speed up test execution as the test suite grows.
- **Test Data Management:** Maintain clean and isolated test data by seeding before tests and clearing after tests.
- **Error Simulation:** Use Cypress and Firebase Emulator capabilities to simulate different error scenarios, ensuring robust error handling in your application.
- **Performance Monitoring:** Keep an eye on test execution times and optimize tests to maintain efficiency.

-----

Blog How-To Guides
User acceptance testing templates are documents that
help QA teams plan and execute UAT testing.
The end goals are:
to find out if end users run into any issues when
testing;
and that the software works in a real world
business context.
Successfully running user acceptance tests is
challenging.
That’s why having the right processes and workflows in
place is crucial.
In this blog post, we offer free user acceptance testing
templates you can easily copy and implement with
your team.
Whether your organization uses Jira, GitHub, Trello,
GitLab, or Asana, or keeps a backlog in an Excel
spreadsheet, in a Word document, or via email—we’ve
got you covered.
You’ll need the following:
•
•
HOW-TO GUIDES
15 User Acceptance Testing
Templates [Examples + Download]
Last updated: April 23, 2024
15 User Acceptance Testing Templates
[Examples + Download]
Book a demo Try Marker.io for free
10/19/24, 9:04 PM 15 User Acceptance Testing Templates [Examples + Download]
https://marker.io/blog/user-acceptance-testing-template 1/31
A UAT test plan template. This document outlines
business requirements, testing team, and
assignments, as well as the testing process and
strategy to be used during UAT execution.
A test case template. These are real world
scenarios and step-by-step instructions on how to
test a specific feature within a software or website
app.
Find what works for you in this list:
1. UAT test plan template
Test case templates:
1. In GitHub
2. In Jira
3. In Trello
4. In GitLab
5. In Asana
6. In Teamwork
7. In Shortcut
8. In Monday
9. In ClickUp
10. In Wrike
11. In Excel
12. In Word
13. As PDF
14. In Email
User Acceptance Testing
Templates
User acceptance testing (UAT) is performed at the later
stages of the software development lifecycle, in a
production or (production-like) environment.
•
•
15 User Acceptance Testing Templates
[Examples + Download]
Book a demo Try Marker.io for free
10/19/24, 9:04 PM 15 User Acceptance Testing Templates [Examples + Download]
https://marker.io/blog/user-acceptance-testing-template 2/31
Often, this means UAT testing is poorly planned.
The final release is riddled with critical bugs and defects
that end up costing companies extra hours of
development.
You can avoid this with a good user acceptance testing
template.
This list contains everything you need to ensure you
meet acceptance criteria.
UAT Test Plan Template
This user acceptance testing template is your one
source of truth for UAT planning.
It contains:
Scope, business requirements, and objectives.
Why are we building this new feature? What’s the
pain point/main functionality? What are technical
objectives?
Test team. Every individual on the QA team is
assigned a responsibility—the who, the what, and
the when.
Milestones and deliverables. Every phase of
acceptance testing is documented here: testing
process design, staging environment, training,
execution, and report on test results.
Environmental requirements. Hardware (in some
cases) and software requirements are listed here.
Features to be tested. What are we expecting to
discover during testing? What are the pass/fail
criteria for each feature? What features do we want
to avoid testing? What should our test cases look
like?
This document is 100% editable—simply fill in the blanks
with your own data.
Here’s a sneak peek:
•
•
•
•
•
15 User Acceptance Testing Templates
[Examples + Download]
Book a demo Try Marker.io for free
10/19/24, 9:04 PM 15 User Acceptance Testing Templates [Examples + Download]
https://marker.io/blog/user-acceptance-testing-template 3/31
You can download the full test plan in this Google Doc.
Remember to create a copy first, or you won’t be able to
edit it with your own data!
UAT Test Case Templates
During user acceptance testing (UAT), test cases are real
world scenarios performed by the end user.
The goal here is to write step-by-step instructions that
lead testers to the desired result.
But you also want to ensure your app is self-explanatory
enough—in other words, you can’t “hold their hand”
through the entire process.
For example:
1. Log on to the app on staging.acme.com.
vs.
1. Go to staging.acme.com, then click the blue “log
on” button in the top right of the screen.
The first example here is far better: it’s clear what the
desired result is, yet it allows:
15 User Acceptance Testing Templates
[Examples + Download]
Book a demo Try Marker.io for free
10/19/24, 9:04 PM 15 User Acceptance Testing Templates [Examples + Download]
https://marker.io/blog/user-acceptance-testing-template 4/31
testers to figure out how to get there by
themselves;
the QA team to identify any friction in the process,
which is the whole point of UAT testing.
Here’s what you should include in UAT test cases:
1. ID or Name. A unique identifier or a descriptive
name that’s easy to come back to.
2. Description. Insert what needs to be tested—don’t
go into too much detail.
3. Test steps. Keep it brief but make it clear what the
end goal is.
4. Expected result. Tell the end user what is
supposed to happen once they have completed
the steps above. Example: you should now be
logged on to the dashboard.
5. Actual result. This field is filled by testers and
describes what actually happened. Example: the
dashboard is loading indefinitely.
6. Status (Pass/Fail). Whether the task was
successfully completed or not. This is typically a
radio button.
GitHub Test Case Template
If your team uses GitHub, you can use the following
format during user acceptance testing (UAT):
•
•
15 User Acceptance Testing Templates
[Examples + Download]
Book a demo Try Marker.io for free
10/19/24, 9:04 PM 15 User Acceptance Testing Templates [Examples + Download]
https://marker.io/blog/user-acceptance-testing-template 5/31
As you can see, this issue contains all the basic fields
you need to successfully execute UAT, including:
ID
Description
Test steps
Expected result
Actual result
Status
And if you use Marker.io for GitHub, the following info
will be collected automatically:
Because UAT involves non-technical users by definition,
it makes sense to collect this data—it would otherwise
be lost or incorrectly reported.
This includes:
Reporter name
Source URL
Screenshot
Console logs and session replay
Environment info (device type, browser, screen
size, OS…)
•
•
•
•
•
•
•
•
•
•
•
15 User Acceptance Testing Templates
[Examples + Download]
Book a demo Try Marker.io for free
10/19/24, 9:04 PM 15 User Acceptance Testing Templates [Examples + Download]
https://marker.io/blog/user-acceptance-testing-template 6/31
Whenever the end user spots a problem on your website
or app, they can take a screenshot with Marker.io, and
add annotations to get their point across.
In just one click, the tool converts it into a new GitHub
issue.
If your team is on GitHub, consider signing up for a free
Marker.io trial.
Jira Test Case Template
If your team is on Jira, you can use the following user
acceptance testing template.
As you can see, this issue type contains all the basic
fields you need to successfully conduct user acceptance
testing, including:
ID
Description
Test steps
Expected result
Actual result
Status
And if you use Marker.io for Jira, the following info is
added automatically:
•
•
•
•
•
•
15 User Acceptance Testing Templates
[Examples + Download]
Book a demo Try Marker.io for free
10/19/24, 9:04 PM 15 User Acceptance Testing Templates [Examples + Download]
https://marker.io/blog/user-acceptance-testing-template 7/31
Because UAT involves non-technical users by definition,
it makes sense to collect this data—it would otherwise
be lost or incorrectly reported.
This includes:
Reporter name
Source URL
Screenshot
Console logs and session replay
Environment info (device type, browser, screen
size, OS…)
Whenever the end user spots a problem on your website
or app, they can take a screenshot with Marker.io, and
add annotations to get their point across.
In just one click, the tool converts it into a new Jira issue.
If you need help set up custom issue types and test
cases in Jira, check out our guide on how to write test
cases in Jira.
If your team is on Jira, consider signing up for a free
Marker.io trial.
•
•
•
•
•
15 User Acceptance Testing Templates
[Examples + Download]
Book a demo Try Marker.io for free
10/19/24, 9:04 PM 15 User Acceptance Testing Templates [Examples + Download]
https://marker.io/blog/user-acceptance-testing-template 8/31
Trello Test Case Template
If Trello is your PM tool of choice, you can use the
following for your test cases:
As you can see, this card contains all the basic fields you
need for UAT testing, including:
ID
Description
Test steps
Expected result
Actual result
Status
And if you use Marker.io for Trello, the following info is
added automatically:
•
•
•
•
•
•
15 User Acceptance Testing Templates
[Examples + Download]
Book a demo Try Marker.io for free
10/19/24, 9:04 PM 15 User Acceptance Testing Templates [Examples + Download]
https://marker.io/blog/user-acceptance-testing-template 9/31
Because UAT involves non-technical users by definition,
it makes sense to collect this data—it would otherwise
be lost or incorrectly reported.
This includes:
Reporter name
Source URL
Screenshot
Console logs and session replay
Environment info (device type, browser, screen
size, OS…)
Whenever the end user spots a problem on your website
or app, they can take a screenshot with Marker.io, and
add annotations to get their point across.
In just one click, the tool converts it into a new Trello
card.
If your team is on Trello, consider signing up for a free
Marker.io trial.
GitLab Test Case Template
•
•
•
•
•
15 User Acceptance Testing Templates
[Examples + Download]
Book a demo Try Marker.io for free
10/19/24, 9:04 PM 15 User Acceptance Testing Templates [Examples + Download]
https://marker.io/blog/user-acceptance-testing-template 10/31
If you use GitLab for your test scenarios, you can use this
markdown-style format:
As you can see, this issue contains all the basic fields
you need for user acceptance testing, including:
ID
Description
Test steps
Expected result
Actual result
Status
And if you use Marker.io for GitLab, the following info is
added automatically:
•
•
•
•
•
•
15 User Acceptance Testing Templates
[Examples + Download]
Book a demo Try Marker.io for free
10/19/24, 9:04 PM 15 User Acceptance Testing Templates [Examples + Download]
https://marker.io/blog/user-acceptance-testing-template 11/31
Because your test cases will involve non-technical users,
it makes sense to collect this data—it would otherwise
be lost or incorrectly reported.
This includes:
End user name
Source URL
Screenshot
Console logs and session replay
Environment info (device type, browser, screen
size, OS…)
Whenever the end user spots a problem on your website
or app, they can take a screenshot with Marker.io, and
add annotations to get their point across.
In just one click, the tool converts it into a new GitLab
issue.
If your team is on GitLab, consider signing up for a free
Marker.io trial.
Asana Test Case Template
If you use Asana for user acceptance testing (UAT), you
can use this for your test cases:
•
•
•
•
•
15 User Acceptance Testing Templates
[Examples + Download]
Book a demo Try Marker.io for free
10/19/24, 9:04 PM 15 User Acceptance Testing Templates [Examples + Download]
https://marker.io/blog/user-acceptance-testing-template 12/31
As you can see, this task contains all the basic fields you
need for your test scenarios, including:
ID
Description
Test steps
Expected result
Actual result
Status
And if you use Marker.io for Asana, the following info is
added automatically:
•
•
•
•
•
•
15 User Acceptance Testing Templates
[Examples + Download]
Book a demo Try Marker.io for free
10/19/24, 9:04 PM 15 User Acceptance Testing Templates [Examples + Download]
https://marker.io/blog/user-acceptance-testing-template 13/31
Because user acceptance testing involves non-technical
end users, it makes sense to collect this data—it would
otherwise be lost or incorrectly reported.
This includes:
Reporter name
Source URL
Screenshot
Console logs and session replay
Environment info (device type, browser, screen
size, OS…)
Whenever end users spot a problem on your website or
app, they can take a screenshot with Marker.io, and add
annotations to get their point across.
In just one click, the tool converts it into a new Asana
task.
•
•
•
•
•
15 User Acceptance Testing Templates
[Examples + Download]
Book a demo Try Marker.io for free
10/19/24, 9:04 PM 15 User Acceptance Testing Templates [Examples + Download]
https://marker.io/blog/user-acceptance-testing-template 14/31
If your team is on Asana, consider signing up for a free
Marker.io trial.
Teamwork Test Case Template
If you use Teamwork to gather feedback during your test
cases, you can use this task format:
Don’t forget to add custom fields for ID and Status.
Then, your task will contain all the basic fields you need
for UAT testing, including:
ID
Description
Test steps
Expected result
Actual result
Status
And if you use Marker.io for Teamwork, the following
info is added automatically:
•
•
•
•
•
•
ntents
r Acceptance Testing
plates
AT Test Plan Template
AT Test Case Templates
📣 WE'RE HIRING Fulltime Full-stack Typescript Developer. Read more →
Features Pricing Log in
Book
a
demo
Start
free
trial
Who is it for Integrations Resources
15 User Acceptance Testing Templates
[Examples + Download]
Book a demo Try Marker.io for free
10/19/24, 9:04 PM 15 User Acceptance Testing Templates [Examples + Download]
https://marker.io/blog/user-acceptance-testing-template 15/31
Because your test cases will involve non-technical end
users, it makes sense to collect this data—it would
otherwise be lost or incorrectly reported.
This includes:
End user name
Source URL
Screenshot
Console logs and session replay
Environment info (device type, browser, screen
size, OS…)
Whenever the user spots a problem on your website or
app, they can take a screenshot with Marker.io, and add
annotations to get their point across.
In just one click, the tool converts it into a new
Teamwork task.
If your team is on Teamwork, consider signing up for a
free Marker.io trial.
Shortcut Test Case Template
If Shortcut is your go-to project management tool, you
can use this markdown format for your test scenarios:
•
•
•
•
•
pping up...
15 User Acceptance Testing Templates
[Examples + Download]
Book a demo Try Marker.io for free
10/19/24, 9:04 PM 15 User Acceptance Testing Templates [Examples + Download]
https://marker.io/blog/user-acceptance-testing-template 16/31
Don’t forget to create a custom Status field with Pass
and Fail as values.
Then, your task will contain all the basic fields you need
for user acceptance testing (UAT), including:
ID
Description
Test steps
Expected result
Actual result
Status
And if you use Marker.io for Shortcut, the following info
is added automatically:
•
•
•
•
•
•
15 User Acceptance Testing Templates
[Examples + Download]
Book a demo Try Marker.io for free
10/19/24, 9:04 PM 15 User Acceptance Testing Templates [Examples + Download]
https://marker.io/blog/user-acceptance-testing-template 17/31
Because user acceptance testing involves non-technical
users by definition, it makes sense to collect this data—it
would otherwise be lost or incorrectly reported.
This includes:
Reporter name
Source URL
Screenshot
Console logs and session replay
Environment info (device type, browser, screen
size, OS…)
Whenever the user spots a problem on your website or
app, they can take a screenshot with Marker.io, and add
annotations to get their point across.
In just one click, the tool converts it into a new Shortcut
story.
If your team is on Shortcut, consider signing up for a
free Marker.io trial.
•
•
•
•
•
15 User Acceptance Testing Templates
[Examples + Download]
Book a demo Try Marker.io for free
10/19/24, 9:04 PM 15 User Acceptance Testing Templates [Examples + Download]
https://marker.io/blog/user-acceptance-testing-template 18/31
Monday Test Case Template
If you’re using Monday for user acceptance testing, you
can use this format for your test cases:
As you can see, this task contains all the basic fields you
need for UAT testing , including:
ID
Description
Test steps
Expected result
Actual result
Status
And if you use Marker.io for Monday, the following info
is added automatically:
•
•
•
•
•
•
15 User Acceptance Testing Templates
[Examples + Download]
Book a demo Try Marker.io for free
10/19/24, 9:04 PM 15 User Acceptance Testing Templates [Examples + Download]
https://marker.io/blog/user-acceptance-testing-template 19/31
Because your test scenarios will involve non-technical
users by definition, it makes sense to collect this data—it
would otherwise be lost or incorrectly reported.
This includes:
End user name
Source URL
Screenshot
•
•
•
15 User Acceptance Testing Templates
[Examples + Download]
Book a demo Try Marker.io for free
10/19/24, 9:04 PM 15 User Acceptance Testing Templates [Examples + Download]
https://marker.io/blog/user-acceptance-testing-template 20/31
Console logs and session replay
Environment info (device type, browser, screen
size, OS…)
Whenever the user spots a problem on your website or
app, they can take a screenshot with Marker.io, and add
annotations to get their point across with every report.
In just one click, the tool converts it into a new Monday
task.
If your team is on Monday, consider signing up for a free
Marker.io trial.
ClickUp Test Case Template
If ClickUp is your tool of choice for user acceptance
testing, you can use this for your test cases:
As you can see, this task contains all the basic fields you
need for your test scenarios, including:
ID
Description
Test steps
Expected result
Actual result
•
•
•
•
•
•
•
15 User Acceptance Testing Templates
[Examples + Download]
Book a demo Try Marker.io for free
10/19/24, 9:04 PM 15 User Acceptance Testing Templates [Examples + Download]
https://marker.io/blog/user-acceptance-testing-template 21/31
Status
And if you use Marker.io for ClickUp, the following info is
added automatically:
Because UAT testing will involve non-technical users by
definition, it makes sense to collect this data—it would
otherwise be lost or incorrectly reported.
This includes:
User name
Source URL
Screenshot
Console logs and session replay
Environment info (device type, browser, screen
size, OS…)
Whenever the user spots a problem on your website or
app, they can take a screenshot with Marker.io, and add
annotations to get their point across with every report.
In just one click, the tool converts it into a new ClickUp
task.
If your team is on ClickUp, consider signing up for a free
Marker.io trial.
Wrike Test Case Template
•
•
•
•
•
•
15 User Acceptance Testing Templates
[Examples + Download]
Book a demo Try Marker.io for free
10/19/24, 9:04 PM 15 User Acceptance Testing Templates [Examples + Download]
https://marker.io/blog/user-acceptance-testing-template 22/31
If you use Wrike for user acceptance testing, you can
use this format for your test cases:
As you can see, this task contains all the basic fields you
need for UAT testing, including:
ID
Description
Test steps
Expected result
Actual result
Status
And if you use Marker.io for Wrike, the following info is
added automatically:
•
•
•
•
•
•
15 User Acceptance Testing Templates
[Examples + Download]
Book a demo Try Marker.io for free
10/19/24, 9:04 PM 15 User Acceptance Testing Templates [Examples + Download]
https://marker.io/blog/user-acceptance-testing-template 23/31
Because UAT testing will involves non-technical users by
definition, it makes sense to collect this data—it would
otherwise be lost or incorrectly reported.
This includes:
User name
Source URL
Screenshot
Console logs and session replay
Environment info (device type, browser, screen
size, OS…)
Whenever the user spots a problem on your website or
app, they can take a screenshot with Marker.io, and add
annotations to get their point across with every report.
In just one click, the tool converts it into a new Wrike
task.
If your team is on Wrike, consider signing up for a free
Marker.io trial.
•
•
•
•
•
15 User Acceptance Testing Templates
[Examples + Download]
Book a demo Try Marker.io for free
10/19/24, 9:04 PM 15 User Acceptance Testing Templates [Examples + Download]
https://marker.io/blog/user-acceptance-testing-template 24/31
Excel Test Case Template
If you’re old-fashioned and love Excel (.xls) or Google
Spreadsheets to conduct UAT testing, you can use this
format:
As you can see, this sheet contains all the basic fields
you need for UAT testing, including:
ID
Description
Test steps
Expected result
Actual result
Status
Download these files here:
Excel (.xlsx) format
Google Spreadsheets format
Microsoft Word Test Case Template
Microsoft Word and Google Docs are still used
extensively for productive work.
If that’s your jam for UAT testing, we’ve got you covered:
•
•
•
•
•
•
•
•
15 User Acceptance Testing Templates
[Examples + Download]
Book a demo Try Marker.io for free
10/19/24, 9:04 PM 15 User Acceptance Testing Templates [Examples + Download]
https://marker.io/blog/user-acceptance-testing-template 25/31
As you can see, this document contains all the basic
fields you need for user acceptance testing, including:
ID
Description
Test steps
Expected result
Actual result
Status
Download these files here:
Microsoft Word (.docx) format
Google Docs format
PDF Test Case Template
If your testers will report via a PDF file, you can use a
format similar to the previous MS Word document option.
PDFs are not very flexible, however, it might be a
requirement to use them inside your organization.
If that’s your case, I’ve prepared the document from
above in a PDF file for you to download here.
•
•
•
•
•
•
•
•
15 User Acceptance Testing Templates
[Examples + Download]
Book a demo Try Marker.io for free
10/19/24, 9:04 PM 15 User Acceptance Testing Templates [Examples + Download]
https://marker.io/blog/user-acceptance-testing-template 26/31
Email Test Case Template
While we do not recommend using email for user
acceptance testing, it may be your only option—if that’s
the case, you can use this format:
This email contains all the basic fields for user
acceptance testing, including:
ID
Description
Test steps
Expected result
Actual result
Status
You can download the email file as a .txt here.
Wrapping up...
User acceptance testing is often a challenging task, for
both the testers and the QA team aiming for a bug-free
release.
It’s crucial to have a solid strategy in place and to ensure
everything is tested thoroughly during alpha testing and
beta testing.
For successful UAT execution, you’ll need:
•
•
•
•
•
•
15 User Acceptance Testing Templates
[Examples + Download]
Book a demo Try Marker.io for free
10/19/24, 9:04 PM 15 User Acceptance Testing Templates [Examples + Download]
https://marker.io/blog/user-acceptance-testing-template 27/31
A UAT test plan;
Solid UAT testing tools;
and a UAT test case template, depending on the
tools you use to conduct UAT.
We hope the examples provided in this post have helped
you find the perfect user acceptance testing template.

----

look at my test cases and the blog post. try to find the best way to structure my document. it must be in markdown