agentic-qe 1.1.0 → 1.3.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 (567) hide show
  1. package/.claude/agents/qe-coverage-analyzer.md +8 -0
  2. package/.claude/agents/qe-flaky-test-hunter.md +9 -1
  3. package/.claude/agents/qe-test-generator.md +7 -0
  4. package/.claude/agents/reasoning/agent.md +816 -0
  5. package/.claude/agents/reasoning/goal-planner.md +73 -0
  6. package/.claude/settings.json +64 -25
  7. package/.claude/skills/README.md +124 -0
  8. package/.claude/skills/accessibility-testing/SKILL.md +777 -0
  9. package/.claude/skills/agentdb-advanced/SKILL.md +550 -0
  10. package/.claude/skills/agentdb-learning/SKILL.md +545 -0
  11. package/.claude/skills/agentdb-memory-patterns/SKILL.md +339 -0
  12. package/.claude/skills/agentdb-optimization/SKILL.md +509 -0
  13. package/.claude/skills/agentdb-vector-search/SKILL.md +339 -0
  14. package/.claude/skills/agentic-quality-engineering/SKILL.md +604 -0
  15. package/.claude/skills/api-testing-patterns/SKILL.md +686 -0
  16. package/.claude/skills/bug-reporting-excellence/SKILL.md +632 -0
  17. package/.claude/skills/chaos-engineering-resilience/SKILL.md +109 -0
  18. package/.claude/skills/code-review-quality/SKILL.md +683 -0
  19. package/.claude/skills/compatibility-testing/SKILL.md +101 -0
  20. package/.claude/skills/compliance-testing/SKILL.md +162 -0
  21. package/.claude/skills/consultancy-practices/SKILL.md +540 -0
  22. package/.claude/skills/context-driven-testing/SKILL.md +466 -0
  23. package/.claude/skills/contract-testing/SKILL.md +193 -0
  24. package/.claude/skills/database-testing/SKILL.md +243 -0
  25. package/.claude/skills/exploratory-testing-advanced/SKILL.md +676 -0
  26. package/.claude/skills/flow-nexus-neural/SKILL.md +738 -0
  27. package/.claude/skills/flow-nexus-platform/SKILL.md +1157 -0
  28. package/.claude/skills/flow-nexus-swarm/SKILL.md +610 -0
  29. package/.claude/skills/github-code-review/SKILL.md +1140 -0
  30. package/.claude/skills/github-multi-repo/SKILL.md +874 -0
  31. package/.claude/skills/github-project-management/SKILL.md +1277 -0
  32. package/.claude/skills/github-release-management/SKILL.md +1081 -0
  33. package/.claude/skills/github-workflow-automation/SKILL.md +1065 -0
  34. package/.claude/skills/hive-mind-advanced/SKILL.md +712 -0
  35. package/.claude/skills/holistic-testing-pact/SKILL.md +225 -0
  36. package/.claude/skills/hooks-automation/SKILL.md +1201 -0
  37. package/.claude/skills/localization-testing/SKILL.md +115 -0
  38. package/.claude/skills/mobile-testing/SKILL.md +548 -0
  39. package/.claude/skills/mutation-testing/SKILL.md +129 -0
  40. package/.claude/skills/pair-programming/SKILL.md +1202 -0
  41. package/.claude/skills/performance-analysis/SKILL.md +563 -0
  42. package/.claude/skills/performance-testing/SKILL.md +662 -0
  43. package/.claude/skills/quality-metrics/SKILL.md +592 -0
  44. package/.claude/skills/reasoningbank-agentdb/SKILL.md +446 -0
  45. package/.claude/skills/reasoningbank-intelligence/SKILL.md +201 -0
  46. package/.claude/skills/refactoring-patterns/SKILL.md +778 -0
  47. package/.claude/skills/regression-testing/SKILL.md +1045 -0
  48. package/.claude/skills/risk-based-testing/SKILL.md +721 -0
  49. package/.claude/skills/security-testing/SKILL.md +651 -0
  50. package/.claude/skills/shift-left-testing/SKILL.md +535 -0
  51. package/.claude/skills/shift-right-testing/SKILL.md +591 -0
  52. package/.claude/skills/skill-builder/SKILL.md +910 -0
  53. package/.claude/skills/sparc-methodology/SKILL.md +1115 -0
  54. package/.claude/skills/stream-chain/SKILL.md +563 -0
  55. package/.claude/skills/swarm-advanced/SKILL.md +973 -0
  56. package/.claude/skills/swarm-orchestration/SKILL.md +179 -0
  57. package/.claude/skills/tdd-london-chicago/SKILL.md +567 -0
  58. package/.claude/skills/technical-writing/SKILL.md +235 -0
  59. package/.claude/skills/test-automation-strategy/SKILL.md +842 -0
  60. package/.claude/skills/test-data-management/SKILL.md +1067 -0
  61. package/.claude/skills/test-design-techniques/SKILL.md +160 -0
  62. package/.claude/skills/test-environment-management/SKILL.md +204 -0
  63. package/.claude/skills/test-reporting-analytics/SKILL.md +143 -0
  64. package/.claude/skills/verification-quality/SKILL.md +649 -0
  65. package/.claude/skills/visual-testing-advanced/SKILL.md +148 -0
  66. package/.claude/skills/xp-practices/SKILL.md +671 -0
  67. package/.claude/statusline-command.sh +176 -0
  68. package/CHANGELOG.md +623 -6
  69. package/README.md +101 -5
  70. package/config/improvement-loop.config.ts +323 -0
  71. package/config/neural-agent.config.ts +197 -0
  72. package/dist/adapters/MemoryStoreAdapter.d.ts +16 -16
  73. package/dist/adapters/MemoryStoreAdapter.d.ts.map +1 -1
  74. package/dist/adapters/MemoryStoreAdapter.js +16 -16
  75. package/dist/adapters/MemoryStoreAdapter.js.map +1 -1
  76. package/dist/agents/BaseAgent.d.ts +69 -0
  77. package/dist/agents/BaseAgent.d.ts.map +1 -1
  78. package/dist/agents/BaseAgent.js +387 -5
  79. package/dist/agents/BaseAgent.js.map +1 -1
  80. package/dist/agents/CoverageAnalyzerAgent.d.ts +13 -2
  81. package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -1
  82. package/dist/agents/CoverageAnalyzerAgent.js +112 -12
  83. package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
  84. package/dist/agents/DeploymentReadinessAgent.d.ts.map +1 -1
  85. package/dist/agents/DeploymentReadinessAgent.js +13 -13
  86. package/dist/agents/DeploymentReadinessAgent.js.map +1 -1
  87. package/dist/agents/FlakyTestHunterAgent.d.ts +28 -0
  88. package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -1
  89. package/dist/agents/FlakyTestHunterAgent.js +160 -4
  90. package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
  91. package/dist/agents/FleetCommanderAgent.d.ts.map +1 -1
  92. package/dist/agents/FleetCommanderAgent.js +4 -3
  93. package/dist/agents/FleetCommanderAgent.js.map +1 -1
  94. package/dist/agents/LearningAgent.d.ts +14 -5
  95. package/dist/agents/LearningAgent.d.ts.map +1 -1
  96. package/dist/agents/LearningAgent.js +36 -16
  97. package/dist/agents/LearningAgent.js.map +1 -1
  98. package/dist/agents/NeuralAgentExtension.d.ts +117 -0
  99. package/dist/agents/NeuralAgentExtension.d.ts.map +1 -0
  100. package/dist/agents/NeuralAgentExtension.js +288 -0
  101. package/dist/agents/NeuralAgentExtension.js.map +1 -0
  102. package/dist/agents/PerformanceTesterAgent.d.ts.map +1 -1
  103. package/dist/agents/PerformanceTesterAgent.js +11 -9
  104. package/dist/agents/PerformanceTesterAgent.js.map +1 -1
  105. package/dist/agents/ProductionIntelligenceAgent.d.ts.map +1 -1
  106. package/dist/agents/ProductionIntelligenceAgent.js +14 -13
  107. package/dist/agents/ProductionIntelligenceAgent.js.map +1 -1
  108. package/dist/agents/QualityAnalyzerAgent.d.ts.map +1 -1
  109. package/dist/agents/QualityAnalyzerAgent.js +39 -38
  110. package/dist/agents/QualityAnalyzerAgent.js.map +1 -1
  111. package/dist/agents/QualityGateAgent.d.ts.map +1 -1
  112. package/dist/agents/QualityGateAgent.js +7 -6
  113. package/dist/agents/QualityGateAgent.js.map +1 -1
  114. package/dist/agents/RegressionRiskAnalyzerAgent.d.ts.map +1 -1
  115. package/dist/agents/RegressionRiskAnalyzerAgent.js +22 -21
  116. package/dist/agents/RegressionRiskAnalyzerAgent.js.map +1 -1
  117. package/dist/agents/RequirementsValidatorAgent.d.ts.map +1 -1
  118. package/dist/agents/RequirementsValidatorAgent.js +1 -1
  119. package/dist/agents/RequirementsValidatorAgent.js.map +1 -1
  120. package/dist/agents/SecurityScannerAgent.d.ts.map +1 -1
  121. package/dist/agents/SecurityScannerAgent.js +8 -7
  122. package/dist/agents/SecurityScannerAgent.js.map +1 -1
  123. package/dist/agents/TestDataArchitectAgent.d.ts.map +1 -1
  124. package/dist/agents/TestDataArchitectAgent.js +12 -11
  125. package/dist/agents/TestDataArchitectAgent.js.map +1 -1
  126. package/dist/agents/TestExecutorAgent.d.ts.map +1 -1
  127. package/dist/agents/TestExecutorAgent.js +18 -19
  128. package/dist/agents/TestExecutorAgent.js.map +1 -1
  129. package/dist/agents/TestGeneratorAgent.d.ts +15 -4
  130. package/dist/agents/TestGeneratorAgent.d.ts.map +1 -1
  131. package/dist/agents/TestGeneratorAgent.js +172 -49
  132. package/dist/agents/TestGeneratorAgent.js.map +1 -1
  133. package/dist/agents/index.d.ts.map +1 -1
  134. package/dist/agents/index.js +2 -1
  135. package/dist/agents/index.js.map +1 -1
  136. package/dist/agents/mixins/NeuralCapableMixin.d.ts +130 -0
  137. package/dist/agents/mixins/NeuralCapableMixin.d.ts.map +1 -0
  138. package/dist/agents/mixins/NeuralCapableMixin.js +358 -0
  139. package/dist/agents/mixins/NeuralCapableMixin.js.map +1 -0
  140. package/dist/agents/mixins/QUICCapableMixin.d.ts +34 -0
  141. package/dist/agents/mixins/QUICCapableMixin.d.ts.map +1 -0
  142. package/dist/agents/mixins/QUICCapableMixin.js +346 -0
  143. package/dist/agents/mixins/QUICCapableMixin.js.map +1 -0
  144. package/dist/cli/commands/agent/benchmark.d.ts.map +1 -1
  145. package/dist/cli/commands/agent/benchmark.js +2 -1
  146. package/dist/cli/commands/agent/benchmark.js.map +1 -1
  147. package/dist/cli/commands/agent/index.d.ts +5 -0
  148. package/dist/cli/commands/agent/index.d.ts.map +1 -1
  149. package/dist/cli/commands/agent/index.js +11 -6
  150. package/dist/cli/commands/agent/index.js.map +1 -1
  151. package/dist/cli/commands/agent/kill.d.ts +13 -0
  152. package/dist/cli/commands/agent/kill.d.ts.map +1 -0
  153. package/dist/cli/commands/agent/kill.js +65 -0
  154. package/dist/cli/commands/agent/kill.js.map +1 -0
  155. package/dist/cli/commands/agent/list.d.ts +19 -0
  156. package/dist/cli/commands/agent/list.d.ts.map +1 -0
  157. package/dist/cli/commands/agent/list.js +92 -0
  158. package/dist/cli/commands/agent/list.js.map +1 -0
  159. package/dist/cli/commands/agent/logs.d.ts +14 -0
  160. package/dist/cli/commands/agent/logs.d.ts.map +1 -0
  161. package/dist/cli/commands/agent/logs.js +77 -0
  162. package/dist/cli/commands/agent/logs.js.map +1 -0
  163. package/dist/cli/commands/agent/metrics.d.ts +21 -0
  164. package/dist/cli/commands/agent/metrics.d.ts.map +1 -0
  165. package/dist/cli/commands/agent/metrics.js +87 -0
  166. package/dist/cli/commands/agent/metrics.js.map +1 -0
  167. package/dist/cli/commands/agent/spawn.d.ts +28 -0
  168. package/dist/cli/commands/agent/spawn.d.ts.map +1 -0
  169. package/dist/cli/commands/agent/spawn.js +84 -0
  170. package/dist/cli/commands/agent/spawn.js.map +1 -0
  171. package/dist/cli/commands/analyze.d.ts.map +1 -1
  172. package/dist/cli/commands/analyze.js +2 -1
  173. package/dist/cli/commands/analyze.js.map +1 -1
  174. package/dist/cli/commands/config/list.d.ts.map +1 -1
  175. package/dist/cli/commands/config/list.js +2 -1
  176. package/dist/cli/commands/config/list.js.map +1 -1
  177. package/dist/cli/commands/config/set.d.ts +7 -0
  178. package/dist/cli/commands/config/set.d.ts.map +1 -1
  179. package/dist/cli/commands/config/set.js +35 -4
  180. package/dist/cli/commands/config/set.js.map +1 -1
  181. package/dist/cli/commands/fleet/logs.d.ts.map +1 -1
  182. package/dist/cli/commands/fleet/logs.js +2 -1
  183. package/dist/cli/commands/fleet/logs.js.map +1 -1
  184. package/dist/cli/commands/fleet/metrics.d.ts.map +1 -1
  185. package/dist/cli/commands/fleet/metrics.js +2 -1
  186. package/dist/cli/commands/fleet/metrics.js.map +1 -1
  187. package/dist/cli/commands/fleet/monitor.d.ts.map +1 -1
  188. package/dist/cli/commands/fleet/monitor.js +7 -5
  189. package/dist/cli/commands/fleet/monitor.js.map +1 -1
  190. package/dist/cli/commands/fleet.d.ts.map +1 -1
  191. package/dist/cli/commands/fleet.js +2 -1
  192. package/dist/cli/commands/fleet.js.map +1 -1
  193. package/dist/cli/commands/generate.d.ts.map +1 -1
  194. package/dist/cli/commands/generate.js +2 -1
  195. package/dist/cli/commands/generate.js.map +1 -1
  196. package/dist/cli/commands/improve/index.d.ts.map +1 -1
  197. package/dist/cli/commands/improve/index.js +12 -11
  198. package/dist/cli/commands/improve/index.js.map +1 -1
  199. package/dist/cli/commands/init.d.ts +24 -0
  200. package/dist/cli/commands/init.d.ts.map +1 -1
  201. package/dist/cli/commands/init.js +503 -11
  202. package/dist/cli/commands/init.js.map +1 -1
  203. package/dist/cli/commands/learn/index.d.ts.map +1 -1
  204. package/dist/cli/commands/learn/index.js +13 -12
  205. package/dist/cli/commands/learn/index.js.map +1 -1
  206. package/dist/cli/commands/monitor/alerts.d.ts.map +1 -1
  207. package/dist/cli/commands/monitor/alerts.js +2 -1
  208. package/dist/cli/commands/monitor/alerts.js.map +1 -1
  209. package/dist/cli/commands/patterns/index.d.ts.map +1 -1
  210. package/dist/cli/commands/patterns/index.js +20 -19
  211. package/dist/cli/commands/patterns/index.js.map +1 -1
  212. package/dist/cli/commands/quality/decision.d.ts.map +1 -1
  213. package/dist/cli/commands/quality/decision.js +9 -7
  214. package/dist/cli/commands/quality/decision.js.map +1 -1
  215. package/dist/cli/commands/quality/gate.d.ts.map +1 -1
  216. package/dist/cli/commands/quality/gate.js +10 -8
  217. package/dist/cli/commands/quality/gate.js.map +1 -1
  218. package/dist/cli/commands/quality/policy.d.ts.map +1 -1
  219. package/dist/cli/commands/quality/policy.js +10 -8
  220. package/dist/cli/commands/quality/policy.js.map +1 -1
  221. package/dist/cli/commands/quality/risk.d.ts.map +1 -1
  222. package/dist/cli/commands/quality/risk.js +5 -3
  223. package/dist/cli/commands/quality/risk.js.map +1 -1
  224. package/dist/cli/commands/quality/validate.d.ts.map +1 -1
  225. package/dist/cli/commands/quality/validate.js +10 -8
  226. package/dist/cli/commands/quality/validate.js.map +1 -1
  227. package/dist/cli/commands/quantization.d.ts +6 -0
  228. package/dist/cli/commands/quantization.d.ts.map +1 -0
  229. package/dist/cli/commands/quantization.js +188 -0
  230. package/dist/cli/commands/quantization.js.map +1 -0
  231. package/dist/cli/commands/routing/index.d.ts +0 -6
  232. package/dist/cli/commands/routing/index.d.ts.map +1 -1
  233. package/dist/cli/commands/routing/index.js +17 -16
  234. package/dist/cli/commands/routing/index.js.map +1 -1
  235. package/dist/cli/commands/run.d.ts.map +1 -1
  236. package/dist/cli/commands/run.js +2 -1
  237. package/dist/cli/commands/run.js.map +1 -1
  238. package/dist/cli/commands/skills/index.d.ts +51 -0
  239. package/dist/cli/commands/skills/index.d.ts.map +1 -0
  240. package/dist/cli/commands/skills/index.js +365 -0
  241. package/dist/cli/commands/skills/index.js.map +1 -0
  242. package/dist/cli/commands/test/debug.d.ts.map +1 -1
  243. package/dist/cli/commands/test/debug.js +2 -1
  244. package/dist/cli/commands/test/debug.js.map +1 -1
  245. package/dist/cli/commands/test/mutate.d.ts.map +1 -1
  246. package/dist/cli/commands/test/mutate.js +2 -1
  247. package/dist/cli/commands/test/mutate.js.map +1 -1
  248. package/dist/cli/commands/test/parallel.d.ts.map +1 -1
  249. package/dist/cli/commands/test/parallel.js +6 -4
  250. package/dist/cli/commands/test/parallel.js.map +1 -1
  251. package/dist/cli/commands/test/profile.d.ts.map +1 -1
  252. package/dist/cli/commands/test/profile.js +3 -2
  253. package/dist/cli/commands/test/profile.js.map +1 -1
  254. package/dist/cli/commands/test/queue.d.ts.map +1 -1
  255. package/dist/cli/commands/test/queue.js +2 -1
  256. package/dist/cli/commands/test/queue.js.map +1 -1
  257. package/dist/cli/commands/test/retry.d.ts.map +1 -1
  258. package/dist/cli/commands/test/retry.js +6 -4
  259. package/dist/cli/commands/test/retry.js.map +1 -1
  260. package/dist/cli/commands/test/trace.d.ts.map +1 -1
  261. package/dist/cli/commands/test/trace.js +2 -1
  262. package/dist/cli/commands/test/trace.js.map +1 -1
  263. package/dist/cli/commands/test/watch.d.ts.map +1 -1
  264. package/dist/cli/commands/test/watch.js +3 -2
  265. package/dist/cli/commands/test/watch.js.map +1 -1
  266. package/dist/cli/commands/workflow/cancel.d.ts.map +1 -1
  267. package/dist/cli/commands/workflow/cancel.js +2 -1
  268. package/dist/cli/commands/workflow/cancel.js.map +1 -1
  269. package/dist/cli/index-working.js +9 -8
  270. package/dist/cli/index-working.js.map +1 -1
  271. package/dist/cli/index.js +97 -1
  272. package/dist/cli/index.js.map +1 -1
  273. package/dist/core/EventBus.d.ts +38 -0
  274. package/dist/core/EventBus.d.ts.map +1 -1
  275. package/dist/core/EventBus.js +176 -31
  276. package/dist/core/EventBus.js.map +1 -1
  277. package/dist/core/FleetManager.d.ts +35 -1
  278. package/dist/core/FleetManager.d.ts.map +1 -1
  279. package/dist/core/FleetManager.js +121 -45
  280. package/dist/core/FleetManager.js.map +1 -1
  281. package/dist/core/MemoryManager.d.ts +19 -1
  282. package/dist/core/MemoryManager.d.ts.map +1 -1
  283. package/dist/core/MemoryManager.js +25 -1
  284. package/dist/core/MemoryManager.js.map +1 -1
  285. package/dist/core/coordination/OODACoordination.d.ts.map +1 -1
  286. package/dist/core/coordination/OODACoordination.js +2 -1
  287. package/dist/core/coordination/OODACoordination.js.map +1 -1
  288. package/dist/core/embeddings/EmbeddingCache.d.ts +134 -0
  289. package/dist/core/embeddings/EmbeddingCache.d.ts.map +1 -0
  290. package/dist/core/embeddings/EmbeddingCache.js +239 -0
  291. package/dist/core/embeddings/EmbeddingCache.js.map +1 -0
  292. package/dist/core/embeddings/EmbeddingGenerator.d.ts +224 -0
  293. package/dist/core/embeddings/EmbeddingGenerator.d.ts.map +1 -0
  294. package/dist/core/embeddings/EmbeddingGenerator.js +459 -0
  295. package/dist/core/embeddings/EmbeddingGenerator.js.map +1 -0
  296. package/dist/core/embeddings/index.d.ts +15 -0
  297. package/dist/core/embeddings/index.d.ts.map +1 -0
  298. package/dist/core/embeddings/index.js +22 -0
  299. package/dist/core/embeddings/index.js.map +1 -0
  300. package/dist/core/memory/AgentDBIntegration.d.ts +35 -0
  301. package/dist/core/memory/AgentDBIntegration.d.ts.map +1 -0
  302. package/dist/core/memory/AgentDBIntegration.js +75 -0
  303. package/dist/core/memory/AgentDBIntegration.js.map +1 -0
  304. package/dist/core/memory/AgentDBManager.d.ts +200 -0
  305. package/dist/core/memory/AgentDBManager.d.ts.map +1 -0
  306. package/dist/core/memory/AgentDBManager.js +246 -0
  307. package/dist/core/memory/AgentDBManager.js.map +1 -0
  308. package/dist/core/memory/AgentDBService.d.ts +160 -0
  309. package/dist/core/memory/AgentDBService.d.ts.map +1 -0
  310. package/dist/core/memory/AgentDBService.js +450 -0
  311. package/dist/core/memory/AgentDBService.js.map +1 -0
  312. package/dist/core/memory/RealAgentDBAdapter.d.ts +51 -0
  313. package/dist/core/memory/RealAgentDBAdapter.d.ts.map +1 -0
  314. package/dist/core/memory/RealAgentDBAdapter.js +231 -0
  315. package/dist/core/memory/RealAgentDBAdapter.js.map +1 -0
  316. package/dist/core/memory/ReasoningBankAdapter.d.ts +58 -0
  317. package/dist/core/memory/ReasoningBankAdapter.d.ts.map +1 -0
  318. package/dist/core/memory/ReasoningBankAdapter.js +77 -0
  319. package/dist/core/memory/ReasoningBankAdapter.js.map +1 -0
  320. package/dist/core/memory/SwarmMemoryManager.d.ts +75 -3
  321. package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
  322. package/dist/core/memory/SwarmMemoryManager.js +240 -55
  323. package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
  324. package/dist/core/memory/index.d.ts +4 -0
  325. package/dist/core/memory/index.d.ts.map +1 -1
  326. package/dist/core/memory/index.js +9 -1
  327. package/dist/core/memory/index.js.map +1 -1
  328. package/dist/core/neural/NeuralTrainer.d.ts +137 -0
  329. package/dist/core/neural/NeuralTrainer.d.ts.map +1 -0
  330. package/dist/core/neural/NeuralTrainer.js +544 -0
  331. package/dist/core/neural/NeuralTrainer.js.map +1 -0
  332. package/dist/core/neural/index.d.ts +8 -0
  333. package/dist/core/neural/index.d.ts.map +1 -0
  334. package/dist/core/neural/index.js +24 -0
  335. package/dist/core/neural/index.js.map +1 -0
  336. package/dist/core/neural/types.d.ts +216 -0
  337. package/dist/core/neural/types.d.ts.map +1 -0
  338. package/dist/core/neural/types.js +8 -0
  339. package/dist/core/neural/types.js.map +1 -0
  340. package/dist/core/quantization/QuantizationManager.d.ts +83 -0
  341. package/dist/core/quantization/QuantizationManager.d.ts.map +1 -0
  342. package/dist/core/quantization/QuantizationManager.js +264 -0
  343. package/dist/core/quantization/QuantizationManager.js.map +1 -0
  344. package/dist/core/quantization/index.d.ts +5 -0
  345. package/dist/core/quantization/index.d.ts.map +1 -0
  346. package/dist/core/quantization/index.js +9 -0
  347. package/dist/core/quantization/index.js.map +1 -0
  348. package/dist/core/security/CertificateValidator.d.ts +130 -0
  349. package/dist/core/security/CertificateValidator.d.ts.map +1 -0
  350. package/dist/core/security/CertificateValidator.js +376 -0
  351. package/dist/core/security/CertificateValidator.js.map +1 -0
  352. package/dist/core/transport/QUICTransport.d.ts +62 -0
  353. package/dist/core/transport/QUICTransport.d.ts.map +1 -0
  354. package/dist/core/transport/QUICTransport.js +381 -0
  355. package/dist/core/transport/QUICTransport.js.map +1 -0
  356. package/dist/core/transport/SecureQUICTransport.d.ts +71 -0
  357. package/dist/core/transport/SecureQUICTransport.d.ts.map +1 -0
  358. package/dist/core/transport/SecureQUICTransport.js +253 -0
  359. package/dist/core/transport/SecureQUICTransport.js.map +1 -0
  360. package/dist/learning/AdvancedFeatureExtractor.d.ts +123 -0
  361. package/dist/learning/AdvancedFeatureExtractor.d.ts.map +1 -0
  362. package/dist/learning/AdvancedFeatureExtractor.js +423 -0
  363. package/dist/learning/AdvancedFeatureExtractor.js.map +1 -0
  364. package/dist/learning/FlakyPredictionModel.d.ts +11 -1
  365. package/dist/learning/FlakyPredictionModel.d.ts.map +1 -1
  366. package/dist/learning/FlakyPredictionModel.js +82 -35
  367. package/dist/learning/FlakyPredictionModel.js.map +1 -1
  368. package/dist/learning/FlakyTestDetector.d.ts +9 -0
  369. package/dist/learning/FlakyTestDetector.d.ts.map +1 -1
  370. package/dist/learning/FlakyTestDetector.js +28 -6
  371. package/dist/learning/FlakyTestDetector.js.map +1 -1
  372. package/dist/learning/ImprovementLoop.d.ts +16 -2
  373. package/dist/learning/ImprovementLoop.d.ts.map +1 -1
  374. package/dist/learning/ImprovementLoop.js +67 -8
  375. package/dist/learning/ImprovementLoop.js.map +1 -1
  376. package/dist/learning/ImprovementWorker.d.ts +83 -0
  377. package/dist/learning/ImprovementWorker.d.ts.map +1 -0
  378. package/dist/learning/ImprovementWorker.js +164 -0
  379. package/dist/learning/ImprovementWorker.js.map +1 -0
  380. package/dist/learning/NeuralPatternMatcher.d.ts +184 -0
  381. package/dist/learning/NeuralPatternMatcher.d.ts.map +1 -0
  382. package/dist/learning/NeuralPatternMatcher.js +702 -0
  383. package/dist/learning/NeuralPatternMatcher.js.map +1 -0
  384. package/dist/learning/NeuralTrainer.d.ts +209 -0
  385. package/dist/learning/NeuralTrainer.d.ts.map +1 -0
  386. package/dist/learning/NeuralTrainer.js +478 -0
  387. package/dist/learning/NeuralTrainer.js.map +1 -0
  388. package/dist/learning/index.d.ts +13 -7
  389. package/dist/learning/index.d.ts.map +1 -1
  390. package/dist/learning/index.js +27 -11
  391. package/dist/learning/index.js.map +1 -1
  392. package/dist/learning/types.d.ts +1 -0
  393. package/dist/learning/types.d.ts.map +1 -1
  394. package/dist/learning/types.js +16 -0
  395. package/dist/learning/types.js.map +1 -1
  396. package/dist/mcp/MCPToolRegistry.d.ts +34 -0
  397. package/dist/mcp/MCPToolRegistry.d.ts.map +1 -0
  398. package/dist/mcp/MCPToolRegistry.js +48 -0
  399. package/dist/mcp/MCPToolRegistry.js.map +1 -0
  400. package/dist/mcp/handlers/advanced/mutation-test-execute.d.ts +3 -3
  401. package/dist/mcp/handlers/advanced/mutation-test-execute.d.ts.map +1 -1
  402. package/dist/mcp/handlers/advanced/mutation-test-execute.js +5 -4
  403. package/dist/mcp/handlers/advanced/mutation-test-execute.js.map +1 -1
  404. package/dist/mcp/handlers/agent-spawn.d.ts.map +1 -1
  405. package/dist/mcp/handlers/agent-spawn.js +2 -1
  406. package/dist/mcp/handlers/agent-spawn.js.map +1 -1
  407. package/dist/mcp/handlers/analysis/coverageAnalyzeSublinear.d.ts.map +1 -1
  408. package/dist/mcp/handlers/analysis/coverageAnalyzeSublinear.js +9 -8
  409. package/dist/mcp/handlers/analysis/coverageAnalyzeSublinear.js.map +1 -1
  410. package/dist/mcp/handlers/analysis/coverageGapsDetect.d.ts.map +1 -1
  411. package/dist/mcp/handlers/analysis/coverageGapsDetect.js +6 -5
  412. package/dist/mcp/handlers/analysis/coverageGapsDetect.js.map +1 -1
  413. package/dist/mcp/handlers/analysis/performance-monitor-realtime-handler.d.ts.map +1 -1
  414. package/dist/mcp/handlers/analysis/performance-monitor-realtime-handler.js +5 -4
  415. package/dist/mcp/handlers/analysis/performance-monitor-realtime-handler.js.map +1 -1
  416. package/dist/mcp/handlers/analysis/performanceBenchmarkRun.d.ts.map +1 -1
  417. package/dist/mcp/handlers/analysis/performanceBenchmarkRun.js +8 -7
  418. package/dist/mcp/handlers/analysis/performanceBenchmarkRun.js.map +1 -1
  419. package/dist/mcp/handlers/analysis/performanceMonitorRealtime.d.ts.map +1 -1
  420. package/dist/mcp/handlers/analysis/performanceMonitorRealtime.js +7 -6
  421. package/dist/mcp/handlers/analysis/performanceMonitorRealtime.js.map +1 -1
  422. package/dist/mcp/handlers/analysis/securityScanComprehensive.d.ts.map +1 -1
  423. package/dist/mcp/handlers/analysis/securityScanComprehensive.js +18 -21
  424. package/dist/mcp/handlers/analysis/securityScanComprehensive.js.map +1 -1
  425. package/dist/mcp/handlers/base-handler.d.ts.map +1 -1
  426. package/dist/mcp/handlers/base-handler.js +2 -9
  427. package/dist/mcp/handlers/base-handler.js.map +1 -1
  428. package/dist/mcp/handlers/chaos/chaos-inject-failure.d.ts.map +1 -1
  429. package/dist/mcp/handlers/chaos/chaos-inject-failure.js +4 -3
  430. package/dist/mcp/handlers/chaos/chaos-inject-failure.js.map +1 -1
  431. package/dist/mcp/handlers/chaos/chaos-inject-latency.d.ts.map +1 -1
  432. package/dist/mcp/handlers/chaos/chaos-inject-latency.js +6 -5
  433. package/dist/mcp/handlers/chaos/chaos-inject-latency.js.map +1 -1
  434. package/dist/mcp/handlers/coordination/event-emit.d.ts.map +1 -1
  435. package/dist/mcp/handlers/coordination/event-emit.js +2 -1
  436. package/dist/mcp/handlers/coordination/event-emit.js.map +1 -1
  437. package/dist/mcp/handlers/coordination/event-subscribe.d.ts.map +1 -1
  438. package/dist/mcp/handlers/coordination/event-subscribe.js +2 -1
  439. package/dist/mcp/handlers/coordination/event-subscribe.js.map +1 -1
  440. package/dist/mcp/handlers/coordination/workflow-checkpoint.d.ts.map +1 -1
  441. package/dist/mcp/handlers/coordination/workflow-checkpoint.js +2 -1
  442. package/dist/mcp/handlers/coordination/workflow-checkpoint.js.map +1 -1
  443. package/dist/mcp/handlers/coordination/workflow-create.d.ts.map +1 -1
  444. package/dist/mcp/handlers/coordination/workflow-create.js +2 -1
  445. package/dist/mcp/handlers/coordination/workflow-create.js.map +1 -1
  446. package/dist/mcp/handlers/coordination/workflow-execute.d.ts.map +1 -1
  447. package/dist/mcp/handlers/coordination/workflow-execute.js +2 -1
  448. package/dist/mcp/handlers/coordination/workflow-execute.js.map +1 -1
  449. package/dist/mcp/handlers/coordination/workflow-resume.d.ts.map +1 -1
  450. package/dist/mcp/handlers/coordination/workflow-resume.js +2 -1
  451. package/dist/mcp/handlers/coordination/workflow-resume.js.map +1 -1
  452. package/dist/mcp/handlers/fleet-init.d.ts.map +1 -1
  453. package/dist/mcp/handlers/fleet-init.js +2 -1
  454. package/dist/mcp/handlers/fleet-init.js.map +1 -1
  455. package/dist/mcp/handlers/fleet-status.d.ts.map +1 -1
  456. package/dist/mcp/handlers/fleet-status.js +31 -30
  457. package/dist/mcp/handlers/fleet-status.js.map +1 -1
  458. package/dist/mcp/handlers/integration/dependency-check.d.ts.map +1 -1
  459. package/dist/mcp/handlers/integration/dependency-check.js +3 -2
  460. package/dist/mcp/handlers/integration/dependency-check.js.map +1 -1
  461. package/dist/mcp/handlers/integration/integration-test-orchestrate.d.ts.map +1 -1
  462. package/dist/mcp/handlers/integration/integration-test-orchestrate.js +2 -1
  463. package/dist/mcp/handlers/integration/integration-test-orchestrate.js.map +1 -1
  464. package/dist/mcp/handlers/optimize-tests.d.ts.map +1 -1
  465. package/dist/mcp/handlers/optimize-tests.js +33 -32
  466. package/dist/mcp/handlers/optimize-tests.js.map +1 -1
  467. package/dist/mcp/handlers/predict-defects.d.ts.map +1 -1
  468. package/dist/mcp/handlers/predict-defects.js +46 -45
  469. package/dist/mcp/handlers/predict-defects.js.map +1 -1
  470. package/dist/mcp/handlers/prediction/deployment-readiness-check.d.ts.map +1 -1
  471. package/dist/mcp/handlers/prediction/deployment-readiness-check.js +24 -23
  472. package/dist/mcp/handlers/prediction/deployment-readiness-check.js.map +1 -1
  473. package/dist/mcp/handlers/prediction/predict-defects-ai.d.ts.map +1 -1
  474. package/dist/mcp/handlers/prediction/predict-defects-ai.js +10 -9
  475. package/dist/mcp/handlers/prediction/predict-defects-ai.js.map +1 -1
  476. package/dist/mcp/handlers/prediction/regression-risk-analyze.d.ts.map +1 -1
  477. package/dist/mcp/handlers/prediction/regression-risk-analyze.js +10 -9
  478. package/dist/mcp/handlers/prediction/regression-risk-analyze.js.map +1 -1
  479. package/dist/mcp/handlers/prediction/visual-test-regression.d.ts.map +1 -1
  480. package/dist/mcp/handlers/prediction/visual-test-regression.js +7 -6
  481. package/dist/mcp/handlers/prediction/visual-test-regression.js.map +1 -1
  482. package/dist/mcp/handlers/quality-analyze.d.ts.map +1 -1
  483. package/dist/mcp/handlers/quality-analyze.js +53 -52
  484. package/dist/mcp/handlers/quality-analyze.js.map +1 -1
  485. package/dist/mcp/handlers/task-orchestrate.d.ts.map +1 -1
  486. package/dist/mcp/handlers/task-orchestrate.js +19 -18
  487. package/dist/mcp/handlers/task-orchestrate.js.map +1 -1
  488. package/dist/mcp/handlers/test/test-execute-parallel.d.ts.map +1 -1
  489. package/dist/mcp/handlers/test/test-execute-parallel.js +7 -6
  490. package/dist/mcp/handlers/test/test-execute-parallel.js.map +1 -1
  491. package/dist/mcp/handlers/test/test-generate-enhanced.d.ts.map +1 -1
  492. package/dist/mcp/handlers/test/test-generate-enhanced.js +2 -1
  493. package/dist/mcp/handlers/test/test-generate-enhanced.js.map +1 -1
  494. package/dist/mcp/handlers/test/test-optimize-sublinear.d.ts.map +1 -1
  495. package/dist/mcp/handlers/test/test-optimize-sublinear.js +3 -2
  496. package/dist/mcp/handlers/test/test-optimize-sublinear.js.map +1 -1
  497. package/dist/mcp/handlers/test-execute.d.ts.map +1 -1
  498. package/dist/mcp/handlers/test-execute.js +11 -10
  499. package/dist/mcp/handlers/test-execute.js.map +1 -1
  500. package/dist/mcp/handlers/test-generate.d.ts.map +1 -1
  501. package/dist/mcp/handlers/test-generate.js +4 -3
  502. package/dist/mcp/handlers/test-generate.js.map +1 -1
  503. package/dist/mcp/server.d.ts +4 -4
  504. package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
  505. package/dist/mcp/services/AgentRegistry.js +9 -2
  506. package/dist/mcp/services/AgentRegistry.js.map +1 -1
  507. package/dist/mcp/streaming/CoverageAnalyzeStreamHandler.d.ts.map +1 -1
  508. package/dist/mcp/streaming/CoverageAnalyzeStreamHandler.js +10 -9
  509. package/dist/mcp/streaming/CoverageAnalyzeStreamHandler.js.map +1 -1
  510. package/dist/mcp/streaming/StreamingMCPTool.d.ts.map +1 -1
  511. package/dist/mcp/streaming/StreamingMCPTool.js +2 -1
  512. package/dist/mcp/streaming/StreamingMCPTool.js.map +1 -1
  513. package/dist/mcp/streaming/TestExecuteStreamHandler.d.ts.map +1 -1
  514. package/dist/mcp/streaming/TestExecuteStreamHandler.js +6 -5
  515. package/dist/mcp/streaming/TestExecuteStreamHandler.js.map +1 -1
  516. package/dist/reasoning/TestTemplateCreator.d.ts +10 -2
  517. package/dist/reasoning/TestTemplateCreator.d.ts.map +1 -1
  518. package/dist/reasoning/TestTemplateCreator.js +81 -21
  519. package/dist/reasoning/TestTemplateCreator.js.map +1 -1
  520. package/dist/transport/QUICTransport.d.ts +340 -0
  521. package/dist/transport/QUICTransport.d.ts.map +1 -0
  522. package/dist/transport/QUICTransport.js +814 -0
  523. package/dist/transport/QUICTransport.js.map +1 -0
  524. package/dist/transport/UDPTransport.d.ts +348 -0
  525. package/dist/transport/UDPTransport.d.ts.map +1 -0
  526. package/dist/transport/UDPTransport.js +820 -0
  527. package/dist/transport/UDPTransport.js.map +1 -0
  528. package/dist/types/errors.d.ts +1 -1
  529. package/dist/types/index.d.ts +37 -0
  530. package/dist/types/index.d.ts.map +1 -1
  531. package/dist/types/index.js +2 -0
  532. package/dist/types/index.js.map +1 -1
  533. package/dist/types/pattern.types.d.ts +39 -3
  534. package/dist/types/pattern.types.d.ts.map +1 -1
  535. package/dist/types/quic.d.ts +339 -0
  536. package/dist/types/quic.d.ts.map +1 -0
  537. package/dist/types/quic.js +48 -0
  538. package/dist/types/quic.js.map +1 -0
  539. package/dist/utils/Config.js +3 -3
  540. package/dist/utils/Config.js.map +1 -1
  541. package/dist/utils/Database.d.ts +14 -0
  542. package/dist/utils/Database.d.ts.map +1 -1
  543. package/dist/utils/Database.js +51 -4
  544. package/dist/utils/Database.js.map +1 -1
  545. package/dist/utils/Logger.d.ts.map +1 -1
  546. package/dist/utils/Logger.js +111 -26
  547. package/dist/utils/Logger.js.map +1 -1
  548. package/dist/utils/ProcessExit.d.ts +23 -0
  549. package/dist/utils/ProcessExit.d.ts.map +1 -0
  550. package/dist/utils/ProcessExit.js +40 -0
  551. package/dist/utils/ProcessExit.js.map +1 -0
  552. package/dist/utils/SecureRandom.d.ts +171 -0
  553. package/dist/utils/SecureRandom.d.ts.map +1 -0
  554. package/dist/utils/SecureRandom.js +229 -0
  555. package/dist/utils/SecureRandom.js.map +1 -0
  556. package/dist/utils/SecureUrlValidator.d.ts +167 -0
  557. package/dist/utils/SecureUrlValidator.d.ts.map +1 -0
  558. package/dist/utils/SecureUrlValidator.js +306 -0
  559. package/dist/utils/SecureUrlValidator.js.map +1 -0
  560. package/dist/utils/SecureValidation.d.ts +131 -0
  561. package/dist/utils/SecureValidation.d.ts.map +1 -0
  562. package/dist/utils/SecureValidation.js +265 -0
  563. package/dist/utils/SecureValidation.js.map +1 -0
  564. package/dist/utils/validation.d.ts.map +1 -1
  565. package/dist/utils/validation.js +5 -4
  566. package/dist/utils/validation.js.map +1 -1
  567. package/package.json +31 -8
