qa-skills 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +168 -0
- package/bin/cli.js +42 -0
- package/dist/agents/registry.d.ts +5 -0
- package/dist/agents/registry.d.ts.map +1 -0
- package/dist/agents/registry.js +101 -0
- package/dist/agents/registry.js.map +1 -0
- package/dist/agents/types.d.ts +9 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +2 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/dependencies.d.ts +21 -0
- package/dist/dependencies.d.ts.map +1 -0
- package/dist/dependencies.js +125 -0
- package/dist/dependencies.js.map +1 -0
- package/dist/installer.d.ts +25 -0
- package/dist/installer.d.ts.map +1 -0
- package/dist/installer.js +437 -0
- package/dist/installer.js.map +1 -0
- package/dist/scaffold.d.ts +27 -0
- package/dist/scaffold.d.ts.map +1 -0
- package/dist/scaffold.js +182 -0
- package/dist/scaffold.js.map +1 -0
- package/package.json +40 -0
- package/skills/qa-accessibility-test-writer/SKILL.md +127 -0
- package/skills/qa-accessibility-test-writer/references/axe-core-patterns.md +349 -0
- package/skills/qa-accessibility-test-writer/references/best-practices.md +184 -0
- package/skills/qa-accessibility-test-writer/references/wcag-tests.md +331 -0
- package/skills/qa-api-contract-curator/SKILL.md +104 -0
- package/skills/qa-api-contract-curator/references/breaking-changes.md +363 -0
- package/skills/qa-api-contract-curator/references/openapi-structure.md +404 -0
- package/skills/qa-browser-data-collector/SKILL.md +132 -0
- package/skills/qa-browser-data-collector/references/data-collection-checklist.md +91 -0
- package/skills/qa-browser-data-collector/references/playwright-mcp-patterns.md +113 -0
- package/skills/qa-bug-ticket-creator/SKILL.md +148 -0
- package/skills/qa-bug-ticket-creator/references/bug-report-format.md +149 -0
- package/skills/qa-bug-ticket-creator/references/severity-guide.md +81 -0
- package/skills/qa-bug-ticket-creator/templates/bug-ticket-template.md +39 -0
- package/skills/qa-changelog-analyzer/SKILL.md +134 -0
- package/skills/qa-changelog-analyzer/references/git-analysis-patterns.md +138 -0
- package/skills/qa-changelog-analyzer/references/impact-mapping.md +120 -0
- package/skills/qa-clickup-integration/SKILL.md +166 -0
- package/skills/qa-clickup-integration/references/api-patterns.md +102 -0
- package/skills/qa-clickup-integration/references/field-mapping.md +71 -0
- package/skills/qa-codeceptjs-writer/SKILL.md +136 -0
- package/skills/qa-codeceptjs-writer/references/best-practices.md +207 -0
- package/skills/qa-codeceptjs-writer/references/config.md +255 -0
- package/skills/qa-codeceptjs-writer/references/patterns.md +285 -0
- package/skills/qa-coverage-analyzer/SKILL.md +166 -0
- package/skills/qa-coverage-analyzer/references/best-practices.md +142 -0
- package/skills/qa-coverage-analyzer/references/coverage-dimensions.md +155 -0
- package/skills/qa-coverage-analyzer/references/tools.md +204 -0
- package/skills/qa-cypress-writer/SKILL.md +134 -0
- package/skills/qa-cypress-writer/references/assertions.md +121 -0
- package/skills/qa-cypress-writer/references/best-practices.md +82 -0
- package/skills/qa-cypress-writer/references/config.md +121 -0
- package/skills/qa-cypress-writer/references/patterns.md +170 -0
- package/skills/qa-data-factory/SKILL.md +126 -0
- package/skills/qa-data-factory/references/factory-patterns.md +164 -0
- package/skills/qa-data-factory/references/faker-guide.md +131 -0
- package/skills/qa-diagram-generator/SKILL.md +125 -0
- package/skills/qa-diagram-generator/references/c4-model.md +53 -0
- package/skills/qa-diagram-generator/references/charts.md +58 -0
- package/skills/qa-diagram-generator/references/class-diagram.md +85 -0
- package/skills/qa-diagram-generator/references/er-diagram.md +69 -0
- package/skills/qa-diagram-generator/references/flowchart.md +92 -0
- package/skills/qa-diagram-generator/references/from-screenshot.md +45 -0
- package/skills/qa-diagram-generator/references/gantt.md +49 -0
- package/skills/qa-diagram-generator/references/journey.md +50 -0
- package/skills/qa-diagram-generator/references/mindmap.md +75 -0
- package/skills/qa-diagram-generator/references/sequence.md +69 -0
- package/skills/qa-diagram-generator/references/state-diagram.md +56 -0
- package/skills/qa-discovery-interview/SKILL.md +182 -0
- package/skills/qa-discovery-interview/references/completeness-checklist.md +53 -0
- package/skills/qa-discovery-interview/references/conflict-patterns.md +101 -0
- package/skills/qa-discovery-interview/references/qa-categories.md +147 -0
- package/skills/qa-discovery-interview/templates/qa-brief-template.md +168 -0
- package/skills/qa-environment-checker/SKILL.md +142 -0
- package/skills/qa-environment-checker/references/dependency-matrix.md +101 -0
- package/skills/qa-environment-checker/references/health-checks.md +209 -0
- package/skills/qa-environment-checker/templates/env-readiness-template.md +64 -0
- package/skills/qa-flaky-detector/SKILL.md +153 -0
- package/skills/qa-flaky-detector/references/ci-analysis.md +140 -0
- package/skills/qa-flaky-detector/references/flaky-patterns.md +247 -0
- package/skills/qa-github-issues-enhanced/SKILL.md +175 -0
- package/skills/qa-github-issues-enhanced/references/issue-templates.md +425 -0
- package/skills/qa-github-issues-enhanced/references/label-taxonomy.md +130 -0
- package/skills/qa-github-issues-enhanced/references/workflow-patterns.md +188 -0
- package/skills/qa-httpx-writer/SKILL.md +138 -0
- package/skills/qa-httpx-writer/references/assertions.md +195 -0
- package/skills/qa-httpx-writer/references/best-practices.md +140 -0
- package/skills/qa-httpx-writer/references/config.md +212 -0
- package/skills/qa-httpx-writer/references/patterns.md +262 -0
- package/skills/qa-jest-writer/SKILL.md +131 -0
- package/skills/qa-jest-writer/references/assertions.md +125 -0
- package/skills/qa-jest-writer/references/best-practices.md +136 -0
- package/skills/qa-jest-writer/references/config.md +134 -0
- package/skills/qa-jest-writer/references/patterns.md +172 -0
- package/skills/qa-jira-integration/SKILL.md +135 -0
- package/skills/qa-jira-integration/references/api-patterns.md +143 -0
- package/skills/qa-jira-integration/references/field-mapping.md +79 -0
- package/skills/qa-jira-integration/references/xray-integration.md +85 -0
- package/skills/qa-jmeter-writer/SKILL.md +171 -0
- package/skills/qa-jmeter-writer/references/best-practices.md +157 -0
- package/skills/qa-jmeter-writer/references/config.md +204 -0
- package/skills/qa-jmeter-writer/references/patterns.md +242 -0
- package/skills/qa-junit5-writer/SKILL.md +157 -0
- package/skills/qa-junit5-writer/references/assertions.md +118 -0
- package/skills/qa-junit5-writer/references/config.md +97 -0
- package/skills/qa-junit5-writer/references/patterns.md +162 -0
- package/skills/qa-k6-writer/SKILL.md +155 -0
- package/skills/qa-k6-writer/references/best-practices.md +236 -0
- package/skills/qa-k6-writer/references/config.md +219 -0
- package/skills/qa-k6-writer/references/patterns.md +304 -0
- package/skills/qa-linear-integration/SKILL.md +137 -0
- package/skills/qa-linear-integration/references/api-patterns.md +249 -0
- package/skills/qa-linear-integration/references/field-mapping.md +121 -0
- package/skills/qa-locust-writer/SKILL.md +151 -0
- package/skills/qa-locust-writer/references/best-practices.md +126 -0
- package/skills/qa-locust-writer/references/config.md +170 -0
- package/skills/qa-locust-writer/references/patterns.md +235 -0
- package/skills/qa-manual-test-designer/SKILL.md +145 -0
- package/skills/qa-manual-test-designer/references/exploratory-charters.md +138 -0
- package/skills/qa-manual-test-designer/references/personas.md +146 -0
- package/skills/qa-manual-test-designer/templates/exploratory-charter-template.md +47 -0
- package/skills/qa-manual-test-designer/templates/test-case-template.md +31 -0
- package/skills/qa-mobile-test-writer/SKILL.md +144 -0
- package/skills/qa-mobile-test-writer/references/best-practices.md +214 -0
- package/skills/qa-mobile-test-writer/references/config.md +309 -0
- package/skills/qa-mobile-test-writer/references/patterns.md +304 -0
- package/skills/qa-nfr-analyst/SKILL.md +177 -0
- package/skills/qa-nfr-analyst/references/iso-25010-model.md +159 -0
- package/skills/qa-nfr-analyst/references/owasp-wstg-baseline.md +202 -0
- package/skills/qa-nfr-analyst/references/wcag-checklist.md +184 -0
- package/skills/qa-nfr-analyst/templates/owasp-checklist-template.md +89 -0
- package/skills/qa-nfr-analyst/templates/wcag-checklist-template.md +48 -0
- package/skills/qa-orchestrator/SKILL.md +132 -0
- package/skills/qa-orchestrator/references/handoff-chains.md +105 -0
- package/skills/qa-orchestrator/references/pipeline-modes.md +115 -0
- package/skills/qa-orchestrator/references/scheduler-rules.md +84 -0
- package/skills/qa-pact-writer/SKILL.md +133 -0
- package/skills/qa-pact-writer/references/best-practices.md +100 -0
- package/skills/qa-pact-writer/references/config.md +135 -0
- package/skills/qa-pact-writer/references/patterns.md +161 -0
- package/skills/qa-plan-creator/SKILL.md +139 -0
- package/skills/qa-plan-creator/references/introduction-plan.md +43 -0
- package/skills/qa-plan-creator/references/migration-plan.md +44 -0
- package/skills/qa-plan-creator/references/onboarding-plan.md +46 -0
- package/skills/qa-plan-creator/references/performance-plan.md +44 -0
- package/skills/qa-plan-creator/references/regression-plan.md +45 -0
- package/skills/qa-plan-creator/references/release-plan.md +45 -0
- package/skills/qa-plan-creator/references/sprint-plan.md +44 -0
- package/skills/qa-plan-creator/references/test-plan.md +59 -0
- package/skills/qa-plan-creator/references/uat-plan.md +43 -0
- package/skills/qa-plan-creator/templates/checklist-template.md +36 -0
- package/skills/qa-plan-creator/templates/regression-checklist-template.md +49 -0
- package/skills/qa-plan-creator/templates/release-checklist-template.md +46 -0
- package/skills/qa-plan-creator/templates/test-plan-template.md +74 -0
- package/skills/qa-playwright-py-writer/SKILL.md +156 -0
- package/skills/qa-playwright-py-writer/references/best-practices.md +194 -0
- package/skills/qa-playwright-py-writer/references/config.md +195 -0
- package/skills/qa-playwright-py-writer/references/patterns.md +212 -0
- package/skills/qa-playwright-ts-writer/SKILL.md +151 -0
- package/skills/qa-playwright-ts-writer/references/assertions.md +109 -0
- package/skills/qa-playwright-ts-writer/references/best-practices.md +191 -0
- package/skills/qa-playwright-ts-writer/references/config.md +144 -0
- package/skills/qa-playwright-ts-writer/references/patterns.md +171 -0
- package/skills/qa-pytest-writer/SKILL.md +145 -0
- package/skills/qa-pytest-writer/references/assertions.md +149 -0
- package/skills/qa-pytest-writer/references/best-practices.md +97 -0
- package/skills/qa-pytest-writer/references/config.md +176 -0
- package/skills/qa-pytest-writer/references/patterns.md +251 -0
- package/skills/qa-qase-integration/SKILL.md +149 -0
- package/skills/qa-qase-integration/references/api-reference.md +354 -0
- package/skills/qa-qase-integration/references/ci-integration.md +196 -0
- package/skills/qa-qase-integration/references/field-mapping.md +157 -0
- package/skills/qa-requirements-generator/SKILL.md +152 -0
- package/skills/qa-requirements-generator/references/iso-29148-structure.md +153 -0
- package/skills/qa-requirements-generator/references/requirement-patterns.md +278 -0
- package/skills/qa-rest-assured-writer/SKILL.md +137 -0
- package/skills/qa-rest-assured-writer/references/best-practices.md +50 -0
- package/skills/qa-rest-assured-writer/references/config.md +124 -0
- package/skills/qa-rest-assured-writer/references/patterns.md +192 -0
- package/skills/qa-risk-analyzer/SKILL.md +158 -0
- package/skills/qa-risk-analyzer/references/impact-analysis.md +133 -0
- package/skills/qa-risk-analyzer/references/risk-factors.md +123 -0
- package/skills/qa-robot-framework-writer/SKILL.md +147 -0
- package/skills/qa-robot-framework-writer/references/best-practices.md +249 -0
- package/skills/qa-robot-framework-writer/references/config.md +204 -0
- package/skills/qa-robot-framework-writer/references/libraries.md +273 -0
- package/skills/qa-robot-framework-writer/references/patterns.md +216 -0
- package/skills/qa-security-test-writer/SKILL.md +123 -0
- package/skills/qa-security-test-writer/references/best-practices.md +155 -0
- package/skills/qa-security-test-writer/references/owasp-top10.md +331 -0
- package/skills/qa-security-test-writer/references/zap-config.md +258 -0
- package/skills/qa-selenium-java-writer/SKILL.md +143 -0
- package/skills/qa-selenium-java-writer/references/best-practices.md +59 -0
- package/skills/qa-selenium-java-writer/references/config.md +143 -0
- package/skills/qa-selenium-java-writer/references/patterns.md +170 -0
- package/skills/qa-selenium-py-writer/SKILL.md +150 -0
- package/skills/qa-selenium-py-writer/references/best-practices.md +175 -0
- package/skills/qa-selenium-py-writer/references/config.md +224 -0
- package/skills/qa-selenium-py-writer/references/patterns.md +255 -0
- package/skills/qa-shortcut-integration/SKILL.md +143 -0
- package/skills/qa-shortcut-integration/references/api-patterns.md +126 -0
- package/skills/qa-shortcut-integration/references/field-mapping.md +66 -0
- package/skills/qa-spec-auditor/SKILL.md +162 -0
- package/skills/qa-spec-auditor/references/audit-checklist.md +144 -0
- package/skills/qa-spec-auditor/references/drift-patterns.md +207 -0
- package/skills/qa-spec-writer/SKILL.md +143 -0
- package/skills/qa-spec-writer/references/gherkin-guide.md +253 -0
- package/skills/qa-spec-writer/references/specification-patterns.md +274 -0
- package/skills/qa-spring-test-writer/SKILL.md +170 -0
- package/skills/qa-spring-test-writer/references/best-practices.md +57 -0
- package/skills/qa-spring-test-writer/references/config.md +179 -0
- package/skills/qa-spring-test-writer/references/patterns.md +235 -0
- package/skills/qa-supertest-writer/SKILL.md +150 -0
- package/skills/qa-supertest-writer/references/assertions.md +192 -0
- package/skills/qa-supertest-writer/references/best-practices.md +102 -0
- package/skills/qa-supertest-writer/references/config.md +166 -0
- package/skills/qa-supertest-writer/references/patterns.md +242 -0
- package/skills/qa-task-creator/SKILL.md +142 -0
- package/skills/qa-task-creator/references/linking-patterns.md +127 -0
- package/skills/qa-task-creator/references/task-types.md +169 -0
- package/skills/qa-task-creator/templates/task-template.md +24 -0
- package/skills/qa-test-doc-compiler/SKILL.md +114 -0
- package/skills/qa-test-doc-compiler/references/agile-tailoring.md +220 -0
- package/skills/qa-test-doc-compiler/references/iso-29119-3-documents.md +302 -0
- package/skills/qa-test-healer/SKILL.md +101 -0
- package/skills/qa-test-healer/references/diagnosis-patterns.md +142 -0
- package/skills/qa-test-healer/references/fix-strategies.md +177 -0
- package/skills/qa-test-reporter/SKILL.md +130 -0
- package/skills/qa-test-reporter/references/best-practices.md +162 -0
- package/skills/qa-test-reporter/references/iso-29119-reports.md +236 -0
- package/skills/qa-test-reporter/references/report-formats.md +287 -0
- package/skills/qa-test-reviewer/SKILL.md +142 -0
- package/skills/qa-test-reviewer/references/anti-patterns.md +268 -0
- package/skills/qa-test-reviewer/references/review-checklist.md +93 -0
- package/skills/qa-test-strategy/SKILL.md +133 -0
- package/skills/qa-test-strategy/references/entry-exit-criteria.md +176 -0
- package/skills/qa-test-strategy/references/risk-matrix.md +102 -0
- package/skills/qa-test-strategy/references/testing-types.md +143 -0
- package/skills/qa-testcase-from-docs/SKILL.md +161 -0
- package/skills/qa-testcase-from-docs/references/test-case-format.md +196 -0
- package/skills/qa-testcase-from-docs/references/test-design-techniques.md +126 -0
- package/skills/qa-testcase-from-docs/templates/test-case-template.md +31 -0
- package/skills/qa-testcase-from-ui/SKILL.md +109 -0
- package/skills/qa-testcase-from-ui/references/ui-element-patterns.md +126 -0
- package/skills/qa-testcase-from-ui/references/visual-analysis-guide.md +146 -0
- package/skills/qa-testcase-from-ui/templates/test-case-template.md +31 -0
- package/skills/qa-visual-regression-writer/SKILL.md +175 -0
- package/skills/qa-visual-regression-writer/references/best-practices.md +154 -0
- package/skills/qa-visual-regression-writer/references/config.md +220 -0
- package/skills/qa-visual-regression-writer/references/patterns.md +213 -0
- package/skills/qa-vitest-writer/SKILL.md +141 -0
- package/skills/qa-vitest-writer/references/assertions.md +105 -0
- package/skills/qa-vitest-writer/references/best-practices.md +62 -0
- package/skills/qa-vitest-writer/references/config.md +127 -0
- package/skills/qa-vitest-writer/references/patterns.md +141 -0
- package/skills/qa-webdriverio-writer/SKILL.md +145 -0
- package/skills/qa-webdriverio-writer/references/best-practices.md +176 -0
- package/skills/qa-webdriverio-writer/references/config.md +240 -0
- package/skills/qa-webdriverio-writer/references/patterns.md +269 -0
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
# Test Case Format Reference
|
|
2
|
+
|
|
3
|
+
Detailed format for test cases generated by qa-testcase-from-docs. Examples for positive, negative, boundary, and edge case types.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Standard Fields
|
|
8
|
+
|
|
9
|
+
| Field | Required | Description | Example |
|
|
10
|
+
| ----- | -------- | ----------- | ------- |
|
|
11
|
+
| ID | Yes | Unique identifier | TC-AUTH-001 |
|
|
12
|
+
| Title | Yes | Short descriptive name | Valid login with correct credentials |
|
|
13
|
+
| Module | Yes | Feature/component | Authentication |
|
|
14
|
+
| Priority | Yes | Critical / High / Medium / Low | High |
|
|
15
|
+
| Type | Yes | positive / negative / boundary / edge | positive |
|
|
16
|
+
| Preconditions | No | State before execution | User exists, account not locked |
|
|
17
|
+
| Steps | Yes | Action + Expected Result table | See below |
|
|
18
|
+
| Postconditions | No | State after execution | User logged in, session created |
|
|
19
|
+
| Test Data | No | Input values, fixtures | email: test@example.com, password: ValidPass1! |
|
|
20
|
+
| Traceability | Yes | Requirement ID(s) | REQ-FN-001 |
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Steps Table
|
|
25
|
+
|
|
26
|
+
| Step# | Action | Expected Result |
|
|
27
|
+
| ----- | ------ | --------------- |
|
|
28
|
+
| 1 | Navigate to login page | Login form displayed |
|
|
29
|
+
| 2 | Enter email "test@example.com" | Email field populated |
|
|
30
|
+
| 3 | Enter password "ValidPass1!" | Password masked |
|
|
31
|
+
| 4 | Click "Sign In" | User redirected to dashboard |
|
|
32
|
+
|
|
33
|
+
**Guidelines:**
|
|
34
|
+
- One action per step
|
|
35
|
+
- Expected result must be observable and verifiable
|
|
36
|
+
- Avoid subjective language ("should", "might", "quickly")
|
|
37
|
+
- Use specific values, not placeholders
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Example: Positive Test Case
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
ID: TC-LOGIN-001
|
|
45
|
+
Title: Valid login with correct credentials
|
|
46
|
+
Module: Authentication
|
|
47
|
+
Priority: High
|
|
48
|
+
Type: positive
|
|
49
|
+
Traceability: REQ-FN-001
|
|
50
|
+
|
|
51
|
+
Preconditions:
|
|
52
|
+
- User "test@example.com" exists with password "ValidPass1!"
|
|
53
|
+
- Application is accessible
|
|
54
|
+
|
|
55
|
+
Steps:
|
|
56
|
+
| Step# | Action | Expected Result |
|
|
57
|
+
| ----- | ------ | --------------- |
|
|
58
|
+
| 1 | Open application login page | Login form displayed |
|
|
59
|
+
| 2 | Enter "test@example.com" in email field | Email field shows entered value |
|
|
60
|
+
| 3 | Enter "ValidPass1!" in password field | Password masked with dots |
|
|
61
|
+
| 4 | Click "Sign In" button | User redirected to dashboard |
|
|
62
|
+
| 5 | Verify dashboard loads | Dashboard displays user name and menu |
|
|
63
|
+
|
|
64
|
+
Postconditions:
|
|
65
|
+
- User session active
|
|
66
|
+
- Session cookie set
|
|
67
|
+
|
|
68
|
+
Test Data: email=test@example.com, password=ValidPass1!
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Example: Negative Test Case
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
ID: TC-LOGIN-002
|
|
77
|
+
Title: Login fails with incorrect password
|
|
78
|
+
Module: Authentication
|
|
79
|
+
Priority: High
|
|
80
|
+
Type: negative
|
|
81
|
+
Traceability: REQ-FN-001
|
|
82
|
+
|
|
83
|
+
Preconditions:
|
|
84
|
+
- User "test@example.com" exists
|
|
85
|
+
- Application is accessible
|
|
86
|
+
|
|
87
|
+
Steps:
|
|
88
|
+
| Step# | Action | Expected Result |
|
|
89
|
+
| ----- | ------ | --------------- |
|
|
90
|
+
| 1 | Open application login page | Login form displayed |
|
|
91
|
+
| 2 | Enter "test@example.com" in email field | Email field shows entered value |
|
|
92
|
+
| 3 | Enter "WrongPassword123" in password field | Password masked |
|
|
93
|
+
| 4 | Click "Sign In" button | Error message: "Invalid email or password" |
|
|
94
|
+
| 5 | Verify user remains on login page | No redirect, form still visible |
|
|
95
|
+
| 6 | Verify no session created | No session cookie set |
|
|
96
|
+
|
|
97
|
+
Postconditions:
|
|
98
|
+
- User not logged in
|
|
99
|
+
- Failed attempt logged (if applicable)
|
|
100
|
+
|
|
101
|
+
Test Data: email=test@example.com, password=WrongPassword123
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Example: Boundary Test Case
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
ID: TC-LOGIN-003
|
|
110
|
+
Title: Login with minimum valid password length (8 characters)
|
|
111
|
+
Module: Authentication
|
|
112
|
+
Priority: Medium
|
|
113
|
+
Type: boundary
|
|
114
|
+
Traceability: REQ-FN-001
|
|
115
|
+
|
|
116
|
+
Preconditions:
|
|
117
|
+
- User "test@example.com" exists with password "Abcd1234" (exactly 8 chars)
|
|
118
|
+
- Application is accessible
|
|
119
|
+
|
|
120
|
+
Steps:
|
|
121
|
+
| Step# | Action | Expected Result |
|
|
122
|
+
| ----- | ------ | --------------- |
|
|
123
|
+
| 1 | Open application login page | Login form displayed |
|
|
124
|
+
| 2 | Enter "test@example.com" in email field | Email field shows entered value |
|
|
125
|
+
| 3 | Enter "Abcd1234" in password field | Password accepted (8 chars = min valid) |
|
|
126
|
+
| 4 | Click "Sign In" button | User redirected to dashboard |
|
|
127
|
+
|
|
128
|
+
Postconditions:
|
|
129
|
+
- User logged in successfully
|
|
130
|
+
|
|
131
|
+
Test Data: email=test@example.com, password=Abcd1234 (length=8)
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## Example: Edge Case Test Case
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
ID: TC-LOGIN-004
|
|
140
|
+
Title: Login with optional "Remember me" unchecked (default state)
|
|
141
|
+
Module: Authentication
|
|
142
|
+
Priority: Low
|
|
143
|
+
Type: edge
|
|
144
|
+
Traceability: REQ-FN-001
|
|
145
|
+
|
|
146
|
+
Preconditions:
|
|
147
|
+
- User exists
|
|
148
|
+
- Application is accessible
|
|
149
|
+
- "Remember me" is optional and unchecked by default
|
|
150
|
+
|
|
151
|
+
Steps:
|
|
152
|
+
| Step# | Action | Expected Result |
|
|
153
|
+
| ----- | ------ | --------------- |
|
|
154
|
+
| 1 | Open application login page | Login form displayed, "Remember me" unchecked |
|
|
155
|
+
| 2 | Enter valid credentials | Fields populated |
|
|
156
|
+
| 3 | Leave "Remember me" unchecked | No change to default |
|
|
157
|
+
| 4 | Click "Sign In" button | User logged in |
|
|
158
|
+
| 5 | Close browser completely | Browser closed |
|
|
159
|
+
| 6 | Reopen application | User prompted to login (session not persisted) |
|
|
160
|
+
|
|
161
|
+
Postconditions:
|
|
162
|
+
- Session was non-persistent (session cookie, not persistent)
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## JSON Structure (Export Format)
|
|
168
|
+
|
|
169
|
+
```json
|
|
170
|
+
{
|
|
171
|
+
"id": "TC-LOGIN-001",
|
|
172
|
+
"title": "Valid login with correct credentials",
|
|
173
|
+
"module": "Authentication",
|
|
174
|
+
"priority": "High",
|
|
175
|
+
"type": "positive",
|
|
176
|
+
"traceability": ["REQ-FN-001"],
|
|
177
|
+
"preconditions": "User exists, application accessible",
|
|
178
|
+
"steps": [
|
|
179
|
+
{ "step": 1, "action": "Open application login page", "expectedResult": "Login form displayed" },
|
|
180
|
+
{ "step": 2, "action": "Enter valid email", "expectedResult": "Email field populated" }
|
|
181
|
+
],
|
|
182
|
+
"postconditions": "User session active",
|
|
183
|
+
"testData": { "email": "test@example.com", "password": "ValidPass1!" }
|
|
184
|
+
}
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## CSV Structure (Export Format)
|
|
190
|
+
|
|
191
|
+
```csv
|
|
192
|
+
ID,Title,Module,Priority,Type,Preconditions,Steps,Postconditions,Test Data,Traceability
|
|
193
|
+
TC-LOGIN-001,Valid login with correct credentials,Authentication,High,positive,"User exists","1. Open login page|2. Enter credentials|3. Click Sign In","User logged in","email=test@example.com","REQ-FN-001"
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Note: Steps may use `|` or `;` as delimiter within the cell; format depends on target tool.
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# ISO 29119-4 Test Design Techniques
|
|
2
|
+
|
|
3
|
+
Test design techniques per ISO/IEC/IEEE 29119-4. Use these to build test models and derive test cases with measurable coverage.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Equivalence Partitioning (EP)
|
|
8
|
+
|
|
9
|
+
**Description:** Partition input domain into equivalence classes where members are expected to behave identically. Select one representative from each partition to reduce test count while maintaining coverage.
|
|
10
|
+
|
|
11
|
+
**When to use:** Input fields with ranges, sets of valid/invalid values, enumerated types, validation rules.
|
|
12
|
+
|
|
13
|
+
**Example:** Password field (8–128 chars)
|
|
14
|
+
- Partition 1: Valid (8–128 chars) → pick 12 chars
|
|
15
|
+
- Partition 2: Too short (< 8) → pick 5 chars
|
|
16
|
+
- Partition 3: Too long (> 128) → pick 130 chars
|
|
17
|
+
- Partition 4: Empty → empty string
|
|
18
|
+
- Partition 5: Null (if applicable) → null
|
|
19
|
+
|
|
20
|
+
**Coverage:** At least one test per partition.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Boundary Value Analysis (BVA)
|
|
25
|
+
|
|
26
|
+
**Description:** Test at and around boundaries of input domains. Defects often occur at min, max, and off-by-one values.
|
|
27
|
+
|
|
28
|
+
**When to use:** Numeric ranges, string lengths, array sizes, pagination limits, date ranges.
|
|
29
|
+
|
|
30
|
+
**Example:** Age field (18–120)
|
|
31
|
+
- Min boundary: 18 (valid)
|
|
32
|
+
- Min - 1: 17 (invalid)
|
|
33
|
+
- Max boundary: 120 (valid)
|
|
34
|
+
- Max + 1: 121 (invalid)
|
|
35
|
+
- Typical: 25 (valid)
|
|
36
|
+
|
|
37
|
+
**Coverage:** Min, min-1, max, max+1, and optionally typical value per boundary.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Decision Tables
|
|
42
|
+
|
|
43
|
+
**Description:** Tabular representation of business rules. Rows = rule combinations, columns = conditions and actions. Each row yields a test case.
|
|
44
|
+
|
|
45
|
+
**When to use:** Multiple conditions affecting outcome, business rules, discount/eligibility logic, access control.
|
|
46
|
+
|
|
47
|
+
**Example:** Login (2FA enabled/disabled, valid/invalid password)
|
|
48
|
+
|
|
49
|
+
| 2FA Enabled | Password Valid | Expected |
|
|
50
|
+
| ----------- | -------------- | -------- |
|
|
51
|
+
| No | Yes | Login success |
|
|
52
|
+
| No | No | Error: invalid password |
|
|
53
|
+
| Yes | Yes | Prompt for 2FA code |
|
|
54
|
+
| Yes | No | Error: invalid password |
|
|
55
|
+
|
|
56
|
+
**Coverage:** One test per rule (row). Consider all combinations or use techniques to reduce (e.g., pairwise) if combinatorial explosion.
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## State Transition Testing
|
|
61
|
+
|
|
62
|
+
**Description:** Model system as states and transitions. Test paths through the state machine: all states, all transitions, or specific paths (e.g., happy path, error paths).
|
|
63
|
+
|
|
64
|
+
**When to use:** Workflows, lifecycles, multi-step processes, order status, user sessions, wizards.
|
|
65
|
+
|
|
66
|
+
**Example:** Order lifecycle: Draft → Submitted → Paid → Shipped → Delivered
|
|
67
|
+
|
|
68
|
+
- States: Draft, Submitted, Paid, Shipped, Delivered, Cancelled
|
|
69
|
+
- Transitions: submit, pay, ship, deliver, cancel
|
|
70
|
+
- Test paths: Draft→Submitted→Paid→Shipped→Delivered; Draft→Cancelled; invalid transitions (e.g., Paid→Draft)
|
|
71
|
+
|
|
72
|
+
**Coverage:** All states, all transitions, or transition pairs (0-switch, 1-switch coverage).
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Use Case Testing
|
|
77
|
+
|
|
78
|
+
**Description:** Derive test scenarios from use cases. Cover main success scenario, extensions (alternate flows), and exception flows.
|
|
79
|
+
|
|
80
|
+
**When to use:** User-facing features, documented use cases, user stories with Given/When/Then.
|
|
81
|
+
|
|
82
|
+
**Example:** Use case "Place Order"
|
|
83
|
+
- Main: Add items → Enter shipping → Pay → Order confirmed
|
|
84
|
+
- Extension 2a: Apply discount code
|
|
85
|
+
- Extension 3a: Save for later
|
|
86
|
+
- Exception 2b: Invalid payment → retry or cancel
|
|
87
|
+
|
|
88
|
+
**Coverage:** Main scenario + each extension + each exception.
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Classification Trees
|
|
93
|
+
|
|
94
|
+
**Description:** Hierarchical decomposition of test object into classifications and classes. Combine classes across classifications to form test cases.
|
|
95
|
+
|
|
96
|
+
**When to use:** Complex objects with multiple attributes, configuration testing, combinatorial selection.
|
|
97
|
+
|
|
98
|
+
**Example:** Search filters: Category (Electronics, Clothing, Books), Price (Low, Mid, High), Sort (Relevance, Price, Date)
|
|
99
|
+
|
|
100
|
+
- Classes: 3 × 3 × 3 = 27 combinations
|
|
101
|
+
- Use pairwise or risk-based selection to reduce
|
|
102
|
+
|
|
103
|
+
**Coverage:** All classes exercised; combination coverage as defined (full, pairwise, etc.).
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Technique Selection Guide
|
|
108
|
+
|
|
109
|
+
| Situation | Preferred Technique(s) |
|
|
110
|
+
| --------- | ---------------------- |
|
|
111
|
+
| Input validation | EP, BVA |
|
|
112
|
+
| Business rules | Decision tables |
|
|
113
|
+
| Workflows, lifecycles | State transition |
|
|
114
|
+
| User flows | Use case testing |
|
|
115
|
+
| Complex combinations | Classification trees, decision tables |
|
|
116
|
+
| API parameters | EP, BVA |
|
|
117
|
+
| Form fields | EP, BVA, decision tables (for conditional validation) |
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Combining Techniques
|
|
122
|
+
|
|
123
|
+
Often combine techniques for full coverage:
|
|
124
|
+
- **EP + BVA:** Partition first, then add boundary tests
|
|
125
|
+
- **State + Use case:** Model workflow as state machine, derive scenarios from use case
|
|
126
|
+
- **Decision table + EP:** Rules define partitions, EP refines input selection
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Test Case
|
|
2
|
+
|
|
3
|
+
## [TC-{ID}] {Title}
|
|
4
|
+
|
|
5
|
+
**Module:** {module name}
|
|
6
|
+
**Priority:** {P1 | P2 | P3 | P4}
|
|
7
|
+
**Type:** {Functional | Regression | Smoke | Integration | E2E | Other}
|
|
8
|
+
|
|
9
|
+
## Preconditions
|
|
10
|
+
{Prerequisites, data state, environment setup}
|
|
11
|
+
|
|
12
|
+
## Test Steps
|
|
13
|
+
|
|
14
|
+
| # | Action | Expected Result |
|
|
15
|
+
|---|--------|-----------------|
|
|
16
|
+
| 1 | {action} | {expected} |
|
|
17
|
+
| 2 | {action} | {expected} |
|
|
18
|
+
| 3 | {action} | {expected} |
|
|
19
|
+
|
|
20
|
+
## Postconditions
|
|
21
|
+
{Cleanup, state after test}
|
|
22
|
+
|
|
23
|
+
## Test Data
|
|
24
|
+
{Input values, test accounts, sample data}
|
|
25
|
+
|
|
26
|
+
## Traceability
|
|
27
|
+
- **Requirement ID:** [REQ-{ID}]
|
|
28
|
+
- **Spec Reference:** {section or link}
|
|
29
|
+
|
|
30
|
+
## Automation Status
|
|
31
|
+
{Manual | Automated | Planned | N/A}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qa-testcase-from-ui
|
|
3
|
+
description: Generate test cases from screenshots, UI mockups, and Figma exports using vision analysis to identify interactive elements and derive test scenarios.
|
|
4
|
+
output_dir: test-cases/from-ui
|
|
5
|
+
dependencies:
|
|
6
|
+
recommended:
|
|
7
|
+
- qa-browser-data-collector
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# QA Test Case from UI
|
|
11
|
+
|
|
12
|
+
## Purpose
|
|
13
|
+
|
|
14
|
+
Generate UI-specific test cases from visual representations of interfaces. Use vision analysis to identify interactive elements, infer user actions, and produce structured test scenarios with visual references (element descriptions, coordinates) for manual or automated testing.
|
|
15
|
+
|
|
16
|
+
## Trigger Phrases
|
|
17
|
+
|
|
18
|
+
- "Generate test cases from this screenshot" / "Create tests from UI image"
|
|
19
|
+
- "Test cases from Figma export" / "Tests from mockup"
|
|
20
|
+
- "Analyze this wireframe and write test scenarios"
|
|
21
|
+
- "UI test cases from [screenshot/mockup/wireframe]"
|
|
22
|
+
- "Identify interactive elements and create test cases"
|
|
23
|
+
- "Vision-based test case generation" / "Visual UI testing scenarios"
|
|
24
|
+
|
|
25
|
+
## Input Types
|
|
26
|
+
|
|
27
|
+
| Type | Formats | Notes |
|
|
28
|
+
|------|---------|-------|
|
|
29
|
+
| **Screenshots** | PNG, JPG, WebP | Live app captures, design exports |
|
|
30
|
+
| **Figma exports** | PNG, SVG, PDF | Design-to-test workflow |
|
|
31
|
+
| **UI mockups** | PNG, JPG | Static design comps |
|
|
32
|
+
| **Wireframes** | PNG, PDF | Low-fidelity layouts |
|
|
33
|
+
|
|
34
|
+
## Vision Analysis Workflow
|
|
35
|
+
|
|
36
|
+
1. **Accept image paths** — User provides one or more image file paths
|
|
37
|
+
2. **Identify UI elements** — Detect fields, buttons, tables, modals, forms, navigation, links, icons
|
|
38
|
+
3. **Semantic mapping** — Infer possible user actions from context (labels, layout, conventions)
|
|
39
|
+
4. **Generate UI test scenarios** — Produce scenarios covering navigation, forms, validation, responsiveness, edge cases
|
|
40
|
+
|
|
41
|
+
## Test Scenario Categories
|
|
42
|
+
|
|
43
|
+
| Category | Examples |
|
|
44
|
+
|----------|----------|
|
|
45
|
+
| **Form interactions** | Input, validation, submission, reset |
|
|
46
|
+
| **Navigation flows** | Menu, breadcrumbs, tabs, links |
|
|
47
|
+
| **Modal/dialog interactions** | Open, close, confirm, cancel |
|
|
48
|
+
| **Table/list operations** | Sort, filter, pagination, row actions |
|
|
49
|
+
| **Responsive layout** | Breakpoints, overflow, touch targets |
|
|
50
|
+
| **Error states** | Validation messages, empty states |
|
|
51
|
+
| **Loading states** | Spinners, skeletons, disabled states |
|
|
52
|
+
| **Accessibility** | Focus order, labels, contrast |
|
|
53
|
+
|
|
54
|
+
## Output Format
|
|
55
|
+
|
|
56
|
+
Test cases include visual references for traceability:
|
|
57
|
+
|
|
58
|
+
```markdown
|
|
59
|
+
## TC-UI-001: Login form submission
|
|
60
|
+
**Visual ref:** Login form, center of screen (~50%, 40%)
|
|
61
|
+
**Elements:** Email input, Password input, "Sign In" button
|
|
62
|
+
|
|
63
|
+
| Step | Action | Expected Result |
|
|
64
|
+
|------|--------|-----------------|
|
|
65
|
+
| 1 | Enter valid email in Email field | Value accepted |
|
|
66
|
+
| 2 | Enter valid password | Value masked |
|
|
67
|
+
| 3 | Click "Sign In" | Redirect to dashboard |
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Scope
|
|
71
|
+
|
|
72
|
+
**Can do (autonomous):**
|
|
73
|
+
- Analyze provided image paths for UI elements
|
|
74
|
+
- Identify common patterns (forms, buttons, tables, modals, nav)
|
|
75
|
+
- Generate test scenarios with element descriptions
|
|
76
|
+
- Infer semantic actions from labels and layout
|
|
77
|
+
- Produce structured output (tables, Gherkin, or project format)
|
|
78
|
+
- Reference `references/ui-element-patterns.md` and `references/visual-analysis-guide.md`
|
|
79
|
+
|
|
80
|
+
**Cannot do (requires confirmation):**
|
|
81
|
+
- Access images without explicit paths
|
|
82
|
+
- Assume element behavior not visible in image
|
|
83
|
+
- Generate assertions for dynamic behavior (e.g., API responses) without context
|
|
84
|
+
|
|
85
|
+
**Will not do (out of scope):**
|
|
86
|
+
- Execute tests or interact with live applications
|
|
87
|
+
- Modify source images or designs
|
|
88
|
+
- Generate test code (hand off to qa-playwright-ts-writer or similar)
|
|
89
|
+
|
|
90
|
+
## Quality Checklist
|
|
91
|
+
|
|
92
|
+
- [ ] All visible interactive elements identified
|
|
93
|
+
- [ ] Test scenarios map to inferred user actions
|
|
94
|
+
- [ ] Visual references included (element descriptions, approximate location)
|
|
95
|
+
- [ ] Categories cover forms, navigation, modals, tables, states
|
|
96
|
+
- [ ] Edge cases considered (empty, invalid, loading)
|
|
97
|
+
- [ ] Output format matches project convention
|
|
98
|
+
- [ ] No assumptions about backend behavior without context
|
|
99
|
+
|
|
100
|
+
## Troubleshooting
|
|
101
|
+
|
|
102
|
+
| Symptom | Likely Cause | Fix |
|
|
103
|
+
|---------|--------------|-----|
|
|
104
|
+
| Elements not identified | Low resolution, overlapping UI | Ask for higher-res image or zoomed crop |
|
|
105
|
+
| Wrong element type inferred | Ambiguous visual design | Use conservative labels; flag for review |
|
|
106
|
+
| Too many/too few scenarios | Scope unclear | Ask user for priority (smoke vs full coverage) |
|
|
107
|
+
| Coordinates inaccurate | Vision model variance | Use semantic descriptions over coordinates |
|
|
108
|
+
| Figma export differs from screenshot | Design vs implementation gap | Note "design intent"; suggest live capture for implementation tests |
|
|
109
|
+
| Non-interactive elements flagged | Decorative elements look clickable | Apply visual-analysis-guide heuristics |
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# UI Element Patterns and Test Scenarios
|
|
2
|
+
|
|
3
|
+
Common UI element patterns and their associated test scenarios. Use this reference when generating test cases from visual UI analysis.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Forms
|
|
8
|
+
|
|
9
|
+
| Element | Visual Cues | Test Scenarios |
|
|
10
|
+
|---------|-------------|----------------|
|
|
11
|
+
| **Text input** | Rectangular field, placeholder/label | Valid input, empty submit, max length, special chars, paste |
|
|
12
|
+
| **Password input** | Masked dots, "show/hide" toggle | Valid password, empty, strength indicator, show/hide toggle |
|
|
13
|
+
| **Email input** | Label "Email", @ in placeholder | Valid format, invalid format, duplicate, empty |
|
|
14
|
+
| **Textarea** | Multi-line box | Valid text, resize, max chars, line breaks |
|
|
15
|
+
| **Checkbox** | Square, checked/unchecked | Toggle on/off, required unchecked, multiple selection |
|
|
16
|
+
| **Radio group** | Circles, one selected | Select option, required unselected, change selection |
|
|
17
|
+
| **Select/Dropdown** | Arrow, single visible value | Open, select option, keyboard nav, empty option |
|
|
18
|
+
| **Multi-select** | Chips/tags, "x" to remove | Add, remove, select all, clear all |
|
|
19
|
+
| **Date picker** | Calendar icon, date format | Select date, invalid date, past/future constraints |
|
|
20
|
+
| **File upload** | "Choose file" / drag zone | Valid file, invalid type, size limit, multiple files |
|
|
21
|
+
| **Submit button** | Primary CTA, often bottom-right | Click submit, disabled when invalid, loading state |
|
|
22
|
+
|
|
23
|
+
**Form-level scenarios:** Required field validation, inline vs on-submit validation, reset/clear, tab order, error message display.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Buttons
|
|
28
|
+
|
|
29
|
+
| Type | Visual Cues | Test Scenarios |
|
|
30
|
+
|------|-------------|----------------|
|
|
31
|
+
| **Primary** | Filled, prominent color | Click action, disabled state, loading spinner |
|
|
32
|
+
| **Secondary** | Outline or muted | Click action, consistency with primary |
|
|
33
|
+
| **Destructive** | Red/danger color | Confirmation flow, cancel option |
|
|
34
|
+
| **Icon button** | Icon only, optional tooltip | Click, keyboard, tooltip on hover |
|
|
35
|
+
| **Link-styled** | Underlined text, cursor pointer | Navigate, open in new tab, disabled |
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Dropdowns
|
|
40
|
+
|
|
41
|
+
| Pattern | Visual Cues | Test Scenarios |
|
|
42
|
+
|---------|-------------|----------------|
|
|
43
|
+
| **Single select** | One value shown, chevron | Open, select, close on outside click, keyboard |
|
|
44
|
+
| **Multi-select** | Chips/tags | Add, remove, select all, search/filter |
|
|
45
|
+
| **Cascading** | Parent selection enables child | Parent change clears child, dependent options |
|
|
46
|
+
| **Searchable** | Input inside dropdown | Type to filter, no results state |
|
|
47
|
+
| **Grouped options** | Section headers | Navigate groups, select from group |
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Modals / Dialogs
|
|
52
|
+
|
|
53
|
+
| Pattern | Visual Cues | Test Scenarios |
|
|
54
|
+
|---------|-------------|----------------|
|
|
55
|
+
| **Confirmation** | Title, message, OK/Cancel | Confirm, cancel, ESC key, backdrop click |
|
|
56
|
+
| **Form modal** | Form inside overlay | Submit, cancel, validation, focus trap |
|
|
57
|
+
| **Alert** | Icon, message, single button | Dismiss, auto-close (if applicable) |
|
|
58
|
+
| **Full-screen modal** | Overlay covers viewport | Close button, ESC, scroll behavior |
|
|
59
|
+
|
|
60
|
+
**Common scenarios:** Focus trapped inside, focus returns on close, scroll lock on body, aria attributes.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Tables
|
|
65
|
+
|
|
66
|
+
| Element | Visual Cues | Test Scenarios |
|
|
67
|
+
|---------|-------------|----------------|
|
|
68
|
+
| **Sortable columns** | Header arrows/icons | Sort asc/desc, multi-column sort |
|
|
69
|
+
| **Row actions** | Icons/buttons per row | Edit, delete, expand, bulk select |
|
|
70
|
+
| **Pagination** | Page numbers, prev/next | Navigate pages, change page size |
|
|
71
|
+
| **Filter** | Input above table | Filter by column, clear filter |
|
|
72
|
+
| **Empty state** | "No data" message | Display when no rows |
|
|
73
|
+
| **Loading** | Skeleton or spinner | Display during fetch |
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Navigation Bars
|
|
78
|
+
|
|
79
|
+
| Pattern | Visual Cues | Test Scenarios |
|
|
80
|
+
|---------|-------------|----------------|
|
|
81
|
+
| **Top nav** | Horizontal links, logo | Click each link, active state, responsive collapse |
|
|
82
|
+
| **Sidebar** | Vertical menu | Expand/collapse, nested items, active state |
|
|
83
|
+
| **Breadcrumbs** | Path: Home > Section > Page | Click each level, truncation |
|
|
84
|
+
| **Mega menu** | Hover reveals panel | Hover, click sub-items, keyboard nav |
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Tabs
|
|
89
|
+
|
|
90
|
+
| Pattern | Visual Cues | Test Scenarios |
|
|
91
|
+
|---------|-------------|----------------|
|
|
92
|
+
| **Horizontal tabs** | Underline or pill for active | Switch tabs, keyboard (arrow keys) |
|
|
93
|
+
| **Vertical tabs** | Side panel | Same as horizontal |
|
|
94
|
+
| **Scrollable tabs** | Overflow with arrows | Scroll, select from overflow |
|
|
95
|
+
| **Add/close tabs** | "+" or "x" on tab | Add tab, close tab, close last tab |
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Tooltips
|
|
100
|
+
|
|
101
|
+
| Pattern | Visual Cues | Test Scenarios |
|
|
102
|
+
|---------|-------------|----------------|
|
|
103
|
+
| **Hover tooltip** | Small popover on hover | Appear on hover, disappear on leave |
|
|
104
|
+
| **Focus tooltip** | Appears on focus | Keyboard focus, dismiss |
|
|
105
|
+
| **Rich tooltip** | Multi-line, links | Content display, link click |
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Notifications
|
|
110
|
+
|
|
111
|
+
| Pattern | Visual Cues | Test Scenarios |
|
|
112
|
+
|---------|-------------|----------------|
|
|
113
|
+
| **Toast** | Corner popup, auto-dismiss | Appear, auto-close, manual dismiss |
|
|
114
|
+
| **Inline alert** | Banner above/below content | Dismiss, persist until action |
|
|
115
|
+
| **Badge** | Count on icon (e.g., cart) | Display count, click navigates |
|
|
116
|
+
| **Status indicator** | Dot or icon (success/error) | Correct color for state |
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Cross-Cutting Scenarios
|
|
121
|
+
|
|
122
|
+
- **Responsive:** Element visibility at breakpoints, touch target size, overflow
|
|
123
|
+
- **Loading:** Skeleton, spinner, disabled state during async
|
|
124
|
+
- **Error:** Validation message placement, retry option
|
|
125
|
+
- **Empty:** Empty state message, CTA when no data
|
|
126
|
+
- **Accessibility:** Focus order, aria-labels, keyboard navigation
|