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.
Files changed (262) hide show
  1. package/README.md +168 -0
  2. package/bin/cli.js +42 -0
  3. package/dist/agents/registry.d.ts +5 -0
  4. package/dist/agents/registry.d.ts.map +1 -0
  5. package/dist/agents/registry.js +101 -0
  6. package/dist/agents/registry.js.map +1 -0
  7. package/dist/agents/types.d.ts +9 -0
  8. package/dist/agents/types.d.ts.map +1 -0
  9. package/dist/agents/types.js +2 -0
  10. package/dist/agents/types.js.map +1 -0
  11. package/dist/dependencies.d.ts +21 -0
  12. package/dist/dependencies.d.ts.map +1 -0
  13. package/dist/dependencies.js +125 -0
  14. package/dist/dependencies.js.map +1 -0
  15. package/dist/installer.d.ts +25 -0
  16. package/dist/installer.d.ts.map +1 -0
  17. package/dist/installer.js +437 -0
  18. package/dist/installer.js.map +1 -0
  19. package/dist/scaffold.d.ts +27 -0
  20. package/dist/scaffold.d.ts.map +1 -0
  21. package/dist/scaffold.js +182 -0
  22. package/dist/scaffold.js.map +1 -0
  23. package/package.json +40 -0
  24. package/skills/qa-accessibility-test-writer/SKILL.md +127 -0
  25. package/skills/qa-accessibility-test-writer/references/axe-core-patterns.md +349 -0
  26. package/skills/qa-accessibility-test-writer/references/best-practices.md +184 -0
  27. package/skills/qa-accessibility-test-writer/references/wcag-tests.md +331 -0
  28. package/skills/qa-api-contract-curator/SKILL.md +104 -0
  29. package/skills/qa-api-contract-curator/references/breaking-changes.md +363 -0
  30. package/skills/qa-api-contract-curator/references/openapi-structure.md +404 -0
  31. package/skills/qa-browser-data-collector/SKILL.md +132 -0
  32. package/skills/qa-browser-data-collector/references/data-collection-checklist.md +91 -0
  33. package/skills/qa-browser-data-collector/references/playwright-mcp-patterns.md +113 -0
  34. package/skills/qa-bug-ticket-creator/SKILL.md +148 -0
  35. package/skills/qa-bug-ticket-creator/references/bug-report-format.md +149 -0
  36. package/skills/qa-bug-ticket-creator/references/severity-guide.md +81 -0
  37. package/skills/qa-bug-ticket-creator/templates/bug-ticket-template.md +39 -0
  38. package/skills/qa-changelog-analyzer/SKILL.md +134 -0
  39. package/skills/qa-changelog-analyzer/references/git-analysis-patterns.md +138 -0
  40. package/skills/qa-changelog-analyzer/references/impact-mapping.md +120 -0
  41. package/skills/qa-clickup-integration/SKILL.md +166 -0
  42. package/skills/qa-clickup-integration/references/api-patterns.md +102 -0
  43. package/skills/qa-clickup-integration/references/field-mapping.md +71 -0
  44. package/skills/qa-codeceptjs-writer/SKILL.md +136 -0
  45. package/skills/qa-codeceptjs-writer/references/best-practices.md +207 -0
  46. package/skills/qa-codeceptjs-writer/references/config.md +255 -0
  47. package/skills/qa-codeceptjs-writer/references/patterns.md +285 -0
  48. package/skills/qa-coverage-analyzer/SKILL.md +166 -0
  49. package/skills/qa-coverage-analyzer/references/best-practices.md +142 -0
  50. package/skills/qa-coverage-analyzer/references/coverage-dimensions.md +155 -0
  51. package/skills/qa-coverage-analyzer/references/tools.md +204 -0
  52. package/skills/qa-cypress-writer/SKILL.md +134 -0
  53. package/skills/qa-cypress-writer/references/assertions.md +121 -0
  54. package/skills/qa-cypress-writer/references/best-practices.md +82 -0
  55. package/skills/qa-cypress-writer/references/config.md +121 -0
  56. package/skills/qa-cypress-writer/references/patterns.md +170 -0
  57. package/skills/qa-data-factory/SKILL.md +126 -0
  58. package/skills/qa-data-factory/references/factory-patterns.md +164 -0
  59. package/skills/qa-data-factory/references/faker-guide.md +131 -0
  60. package/skills/qa-diagram-generator/SKILL.md +125 -0
  61. package/skills/qa-diagram-generator/references/c4-model.md +53 -0
  62. package/skills/qa-diagram-generator/references/charts.md +58 -0
  63. package/skills/qa-diagram-generator/references/class-diagram.md +85 -0
  64. package/skills/qa-diagram-generator/references/er-diagram.md +69 -0
  65. package/skills/qa-diagram-generator/references/flowchart.md +92 -0
  66. package/skills/qa-diagram-generator/references/from-screenshot.md +45 -0
  67. package/skills/qa-diagram-generator/references/gantt.md +49 -0
  68. package/skills/qa-diagram-generator/references/journey.md +50 -0
  69. package/skills/qa-diagram-generator/references/mindmap.md +75 -0
  70. package/skills/qa-diagram-generator/references/sequence.md +69 -0
  71. package/skills/qa-diagram-generator/references/state-diagram.md +56 -0
  72. package/skills/qa-discovery-interview/SKILL.md +182 -0
  73. package/skills/qa-discovery-interview/references/completeness-checklist.md +53 -0
  74. package/skills/qa-discovery-interview/references/conflict-patterns.md +101 -0
  75. package/skills/qa-discovery-interview/references/qa-categories.md +147 -0
  76. package/skills/qa-discovery-interview/templates/qa-brief-template.md +168 -0
  77. package/skills/qa-environment-checker/SKILL.md +142 -0
  78. package/skills/qa-environment-checker/references/dependency-matrix.md +101 -0
  79. package/skills/qa-environment-checker/references/health-checks.md +209 -0
  80. package/skills/qa-environment-checker/templates/env-readiness-template.md +64 -0
  81. package/skills/qa-flaky-detector/SKILL.md +153 -0
  82. package/skills/qa-flaky-detector/references/ci-analysis.md +140 -0
  83. package/skills/qa-flaky-detector/references/flaky-patterns.md +247 -0
  84. package/skills/qa-github-issues-enhanced/SKILL.md +175 -0
  85. package/skills/qa-github-issues-enhanced/references/issue-templates.md +425 -0
  86. package/skills/qa-github-issues-enhanced/references/label-taxonomy.md +130 -0
  87. package/skills/qa-github-issues-enhanced/references/workflow-patterns.md +188 -0
  88. package/skills/qa-httpx-writer/SKILL.md +138 -0
  89. package/skills/qa-httpx-writer/references/assertions.md +195 -0
  90. package/skills/qa-httpx-writer/references/best-practices.md +140 -0
  91. package/skills/qa-httpx-writer/references/config.md +212 -0
  92. package/skills/qa-httpx-writer/references/patterns.md +262 -0
  93. package/skills/qa-jest-writer/SKILL.md +131 -0
  94. package/skills/qa-jest-writer/references/assertions.md +125 -0
  95. package/skills/qa-jest-writer/references/best-practices.md +136 -0
  96. package/skills/qa-jest-writer/references/config.md +134 -0
  97. package/skills/qa-jest-writer/references/patterns.md +172 -0
  98. package/skills/qa-jira-integration/SKILL.md +135 -0
  99. package/skills/qa-jira-integration/references/api-patterns.md +143 -0
  100. package/skills/qa-jira-integration/references/field-mapping.md +79 -0
  101. package/skills/qa-jira-integration/references/xray-integration.md +85 -0
  102. package/skills/qa-jmeter-writer/SKILL.md +171 -0
  103. package/skills/qa-jmeter-writer/references/best-practices.md +157 -0
  104. package/skills/qa-jmeter-writer/references/config.md +204 -0
  105. package/skills/qa-jmeter-writer/references/patterns.md +242 -0
  106. package/skills/qa-junit5-writer/SKILL.md +157 -0
  107. package/skills/qa-junit5-writer/references/assertions.md +118 -0
  108. package/skills/qa-junit5-writer/references/config.md +97 -0
  109. package/skills/qa-junit5-writer/references/patterns.md +162 -0
  110. package/skills/qa-k6-writer/SKILL.md +155 -0
  111. package/skills/qa-k6-writer/references/best-practices.md +236 -0
  112. package/skills/qa-k6-writer/references/config.md +219 -0
  113. package/skills/qa-k6-writer/references/patterns.md +304 -0
  114. package/skills/qa-linear-integration/SKILL.md +137 -0
  115. package/skills/qa-linear-integration/references/api-patterns.md +249 -0
  116. package/skills/qa-linear-integration/references/field-mapping.md +121 -0
  117. package/skills/qa-locust-writer/SKILL.md +151 -0
  118. package/skills/qa-locust-writer/references/best-practices.md +126 -0
  119. package/skills/qa-locust-writer/references/config.md +170 -0
  120. package/skills/qa-locust-writer/references/patterns.md +235 -0
  121. package/skills/qa-manual-test-designer/SKILL.md +145 -0
  122. package/skills/qa-manual-test-designer/references/exploratory-charters.md +138 -0
  123. package/skills/qa-manual-test-designer/references/personas.md +146 -0
  124. package/skills/qa-manual-test-designer/templates/exploratory-charter-template.md +47 -0
  125. package/skills/qa-manual-test-designer/templates/test-case-template.md +31 -0
  126. package/skills/qa-mobile-test-writer/SKILL.md +144 -0
  127. package/skills/qa-mobile-test-writer/references/best-practices.md +214 -0
  128. package/skills/qa-mobile-test-writer/references/config.md +309 -0
  129. package/skills/qa-mobile-test-writer/references/patterns.md +304 -0
  130. package/skills/qa-nfr-analyst/SKILL.md +177 -0
  131. package/skills/qa-nfr-analyst/references/iso-25010-model.md +159 -0
  132. package/skills/qa-nfr-analyst/references/owasp-wstg-baseline.md +202 -0
  133. package/skills/qa-nfr-analyst/references/wcag-checklist.md +184 -0
  134. package/skills/qa-nfr-analyst/templates/owasp-checklist-template.md +89 -0
  135. package/skills/qa-nfr-analyst/templates/wcag-checklist-template.md +48 -0
  136. package/skills/qa-orchestrator/SKILL.md +132 -0
  137. package/skills/qa-orchestrator/references/handoff-chains.md +105 -0
  138. package/skills/qa-orchestrator/references/pipeline-modes.md +115 -0
  139. package/skills/qa-orchestrator/references/scheduler-rules.md +84 -0
  140. package/skills/qa-pact-writer/SKILL.md +133 -0
  141. package/skills/qa-pact-writer/references/best-practices.md +100 -0
  142. package/skills/qa-pact-writer/references/config.md +135 -0
  143. package/skills/qa-pact-writer/references/patterns.md +161 -0
  144. package/skills/qa-plan-creator/SKILL.md +139 -0
  145. package/skills/qa-plan-creator/references/introduction-plan.md +43 -0
  146. package/skills/qa-plan-creator/references/migration-plan.md +44 -0
  147. package/skills/qa-plan-creator/references/onboarding-plan.md +46 -0
  148. package/skills/qa-plan-creator/references/performance-plan.md +44 -0
  149. package/skills/qa-plan-creator/references/regression-plan.md +45 -0
  150. package/skills/qa-plan-creator/references/release-plan.md +45 -0
  151. package/skills/qa-plan-creator/references/sprint-plan.md +44 -0
  152. package/skills/qa-plan-creator/references/test-plan.md +59 -0
  153. package/skills/qa-plan-creator/references/uat-plan.md +43 -0
  154. package/skills/qa-plan-creator/templates/checklist-template.md +36 -0
  155. package/skills/qa-plan-creator/templates/regression-checklist-template.md +49 -0
  156. package/skills/qa-plan-creator/templates/release-checklist-template.md +46 -0
  157. package/skills/qa-plan-creator/templates/test-plan-template.md +74 -0
  158. package/skills/qa-playwright-py-writer/SKILL.md +156 -0
  159. package/skills/qa-playwright-py-writer/references/best-practices.md +194 -0
  160. package/skills/qa-playwright-py-writer/references/config.md +195 -0
  161. package/skills/qa-playwright-py-writer/references/patterns.md +212 -0
  162. package/skills/qa-playwright-ts-writer/SKILL.md +151 -0
  163. package/skills/qa-playwright-ts-writer/references/assertions.md +109 -0
  164. package/skills/qa-playwright-ts-writer/references/best-practices.md +191 -0
  165. package/skills/qa-playwright-ts-writer/references/config.md +144 -0
  166. package/skills/qa-playwright-ts-writer/references/patterns.md +171 -0
  167. package/skills/qa-pytest-writer/SKILL.md +145 -0
  168. package/skills/qa-pytest-writer/references/assertions.md +149 -0
  169. package/skills/qa-pytest-writer/references/best-practices.md +97 -0
  170. package/skills/qa-pytest-writer/references/config.md +176 -0
  171. package/skills/qa-pytest-writer/references/patterns.md +251 -0
  172. package/skills/qa-qase-integration/SKILL.md +149 -0
  173. package/skills/qa-qase-integration/references/api-reference.md +354 -0
  174. package/skills/qa-qase-integration/references/ci-integration.md +196 -0
  175. package/skills/qa-qase-integration/references/field-mapping.md +157 -0
  176. package/skills/qa-requirements-generator/SKILL.md +152 -0
  177. package/skills/qa-requirements-generator/references/iso-29148-structure.md +153 -0
  178. package/skills/qa-requirements-generator/references/requirement-patterns.md +278 -0
  179. package/skills/qa-rest-assured-writer/SKILL.md +137 -0
  180. package/skills/qa-rest-assured-writer/references/best-practices.md +50 -0
  181. package/skills/qa-rest-assured-writer/references/config.md +124 -0
  182. package/skills/qa-rest-assured-writer/references/patterns.md +192 -0
  183. package/skills/qa-risk-analyzer/SKILL.md +158 -0
  184. package/skills/qa-risk-analyzer/references/impact-analysis.md +133 -0
  185. package/skills/qa-risk-analyzer/references/risk-factors.md +123 -0
  186. package/skills/qa-robot-framework-writer/SKILL.md +147 -0
  187. package/skills/qa-robot-framework-writer/references/best-practices.md +249 -0
  188. package/skills/qa-robot-framework-writer/references/config.md +204 -0
  189. package/skills/qa-robot-framework-writer/references/libraries.md +273 -0
  190. package/skills/qa-robot-framework-writer/references/patterns.md +216 -0
  191. package/skills/qa-security-test-writer/SKILL.md +123 -0
  192. package/skills/qa-security-test-writer/references/best-practices.md +155 -0
  193. package/skills/qa-security-test-writer/references/owasp-top10.md +331 -0
  194. package/skills/qa-security-test-writer/references/zap-config.md +258 -0
  195. package/skills/qa-selenium-java-writer/SKILL.md +143 -0
  196. package/skills/qa-selenium-java-writer/references/best-practices.md +59 -0
  197. package/skills/qa-selenium-java-writer/references/config.md +143 -0
  198. package/skills/qa-selenium-java-writer/references/patterns.md +170 -0
  199. package/skills/qa-selenium-py-writer/SKILL.md +150 -0
  200. package/skills/qa-selenium-py-writer/references/best-practices.md +175 -0
  201. package/skills/qa-selenium-py-writer/references/config.md +224 -0
  202. package/skills/qa-selenium-py-writer/references/patterns.md +255 -0
  203. package/skills/qa-shortcut-integration/SKILL.md +143 -0
  204. package/skills/qa-shortcut-integration/references/api-patterns.md +126 -0
  205. package/skills/qa-shortcut-integration/references/field-mapping.md +66 -0
  206. package/skills/qa-spec-auditor/SKILL.md +162 -0
  207. package/skills/qa-spec-auditor/references/audit-checklist.md +144 -0
  208. package/skills/qa-spec-auditor/references/drift-patterns.md +207 -0
  209. package/skills/qa-spec-writer/SKILL.md +143 -0
  210. package/skills/qa-spec-writer/references/gherkin-guide.md +253 -0
  211. package/skills/qa-spec-writer/references/specification-patterns.md +274 -0
  212. package/skills/qa-spring-test-writer/SKILL.md +170 -0
  213. package/skills/qa-spring-test-writer/references/best-practices.md +57 -0
  214. package/skills/qa-spring-test-writer/references/config.md +179 -0
  215. package/skills/qa-spring-test-writer/references/patterns.md +235 -0
  216. package/skills/qa-supertest-writer/SKILL.md +150 -0
  217. package/skills/qa-supertest-writer/references/assertions.md +192 -0
  218. package/skills/qa-supertest-writer/references/best-practices.md +102 -0
  219. package/skills/qa-supertest-writer/references/config.md +166 -0
  220. package/skills/qa-supertest-writer/references/patterns.md +242 -0
  221. package/skills/qa-task-creator/SKILL.md +142 -0
  222. package/skills/qa-task-creator/references/linking-patterns.md +127 -0
  223. package/skills/qa-task-creator/references/task-types.md +169 -0
  224. package/skills/qa-task-creator/templates/task-template.md +24 -0
  225. package/skills/qa-test-doc-compiler/SKILL.md +114 -0
  226. package/skills/qa-test-doc-compiler/references/agile-tailoring.md +220 -0
  227. package/skills/qa-test-doc-compiler/references/iso-29119-3-documents.md +302 -0
  228. package/skills/qa-test-healer/SKILL.md +101 -0
  229. package/skills/qa-test-healer/references/diagnosis-patterns.md +142 -0
  230. package/skills/qa-test-healer/references/fix-strategies.md +177 -0
  231. package/skills/qa-test-reporter/SKILL.md +130 -0
  232. package/skills/qa-test-reporter/references/best-practices.md +162 -0
  233. package/skills/qa-test-reporter/references/iso-29119-reports.md +236 -0
  234. package/skills/qa-test-reporter/references/report-formats.md +287 -0
  235. package/skills/qa-test-reviewer/SKILL.md +142 -0
  236. package/skills/qa-test-reviewer/references/anti-patterns.md +268 -0
  237. package/skills/qa-test-reviewer/references/review-checklist.md +93 -0
  238. package/skills/qa-test-strategy/SKILL.md +133 -0
  239. package/skills/qa-test-strategy/references/entry-exit-criteria.md +176 -0
  240. package/skills/qa-test-strategy/references/risk-matrix.md +102 -0
  241. package/skills/qa-test-strategy/references/testing-types.md +143 -0
  242. package/skills/qa-testcase-from-docs/SKILL.md +161 -0
  243. package/skills/qa-testcase-from-docs/references/test-case-format.md +196 -0
  244. package/skills/qa-testcase-from-docs/references/test-design-techniques.md +126 -0
  245. package/skills/qa-testcase-from-docs/templates/test-case-template.md +31 -0
  246. package/skills/qa-testcase-from-ui/SKILL.md +109 -0
  247. package/skills/qa-testcase-from-ui/references/ui-element-patterns.md +126 -0
  248. package/skills/qa-testcase-from-ui/references/visual-analysis-guide.md +146 -0
  249. package/skills/qa-testcase-from-ui/templates/test-case-template.md +31 -0
  250. package/skills/qa-visual-regression-writer/SKILL.md +175 -0
  251. package/skills/qa-visual-regression-writer/references/best-practices.md +154 -0
  252. package/skills/qa-visual-regression-writer/references/config.md +220 -0
  253. package/skills/qa-visual-regression-writer/references/patterns.md +213 -0
  254. package/skills/qa-vitest-writer/SKILL.md +141 -0
  255. package/skills/qa-vitest-writer/references/assertions.md +105 -0
  256. package/skills/qa-vitest-writer/references/best-practices.md +62 -0
  257. package/skills/qa-vitest-writer/references/config.md +127 -0
  258. package/skills/qa-vitest-writer/references/patterns.md +141 -0
  259. package/skills/qa-webdriverio-writer/SKILL.md +145 -0
  260. package/skills/qa-webdriverio-writer/references/best-practices.md +176 -0
  261. package/skills/qa-webdriverio-writer/references/config.md +240 -0
  262. package/skills/qa-webdriverio-writer/references/patterns.md +269 -0