@@ -0,0 +1,1045 @@
1
+ ---
2
+ name: regression-testing
3
+ description: Strategic regression testing with test selection, impact analysis, and continuous regression management. Use when verifying fixes don't break existing functionality, planning regression suites, or optimizing test execution for faster feedback.
4
+ version: 1.0.0
5
+ category: testing
6
+ tags:
7
+ - regression-testing
8
+ - test-selection
9
+ - impact-analysis
10
+ - change-based-testing
11
+ - continuous-testing
12
+ - test-optimization
13
+ difficulty: intermediate
14
+ estimated_time: 60-90 minutes
15
+ author: agentic-qe
16
+ ---
17
+
18
+ # Regression Testing
19
+
20
+ ## Core Principle
21
+
22
+ **Every fix is a risk. Every change can break something.**
23
+
24
+ Regression testing ensures that new changes don't break existing functionality. It's not about testing everything - it's about smartly testing what matters when changes occur.
25
+
26
+ ## What is Regression Testing?
27
+
28
+ **Regression:** Re-running tests after changes to verify existing functionality still works.
29
+
30
+ **Why needed:**
31
+ - Bug fixes can introduce new bugs
32
+ - New features can break old features
33
+ - Refactoring can change behavior
34
+ - Dependency updates can cause failures
35
+ - Environmental changes affect functionality
36
+
37
+ **Goal:** Catch unintended side effects early and cheaply.
38
+
39
+ ## Types of Regression Testing
40
+
41
+ ### 1. Corrective Regression (No Code Change)
42
+
43
+ **When:** No changes to code, just re-running existing tests
44
+
45
+ **Use case:**
46
+ - Environment change (new database version)
47
+ - Configuration change
48
+ - Infrastructure update
49
+ - Verifying test stability
50
+
51
+ **Strategy:** Re-run full existing test suite
52
+
53
+ **Example:**
54
+ ```bash
55
+ # After upgrading Node.js from 18 to 20
56
+ npm test # Run all tests to ensure nothing broke
57
+ ```
58
+
59
+ ### 2. Progressive Regression (New Features)
60
+
61
+ **When:** New features added, existing tests still valid
62
+
63
+ **Strategy:**
64
+ - Run existing regression suite
65
+ - Add new tests for new features
66
+ - Focus on integration points with existing code
67
+
68
+ **Example:**
69
+ ```
70
+ New Feature: Social login
71
+ Regression Focus:
72
+ ✓ Existing email login still works
73
+ ✓ User profile creation unchanged
74
+ ✓ Session management compatible
75
+ ✓ New social login tests added
76
+ ```
77
+
78
+ ### 3. Selective Regression (Targeted Testing)
79
+
80
+ **When:** Specific modules changed, test only impacted areas
81
+
82
+ **Strategy:**
83
+ - Analyze code changes
84
+ - Identify dependent modules
85
+ - Run tests for changed + dependent code
86
+ - Skip unrelated tests
87
+
88
+ **Benefits:**
89
+ - Faster feedback (minutes vs hours)
90
+ - Resource efficient
91
+ - Scales to large codebases
92
+
93
+ **Example:**
94
+ ```typescript
95
+ // Payment module changed
96
+ // Run tests for:
97
+ - payment.test.ts ✓
98
+ - checkout.test.ts ✓ (depends on payment)
99
+ - order-confirmation.test.ts ✓ (depends on payment)
100
+ // Skip unrelated:
101
+ - user-profile.test.ts ✗ (no dependency)
102
+ - search.test.ts ✗ (no dependency)
103
+ ```
104
+
105
+ ### 4. Complete Regression (Full Suite)
106
+
107
+ **When:**
108
+ - Major refactoring
109
+ - Before release
110
+ - After significant changes
111
+ - Periodic confidence check
112
+
113
+ **Strategy:** Run every test in the suite
114
+
115
+ **Timing:**
116
+ - Nightly builds
117
+ - Weekly full regression
118
+ - Pre-release validation
119
+
120
+ ### 5. Partial Regression (Risk-Based)
121
+
122
+ **When:** Time-constrained, need quick validation
123
+
124
+ **Strategy:**
125
+ - Run critical path tests
126
+ - Run high-risk area tests
127
+ - Run frequently failing tests
128
+ - Skip low-priority tests
129
+
130
+ **Example:**
131
+ ```
132
+ High Priority (always run):
133
+ ✓ Login/authentication
134
+ ✓ Payment processing
135
+ ✓ Data integrity checks
136
+
137
+ Medium Priority (run if time):
138
+ ✓ User profile management
139
+ ✓ Search functionality
140
+
141
+ Low Priority (skip in quick regression):
142
+ ✗ Admin panel features
143
+ ✗ Reporting dashboards
144
+ ```
145
+
146
+ ## Test Selection Strategies
147
+
148
+ ### Strategy 1: Change-Based Selection
149
+
150
+ **Analyze what changed, test accordingly**
151
+
152
+ ```typescript
153
+ // PR changes:
154
+ - src/services/payment.ts
155
+ - src/utils/currency.ts
156
+
157
+ // Select tests covering:
158
+ - payment.test.ts ✓
159
+ - currency.test.ts ✓
160
+ - integration/checkout.test.ts ✓ (uses payment)
161
+ - e2e/purchase-flow.test.ts ✓ (exercises payment)
162
+ ```
163
+
164
+ **Tools:**
165
+ - Git diff analysis
166
+ - Code coverage mapping
167
+ - Dependency graphs
168
+
169
+ **Benefits:**
170
+ - Fast feedback (5-10 min vs 2 hours)
171
+ - 70-90% defect detection
172
+ - Scalable to large suites
173
+
174
+ ### Strategy 2: Risk-Based Selection
175
+
176
+ **Prioritize based on failure risk and impact**
177
+
178
+ ```typescript
179
+ Risk Score = Probability of Failure × Impact
180
+
181
+ High Risk:
182
+ - Payment processing (critical + complex)
183
+ - Authentication (critical + frequently changed)
184
+ - Data migration (high impact)
185
+
186
+ Medium Risk:
187
+ - User profile (moderate impact)
188
+ - Search (stable code)
189
+
190
+ Low Risk:
191
+ - Help documentation (low impact + stable)
192
+ ```
193
+
194
+ ### Strategy 3: Historical Failure Analysis
195
+
196
+ **Test what breaks frequently**
197
+
198
+ ```typescript
199
+ // Track test failures over last 30 days
200
+ const flakyTests = [
201
+ 'checkout.test.ts - 15 failures',
202
+ 'auth.test.ts - 12 failures',
203
+ 'api-integration.test.ts - 8 failures'
204
+ ];
205
+
206
+ // Always include in regression
207
+ ```
208
+
209
+ ### Strategy 4: Code Coverage-Based
210
+
211
+ **Test code with poor existing coverage**
212
+
213
+ ```typescript
214
+ // Coverage analysis
215
+ payment.ts: 45% coverage → High priority for regression
216
+ checkout.ts: 85% coverage → Medium priority
217
+ utils.ts: 95% coverage → Low priority
218
+
219
+ // Focus regression on under-tested code
220
+ ```
221
+
222
+ ### Strategy 5: Time-Budget Selection
223
+
224
+ **Fixed time window, maximize value**
225
+
226
+ ```typescript
227
+ // You have 15 minutes
228
+ const testPriority = [
229
+ { test: 'critical-paths', time: '5 min', value: 'high' },
230
+ { test: 'payment-flows', time: '3 min', value: 'high' },
231
+ { test: 'auth-flows', time: '2 min', value: 'high' },
232
+ { test: 'search', time: '2 min', value: 'medium' },
233
+ { test: 'profiles', time: '3 min', value: 'medium' }
234
+ ];
235
+
236
+ // Run until time budget exhausted
237
+ // Total: 15 min, covering all high-value tests
238
+ ```
239
+
240
+ ## Building a Regression Suite
241
+
242
+ ### Phase 1: Seed with Critical Tests
243
+
244
+ Start with smoke tests - does basic functionality work?
245
+
246
+ ```javascript
247
+ // Smoke test suite (5-10 min)
248
+ describe('Smoke Tests', () => {
249
+ test('App starts without errors', () => {
250
+ expect(app.isRunning()).toBe(true);
251
+ });
252
+
253
+ test('Database connection works', () => {
254
+ expect(db.isConnected()).toBe(true);
255
+ });
256
+
257
+ test('Critical API endpoints respond', () => {
258
+ expect(api.health()).toBe('OK');
259
+ });
260
+
261
+ test('User can login', () => {
262
+ login('test@example.com', 'password');
263
+ expect(session.isActive()).toBe(true);
264
+ });
265
+ });
266
+ ```
267
+
268
+ ### Phase 2: Add Happy Path Tests
269
+
270
+ Cover main user workflows end-to-end.
271
+
272
+ ```javascript
273
+ // Happy path suite (20-30 min)
274
+ describe('Core User Journeys', () => {
275
+ test('User can sign up and verify email', async () => {
276
+ await signup('new@example.com', 'SecurePass123!');
277
+ const email = await getLatestEmail('new@example.com');
278
+ await verifyEmail(email.verificationLink);
279
+ expect(user.isVerified()).toBe(true);
280
+ });
281
+
282
+ test('User can complete purchase', async () => {
283
+ await login();
284
+ await addToCart(product);
285
+ await checkout();
286
+ await submitPayment(validCard);
287
+ expect(order.status()).toBe('completed');
288
+ });
289
+ });
290
+ ```
291
+
292
+ ### Phase 3: Add Edge Cases and Error Scenarios
293
+
294
+ ```javascript
295
+ // Edge case suite (30-45 min)
296
+ describe('Edge Cases', () => {
297
+ test('Handles expired credit card', async () => {
298
+ await checkout();
299
+ await submitPayment(expiredCard);
300
+ expect(error.message()).toContain('Card expired');
301
+ });
302
+
303
+ test('Handles concurrent checkout attempts', async () => {
304
+ const promises = [
305
+ checkout(user1),
306
+ checkout(user1) // Same user, same time
307
+ ];
308
+ const results = await Promise.all(promises);
309
+ expect(results.filter(r => r.success).length).toBe(1);
310
+ });
311
+ });
312
+ ```
313
+
314
+ ### Phase 4: Add Integration Tests
315
+
316
+ ```javascript
317
+ // Integration suite (45-60 min)
318
+ describe('System Integration', () => {
319
+ test('Payment gateway integration works', async () => {
320
+ const result = await paymentGateway.charge(card, amount);
321
+ expect(result.status).toBe('succeeded');
322
+ expect(db.transaction).toHaveBeenRecorded();
323
+ expect(email.receipt).toHaveBeenSent();
324
+ });
325
+
326
+ test('Inventory sync with warehouse', async () => {
327
+ await purchaseProduct(product);
328
+ const inventory = await warehouse.checkStock(product.id);
329
+ expect(inventory.quantity).toBe(originalQuantity - 1);
330
+ });
331
+ });
332
+ ```
333
+
334
+ ### Regression Suite Pyramid
335
+
336
+ ```
337
+ /\
338
+ / \ Full Regression (weekly)
339
+ / \ - All tests (2-4 hours)
340
+ /------\
341
+ / \ Extended Regression (nightly)
342
+ / \ - All unit + integration + critical E2E (30-60 min)
343
+ /------------\
344
+ / \ Quick Regression (per commit)
345
+ /________________\ - Changed code tests + smoke tests (5-10 min)
346
+ ```
347
+
348
+ ## Test Impact Analysis
349
+
350
+ ### Mapping Tests to Code
351
+
352
+ **Build dependency graph:**
353
+
354
+ ```typescript
355
+ // Track which tests cover which code
356
+ const testCoverage = {
357
+ 'payment.ts': [
358
+ 'payment.test.ts',
359
+ 'checkout.integration.test.ts',
360
+ 'e2e/purchase.test.ts'
361
+ ],
362
+ 'user.ts': [
363
+ 'user.test.ts',
364
+ 'auth.integration.test.ts',
365
+ 'e2e/signup.test.ts'
366
+ ]
367
+ };
368
+
369
+ // When payment.ts changes, run all related tests
370
+ function selectTests(changedFiles) {
371
+ const testsToRun = new Set();
372
+ changedFiles.forEach(file => {
373
+ testCoverage[file]?.forEach(test => testsToRun.add(test));
374
+ });
375
+ return Array.from(testsToRun);
376
+ }
377
+ ```
378
+
379
+ ### Transitive Dependencies
380
+
381
+ **Account for indirect dependencies:**
382
+
383
+ ```typescript
384
+ // Direct dependency
385
+ payment.ts → uses → currency.ts
386
+
387
+ // Transitive dependency
388
+ checkout.ts → uses → payment.ts → uses → currency.ts
389
+
390
+ // When currency.ts changes, test:
391
+ - currency.test.ts (direct)
392
+ - payment.test.ts (direct dependency on currency)
393
+ - checkout.test.ts (transitive dependency)
394
+ ```
395
+
396
+ ### Static Analysis for Test Selection
397
+
398
+ ```typescript
399
+ // Analyze imports to build dependency graph
400
+ import ts from 'typescript';
401
+
402
+ function findDependencies(sourceFile: string): string[] {
403
+ const program = ts.createProgram([sourceFile], {});
404
+ const checker = program.getTypeChecker();
405
+
406
+ // Extract all imports
407
+ const dependencies = [];
408
+ const sourceFileObj = program.getSourceFile(sourceFile);
409
+
410
+ ts.forEachChild(sourceFileObj, node => {
411
+ if (ts.isImportDeclaration(node)) {
412
+ dependencies.push(node.moduleSpecifier.text);
413
+ }
414
+ });
415
+
416
+ return dependencies;
417
+ }
418
+ ```
419
+
420
+ ## Regression Test Optimization
421
+
422
+ ### Technique 1: Test Parallelization
423
+
424
+ **Run tests concurrently for faster feedback**
425
+
426
+ ```javascript
427
+ // Sequential: 60 min
428
+ test1(); // 20 min
429
+ test2(); // 20 min
430
+ test3(); // 20 min
431
+
432
+ // Parallel: 20 min
433
+ Promise.all([
434
+ test1(), // 20 min
435
+ test2(), // 20 min
436
+ test3() // 20 min
437
+ ]);
438
+
439
+ // Jest configuration
440
+ module.exports = {
441
+ maxWorkers: '50%', // Use half CPU cores
442
+ testTimeout: 30000
443
+ };
444
+ ```
445
+
446
+ ### Technique 2: Test Sharding
447
+
448
+ **Distribute tests across multiple machines**
449
+
450
+ ```yaml
451
+ # CI pipeline with 4 workers
452
+ jobs:
453
+ test:
454
+ strategy:
455
+ matrix:
456
+ shard: [1, 2, 3, 4]
457
+ steps:
458
+ - run: npm test -- --shard=${{ matrix.shard }}/4
459
+
460
+ # Each worker runs 25% of tests
461
+ # Total time: 60 min / 4 = 15 min
462
+ ```
463
+
464
+ ### Technique 3: Incremental Testing
465
+
466
+ **Test only what changed since last run**
467
+
468
+ ```typescript
469
+ // Track test results
470
+ const lastRun = {
471
+ timestamp: '2025-10-24T10:00:00Z',
472
+ passed: ['test1', 'test2', 'test3'],
473
+ failed: []
474
+ };
475
+
476
+ // Current run
477
+ const currentChanges = ['payment.ts', 'checkout.ts'];
478
+
479
+ // Run:
480
+ // 1. Tests for changed code (payment, checkout)
481
+ // 2. Tests that failed last time (if any)
482
+ // Skip tests that passed last time for unchanged code
483
+ ```
484
+
485
+ ### Technique 4: Smoke Test Fast Fail
486
+
487
+ **Run fastest, most critical tests first**
488
+
489
+ ```yaml
490
+ # CI Pipeline
491
+ stages:
492
+ - smoke-test: # 2 min
493
+ - critical-paths
494
+ - fail-fast: true # Stop if smoke fails
495
+
496
+ - quick-regression: # 10 min
497
+ - changed-code-tests
498
+ - fail-fast: true
499
+
500
+ - full-regression: # 60 min
501
+ - all-tests
502
+ - fail-fast: false # Run all to find all issues
503
+ ```
504
+
505
+ ### Technique 5: Test Flakiness Removal
506
+
507
+ **Eliminate unreliable tests**
508
+
509
+ ```typescript
510
+ // Track test stability over 100 runs
511
+ const testStability = {
512
+ 'reliable-test': { runs: 100, passes: 100, passRate: 1.00 },
513
+ 'flaky-test': { runs: 100, passes: 87, passRate: 0.87 },
514
+ 'unstable-test': { runs: 100, passes: 64, passRate: 0.64 }
515
+ };
516
+
517
+ // Strategy:
518
+ // passRate >= 0.98 → Keep in regression suite
519
+ // passRate 0.90-0.98 → Fix flakiness
520
+ // passRate < 0.90 → Quarantine until fixed
521
+
522
+ // Flaky tests waste time and reduce confidence
523
+ ```
524
+
525
+ ## Continuous Regression Testing
526
+
527
+ ### Regression in CI/CD Pipeline
528
+
529
+ ```yaml
530
+ # .github/workflows/regression.yml
531
+ name: Regression Testing
532
+
533
+ on:
534
+ pull_request:
535
+ branches: [main]
536
+ push:
537
+ branches: [main]
538
+ schedule:
539
+ - cron: '0 2 * * *' # Nightly at 2 AM
540
+
541
+ jobs:
542
+ quick-regression:
543
+ name: Quick Regression (per PR)
544
+ runs-on: ubuntu-latest
545
+ timeout-minutes: 15
546
+ steps:
547
+ - uses: actions/checkout@v3
548
+ - name: Changed file analysis
549
+ id: changes
550
+ uses: dorny/paths-filter@v2
551
+ with:
552
+ filters: |
553
+ payment:
554
+ - 'src/payment/**'
555
+ auth:
556
+ - 'src/auth/**'
557
+
558
+ - name: Run affected tests
559
+ run: |
560
+ npm run test:payment
561
+ npm run test:auth
562
+ if: steps.changes.outputs.payment == 'true' || steps.changes.outputs.auth == 'true'
563
+
564
+ - name: Smoke tests (always)
565
+ run: npm run test:smoke
566
+
567
+ nightly-regression:
568
+ name: Nightly Full Regression
569
+ runs-on: ubuntu-latest
570
+ timeout-minutes: 120
571
+ if: github.event_name == 'schedule'
572
+ steps:
573
+ - name: Run all tests
574
+ run: npm test
575
+
576
+ - name: Coverage report
577
+ run: npm run coverage
578
+
579
+ - name: Upload results
580
+ uses: actions/upload-artifact@v3
581
+ with:
582
+ name: regression-results
583
+ path: test-results/
584
+ ```
585
+
586
+ ### Pre-Commit Regression
587
+
588
+ **Local regression before committing**
589
+
590
+ ```bash
591
+ # .git/hooks/pre-commit
592
+ #!/bin/bash
593
+
594
+ echo "Running quick regression tests..."
595
+
596
+ # Get staged files
597
+ STAGED_FILES=$(git diff --cached --name-only --diff-filter=ACM | grep ".ts$")
598
+
599
+ if [ -z "$STAGED_FILES" ]; then
600
+ echo "No TypeScript files changed, skipping tests"
601
+ exit 0
602
+ fi
603
+
604
+ # Run tests for changed files
605
+ npm run test:changed -- $STAGED_FILES
606
+
607
+ if [ $? -ne 0 ]; then
608
+ echo "❌ Regression tests failed. Commit aborted."
609
+ exit 1
610
+ fi
611
+
612
+ echo "✅ Regression tests passed"
613
+ exit 0
614
+ ```
615
+
616
+ ### Pre-Deployment Regression
617
+
618
+ **Final validation before production**
619
+
620
+ ```yaml
621
+ # Deployment pipeline
622
+ deploy:
623
+ steps:
624
+ - name: Production smoke tests
625
+ run: npm run test:smoke:production
626
+ env:
627
+ API_URL: https://staging.example.com
628
+
629
+ - name: Critical path regression
630
+ run: npm run test:critical-paths
631
+
632
+ - name: Security regression
633
+ run: npm run test:security
634
+
635
+ - name: Performance baseline check
636
+ run: npm run test:performance
637
+
638
+ - name: Deploy to production
639
+ if: success()
640
+ run: ./deploy.sh production
641
+ ```
642
+
643
+ ## Regression Test Maintenance
644
+
645
+ ### Anti-Pattern: Test Rot
646
+
647
+ **Problem:** Tests become outdated, irrelevant, or broken
648
+
649
+ ```javascript
650
+ // BAD: Outdated test
651
+ test('User can pay with PayPal', () => {
652
+ // PayPal integration removed 6 months ago
653
+ // Test still exists but is meaningless
654
+ });
655
+
656
+ // GOOD: Remove obsolete tests
657
+ // Delete test when feature is removed
658
+ ```
659
+
660
+ ### Strategy: Regular Test Review
661
+
662
+ ```markdown
663
+ ## Quarterly Test Audit
664
+
665
+ Review each test:
666
+ - [ ] Is feature still in product?
667
+ - [ ] Does test provide value?
668
+ - [ ] Is test reliable (not flaky)?
669
+ - [ ] Is test documented/understandable?
670
+ - [ ] Execution time acceptable?
671
+
672
+ Actions:
673
+ - Delete: Obsolete tests
674
+ - Fix: Flaky tests
675
+ - Optimize: Slow tests
676
+ - Document: Unclear tests
677
+ - Consolidate: Duplicate tests
678
+ ```
679
+
680
+ ### Strategy: Test Suite Metrics
681
+
682
+ ```typescript
683
+ interface TestSuiteHealth {
684
+ totalTests: number;
685
+ executionTime: string;
686
+ passRate: number;
687
+ flakiness: number;
688
+ coverage: number;
689
+ lastUpdated: Date;
690
+ }
691
+
692
+ const regressionHealth: TestSuiteHealth = {
693
+ totalTests: 1247,
694
+ executionTime: '18 min',
695
+ passRate: 0.987, // 98.7% pass rate
696
+ flakiness: 0.013, // 1.3% flaky tests (target: <2%)
697
+ coverage: 0.82, // 82% code coverage
698
+ lastUpdated: new Date('2025-10-24')
699
+ };
700
+
701
+ // Track over time
702
+ // Trend: execution time ↑ → need optimization
703
+ // Trend: flakiness ↑ → need stabilization
704
+ // Trend: coverage ↓ → add tests for new code
705
+ ```
706
+
707
+ ### Strategy: Test Ownership
708
+
709
+ ```typescript
710
+ // tests/payment/checkout.test.ts
711
+ /**
712
+ * @owner team-payments
713
+ * @created 2025-06-15
714
+ * @criticality high
715
+ * @executionTime 45s
716
+ * @lastReview 2025-09-20
717
+ *
718
+ * Tests the complete checkout flow including:
719
+ * - Cart validation
720
+ * - Payment processing
721
+ * - Order confirmation
722
+ * - Email receipt
723
+ */
724
+
725
+ // Benefits:
726
+ // - Clear responsibility for maintenance
727
+ // - Context for why test exists
728
+ // - Trigger for regular review
729
+ ```
730
+
731
+ ## Regression Testing Best Practices
732
+
733
+ ### ✅ DO: Automate Regression Tests
734
+
735
+ **Manual regression doesn't scale**
736
+
737
+ ```typescript
738
+ // Automated regression runs on every PR
739
+ // Catches issues in minutes, not days
740
+ ```
741
+
742
+ ### ✅ DO: Use Descriptive Test Names
743
+
744
+ ```javascript
745
+ // BAD
746
+ test('test1', () => { ... });
747
+
748
+ // GOOD
749
+ test('checkout fails gracefully when payment gateway is down', () => {
750
+ mockPaymentGateway.simulateOutage();
751
+ const result = await checkout(cart);
752
+ expect(result.status).toBe('payment-failed');
753
+ expect(result.userMessage).toContain('payment service unavailable');
754
+ });
755
+ ```
756
+
757
+ ### ✅ DO: Keep Tests Independent
758
+
759
+ ```javascript
760
+ // BAD: Tests depend on execution order
761
+ test('create user', () => {
762
+ user = createUser('test@example.com');
763
+ });
764
+
765
+ test('user can login', () => {
766
+ login(user); // Fails if previous test didn't run
767
+ });
768
+
769
+ // GOOD: Each test independent
770
+ test('user can login', () => {
771
+ const user = createUser('test@example.com'); // Setup in test
772
+ login(user);
773
+ expect(session.isActive()).toBe(true);
774
+ });
775
+ ```
776
+
777
+ ### ✅ DO: Use Setup/Teardown
778
+
779
+ ```javascript
780
+ describe('Payment Tests', () => {
781
+ beforeEach(async () => {
782
+ // Clean slate for each test
783
+ await db.clean();
784
+ await db.seed(testData);
785
+ });
786
+
787
+ afterEach(async () => {
788
+ // Cleanup
789
+ await db.clean();
790
+ });
791
+
792
+ test('payment succeeds with valid card', async () => {
793
+ // Test has clean environment
794
+ });
795
+ });
796
+ ```
797
+
798
+ ### ❌ DON'T: Test Everything, Every Time
799
+
800
+ ```typescript
801
+ // DON'T run 4-hour full regression on every commit
802
+ // DO run smart selection based on changes
803
+ ```
804
+
805
+ ### ❌ DON'T: Ignore Flaky Tests
806
+
807
+ ```typescript
808
+ // DON'T keep flaky tests and ignore failures
809
+ // DO fix or quarantine flaky tests immediately
810
+ ```
811
+
812
+ ### ❌ DON'T: Duplicate Test Coverage
813
+
814
+ ```typescript
815
+ // DON'T test same thing at multiple levels
816
+ // Unit test: currency conversion logic
817
+ // Integration test: currency conversion in payment
818
+ // E2E test: full purchase with currency conversion
819
+
820
+ // DO test each concern at appropriate level
821
+ // Unit: Conversion logic
822
+ // Integration: Payment service uses conversion correctly
823
+ // E2E: Happy path only (one currency conversion example)
824
+ ```
825
+
826
+ ## Using with QE Agents
827
+
828
+ ### Intelligent Test Selection
829
+
830
+ **qe-regression-risk-analyzer** performs smart test selection:
831
+
832
+ ```typescript
833
+ // Analyze PR for regression risk
834
+ const analysis = await agent.analyzeRegressionRisk({
835
+ pr: 1234,
836
+ strategy: 'change-based-with-risk',
837
+ timebudget: '15min'
838
+ });
839
+
840
+ // Returns:
841
+ // {
842
+ // mustRun: ['payment.test.ts', 'checkout.integration.test.ts'],
843
+ // shouldRun: ['order.test.ts', 'inventory.test.ts'],
844
+ // canSkip: ['profile.test.ts', 'search.test.ts'],
845
+ // estimatedTime: '12 min',
846
+ // riskCoverage: 0.94
847
+ // }
848
+ ```
849
+
850
+ ### Automated Test Generation for Regression
851
+
852
+ **qe-test-generator** creates regression tests from bugs:
853
+
854
+ ```typescript
855
+ // Bug found in production
856
+ const bug = {
857
+ id: 'BUG-567',
858
+ description: 'Checkout fails when user has > 100 items in cart',
859
+ severity: 'high'
860
+ };
861
+
862
+ // Agent generates regression test
863
+ await agent.generateRegressionTest({
864
+ bug: bug,
865
+ preventRecurrence: true
866
+ });
867
+
868
+ // Creates:
869
+ // tests/regression/BUG-567-large-cart.test.ts
870
+ test('checkout succeeds with 100+ items in cart', async () => {
871
+ const cart = generateCart(150); // Edge case that failed
872
+ const result = await checkout(cart);
873
+ expect(result.status).toBe('success');
874
+ });
875
+ ```
876
+
877
+ ### Continuous Regression Monitoring
878
+
879
+ **qe-quality-analyzer** tracks regression suite health:
880
+
881
+ ```typescript
882
+ // Monitor regression suite metrics
883
+ const health = await agent.analyzeRegressionHealth({
884
+ suite: 'main-regression',
885
+ period: '30d'
886
+ });
887
+
888
+ // Returns insights:
889
+ // {
890
+ // executionTimeTrend: 'increasing', // ⚠️ Getting slower
891
+ // flakinessRate: 0.03, // ⚠️ Above 2% threshold
892
+ // coverageTrend: 'stable', // ✅ Maintaining coverage
893
+ // recommendations: [
894
+ // 'Parallelize slow tests',
895
+ // 'Fix 12 flaky tests',
896
+ // 'Remove 5 obsolete tests'
897
+ // ]
898
+ // }
899
+ ```
900
+
901
+ ### Regression Testing in CI/CD
902
+
903
+ **qe-test-executor** orchestrates regression runs:
904
+
905
+ ```typescript
906
+ // Execute smart regression in CI pipeline
907
+ await agent.executeRegression({
908
+ trigger: 'pull-request',
909
+ strategy: 'selective',
910
+ changedFiles: ['src/payment/stripe.ts', 'src/models/order.ts'],
911
+ parallel: true,
912
+ failFast: false
913
+ });
914
+
915
+ // Execution plan:
916
+ // 1. Analyze changed files
917
+ // 2. Select impacted tests (change-based)
918
+ // 3. Add critical path tests (risk-based)
919
+ // 4. Run in parallel across 4 workers
920
+ // 5. Report results with coverage metrics
921
+ ```
922
+
923
+ ### Visual Regression Testing
924
+
925
+ **qe-visual-tester** catches UI regressions:
926
+
927
+ ```typescript
928
+ // Detect visual changes after code update
929
+ await agent.visualRegression({
930
+ baseline: 'main-branch',
931
+ current: 'feature-branch',
932
+ pages: ['checkout', 'product-detail', 'cart'],
933
+ threshold: 0.01 // 1% pixel difference tolerance
934
+ });
935
+
936
+ // Returns:
937
+ // {
938
+ // changed: ['checkout-page'],
939
+ // diff: {
940
+ // 'checkout-page': {
941
+ // pixelDifference: 234,
942
+ // percentageChange: 0.023,
943
+ // screenshot: 'diff-checkout.png',
944
+ // verdict: 'review-required'
945
+ // }
946
+ // }
947
+ // }
948
+ ```
949
+
950
+ ### Fleet-Coordinated Regression
951
+
952
+ ```typescript
953
+ // Multiple agents collaborate on regression testing
954
+ const regressionFleet = await FleetManager.coordinate({
955
+ strategy: 'comprehensive-regression',
956
+ agents: [
957
+ 'qe-regression-risk-analyzer', // 1. Analyze changes, select tests
958
+ 'qe-test-generator', // 2. Generate missing regression tests
959
+ 'qe-test-executor', // 3. Execute selected tests
960
+ 'qe-coverage-analyzer', // 4. Analyze coverage gaps
961
+ 'qe-visual-tester', // 5. Check visual regressions
962
+ 'qe-quality-gate' // 6. Make GO/NO-GO decision
963
+ ],
964
+ topology: 'sequential'
965
+ });
966
+
967
+ // Execute full regression workflow
968
+ const result = await regressionFleet.execute({
969
+ pr: 1234,
970
+ release: 'v3.2.0',
971
+ riskTolerance: 'low'
972
+ });
973
+
974
+ // Returns comprehensive regression report
975
+ ```
976
+
977
+ ### Production Regression Detection
978
+
979
+ **qe-production-intelligence** detects regressions in production:
980
+
981
+ ```typescript
982
+ // Monitor production for regression signals
983
+ await agent.detectProductionRegression({
984
+ baseline: 'v3.1.0',
985
+ current: 'v3.2.0',
986
+ metrics: ['error-rate', 'latency', 'conversion'],
987
+ alertThreshold: 0.1 // 10% degradation
988
+ });
989
+
990
+ // Alerts if:
991
+ // - Error rate increases > 10%
992
+ // - Latency degrades > 10%
993
+ // - Conversion drops > 10%
994
+
995
+ // Enables fast rollback before major impact
996
+ ```
997
+
998
+ ---
999
+
1000
+ ## Related Skills
1001
+
1002
+ **Core Quality Practices:**
1003
+ - [agentic-quality-engineering](../agentic-quality-engineering/) - Agent-driven regression orchestration
1004
+ - [holistic-testing-pact](../holistic-testing-pact/) - Regression across test quadrants
1005
+ - [risk-based-testing](../risk-based-testing/) - Risk-based regression prioritization
1006
+
1007
+ **Testing Approaches:**
1008
+ - [test-automation-strategy](../test-automation-strategy/) - Building automation pyramid with regression
1009
+ - [api-testing-patterns](../api-testing-patterns/) - API regression testing
1010
+ - [exploratory-testing-advanced](../exploratory-testing-advanced/) - Exploratory regression sessions
1011
+ - [performance-testing](../performance-testing/) - Performance regression testing
1012
+ - [security-testing](../security-testing/) - Security regression scans
1013
+
1014
+ **Development Practices:**
1015
+ - [tdd-london-chicago](../tdd-london-chicago/) - Test-first creates regression safety
1016
+ - [xp-practices](../xp-practices/) - Continuous integration with regression
1017
+ - [refactoring-patterns](../refactoring-patterns/) - Safe refactoring with regression coverage
1018
+
1019
+ **Communication:**
1020
+ - [quality-metrics](../quality-metrics/) - Regression test effectiveness metrics
1021
+ - [bug-reporting-excellence](../bug-reporting-excellence/) - Regression test creation from bugs
1022
+
1023
+ ---
1024
+
1025
+ ## Remember
1026
+
1027
+ **Regression testing is insurance against change.**
1028
+
1029
+ Every code change is a risk. Regression testing mitigates that risk by:
1030
+ - Verifying existing functionality still works
1031
+ - Catching unintended side effects early
1032
+ - Building confidence for continuous deployment
1033
+ - Enabling safe refactoring and evolution
1034
+
1035
+ **Good regression testing is strategic, not exhaustive.**
1036
+
1037
+ You cannot test everything, every time. Smart regression testing:
1038
+ - Selects tests based on changes and risk
1039
+ - Runs fast enough for continuous feedback
1040
+ - Maintains reliability (no flaky tests)
1041
+ - Evolves with the product
1042
+
1043
+ **Perfect regression coverage is impossible. Effective regression testing is achievable.**
1044
+
1045
+ **With Agents**: Agents excel at intelligent test selection, impact analysis, automated test generation from bugs, and continuous regression monitoring. Use agents to make regression testing data-driven, efficient, and scalable.