Test case
Preconditions, steps, expected results, postconditions. Manual or automated, supports Gherkin.
Test Case: Test Case Title
ID: TC-XXX Author: Name Date: YYYY-MM-DD Priority: Critical / High / Medium / Low Type: Functional / Negative / Boundary / Performance Linked requirement: REQ-XXX or User Story ID
Preconditions
List everything that must be true before execution begins.
- Precondition 1
- Precondition 2
Test Data
| Parameter | Value |
|---|---|
| Field | Value |
Steps
| Step | Action | Expected Result |
|---|---|---|
| 1 | Action description | Expected outcome |
| 2 | Action description | Expected outcome |
| 3 | Action description | Expected outcome |
Postconditions
Describe the expected state of the system after the test completes successfully.
Gherkin Version (optional)
Given <initial state>
When <action performed>
Then <expected outcome>
And <additional assertion>
Notes
Additional context, known edge cases, or dependencies on other test cases.
Test Case: Verify Password Reset Email Is Sent Within 30 Seconds
ID: TC-1047 Author: Marcus Obi Date: 2024-03-06 Priority: High Type: Functional Linked requirement: NOVU-1751 — Password Reset Flow
Preconditions
- Test user account
resettest+01@qa.novubank.internalexists with a verified email address - SMTP test server (Mailtrap) is running and the inbox is empty
- User is on the login screen and is not authenticated
Test Data
| Parameter | Value |
|---|---|
| Email address | resettest+01@qa.novubank.internal |
| Expected email subject | Reset your Novu Bank password |
| Maximum delivery time | 30 seconds |
Steps
| Step | Action | Expected Result |
|---|---|---|
| 1 | Tap "Forgot password?" on the login screen | Password reset screen opens with an email input field |
| 2 | Enter resettest+01@qa.novubank.internal and tap "Send reset link" |
Success toast appears: "Check your inbox — we've sent a reset link" |
| 3 | Note the timestamp shown in the toast | Timestamp is visible and readable |
| 4 | Open Mailtrap inbox within 30 seconds of step 2 | Exactly one email with subject "Reset your Novu Bank password" is present |
| 5 | Check the email delivery timestamp | Email timestamp is within 30 seconds of the request in step 2 |
| 6 | Open the email body and inspect the reset link | Link format is https://app.novubank.com/reset-password?token=<uuid>, link is not expired |
| 7 | Tap the reset link | Browser opens the reset-password screen with the token pre-populated |
Postconditions
- A password reset token exists in the database for the test account
- The token has a 15-minute expiry timestamp
- The Mailtrap inbox contains exactly one email (no duplicates)
Gherkin Version
Given the user "resettest+01@qa.novubank.internal" is on the login screen
When they tap "Forgot password?" and submit their email address
Then a success toast confirms the reset link has been sent
And the reset email arrives in Mailtrap within 30 seconds
And the email contains a valid reset link in the expected format
Notes
- Repeat this test with an email address that does not exist in the system — the success toast should still appear (do not reveal whether an account exists).
- See TC-1048 for the expired token negative case.
- Mailtrap credentials are in the team password vault under "QA — Mailtrap."
// Related templates
Bug report
Steps to reproduce, expected vs actual behaviour, environment details, and severity. For Jira, Linear, GitHub Issues.
Exploratory charter
Mission, time-box, areas to explore, oracles, notes. Session-based testing (SBTM).
Traceability matrix
Requirements-to-tests mapping with coverage gaps highlighted. Markdown table format.