@@ -0,0 +1,285 @@
1
+ # CodeceptJS Test Patterns
2
+
3
+ Common patterns for scenario-driven E2E testing with CodeceptJS.
4
+
5
+ ## Scenario Syntax
6
+
7
+ ### Feature and Scenario Blocks
8
+
9
+ ```typescript
10
+ Feature('Login');
11
+
12
+ Scenario('user can log in with valid credentials', ({ I }) => {
13
+ I.amOnPage('/login');
14
+ I.fillField('Username', 'john');
15
+ I.fillField('Password', 'secret');
16
+ I.click('Sign In');
17
+ I.see('Welcome');
18
+ });
19
+ ```
20
+
21
+ ### Common I Actions
22
+
23
+ | Action | Example |
24
+ |--------|---------|
25
+ | Navigate | `I.amOnPage('/')` or `I.amOnPage('https://example.com')` |
26
+ | Click | `I.click('Submit')` or `I.click('.btn-primary')` |
27
+ | Fill field | `I.fillField('Username', 'john')` or `I.fillField('#email', 'a@b.com')` |
28
+ | See text | `I.see('Welcome')` or `I.see('Dashboard', 'h1')` |
29
+ | See element | `I.seeElement('.user-menu')` |
30
+ | Grab text | `const text = await I.grabTextFrom('.title')` |
31
+ | Select option | `I.selectOption('Country', 'US')` |
32
+ | Check checkbox | `I.checkOption('Subscribe')` |
33
+ | Wait | `I.wait(2)` or `I.waitForVisible('.loaded')` |
34
+
35
+ ### Locator Strategies
36
+
37
+ CodeceptJS resolves locators in order: ID, CSS, XPath, name attribute, label text, link/button text.
38
+
39
+ ```typescript
40
+ // By text (link/button)
41
+ I.click('Login');
42
+ I.click('Submit');
43
+
44
+ // By label (for fillField)
45
+ I.fillField('Email', 'user@example.com');
46
+
47
+ // By CSS
48
+ I.click('.submit-btn');
49
+ I.seeElement('#header');
50
+
51
+ // By XPath
52
+ I.click('//button[contains(., "Save")]');
53
+
54
+ // Strict locators (explicit type)
55
+ I.seeElement({ css: 'div.user' });
56
+ I.click({ xpath: '//button[@type="submit"]' });
57
+ ```
58
+
59
+ ## within() for Scoped Locators
60
+
61
+ Scope actions to a specific container:
62
+
63
+ ```typescript
64
+ Scenario('interact within modal', ({ I }) => {
65
+ I.amOnPage('/');
66
+ I.click('Open modal');
67
+ within('.modal', () => {
68
+ I.fillField('Name', 'Test');
69
+ I.click('Save');
70
+ });
71
+ I.see('Saved');
72
+ });
73
+ ```
74
+
75
+ ## BDD with Gherkin
76
+
77
+ ### Feature File (.feature)
78
+
79
+ ```gherkin
80
+ Feature: Checkout
81
+ In order to buy products
82
+ As a customer
83
+ I need to be able to checkout the selected products
84
+
85
+ Scenario: order several products
86
+ Given I have product with $600 price in my cart
87
+ And I have product with $1000 price in my cart
88
+ When I go to checkout process
89
+ Then I should see that total number of products is 2
90
+ And my order amount is $1600
91
+ ```
92
+
93
+ ### Step Definitions
94
+
95
+ ```typescript
96
+ // step_definitions/checkout_steps.ts
97
+ const { I, productPage } = inject();
98
+
99
+ Given(/I have product with \$(\d+) price in my cart/, async (price) => {
100
+ I.amOnPage('/products');
101
+ await productPage.addProduct({ price: parseInt(price) });
102
+ I.click('Add to cart');
103
+ });
104
+
105
+ When('I go to checkout process', () => {
106
+ I.click('Checkout');
107
+ });
108
+
109
+ Then('I should see that total number of products is {int}', (num) => {
110
+ I.see(num.toString(), '.cart-count');
111
+ });
112
+
113
+ Then('my order amount is {int}', (sum) => {
114
+ I.see(`$${sum}`, '.order-total');
115
+ });
116
+ ```
117
+
118
+ ### Background and Scenario Outline
119
+
120
+ ```gherkin
121
+ Feature: Dashboard
122
+
123
+ Background:
124
+ Given I am logged in as administrator
125
+ And I open dashboard page
126
+
127
+ Scenario Outline: view report for role
128
+ When I select role "<role>"
129
+ Then I should see "<report>" report
130
+ Examples:
131
+ | role | report |
132
+ | admin | Full |
133
+ | user | Limited |
134
+ ```
135
+
136
+ ## Page Objects
137
+
138
+ ### Define Page Object
139
+
140
+ ```typescript
141
+ // pages/LoginPage.ts
142
+ export default class LoginPage {
143
+ constructor(private I: CodeceptJS.I) {}
144
+
145
+ async login(email: string, password: string) {
146
+ this.I.fillField('Email', email);
147
+ this.I.fillField('Password', password);
148
+ this.I.click('Sign In');
149
+ }
150
+
151
+ async open() {
152
+ this.I.amOnPage('/login');
153
+ }
154
+
155
+ get errorMessage() {
156
+ return '.alert-error';
157
+ }
158
+ }
159
+ ```
160
+
161
+ ### Use in Tests (inject)
162
+
163
+ ```typescript
164
+ // login_test.ts
165
+ const { I, loginPage } = inject();
166
+
167
+ Scenario('login flow', () => {
168
+ loginPage.open();
169
+ loginPage.login('user@example.com', 'secret');
170
+ I.see('Dashboard');
171
+ });
172
+ ```
173
+
174
+ ### Use in Step Definitions
175
+
176
+ ```typescript
177
+ const { I, loginPage } = inject();
178
+
179
+ Given('I am logged in', () => {
180
+ loginPage.open();
181
+ loginPage.login('admin@example.com', 'admin123');
182
+ });
183
+ ```
184
+
185
+ ## Data-Driven Testing
186
+
187
+ ### Data().Scenario
188
+
189
+ ```typescript
190
+ const accounts = new DataTable(['login', 'password']);
191
+ accounts.add(['davert', '123456']);
192
+ accounts.add(['admin', 'admin123']);
193
+
194
+ Data(accounts).Scenario('Test Login', ({ I, current }) => {
195
+ I.amOnPage('/login');
196
+ I.fillField('Username', current.login);
197
+ I.fillField('Password', current.password);
198
+ I.click('Sign In');
199
+ I.see('Welcome ' + current.login);
200
+ });
201
+ ```
202
+
203
+ ### Data from Array or Generator
204
+
205
+ ```typescript
206
+ Data(['chrome', 'firefox']).Scenario('cross-browser', ({ I, current }) => {
207
+ I.amOnPage('/');
208
+ I.see('Home');
209
+ });
210
+ ```
211
+
212
+ ## Custom Helpers
213
+
214
+ ### Define Custom Helper
215
+
216
+ ```typescript
217
+ // helpers/MyHelper.ts
218
+ import { Helper } from 'codeceptjs';
219
+
220
+ class MyHelper extends Helper {
221
+ async loginAs(user: string) {
222
+ const { I } = this.helpers;
223
+ await I.amOnPage('/login');
224
+ await I.fillField('Username', user);
225
+ await I.fillField('Password', 'secret');
226
+ await I.click('Sign In');
227
+ }
228
+ }
229
+
230
+ export = MyHelper;
231
+ ```
232
+
233
+ ### Use Custom Helper
234
+
235
+ ```typescript
236
+ // In codecept.conf.ts
237
+ helpers: {
238
+ Playwright: { ... },
239
+ MyHelper: {}
240
+ }
241
+
242
+ // In test
243
+ const { I, MyHelper } = inject();
244
+ Scenario('test', async () => {
245
+ await MyHelper.loginAs('admin');
246
+ I.see('Dashboard');
247
+ });
248
+ ```
249
+
250
+ ## pause() for Debugging
251
+
252
+ ```typescript
253
+ Scenario('debug flow', ({ I }) => {
254
+ I.amOnPage('/');
255
+ I.fillField('Search', 'test');
256
+ pause(); // Enters interactive console; inspect state, run I.* commands
257
+ });
258
+ ```
259
+
260
+ ## Forms and Validation
261
+
262
+ ```typescript
263
+ Scenario('submit registration form', ({ I }) => {
264
+ I.amOnPage('/register');
265
+ I.fillField('Email', 'new@example.com');
266
+ I.fillField('Password', 'SecurePass123');
267
+ I.checkOption('Terms');
268
+ I.selectOption('Country', 'United States');
269
+ I.click('Create account');
270
+ I.see('Welcome');
271
+ });
272
+ ```
273
+
274
+ ## Async and Promises
275
+
276
+ ```typescript
277
+ Scenario('grab and assert', async ({ I }) => {
278
+ I.amOnPage('/dashboard');
279
+ const count = await I.grabTextFrom('.item-count');
280
+ const num = parseInt(count, 10);
281
+ if (num > 0) {
282
+ I.seeElement('.items-list');
283
+ }
284
+ });
285
+ ```
@@ -0,0 +1,166 @@
1
+ ---
2
+ name: qa-coverage-analyzer
3
+ description: Analyze test coverage across three dimensions -- requirements/model coverage via RTM, technique coverage per ISO 29119-4, and code coverage via Istanbul/V8/JaCoCo -- with risk-based gap recommendations.
4
+ output_dir: reports/coverage
5
+ ---
6
+
7
+ # QA Coverage Analyzer
8
+
9
+ ## Purpose
10
+
11
+ Perform multi-dimensional test coverage analysis across requirements traceability, test design techniques, and code coverage. Identify gaps, prioritize by risk, and produce actionable recommendations for improving test effectiveness.
12
+
13
+ ## Trigger Phrases
14
+
15
+ - "Analyze test coverage" / "Coverage analysis for [project/module]"
16
+ - "Requirements traceability matrix" / "RTM coverage"
17
+ - "Technique coverage" / "ISO 29119-4 coverage"
18
+ - "Code coverage report" / "Line/branch coverage analysis"
19
+ - "Coverage gaps" / "Uncovered requirements"
20
+ - "Coverage dashboard" / "Coverage heatmap"
21
+ - "Risk-based coverage recommendations"
22
+
23
+ ## Three Coverage Dimensions
24
+
25
+ | Dimension | What It Measures | Key Artifacts |
26
+ |-----------|------------------|----------------|
27
+ | **1. Requirements/Model** | Which requirements have tests; RTM completeness | RTM (Req → Model → Test → Execution) |
28
+ | **2. Technique** | Which ISO 29119-4 techniques applied | EP, BVA, decision tables, state transitions |
29
+ | **3. Code** | Line, branch, condition, function coverage | Istanbul, V8, JaCoCo, coverage.py, SonarQube |
30
+
31
+ See `references/coverage-dimensions.md` for detailed measurement methods.
32
+
33
+ ## Dimension 1: Requirements/Model Coverage
34
+
35
+ **Model:** Requirement → Test Model → Test Case → Execution
36
+
37
+ - **Track:** Which requirements have linked test models and test cases
38
+ - **Identify gaps:** Requirements with no tests, tests with no execution, orphan tests
39
+ - **Metrics:** % requirements covered, % executed, traceability completeness
40
+
41
+ **Inputs:** Requirements doc, RTM, test case inventory, execution results (Zephyr, TestRail, etc.)
42
+
43
+ ## Dimension 2: Technique Coverage (ISO 29119-4)
44
+
45
+ **Techniques:** Equivalence Partitioning (EP), Boundary Value Analysis (BVA), Decision Tables, State Transition, Use Case, Classification Trees
46
+
47
+ - **Track:** Which techniques applied per requirement/module
48
+ - **Identify gaps:** Requirements tested with only one technique; modules with technique imbalance
49
+ - **Metrics:** Technique distribution, technique-per-requirement ratio
50
+
51
+ **Inputs:** Test case metadata (technique tags), requirements, test design docs
52
+
53
+ ## Dimension 3: Code Coverage
54
+
55
+ **Metrics:** Line, branch, condition, function coverage
56
+
57
+ | Language/Stack | Tool | Output Format |
58
+ |----------------|------|---------------|
59
+ | JavaScript/TypeScript | Istanbul (c8, nyc), V8 | lcov, json-summary |
60
+ | Java | JaCoCo | xml, html |
61
+ | Python | coverage.py | xml, html, json |
62
+ | SonarQube | SonarQube | Unified dashboard |
63
+
64
+ See `references/tools.md` for setup and integration.
65
+
66
+ ## Outputs
67
+
68
+ 1. **Coverage Dashboard** — Summary of all three dimensions with percentages and trends
69
+ 2. **Coverage Gaps List** — Uncovered requirements, low-technique areas, low-code-coverage modules
70
+ 3. **Risk-Based Recommendations** — High-risk uncovered areas prioritized; suggested actions
71
+ 4. **Heatmap by Module** — Visual (via qa-diagram-generator) showing coverage intensity per module
72
+
73
+ ### Dashboard Template
74
+
75
+ ```markdown
76
+ # Coverage Dashboard
77
+
78
+ ## Summary
79
+ | Dimension | Coverage | Status |
80
+ |-----------|----------|--------|
81
+ | Requirements | X% | ✅/⚠️/❌ |
82
+ | Technique | X techniques avg | ✅/⚠️/❌ |
83
+ | Code | Line X%, Branch Y% | ✅/⚠️/❌ |
84
+
85
+ ## Gaps
86
+ - [Req ID] Uncovered
87
+ - [Module] Low technique diversity
88
+ - [File/Module] Low code coverage
89
+
90
+ ## Risk-Based Recommendations
91
+ 1. [High] ...
92
+ 2. [Medium] ...
93
+ 3. [Low] ...
94
+ ```
95
+
96
+ ## Workflow
97
+
98
+ 1. **Gather inputs:** RTM, test cases, execution results, code coverage reports
99
+ 2. **Analyze each dimension:** Compute coverage per dimension (see `references/coverage-dimensions.md`)
100
+ 3. **Identify gaps:** Uncovered requirements, technique-poor areas, low-code-coverage modules
101
+ 4. **Prioritize by risk:** Use risk matrix (see qa-test-strategy `references/risk-matrix.md`); high-risk + low coverage = top priority
102
+ 5. **Generate outputs:** Dashboard, gaps list, recommendations, heatmap
103
+ 6. **Historical tracking:** Use Memory MCP to store trends for comparison over time
104
+
105
+ ## MCP Tools Used
106
+
107
+ - **Sequential Thinking MCP:** For decomposition of complex coverage analysis; reconciling conflicting signals across dimensions; prioritizing gaps.
108
+ - **Memory MCP:** For historical coverage tracking; trend comparison (sprint-over-sprint, release-over-release).
109
+
110
+ ## Integration with Other Skills
111
+
112
+ | Need | Skill | Usage |
113
+ |------|-------|-------|
114
+ | RTM, test cases from requirements | qa-testcase-from-docs | Source for requirements/model coverage |
115
+ | Test design techniques | qa-testcase-from-docs | `references/test-design-techniques.md` |
116
+ | Risk matrix | qa-test-strategy | `references/risk-matrix.md` |
117
+ | Heatmap, charts | qa-diagram-generator | Coverage heatmap, quadrant charts |
118
+ | NFR thresholds | qa-nfr-analyst | Coverage targets as NFRs |
119
+
120
+ ## Scope
121
+
122
+ **Can do (autonomous):**
123
+ - Analyze coverage across all three dimensions from provided artifacts
124
+ - Produce coverage dashboard, gaps list, risk-based recommendations
125
+ - Call qa-diagram-generator for heatmaps and charts
126
+ - Use Sequential Thinking for complex analysis; Memory for historical tracking
127
+ - Reference coverage-dimensions, tools, best-practices
128
+
129
+ **Cannot do (requires confirmation):**
130
+ - Change coverage thresholds set by stakeholders
131
+ - Override organizational coverage policy
132
+ - Modify test code or production code
133
+
134
+ **Will not do (out of scope):**
135
+ - Execute tests or generate coverage reports (consume existing reports)
136
+ - Implement fixes for coverage gaps
137
+ - Deploy or modify production systems
138
+
139
+ ## Quality Checklist
140
+
141
+ - [ ] All three dimensions analyzed (requirements, technique, code)
142
+ - [ ] Gaps list includes requirement IDs, modules, and file paths where applicable
143
+ - [ ] Recommendations prioritized by risk (high/medium/low)
144
+ - [ ] Dashboard includes percentages and status indicators
145
+ - [ ] Heatmap generated for module-level view when requested
146
+ - [ ] References to coverage-dimensions, tools, best-practices correct
147
+ - [ ] No hardcoded secrets
148
+
149
+ ## Troubleshooting
150
+
151
+ | Symptom | Likely Cause | Fix |
152
+ |---------|--------------|-----|
153
+ | Missing RTM | No traceability in place | Run qa-testcase-from-docs to build RTM; ask for requirement IDs |
154
+ | Technique tags absent | Test cases not tagged | Add technique metadata; use test-design-techniques reference |
155
+ | Code coverage format unknown | Tool output not recognized | Check tools.md for supported formats; request lcov/xml |
156
+ | All dimensions green but quality issues | Coverage ≠ quality | Emphasize technique diversity; recommend exploratory testing |
157
+ | Recommendations too generic | Insufficient risk context | Request risk matrix; use risk-matrix reference |
158
+ | Historical comparison fails | No prior data in Memory | Store current run in Memory for future comparison |
159
+
160
+ ## Reference Files
161
+
162
+ | Topic | Reference |
163
+ |-------|-----------|
164
+ | Coverage dimensions | `references/coverage-dimensions.md` |
165
+ | Coverage tools | `references/tools.md` |
166
+ | Best practices | `references/best-practices.md` |
@@ -0,0 +1,142 @@
1
+ # Coverage Analysis Best Practices
2
+
3
+ Meaningful thresholds, risk-based prioritization, and avoiding common pitfalls when analyzing test coverage.
4
+
5
+ ---
6
+
7
+ ## Meaningful Thresholds
8
+
9
+ ### Avoid Arbitrary Targets
10
+
11
+ | Bad | Better |
12
+ |-----|--------|
13
+ | "We need 100% coverage" | Set targets by risk: critical paths 90%, utilities 60% |
14
+ | Same threshold for all modules | Different thresholds per module type (core vs. glue) |
15
+ | Line-only focus | Include branch/condition where logic is complex |
16
+
17
+ ### Suggested Ranges (Adjust per Project)
18
+
19
+ | Dimension | Conservative | Typical | Aggressive |
20
+ |-----------|--------------|---------|------------|
21
+ | Requirements | 95% | 90% | 85% |
22
+ | Technique (≥2 per req) | 80% | 70% | 60% |
23
+ | Code (line) | 85% | 75% | 65% |
24
+ | Code (branch) | 75% | 65% | 55% |
25
+
26
+ ### Per-Module Thresholds
27
+
28
+ - **Critical (auth, payment, core business):** 85%+ line, 75%+ branch
29
+ - **Important (API, integrations):** 75%+ line, 65%+ branch
30
+ - **Supporting (utils, helpers):** 60%+ line
31
+ - **Generated/boilerplate:** Exclude from coverage or set low target
32
+
33
+ ---
34
+
35
+ ## Risk-Based Prioritization
36
+
37
+ ### Apply Risk to Gaps
38
+
39
+ 1. **Identify risk** per requirement/module (use qa-test-strategy `references/risk-matrix.md`)
40
+ 2. **Score gaps:** Uncovered high-risk = highest priority
41
+ 3. **Order recommendations:** High → Medium → Low
42
+
43
+ ### Priority Matrix
44
+
45
+ | Risk | Coverage Gap | Action |
46
+ |------|--------------|--------|
47
+ | High | Uncovered | Immediate: add tests |
48
+ | High | Low technique | Add EP, BVA, DT, or ST |
49
+ | High | Low code | Increase automation |
50
+ | Medium | Uncovered | Plan for next sprint |
51
+ | Medium | Low technique | Schedule technique review |
52
+ | Low | Any | Backlog or accept |
53
+
54
+ ### Focus Areas First
55
+
56
+ 1. Authentication and authorization
57
+ 2. Payment and financial logic
58
+ 3. Data validation and sanitization
59
+ 4. Critical user journeys
60
+ 5. Integration points with external systems
61
+
62
+ ---
63
+
64
+ ## Technique Coverage Best Practices
65
+
66
+ ### Avoid Single-Technique Bias
67
+
68
+ - **EP only:** May miss boundaries and invalid combinations
69
+ - **BVA only:** May miss equivalence classes
70
+ - **Happy path only:** Miss negative and edge cases
71
+
72
+ ### Technique Selection by Domain
73
+
74
+ | Domain | Recommended Techniques |
75
+ |--------|------------------------|
76
+ | Input validation | EP, BVA |
77
+ | Business rules | Decision table |
78
+ | Workflows | State transition, use case |
79
+ | APIs | EP, BVA, decision table (for status codes) |
80
+ | UI flows | Use case, state transition |
81
+
82
+ ### Tagging Discipline
83
+
84
+ - Tag every test case with at least one technique
85
+ - Use consistent abbreviations (EP, BVA, DT, ST, UC, CT)
86
+ - Review quarterly: are techniques balanced?
87
+
88
+ ---
89
+
90
+ ## Code Coverage Pitfalls
91
+
92
+ ### Don't Chase 100%
93
+
94
+ - Diminishing returns above ~85% line coverage
95
+ - Some code is defensive, error paths, or hard to trigger
96
+ - Focus on high-risk and frequently changed code
97
+
98
+ ### Exclude Appropriately
99
+
100
+ - Generated code (e.g., OpenAPI clients)
101
+ - Configuration files
102
+ - Test files themselves
103
+ - Third-party code
104
+
105
+ ### Branch vs. Line
106
+
107
+ - Branch coverage reveals untested decision paths
108
+ - Prioritize branch coverage for complex conditionals (`if (a && b || c)`)
109
+
110
+ ---
111
+
112
+ ## Dashboard and Reporting
113
+
114
+ ### Keep Dashboards Actionable
115
+
116
+ - Show gaps, not just percentages
117
+ - Link to specific requirements, test cases, files
118
+ - Include trend (improving vs. declining)
119
+
120
+ ### Heatmap Best Practices
121
+
122
+ - Use color scale: red (low) → yellow → green (high)
123
+ - Group by module or feature
124
+ - Highlight modules below threshold
125
+
126
+ ### Frequency
127
+
128
+ - **Code coverage:** Every CI run
129
+ - **Requirements/technique:** Per sprint or release
130
+ - **Full three-dimension analysis:** Per major release or quarterly
131
+
132
+ ---
133
+
134
+ ## Integration with QA Workflow
135
+
136
+ | Phase | Coverage Activity |
137
+ |-------|-------------------|
138
+ | Requirements | Define traceability; assign IDs |
139
+ | Test design | Apply techniques; tag test cases |
140
+ | Implementation | Run coverage in CI; set gates |
141
+ | Release | Full three-dimension analysis; gap report |
142
+ | Retrospective | Review trends; adjust thresholds |