Manual Test Guide
Purpose and Audience
This guide describes how to create and structure manual test procedures in JSON format for the PCR Analysis system. Manual tests represent step-by-step procedures for manual verification of system functionality and are stored in exports/manual/all_manual_tests.json within the test repository.
Intended audience:
- Developers writing or maintaining manual test definitions alongside automated tests
- QA Engineers authoring manual verification procedures for features that require human interaction or visual inspection
Related resources:
- See the Testing Guide for Behat/Cucumber test writing
- See the Data Dictionary for domain terminology
JSON Schema
{
"issueId": "string", // Jira issue numeric ID (required)
"testType": {
"name": "Manual", // Always "Manual" (required)
"kind": "Steps" // Always "Steps" (required)
},
"gherkin": null, // Always null for manual tests
"steps": [ // Array of test steps (required)
{
"id": "uuid", // Unique step identifier (required)
"action": "string", // Step action to perform (required)
"data": "string", // Input data (optional, can be empty)
"result": "string" // Expected result (required)
}
],
"jira": {
"key": "BT-xxxx", // Jira issue key (required)
"summary": "string" // Test summary/title (required)
},
"description": "string" // Optional test description
}
Field Reference
| Field | Type | Required | Description |
|---|---|---|---|
issueId | string | Yes | Jira issue numeric ID |
testType.name | string | Yes | Always "Manual" |
testType.kind | string | Yes | Always "Steps" |
gherkin | null | Yes | Not used for manual tests |
steps | array | Yes | Array of step objects |
steps[].id | string | Yes | UUID for the step |
steps[].action | string | Yes | Action to perform |
steps[].data | string | No | Input data or test data |
steps[].result | string | Yes | Expected outcome |
jira.key | string | Yes | Jira issue key (BT-xxxx) |
jira.summary | string | Yes | Test case title |
description | string | No | Overall test description |
Step Structure Patterns
Basic Step
{
"id": "uuid-here",
"action": "Click the Submit button",
"data": "",
"result": "Form is submitted successfully"
}
Step with Data
{
"id": "uuid-here",
"action": "Enter username in the login field",
"data": "test_user@example.com",
"result": "Username is displayed in the field"
}
Step with File Links (SharePoint)
{
"id": "uuid-here",
"action": "Setup with [kit-configurations-filename.xlsx|https://sharepoint-url...]",
"data": "",
"result": "The configuration is loaded"
}
Gherkin-Style Step (BDD format in manual test)
{
"id": "uuid-here",
"action": "*Given* Alert: Threshold=*2*, Outcome=*Not Detected*, Interval=*Daily*\n*When* Upload [Run_file.json|url]\n*And* Upload [Run_file_2.json|url]",
"data": "",
"result": "*Then* Alert is *triggered*"
}
For more on the Gherkin/BDD approach used in automated tests, see the Testing Guide.
Complete Template
{
"issueId": "XXXXX",
"testType": {
"name": "Manual",
"kind": "Steps"
},
"gherkin": null,
"steps": [
{
"id": "step-1-uuid",
"action": "Navigate to the [Page Name] page",
"data": "",
"result": "The [Page Name] page is displayed"
},
{
"id": "step-2-uuid",
"action": "Enter [input description]",
"data": "[test data value]",
"result": "The input is accepted"
},
{
"id": "step-3-uuid",
"action": "Click the [Button Name] button",
"data": "",
"result": "[Expected behavior description]"
},
{
"id": "step-4-uuid",
"action": "Verify the [element/behavior]",
"data": "",
"result": "[Expected verification outcome]"
}
],
"jira": {
"key": "BT-XXXX",
"summary": "Test Case Title"
},
"description": "Verify that [test objective description]"
}
Example: UI Feedback Test
{
"issueId": "29811",
"testType": {
"name": "Manual",
"kind": "Steps"
},
"gherkin": null,
"steps": [
{
"id": "cb938845-9885-44ea-929c-6b9d5a791f26",
"action": "Initiate a long-running process (e.g., data import, report generation).",
"data": "",
"result": "The system displays a progress indicator (e.g., progress bar, spinner)."
},
{
"id": "794b0996-e196-4b1b-9dbf-3afffb050048",
"action": "Monitor the progress indicator.",
"data": "",
"result": "The progress indicator updates to reflect the progress of the operation. The indicator provides clear feedback on the current status (e.g., percentage complete, items processed)."
},
{
"id": "89cdf928-eae6-4258-9e49-669deb61a281",
"action": "While the process is running, attempt to interact with the UI (e.g., click a button, navigate to another page).",
"data": "",
"result": "The system prevents actions that could interfere with the ongoing process. The system provides a clear message explaining that the operation is in progress and to wait."
},
{
"id": "117ed0f8-5cfa-47d1-8195-73779679d43b",
"action": "Once the process completes, observe the UI.",
"data": "",
"result": "The progress indicator disappears. A success or failure message is displayed, indicating the outcome of the operation. The user is able to interact with the UI again."
}
],
"jira": {
"key": "BT-5949",
"summary": "User Feedback During Processing"
},
"description": "Verify that the system provides appropriate feedback to the user during processing, such as a progress indicator or status updates, especially for long-running operations."
}
Example: PCR Run Test with File Links
{
"issueId": "30098",
"testType": {
"name": "Manual",
"kind": "Steps"
},
"gherkin": null,
"steps": [
{
"id": "2901d93d-6e0a-49b8-baf3-595ed56ecbbe",
"action": "Setup with [kit-configurations-Secret Chamber (38).xlsx|https://sharepoint-url...]",
"data": "",
"result": "the config settuped new Target Name Suffix To Speciamen sheet is applied"
},
{
"id": "9cf61cb0-08c7-4935-96c0-141e9f39260d",
"action": "Upload and open the run [TAQMAN48 100823_022769 BK TEST (1).sds|https://sharepoint-url...]",
"data": "",
"result": "The A1,D1, E1,F1,G1,H1,A2,B2,C2,D2,E2 etc well recognized with BKV mix -Whole Blood Quant smple type"
},
{
"id": "a19706fa-41e0-4e67-8055-bf98a5a12e64",
"action": "Export the run and observe the results",
"data": "",
"result": "A1,D1, E1,F1,G1,H1,A2,B2,C2,D2,E2 etc wells have QBKQBL pathogen targets in exported results"
}
],
"jira": {
"key": "BT-5977",
"summary": "Sample Type suffixes recognizing idea tes"
}
}
Step Writing Guidelines
Action Field
- Use clear, imperative verbs: "Click", "Navigate", "Enter", "Upload", "Verify", "Observe"
- Reference specific UI elements by name
- Include file links in format:
[filename|URL] - Can use Jira markup:
*bold*,{{code}}
Data Field
- Include specific test input values
- Leave empty if no data input required
- Can include multiple values separated by commas
Result Field
- Describe the expected observable outcome
- Be specific about what should appear/change
- Can use Jira markup for emphasis
For standardized terminology to use in actions and results, see the Data Dictionary.
Best Practices
- One step per action -- Keep steps atomic and focused
- Include all setup steps -- Do not assume prior state
- Use descriptive results -- Specify exactly what to verify
- Link to test files -- Use SharePoint links for test data
- Generate unique UUIDs -- Each step needs a unique ID
- Keep summaries concise -- Use the description field for details