agentic-qe 3.7.9 → 3.7.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/skills/.validation/README.md +111 -111
- package/.claude/skills/.validation/examples/chaos-engineering-output.example.json +530 -530
- package/.claude/skills/.validation/examples/performance-testing-output.example.json +252 -252
- package/.claude/skills/.validation/examples/security-testing-output.example.json +413 -413
- package/.claude/skills/.validation/examples/testability-scoring-output.example.json +350 -350
- package/.claude/skills/.validation/schemas/skill-eval.schema.json +462 -462
- package/.claude/skills/.validation/schemas/skill-frontmatter.schema.json +341 -341
- package/.claude/skills/.validation/schemas/skill-output-meta.schema.json +199 -199
- package/.claude/skills/.validation/schemas/skill-output.template.json +610 -610
- package/.claude/skills/.validation/skill-validation-mcp-integration.md +250 -250
- package/.claude/skills/.validation/templates/eval.template.yaml +366 -366
- package/.claude/skills/.validation/templates/schemas/output.json +145 -145
- package/.claude/skills/.validation/templates/security-testing-eval.template.yaml +725 -725
- package/.claude/skills/.validation/templates/skill-frontmatter.example.yaml +225 -225
- package/.claude/skills/.validation/test-data/invalid-output.json +5 -5
- package/.claude/skills/.validation/test-data/minimal-output.json +9 -9
- package/.claude/skills/.validation/test-data/sample-output.json +73 -73
- package/.claude/skills/a11y-ally/evals/a11y-ally.yaml +376 -376
- package/.claude/skills/a11y-ally/schemas/output.json +549 -549
- package/.claude/skills/accessibility-testing/evals/accessibility-testing.yaml +719 -719
- package/.claude/skills/accessibility-testing/schemas/output.json +776 -776
- package/.claude/skills/accessibility-testing/test-data/sample-output.json +191 -191
- package/.claude/skills/agentic-quality-engineering/schemas/output.json +577 -577
- package/.claude/skills/api-testing-patterns/evals/api-testing-patterns.yaml +696 -696
- package/.claude/skills/api-testing-patterns/schemas/output.json +845 -845
- package/.claude/skills/aqe-v2-v3-migration/schemas/output.json +513 -513
- package/.claude/skills/brutal-honesty-review/schemas/output.json +291 -291
- package/.claude/skills/bug-reporting-excellence/schemas/output.json +288 -288
- package/.claude/skills/chaos-engineering-resilience/evals/chaos-engineering-resilience.yaml +761 -761
- package/.claude/skills/chaos-engineering-resilience/schemas/output.json +1205 -1205
- package/.claude/skills/cicd-pipeline-qe-orchestrator/evals/cicd-pipeline-qe-orchestrator.yaml +157 -157
- package/.claude/skills/cicd-pipeline-qe-orchestrator/schemas/output.json +542 -542
- package/.claude/skills/code-review-quality/schemas/output.json +264 -264
- package/.claude/skills/compatibility-testing/evals/compatibility-testing.yaml +410 -410
- package/.claude/skills/compatibility-testing/schemas/output.json +551 -551
- package/.claude/skills/compliance-testing/evals/compliance-testing.yaml +1107 -1107
- package/.claude/skills/compliance-testing/schemas/output.json +845 -845
- package/.claude/skills/consultancy-practices/schemas/output.json +282 -282
- package/.claude/skills/contract-testing/evals/contract-testing.yaml +748 -748
- package/.claude/skills/contract-testing/schemas/output.json +638 -638
- package/.claude/skills/database-testing/evals/database-testing.yaml +968 -968
- package/.claude/skills/database-testing/schemas/output.json +1446 -1446
- package/.claude/skills/debug-loop/SKILL.md +61 -61
- package/.claude/skills/enterprise-integration-testing/SKILL.md +735 -735
- package/.claude/skills/enterprise-integration-testing/evals/enterprise-integration-testing.yaml +158 -158
- package/.claude/skills/enterprise-integration-testing/schemas/output.json +74 -74
- package/.claude/skills/enterprise-integration-testing/scripts/validate-config.json +25 -25
- package/.claude/skills/iterative-loop/SKILL.md +371 -371
- package/.claude/skills/localization-testing/evals/localization-testing.yaml +544 -544
- package/.claude/skills/localization-testing/schemas/output.json +325 -325
- package/.claude/skills/middleware-testing-patterns/SKILL.md +798 -798
- package/.claude/skills/middleware-testing-patterns/evals/middleware-testing-patterns.yaml +153 -153
- package/.claude/skills/middleware-testing-patterns/schemas/output.json +58 -58
- package/.claude/skills/middleware-testing-patterns/scripts/validate-config.json +25 -25
- package/.claude/skills/mobile-testing/evals/mobile-testing.yaml +537 -537
- package/.claude/skills/mobile-testing/schemas/output.json +318 -318
- package/.claude/skills/mutation-testing/evals/mutation-testing.yaml +652 -652
- package/.claude/skills/mutation-testing/schemas/output.json +707 -707
- package/.claude/skills/mutation-testing/test-data/sample-output.json +295 -295
- package/.claude/skills/n8n-expression-testing/evals/n8n-expression-testing.yaml +450 -450
- package/.claude/skills/n8n-expression-testing/schemas/output.json +369 -369
- package/.claude/skills/n8n-integration-testing-patterns/evals/n8n-integration-testing-patterns.yaml +522 -522
- package/.claude/skills/n8n-integration-testing-patterns/schemas/output.json +291 -291
- package/.claude/skills/n8n-security-testing/evals/n8n-security-testing.yaml +493 -493
- package/.claude/skills/n8n-security-testing/schemas/output.json +293 -293
- package/.claude/skills/n8n-trigger-testing-strategies/evals/n8n-trigger-testing-strategies.yaml +500 -500
- package/.claude/skills/n8n-trigger-testing-strategies/schemas/output.json +295 -295
- package/.claude/skills/n8n-workflow-testing-fundamentals/evals/n8n-workflow-testing-fundamentals.yaml +497 -497
- package/.claude/skills/n8n-workflow-testing-fundamentals/schemas/output.json +254 -254
- package/.claude/skills/observability-testing-patterns/SKILL.md +930 -930
- package/.claude/skills/observability-testing-patterns/evals/observability-testing-patterns.yaml +157 -157
- package/.claude/skills/observability-testing-patterns/schemas/output.json +58 -58
- package/.claude/skills/observability-testing-patterns/scripts/validate-config.json +25 -25
- package/.claude/skills/pentest-validation/SKILL.md +268 -268
- package/.claude/skills/pentest-validation/evals/pentest-validation.yaml +708 -708
- package/.claude/skills/pentest-validation/schemas/output.json +281 -281
- package/.claude/skills/performance-analysis/evals/performance-analysis.yaml +144 -144
- package/.claude/skills/performance-analysis/schemas/output.json +588 -588
- package/.claude/skills/performance-testing/evals/performance-testing.yaml +772 -772
- package/.claude/skills/performance-testing/schemas/output.json +1184 -1184
- package/.claude/skills/pr-review/SKILL.md +61 -61
- package/.claude/skills/qcsd-cicd-swarm/SKILL.md +2206 -2206
- package/.claude/skills/qcsd-cicd-swarm/evals/qcsd-cicd-swarm.yaml +211 -211
- package/.claude/skills/qcsd-cicd-swarm/schemas/output.json +86 -86
- package/.claude/skills/qcsd-cicd-swarm/scripts/validate-config.json +30 -30
- package/.claude/skills/qcsd-development-swarm/SKILL.md +2154 -2154
- package/.claude/skills/qcsd-development-swarm/evals/qcsd-development-swarm.yaml +162 -162
- package/.claude/skills/qcsd-development-swarm/schemas/output.json +72 -72
- package/.claude/skills/qcsd-development-swarm/scripts/validate-config.json +25 -25
- package/.claude/skills/qcsd-ideation-swarm/evals/qcsd-ideation-swarm.yaml +138 -138
- package/.claude/skills/qcsd-ideation-swarm/schemas/output.json +568 -568
- package/.claude/skills/qcsd-production-swarm/SKILL.md +2781 -2781
- package/.claude/skills/qcsd-production-swarm/evals/qcsd-production-swarm.yaml +246 -246
- package/.claude/skills/qcsd-production-swarm/schemas/output.json +505 -505
- package/.claude/skills/qcsd-production-swarm/scripts/validate-config.json +25 -25
- package/.claude/skills/qe-chaos-resilience/evals/qe-chaos-resilience.yaml +443 -443
- package/.claude/skills/qe-chaos-resilience/schemas/output.json +314 -314
- package/.claude/skills/qe-code-intelligence/evals/qe-code-intelligence.yaml +459 -459
- package/.claude/skills/qe-code-intelligence/schemas/output.json +315 -315
- package/.claude/skills/qe-contract-testing/evals/qe-contract-testing.yaml +513 -513
- package/.claude/skills/qe-contract-testing/schemas/output.json +295 -295
- package/.claude/skills/qe-coverage-analysis/evals/qe-coverage-analysis.yaml +494 -494
- package/.claude/skills/qe-coverage-analysis/schemas/output.json +286 -286
- package/.claude/skills/qe-defect-intelligence/evals/qe-defect-intelligence.yaml +511 -511
- package/.claude/skills/qe-defect-intelligence/schemas/output.json +283 -283
- package/.claude/skills/qe-iterative-loop/schemas/output.json +264 -264
- package/.claude/skills/qe-learning-optimization/evals/qe-learning-optimization.yaml +144 -144
- package/.claude/skills/qe-learning-optimization/schemas/output.json +288 -288
- package/.claude/skills/qe-quality-assessment/evals/qe-quality-assessment.yaml +506 -506
- package/.claude/skills/qe-quality-assessment/schemas/output.json +550 -550
- package/.claude/skills/qe-requirements-validation/evals/qe-requirements-validation.yaml +598 -598
- package/.claude/skills/qe-requirements-validation/schemas/output.json +587 -587
- package/.claude/skills/qe-security-compliance/evals/qe-security-compliance.yaml +595 -595
- package/.claude/skills/qe-security-compliance/schemas/output.json +498 -498
- package/.claude/skills/qe-test-execution/evals/qe-test-execution.yaml +607 -607
- package/.claude/skills/qe-test-execution/schemas/output.json +529 -529
- package/.claude/skills/qe-test-generation/evals/qe-test-generation.yaml +148 -148
- package/.claude/skills/qe-test-generation/schemas/output.json +439 -439
- package/.claude/skills/qe-visual-accessibility/evals/qe-visual-accessibility.yaml +142 -142
- package/.claude/skills/qe-visual-accessibility/schemas/output.json +491 -491
- package/.claude/skills/quality-metrics/evals/quality-metrics.yaml +494 -494
- package/.claude/skills/quality-metrics/schemas/output.json +403 -403
- package/.claude/skills/refactoring-patterns/schemas/output.json +475 -475
- package/.claude/skills/regression-testing/evals/regression-testing.yaml +504 -504
- package/.claude/skills/regression-testing/schemas/output.json +311 -311
- package/.claude/skills/release/SKILL.md +347 -347
- package/.claude/skills/risk-based-testing/evals/risk-based-testing.yaml +141 -141
- package/.claude/skills/risk-based-testing/schemas/output.json +480 -480
- package/.claude/skills/security-testing/evals/security-testing.yaml +789 -789
- package/.claude/skills/security-testing/schemas/output.json +879 -879
- package/.claude/skills/security-visual-testing/evals/security-visual-testing.yaml +163 -163
- package/.claude/skills/security-visual-testing/schemas/output.json +486 -486
- package/.claude/skills/sfdipot-product-factors/SKILL.md +239 -239
- package/.claude/skills/sherlock-review/schemas/output.json +297 -297
- package/.claude/skills/shift-left-testing/evals/shift-left-testing.yaml +145 -145
- package/.claude/skills/shift-left-testing/schemas/output.json +459 -459
- package/.claude/skills/shift-right-testing/evals/shift-right-testing.yaml +147 -147
- package/.claude/skills/shift-right-testing/schemas/output.json +418 -418
- package/.claude/skills/skills-manifest.json +1 -1
- package/.claude/skills/tdd-london-chicago/schemas/output.json +444 -444
- package/.claude/skills/technical-writing/schemas/output.json +268 -268
- package/.claude/skills/test-automation-strategy/evals/test-automation-strategy.yaml +148 -148
- package/.claude/skills/test-automation-strategy/schemas/output.json +444 -444
- package/.claude/skills/test-data-management/evals/test-data-management.yaml +504 -504
- package/.claude/skills/test-data-management/schemas/output.json +284 -284
- package/.claude/skills/test-design-techniques/evals/test-design-techniques.yaml +142 -142
- package/.claude/skills/test-design-techniques/schemas/output.json +295 -295
- package/.claude/skills/test-environment-management/schemas/output.json +310 -310
- package/.claude/skills/test-idea-rewriting/SKILL.md +229 -229
- package/.claude/skills/test-reporting-analytics/evals/test-reporting-analytics.yaml +155 -155
- package/.claude/skills/test-reporting-analytics/schemas/output.json +329 -329
- package/.claude/skills/testability-scoring/evals/testability-scoring.yaml +814 -814
- package/.claude/skills/testability-scoring/resources/templates/config.template.js +84 -84
- package/.claude/skills/testability-scoring/schemas/output.json +606 -606
- package/.claude/skills/testability-scoring/scripts/generate-html-report.js +1007 -1007
- package/.claude/skills/verification-quality/evals/verification-quality.yaml +150 -150
- package/.claude/skills/verification-quality/schemas/output.json +432 -432
- package/.claude/skills/visual-testing-advanced/evals/visual-testing-advanced.yaml +154 -154
- package/.claude/skills/visual-testing-advanced/schemas/output.json +294 -294
- package/.claude/skills/wms-testing-patterns/evals/wms-testing-patterns.yaml +165 -165
- package/.claude/skills/wms-testing-patterns/schemas/output.json +150 -150
- package/.claude/skills/wms-testing-patterns/scripts/validate-config.json +51 -51
- package/CHANGELOG.md +36 -0
- package/README.md +171 -901
- package/assets/agents/v3/helpers/quality-criteria/evidence-classification.md +116 -116
- package/assets/agents/v3/helpers/quality-criteria/htsm-categories.md +139 -139
- package/assets/governance/constitution.md +202 -202
- package/assets/governance/shards/chaos-resilience.shard.md +221 -221
- package/assets/governance/shards/code-intelligence.shard.md +178 -178
- package/assets/governance/shards/contract-testing.shard.md +206 -206
- package/assets/governance/shards/coverage-analysis.shard.md +146 -146
- package/assets/governance/shards/defect-intelligence.shard.md +182 -182
- package/assets/governance/shards/learning-optimization.shard.md +248 -248
- package/assets/governance/shards/quality-assessment.shard.md +165 -165
- package/assets/governance/shards/requirements-validation.shard.md +177 -177
- package/assets/governance/shards/security-compliance.shard.md +196 -196
- package/assets/governance/shards/test-execution.shard.md +156 -156
- package/assets/governance/shards/test-generation.shard.md +128 -128
- package/assets/governance/shards/visual-accessibility.shard.md +209 -209
- package/assets/hooks/cross-phase-memory.yaml +253 -253
- package/assets/patterns/adr-051-booster-patterns.json +78 -78
- package/assets/patterns/adr-051-embedding-patterns.json +147 -147
- package/assets/patterns/adr-051-integration-summary.json +62 -62
- package/assets/patterns/adr-051-reasoning-patterns.json +166 -166
- package/assets/patterns/adr-051-router-patterns.json +113 -113
- package/assets/patterns/index.json +136 -136
- package/assets/skills/.validation/README.md +111 -111
- package/assets/skills/.validation/examples/chaos-engineering-output.example.json +530 -530
- package/assets/skills/.validation/examples/performance-testing-output.example.json +252 -252
- package/assets/skills/.validation/examples/security-testing-output.example.json +413 -413
- package/assets/skills/.validation/examples/testability-scoring-output.example.json +350 -350
- package/assets/skills/.validation/schemas/skill-eval.schema.json +462 -462
- package/assets/skills/.validation/schemas/skill-frontmatter.schema.json +341 -341
- package/assets/skills/.validation/schemas/skill-output-meta.schema.json +199 -199
- package/assets/skills/.validation/schemas/skill-output.template.json +610 -610
- package/assets/skills/.validation/skill-validation-mcp-integration.md +250 -250
- package/assets/skills/.validation/templates/eval.template.yaml +366 -366
- package/assets/skills/.validation/templates/schemas/output.json +145 -145
- package/assets/skills/.validation/templates/security-testing-eval.template.yaml +725 -725
- package/assets/skills/.validation/templates/skill-frontmatter.example.yaml +225 -225
- package/assets/skills/.validation/test-data/invalid-output.json +5 -5
- package/assets/skills/.validation/test-data/minimal-output.json +9 -9
- package/assets/skills/.validation/test-data/sample-output.json +73 -73
- package/assets/skills/a11y-ally/evals/a11y-ally.yaml +376 -376
- package/assets/skills/a11y-ally/schemas/output.json +549 -549
- package/assets/skills/accessibility-testing/evals/accessibility-testing.yaml +719 -719
- package/assets/skills/accessibility-testing/schemas/output.json +776 -776
- package/assets/skills/accessibility-testing/test-data/sample-output.json +191 -191
- package/assets/skills/agentic-quality-engineering/schemas/output.json +577 -577
- package/assets/skills/api-testing-patterns/evals/api-testing-patterns.yaml +696 -696
- package/assets/skills/api-testing-patterns/schemas/output.json +845 -845
- package/assets/skills/aqe-v2-v3-migration/schemas/output.json +513 -513
- package/assets/skills/brutal-honesty-review/schemas/output.json +291 -291
- package/assets/skills/bug-reporting-excellence/schemas/output.json +288 -288
- package/assets/skills/chaos-engineering-resilience/evals/chaos-engineering-resilience.yaml +761 -761
- package/assets/skills/chaos-engineering-resilience/schemas/output.json +1205 -1205
- package/assets/skills/cicd-pipeline-qe-orchestrator/evals/cicd-pipeline-qe-orchestrator.yaml +157 -157
- package/assets/skills/cicd-pipeline-qe-orchestrator/schemas/output.json +542 -542
- package/assets/skills/code-review-quality/schemas/output.json +264 -264
- package/assets/skills/compatibility-testing/evals/compatibility-testing.yaml +410 -410
- package/assets/skills/compatibility-testing/schemas/output.json +551 -551
- package/assets/skills/compliance-testing/evals/compliance-testing.yaml +1107 -1107
- package/assets/skills/compliance-testing/schemas/output.json +845 -845
- package/assets/skills/consultancy-practices/schemas/output.json +282 -282
- package/assets/skills/contract-testing/evals/contract-testing.yaml +748 -748
- package/assets/skills/contract-testing/schemas/output.json +638 -638
- package/assets/skills/database-testing/evals/database-testing.yaml +968 -968
- package/assets/skills/database-testing/schemas/output.json +1446 -1446
- package/assets/skills/debug-loop/SKILL.md +61 -61
- package/assets/skills/enterprise-integration-testing/SKILL.md +735 -735
- package/assets/skills/enterprise-integration-testing/evals/enterprise-integration-testing.yaml +158 -158
- package/assets/skills/enterprise-integration-testing/schemas/output.json +74 -74
- package/assets/skills/enterprise-integration-testing/scripts/validate-config.json +25 -25
- package/assets/skills/localization-testing/evals/localization-testing.yaml +544 -544
- package/assets/skills/localization-testing/schemas/output.json +325 -325
- package/assets/skills/middleware-testing-patterns/SKILL.md +798 -798
- package/assets/skills/middleware-testing-patterns/evals/middleware-testing-patterns.yaml +153 -153
- package/assets/skills/middleware-testing-patterns/schemas/output.json +58 -58
- package/assets/skills/middleware-testing-patterns/scripts/validate-config.json +25 -25
- package/assets/skills/mobile-testing/evals/mobile-testing.yaml +537 -537
- package/assets/skills/mobile-testing/schemas/output.json +318 -318
- package/assets/skills/mutation-testing/evals/mutation-testing.yaml +652 -652
- package/assets/skills/mutation-testing/schemas/output.json +707 -707
- package/assets/skills/mutation-testing/test-data/sample-output.json +295 -295
- package/assets/skills/n8n-expression-testing/evals/n8n-expression-testing.yaml +450 -450
- package/assets/skills/n8n-expression-testing/schemas/output.json +369 -369
- package/assets/skills/n8n-integration-testing-patterns/evals/n8n-integration-testing-patterns.yaml +522 -522
- package/assets/skills/n8n-integration-testing-patterns/schemas/output.json +291 -291
- package/assets/skills/n8n-security-testing/evals/n8n-security-testing.yaml +493 -493
- package/assets/skills/n8n-security-testing/schemas/output.json +293 -293
- package/assets/skills/n8n-trigger-testing-strategies/evals/n8n-trigger-testing-strategies.yaml +500 -500
- package/assets/skills/n8n-trigger-testing-strategies/schemas/output.json +295 -295
- package/assets/skills/n8n-workflow-testing-fundamentals/evals/n8n-workflow-testing-fundamentals.yaml +497 -497
- package/assets/skills/n8n-workflow-testing-fundamentals/schemas/output.json +254 -254
- package/assets/skills/observability-testing-patterns/SKILL.md +930 -930
- package/assets/skills/observability-testing-patterns/evals/observability-testing-patterns.yaml +157 -157
- package/assets/skills/observability-testing-patterns/schemas/output.json +58 -58
- package/assets/skills/observability-testing-patterns/scripts/validate-config.json +25 -25
- package/assets/skills/pentest-validation/SKILL.md +268 -268
- package/assets/skills/pentest-validation/evals/pentest-validation.yaml +708 -708
- package/assets/skills/pentest-validation/schemas/output.json +281 -281
- package/assets/skills/performance-testing/evals/performance-testing.yaml +772 -772
- package/assets/skills/performance-testing/schemas/output.json +1184 -1184
- package/assets/skills/pr-review/SKILL.md +61 -61
- package/assets/skills/qcsd-cicd-swarm/SKILL.md +2206 -2206
- package/assets/skills/qcsd-cicd-swarm/evals/qcsd-cicd-swarm.yaml +211 -211
- package/assets/skills/qcsd-cicd-swarm/schemas/output.json +86 -86
- package/assets/skills/qcsd-cicd-swarm/scripts/validate-config.json +30 -30
- package/assets/skills/qcsd-development-swarm/SKILL.md +2154 -2154
- package/assets/skills/qcsd-development-swarm/evals/qcsd-development-swarm.yaml +162 -162
- package/assets/skills/qcsd-development-swarm/schemas/output.json +72 -72
- package/assets/skills/qcsd-development-swarm/scripts/validate-config.json +25 -25
- package/assets/skills/qcsd-ideation-swarm/evals/qcsd-ideation-swarm.yaml +138 -138
- package/assets/skills/qcsd-ideation-swarm/schemas/output.json +568 -568
- package/assets/skills/qcsd-production-swarm/SKILL.md +2781 -2781
- package/assets/skills/qcsd-production-swarm/evals/qcsd-production-swarm.yaml +246 -246
- package/assets/skills/qcsd-production-swarm/schemas/output.json +505 -505
- package/assets/skills/qcsd-production-swarm/scripts/validate-config.json +25 -25
- package/assets/skills/qe-chaos-resilience/evals/qe-chaos-resilience.yaml +443 -443
- package/assets/skills/qe-chaos-resilience/schemas/output.json +314 -314
- package/assets/skills/qe-code-intelligence/evals/qe-code-intelligence.yaml +459 -459
- package/assets/skills/qe-code-intelligence/schemas/output.json +315 -315
- package/assets/skills/qe-contract-testing/evals/qe-contract-testing.yaml +513 -513
- package/assets/skills/qe-contract-testing/schemas/output.json +295 -295
- package/assets/skills/qe-coverage-analysis/evals/qe-coverage-analysis.yaml +494 -494
- package/assets/skills/qe-coverage-analysis/schemas/output.json +286 -286
- package/assets/skills/qe-defect-intelligence/evals/qe-defect-intelligence.yaml +511 -511
- package/assets/skills/qe-defect-intelligence/schemas/output.json +283 -283
- package/assets/skills/qe-iterative-loop/schemas/output.json +264 -264
- package/assets/skills/qe-learning-optimization/evals/qe-learning-optimization.yaml +144 -144
- package/assets/skills/qe-learning-optimization/schemas/output.json +288 -288
- package/assets/skills/qe-quality-assessment/evals/qe-quality-assessment.yaml +506 -506
- package/assets/skills/qe-quality-assessment/schemas/output.json +550 -550
- package/assets/skills/qe-requirements-validation/evals/qe-requirements-validation.yaml +598 -598
- package/assets/skills/qe-requirements-validation/schemas/output.json +587 -587
- package/assets/skills/qe-security-compliance/evals/qe-security-compliance.yaml +595 -595
- package/assets/skills/qe-security-compliance/schemas/output.json +498 -498
- package/assets/skills/qe-test-execution/evals/qe-test-execution.yaml +607 -607
- package/assets/skills/qe-test-execution/schemas/output.json +529 -529
- package/assets/skills/qe-test-generation/evals/qe-test-generation.yaml +148 -148
- package/assets/skills/qe-test-generation/schemas/output.json +439 -439
- package/assets/skills/qe-visual-accessibility/evals/qe-visual-accessibility.yaml +142 -142
- package/assets/skills/qe-visual-accessibility/schemas/output.json +491 -491
- package/assets/skills/quality-metrics/evals/quality-metrics.yaml +494 -494
- package/assets/skills/quality-metrics/schemas/output.json +403 -403
- package/assets/skills/refactoring-patterns/schemas/output.json +475 -475
- package/assets/skills/regression-testing/evals/regression-testing.yaml +504 -504
- package/assets/skills/regression-testing/schemas/output.json +311 -311
- package/assets/skills/risk-based-testing/evals/risk-based-testing.yaml +141 -141
- package/assets/skills/risk-based-testing/schemas/output.json +480 -480
- package/assets/skills/security-testing/evals/security-testing.yaml +789 -789
- package/assets/skills/security-testing/schemas/output.json +879 -879
- package/assets/skills/security-visual-testing/evals/security-visual-testing.yaml +163 -163
- package/assets/skills/security-visual-testing/schemas/output.json +486 -486
- package/assets/skills/sfdipot-product-factors/SKILL.md +239 -239
- package/assets/skills/sherlock-review/schemas/output.json +297 -297
- package/assets/skills/shift-left-testing/evals/shift-left-testing.yaml +145 -145
- package/assets/skills/shift-left-testing/schemas/output.json +459 -459
- package/assets/skills/shift-right-testing/evals/shift-right-testing.yaml +147 -147
- package/assets/skills/shift-right-testing/schemas/output.json +418 -418
- package/assets/skills/tdd-london-chicago/schemas/output.json +444 -444
- package/assets/skills/technical-writing/schemas/output.json +268 -268
- package/assets/skills/test-automation-strategy/evals/test-automation-strategy.yaml +148 -148
- package/assets/skills/test-automation-strategy/schemas/output.json +444 -444
- package/assets/skills/test-data-management/evals/test-data-management.yaml +504 -504
- package/assets/skills/test-data-management/schemas/output.json +284 -284
- package/assets/skills/test-design-techniques/evals/test-design-techniques.yaml +142 -142
- package/assets/skills/test-design-techniques/schemas/output.json +295 -295
- package/assets/skills/test-environment-management/schemas/output.json +310 -310
- package/assets/skills/test-idea-rewriting/SKILL.md +229 -229
- package/assets/skills/test-reporting-analytics/evals/test-reporting-analytics.yaml +155 -155
- package/assets/skills/test-reporting-analytics/schemas/output.json +329 -329
- package/assets/skills/testability-scoring/evals/testability-scoring.yaml +814 -814
- package/assets/skills/testability-scoring/resources/templates/config.template.js +84 -84
- package/assets/skills/testability-scoring/schemas/output.json +606 -606
- package/assets/skills/testability-scoring/scripts/generate-html-report.js +1007 -1007
- package/assets/skills/verification-quality/evals/verification-quality.yaml +150 -150
- package/assets/skills/verification-quality/schemas/output.json +432 -432
- package/assets/skills/visual-testing-advanced/evals/visual-testing-advanced.yaml +154 -154
- package/assets/skills/visual-testing-advanced/schemas/output.json +294 -294
- package/assets/skills/wms-testing-patterns/evals/wms-testing-patterns.yaml +165 -165
- package/assets/skills/wms-testing-patterns/schemas/output.json +150 -150
- package/assets/skills/wms-testing-patterns/scripts/validate-config.json +51 -51
- package/assets/templates/validation-summary.json +56 -56
- package/dist/agents/claim-verifier/verifiers/output-verifier.d.ts +1 -0
- package/dist/agents/claim-verifier/verifiers/output-verifier.d.ts.map +1 -1
- package/dist/agents/claim-verifier/verifiers/output-verifier.js +16 -3
- package/dist/agents/claim-verifier/verifiers/output-verifier.js.map +1 -1
- package/dist/cli/bundle.js +488 -75
- package/dist/cli/commands/mcp.d.ts.map +1 -1
- package/dist/cli/commands/mcp.js +11 -9
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/governance/adversarial-defense-integration.d.ts +29 -0
- package/dist/governance/adversarial-defense-integration.d.ts.map +1 -1
- package/dist/governance/adversarial-defense-integration.js +85 -1
- package/dist/governance/adversarial-defense-integration.js.map +1 -1
- package/dist/governance/continue-gate-integration.d.ts +7 -5
- package/dist/governance/continue-gate-integration.d.ts.map +1 -1
- package/dist/governance/continue-gate-integration.js +72 -15
- package/dist/governance/continue-gate-integration.js.map +1 -1
- package/dist/governance/deterministic-gateway-integration.d.ts +5 -0
- package/dist/governance/deterministic-gateway-integration.d.ts.map +1 -1
- package/dist/governance/deterministic-gateway-integration.js +35 -1
- package/dist/governance/deterministic-gateway-integration.js.map +1 -1
- package/dist/governance/evolution-pipeline-integration.d.ts +5 -0
- package/dist/governance/evolution-pipeline-integration.d.ts.map +1 -1
- package/dist/governance/evolution-pipeline-integration.js +57 -1
- package/dist/governance/evolution-pipeline-integration.js.map +1 -1
- package/dist/governance/memory-write-gate-integration.d.ts +6 -3
- package/dist/governance/memory-write-gate-integration.d.ts.map +1 -1
- package/dist/governance/memory-write-gate-integration.js +48 -10
- package/dist/governance/memory-write-gate-integration.js.map +1 -1
- package/dist/governance/proof-envelope-integration.d.ts +1 -0
- package/dist/governance/proof-envelope-integration.d.ts.map +1 -1
- package/dist/governance/proof-envelope-integration.js +37 -0
- package/dist/governance/proof-envelope-integration.js.map +1 -1
- package/dist/governance/shard-retriever-integration.d.ts +10 -0
- package/dist/governance/shard-retriever-integration.d.ts.map +1 -1
- package/dist/governance/shard-retriever-integration.js +50 -1
- package/dist/governance/shard-retriever-integration.js.map +1 -1
- package/dist/governance/trust-accumulator-integration.d.ts +5 -0
- package/dist/governance/trust-accumulator-integration.d.ts.map +1 -1
- package/dist/governance/trust-accumulator-integration.js +35 -2
- package/dist/governance/trust-accumulator-integration.js.map +1 -1
- package/dist/init/phases/10-workers.js +2 -2
- package/dist/init/phases/10-workers.js.map +1 -1
- package/dist/mcp/bundle.js +478 -62
- package/dist/mcp/protocol-server.js +2 -2
- package/dist/mcp/tool-registry.d.ts.map +1 -1
- package/dist/mcp/tool-registry.js +1 -0
- package/dist/mcp/tool-registry.js.map +1 -1
- package/dist/shared/language-detector.js +1 -1
- package/dist/shared/language-detector.js.map +1 -1
- package/dist/shared/parsers/multi-language-parser.d.ts.map +1 -1
- package/dist/shared/parsers/multi-language-parser.js +55 -16
- package/dist/shared/parsers/multi-language-parser.js.map +1 -1
- package/dist/shared/sql-safety.d.ts.map +1 -1
- package/dist/shared/sql-safety.js +7 -1
- package/dist/shared/sql-safety.js.map +1 -1
- package/package.json +6 -2
- package/scripts/prepare-assets.sh +8 -0
|
@@ -1,772 +1,772 @@
|
|
|
1
|
-
# =============================================================================
|
|
2
|
-
# AQE Skill Evaluation Test Suite: Performance Testing v1.0.0
|
|
3
|
-
# =============================================================================
|
|
4
|
-
#
|
|
5
|
-
# Comprehensive evaluation suite for the performance-testing skill per ADR-056.
|
|
6
|
-
# Tests load testing, stress testing, endurance testing, response time analysis,
|
|
7
|
-
# throughput calculation, SLA validation, and bottleneck identification.
|
|
8
|
-
#
|
|
9
|
-
# Schema: .claude/skills/.validation/schemas/skill-eval.schema.json
|
|
10
|
-
# Validator: .claude/skills/performance-testing/scripts/validate-config.json
|
|
11
|
-
#
|
|
12
|
-
# Coverage:
|
|
13
|
-
# - Load Testing: k6, Artillery, JMeter scenarios
|
|
14
|
-
# - Stress Testing: Breaking point identification
|
|
15
|
-
# - Endurance Testing: Memory leak detection
|
|
16
|
-
# - Response Time Analysis: Percentile calculations (p50, p95, p99)
|
|
17
|
-
# - Throughput Analysis: Requests per second, transactions
|
|
18
|
-
# - SLA Validation: Threshold compliance checking
|
|
19
|
-
# - Bottleneck Identification: CPU, memory, DB, network
|
|
20
|
-
#
|
|
21
|
-
# =============================================================================
|
|
22
|
-
|
|
23
|
-
skill: performance-testing
|
|
24
|
-
version: 1.0.0
|
|
25
|
-
description: >
|
|
26
|
-
Comprehensive evaluation suite for the performance-testing skill.
|
|
27
|
-
Tests load/stress/endurance testing capabilities, response time percentile
|
|
28
|
-
accuracy, throughput calculation, SLA compliance checking, and bottleneck
|
|
29
|
-
identification. Supports multi-model testing and integrates with ReasoningBank
|
|
30
|
-
for continuous improvement.
|
|
31
|
-
|
|
32
|
-
# =============================================================================
|
|
33
|
-
# Multi-Model Configuration
|
|
34
|
-
# =============================================================================
|
|
35
|
-
|
|
36
|
-
models_to_test:
|
|
37
|
-
- claude-3.5-sonnet # Primary model (high accuracy expected)
|
|
38
|
-
- claude-3-haiku # Fast model (minimum quality threshold)
|
|
39
|
-
- gpt-4o # Cross-vendor validation
|
|
40
|
-
|
|
41
|
-
# =============================================================================
|
|
42
|
-
# MCP Integration Configuration
|
|
43
|
-
# =============================================================================
|
|
44
|
-
|
|
45
|
-
mcp_integration:
|
|
46
|
-
enabled: true
|
|
47
|
-
namespace: skill-validation
|
|
48
|
-
|
|
49
|
-
# Query existing performance patterns before running evals
|
|
50
|
-
query_patterns: true
|
|
51
|
-
|
|
52
|
-
# Track each test outcome for learning feedback loop
|
|
53
|
-
track_outcomes: true
|
|
54
|
-
|
|
55
|
-
# Store successful patterns after evals complete
|
|
56
|
-
store_patterns: true
|
|
57
|
-
|
|
58
|
-
# Share learning with fleet coordinator agents
|
|
59
|
-
share_learning: true
|
|
60
|
-
|
|
61
|
-
# Update quality gate with validation metrics
|
|
62
|
-
update_quality_gate: true
|
|
63
|
-
|
|
64
|
-
# Target agents for learning distribution
|
|
65
|
-
target_agents:
|
|
66
|
-
- qe-learning-coordinator
|
|
67
|
-
- qe-queen-coordinator
|
|
68
|
-
- qe-performance-tester
|
|
69
|
-
- qe-chaos-engineer
|
|
70
|
-
|
|
71
|
-
# =============================================================================
|
|
72
|
-
# ReasoningBank Learning Configuration
|
|
73
|
-
# =============================================================================
|
|
74
|
-
|
|
75
|
-
learning:
|
|
76
|
-
store_success_patterns: true
|
|
77
|
-
store_failure_patterns: true
|
|
78
|
-
pattern_ttl_days: 90
|
|
79
|
-
min_confidence_to_store: 0.7
|
|
80
|
-
cross_model_comparison: true
|
|
81
|
-
|
|
82
|
-
# =============================================================================
|
|
83
|
-
# Result Format Configuration
|
|
84
|
-
# =============================================================================
|
|
85
|
-
|
|
86
|
-
result_format:
|
|
87
|
-
json_output: true
|
|
88
|
-
markdown_report: true
|
|
89
|
-
include_raw_output: false
|
|
90
|
-
include_timing: true
|
|
91
|
-
include_token_usage: true
|
|
92
|
-
|
|
93
|
-
# =============================================================================
|
|
94
|
-
# Environment Setup
|
|
95
|
-
# =============================================================================
|
|
96
|
-
|
|
97
|
-
setup:
|
|
98
|
-
required_tools:
|
|
99
|
-
- jq # JSON parsing (required)
|
|
100
|
-
- bc # Math operations (optional)
|
|
101
|
-
|
|
102
|
-
environment_variables:
|
|
103
|
-
PERF_TEST_MODE: "evaluation"
|
|
104
|
-
SLA_STRICT: "true"
|
|
105
|
-
PERCENTILE_VALIDATION: "true"
|
|
106
|
-
|
|
107
|
-
fixtures:
|
|
108
|
-
- name: k6_load_test_script
|
|
109
|
-
path: fixtures/k6-load-test.js
|
|
110
|
-
content: |
|
|
111
|
-
import http from 'k6/http';
|
|
112
|
-
import { check, sleep } from 'k6';
|
|
113
|
-
|
|
114
|
-
export const options = {
|
|
115
|
-
stages: [
|
|
116
|
-
{ duration: '1m', target: 50 },
|
|
117
|
-
{ duration: '3m', target: 50 },
|
|
118
|
-
{ duration: '1m', target: 0 },
|
|
119
|
-
],
|
|
120
|
-
thresholds: {
|
|
121
|
-
http_req_duration: ['p(95)<200'],
|
|
122
|
-
http_req_failed: ['rate<0.01'],
|
|
123
|
-
},
|
|
124
|
-
};
|
|
125
|
-
|
|
126
|
-
export default function () {
|
|
127
|
-
const res = http.get('https://api.example.com/products');
|
|
128
|
-
check(res, {
|
|
129
|
-
'status is 200': (r) => r.status === 200,
|
|
130
|
-
'response time < 200ms': (r) => r.timings.duration < 200,
|
|
131
|
-
});
|
|
132
|
-
sleep(1);
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
# =============================================================================
|
|
136
|
-
# TEST CASES
|
|
137
|
-
# =============================================================================
|
|
138
|
-
|
|
139
|
-
test_cases:
|
|
140
|
-
# ---------------------------------------------------------------------------
|
|
141
|
-
# CATEGORY: Load Testing
|
|
142
|
-
# ---------------------------------------------------------------------------
|
|
143
|
-
|
|
144
|
-
- id: tc001_load_test_basic_analysis
|
|
145
|
-
description: "Analyze basic load test results with response times and throughput"
|
|
146
|
-
category: load-testing
|
|
147
|
-
priority: critical
|
|
148
|
-
|
|
149
|
-
input:
|
|
150
|
-
scenario: |
|
|
151
|
-
A k6 load test was run against an e-commerce API with 100 virtual users
|
|
152
|
-
for 5 minutes. Analyze the results:
|
|
153
|
-
|
|
154
|
-
- Total Requests: 45,000
|
|
155
|
-
- Successful: 44,820
|
|
156
|
-
- Failed: 180
|
|
157
|
-
- Average Response Time: 145ms
|
|
158
|
-
- p50: 120ms
|
|
159
|
-
- p95: 280ms
|
|
160
|
-
- p99: 450ms
|
|
161
|
-
- Requests/second: 150
|
|
162
|
-
|
|
163
|
-
SLA Thresholds:
|
|
164
|
-
- p95 response time < 300ms
|
|
165
|
-
- Error rate < 1%
|
|
166
|
-
context:
|
|
167
|
-
tool: k6
|
|
168
|
-
testType: load
|
|
169
|
-
environment: staging
|
|
170
|
-
|
|
171
|
-
expected_output:
|
|
172
|
-
must_contain:
|
|
173
|
-
- "load test"
|
|
174
|
-
- "response time"
|
|
175
|
-
- "throughput"
|
|
176
|
-
- "150"
|
|
177
|
-
- "p95"
|
|
178
|
-
must_not_contain:
|
|
179
|
-
- "no data"
|
|
180
|
-
- "unable to analyze"
|
|
181
|
-
must_match_regex:
|
|
182
|
-
- "p95.*280|280.*p95"
|
|
183
|
-
- "error.*rate|rate.*error"
|
|
184
|
-
status: success
|
|
185
|
-
finding_count:
|
|
186
|
-
min: 1
|
|
187
|
-
max: 10
|
|
188
|
-
|
|
189
|
-
validation:
|
|
190
|
-
schema_check: true
|
|
191
|
-
keyword_match_threshold: 0.8
|
|
192
|
-
reasoning_quality_min: 0.75
|
|
193
|
-
|
|
194
|
-
timeout_ms: 30000
|
|
195
|
-
|
|
196
|
-
- id: tc002_load_test_sla_failure
|
|
197
|
-
description: "Detect SLA failures in load test results"
|
|
198
|
-
category: load-testing
|
|
199
|
-
priority: critical
|
|
200
|
-
|
|
201
|
-
input:
|
|
202
|
-
scenario: |
|
|
203
|
-
Load test results show SLA violations:
|
|
204
|
-
|
|
205
|
-
- p95 Response Time: 450ms (threshold: 300ms) - FAILED
|
|
206
|
-
- Error Rate: 2.5% (threshold: 1%) - FAILED
|
|
207
|
-
- Throughput: 1200 req/s (threshold: 1000) - PASSED
|
|
208
|
-
|
|
209
|
-
Identify the failures and provide recommendations.
|
|
210
|
-
context:
|
|
211
|
-
tool: artillery
|
|
212
|
-
testType: load
|
|
213
|
-
|
|
214
|
-
expected_output:
|
|
215
|
-
must_contain:
|
|
216
|
-
- "SLA"
|
|
217
|
-
- "failed"
|
|
218
|
-
- "threshold"
|
|
219
|
-
- "p95"
|
|
220
|
-
- "error rate"
|
|
221
|
-
must_not_contain:
|
|
222
|
-
- "all thresholds met"
|
|
223
|
-
- "passed"
|
|
224
|
-
severity_classification: high
|
|
225
|
-
finding_count:
|
|
226
|
-
min: 2
|
|
227
|
-
|
|
228
|
-
validation:
|
|
229
|
-
schema_check: true
|
|
230
|
-
keyword_match_threshold: 0.7
|
|
231
|
-
|
|
232
|
-
# ---------------------------------------------------------------------------
|
|
233
|
-
# CATEGORY: Stress Testing
|
|
234
|
-
# ---------------------------------------------------------------------------
|
|
235
|
-
|
|
236
|
-
- id: tc003_stress_test_breaking_point
|
|
237
|
-
description: "Identify system breaking point from stress test"
|
|
238
|
-
category: stress-testing
|
|
239
|
-
priority: critical
|
|
240
|
-
|
|
241
|
-
input:
|
|
242
|
-
scenario: |
|
|
243
|
-
Stress test ramped from 100 to 1000 VUs over 30 minutes:
|
|
244
|
-
|
|
245
|
-
100 VUs: p95=120ms, errors=0.1%
|
|
246
|
-
200 VUs: p95=150ms, errors=0.2%
|
|
247
|
-
400 VUs: p95=220ms, errors=0.5%
|
|
248
|
-
600 VUs: p95=380ms, errors=1.5%
|
|
249
|
-
800 VUs: p95=850ms, errors=8%
|
|
250
|
-
1000 VUs: p95=2500ms, errors=25%
|
|
251
|
-
|
|
252
|
-
Identify the breaking point and recommend max capacity.
|
|
253
|
-
context:
|
|
254
|
-
tool: k6
|
|
255
|
-
testType: stress
|
|
256
|
-
|
|
257
|
-
expected_output:
|
|
258
|
-
must_contain:
|
|
259
|
-
- "breaking point"
|
|
260
|
-
- "400"
|
|
261
|
-
- "600"
|
|
262
|
-
- "capacity"
|
|
263
|
-
- "degradation"
|
|
264
|
-
must_match_regex:
|
|
265
|
-
- "breaking.*point|point.*breaking"
|
|
266
|
-
- "recommend.*[0-9]+.*VU|[0-9]+.*VU.*recommend"
|
|
267
|
-
severity_classification: high
|
|
268
|
-
|
|
269
|
-
validation:
|
|
270
|
-
schema_check: true
|
|
271
|
-
keyword_match_threshold: 0.75
|
|
272
|
-
reasoning_quality_min: 0.8
|
|
273
|
-
|
|
274
|
-
- id: tc004_stress_test_gradual_degradation
|
|
275
|
-
description: "Analyze gradual performance degradation pattern"
|
|
276
|
-
category: stress-testing
|
|
277
|
-
priority: high
|
|
278
|
-
|
|
279
|
-
input:
|
|
280
|
-
scenario: |
|
|
281
|
-
Performance degrades gradually under increasing load:
|
|
282
|
-
|
|
283
|
-
Time 0m: 100 VUs, p95=100ms
|
|
284
|
-
Time 5m: 100 VUs, p95=105ms
|
|
285
|
-
Time 10m: 100 VUs, p95=120ms
|
|
286
|
-
Time 15m: 100 VUs, p95=150ms
|
|
287
|
-
Time 20m: 100 VUs, p95=200ms
|
|
288
|
-
Time 25m: 100 VUs, p95=280ms
|
|
289
|
-
Time 30m: 100 VUs, p95=400ms
|
|
290
|
-
|
|
291
|
-
Note: Load stayed constant but response time increased.
|
|
292
|
-
context:
|
|
293
|
-
tool: gatling
|
|
294
|
-
testType: stress
|
|
295
|
-
|
|
296
|
-
expected_output:
|
|
297
|
-
must_contain:
|
|
298
|
-
- "degradation"
|
|
299
|
-
- "memory"
|
|
300
|
-
- "leak"
|
|
301
|
-
- "resource"
|
|
302
|
-
must_not_contain:
|
|
303
|
-
- "stable"
|
|
304
|
-
- "healthy"
|
|
305
|
-
severity_classification: critical
|
|
306
|
-
|
|
307
|
-
validation:
|
|
308
|
-
schema_check: true
|
|
309
|
-
keyword_match_threshold: 0.7
|
|
310
|
-
|
|
311
|
-
# ---------------------------------------------------------------------------
|
|
312
|
-
# CATEGORY: Endurance Testing
|
|
313
|
-
# ---------------------------------------------------------------------------
|
|
314
|
-
|
|
315
|
-
- id: tc005_endurance_test_memory_leak
|
|
316
|
-
description: "Detect memory leak in endurance test"
|
|
317
|
-
category: endurance-testing
|
|
318
|
-
priority: critical
|
|
319
|
-
|
|
320
|
-
input:
|
|
321
|
-
scenario: |
|
|
322
|
-
24-hour endurance test with 50 VUs:
|
|
323
|
-
|
|
324
|
-
Hour 0: Memory=2GB, p95=100ms
|
|
325
|
-
Hour 4: Memory=2.5GB, p95=105ms
|
|
326
|
-
Hour 8: Memory=3.2GB, p95=115ms
|
|
327
|
-
Hour 12: Memory=4.1GB, p95=130ms
|
|
328
|
-
Hour 16: Memory=5.2GB, p95=160ms
|
|
329
|
-
Hour 20: Memory=6.8GB, p95=220ms
|
|
330
|
-
Hour 24: Memory=8.5GB, p95=350ms
|
|
331
|
-
|
|
332
|
-
Server has 16GB RAM. Response time degraded as memory grew.
|
|
333
|
-
context:
|
|
334
|
-
tool: jmeter
|
|
335
|
-
testType: endurance
|
|
336
|
-
|
|
337
|
-
expected_output:
|
|
338
|
-
must_contain:
|
|
339
|
-
- "memory leak"
|
|
340
|
-
- "endurance"
|
|
341
|
-
- "24 hour"
|
|
342
|
-
- "growth"
|
|
343
|
-
- "fix"
|
|
344
|
-
must_match_regex:
|
|
345
|
-
- "memory.*leak|leak.*memory"
|
|
346
|
-
- "recommend|fix|solution"
|
|
347
|
-
severity_classification: critical
|
|
348
|
-
finding_count:
|
|
349
|
-
min: 1
|
|
350
|
-
|
|
351
|
-
validation:
|
|
352
|
-
schema_check: true
|
|
353
|
-
keyword_match_threshold: 0.8
|
|
354
|
-
reasoning_quality_min: 0.85
|
|
355
|
-
|
|
356
|
-
- id: tc006_endurance_test_stable
|
|
357
|
-
description: "Verify stable system in endurance test"
|
|
358
|
-
category: endurance-testing
|
|
359
|
-
priority: high
|
|
360
|
-
|
|
361
|
-
input:
|
|
362
|
-
scenario: |
|
|
363
|
-
48-hour soak test with 100 VUs - System remained stable:
|
|
364
|
-
|
|
365
|
-
- Response time p95: 150ms +/- 10ms throughout
|
|
366
|
-
- Memory: 4GB +/- 200MB throughout
|
|
367
|
-
- CPU: 45% +/- 5% throughout
|
|
368
|
-
- Error rate: 0.05% constant
|
|
369
|
-
- No connection pool exhaustion
|
|
370
|
-
- No thread leaks detected
|
|
371
|
-
|
|
372
|
-
All metrics within acceptable variance.
|
|
373
|
-
context:
|
|
374
|
-
tool: k6
|
|
375
|
-
testType: soak
|
|
376
|
-
|
|
377
|
-
expected_output:
|
|
378
|
-
must_contain:
|
|
379
|
-
- "stable"
|
|
380
|
-
- "soak"
|
|
381
|
-
- "48 hour"
|
|
382
|
-
- "healthy"
|
|
383
|
-
must_not_contain:
|
|
384
|
-
- "memory leak"
|
|
385
|
-
- "degradation"
|
|
386
|
-
- "critical"
|
|
387
|
-
status: success
|
|
388
|
-
|
|
389
|
-
validation:
|
|
390
|
-
schema_check: true
|
|
391
|
-
keyword_match_threshold: 0.7
|
|
392
|
-
|
|
393
|
-
# ---------------------------------------------------------------------------
|
|
394
|
-
# CATEGORY: Response Time Analysis
|
|
395
|
-
# ---------------------------------------------------------------------------
|
|
396
|
-
|
|
397
|
-
- id: tc007_percentile_analysis
|
|
398
|
-
description: "Analyze response time percentiles correctly"
|
|
399
|
-
category: response-time
|
|
400
|
-
priority: critical
|
|
401
|
-
|
|
402
|
-
input:
|
|
403
|
-
scenario: |
|
|
404
|
-
Analyze these response time percentiles:
|
|
405
|
-
|
|
406
|
-
min: 15ms
|
|
407
|
-
p50: 85ms
|
|
408
|
-
p75: 120ms
|
|
409
|
-
p90: 180ms
|
|
410
|
-
p95: 250ms
|
|
411
|
-
p99: 450ms
|
|
412
|
-
p999: 850ms
|
|
413
|
-
max: 2500ms
|
|
414
|
-
avg: 110ms
|
|
415
|
-
stdDev: 95ms
|
|
416
|
-
|
|
417
|
-
SLA: p95 < 300ms, p99 < 500ms
|
|
418
|
-
context:
|
|
419
|
-
testType: load
|
|
420
|
-
|
|
421
|
-
expected_output:
|
|
422
|
-
must_contain:
|
|
423
|
-
- "p95"
|
|
424
|
-
- "p99"
|
|
425
|
-
- "percentile"
|
|
426
|
-
- "SLA"
|
|
427
|
-
- "passed"
|
|
428
|
-
must_match_regex:
|
|
429
|
-
- "p95.*250|250.*p95"
|
|
430
|
-
- "p99.*450|450.*p99"
|
|
431
|
-
|
|
432
|
-
validation:
|
|
433
|
-
schema_check: true
|
|
434
|
-
keyword_match_threshold: 0.8
|
|
435
|
-
|
|
436
|
-
- id: tc008_response_time_outliers
|
|
437
|
-
description: "Identify response time outliers"
|
|
438
|
-
category: response-time
|
|
439
|
-
priority: high
|
|
440
|
-
|
|
441
|
-
input:
|
|
442
|
-
scenario: |
|
|
443
|
-
Response time distribution shows outliers:
|
|
444
|
-
|
|
445
|
-
p50: 50ms
|
|
446
|
-
p95: 100ms
|
|
447
|
-
p99: 200ms
|
|
448
|
-
max: 15000ms
|
|
449
|
-
|
|
450
|
-
The max value is 75x the p99. This suggests occasional extreme outliers.
|
|
451
|
-
Investigate potential causes.
|
|
452
|
-
context:
|
|
453
|
-
testType: load
|
|
454
|
-
|
|
455
|
-
expected_output:
|
|
456
|
-
must_contain:
|
|
457
|
-
- "outlier"
|
|
458
|
-
- "spike"
|
|
459
|
-
- "max"
|
|
460
|
-
- "investigate"
|
|
461
|
-
must_match_regex:
|
|
462
|
-
- "15000|15,000|15s"
|
|
463
|
-
- "garbage.*collection|timeout|network"
|
|
464
|
-
|
|
465
|
-
validation:
|
|
466
|
-
schema_check: true
|
|
467
|
-
keyword_match_threshold: 0.7
|
|
468
|
-
|
|
469
|
-
# ---------------------------------------------------------------------------
|
|
470
|
-
# CATEGORY: Throughput Analysis
|
|
471
|
-
# ---------------------------------------------------------------------------
|
|
472
|
-
|
|
473
|
-
- id: tc009_throughput_capacity
|
|
474
|
-
description: "Analyze throughput capacity"
|
|
475
|
-
category: throughput
|
|
476
|
-
priority: high
|
|
477
|
-
|
|
478
|
-
input:
|
|
479
|
-
scenario: |
|
|
480
|
-
Throughput analysis:
|
|
481
|
-
|
|
482
|
-
50 VUs: 500 req/s (10 req/VU/s)
|
|
483
|
-
100 VUs: 950 req/s (9.5 req/VU/s)
|
|
484
|
-
200 VUs: 1600 req/s (8 req/VU/s)
|
|
485
|
-
400 VUs: 2000 req/s (5 req/VU/s)
|
|
486
|
-
800 VUs: 2100 req/s (2.6 req/VU/s)
|
|
487
|
-
|
|
488
|
-
Throughput is plateauing. Calculate max capacity.
|
|
489
|
-
context:
|
|
490
|
-
tool: k6
|
|
491
|
-
testType: scalability
|
|
492
|
-
|
|
493
|
-
expected_output:
|
|
494
|
-
must_contain:
|
|
495
|
-
- "throughput"
|
|
496
|
-
- "plateau"
|
|
497
|
-
- "capacity"
|
|
498
|
-
- "bottleneck"
|
|
499
|
-
must_match_regex:
|
|
500
|
-
- "2[01]00.*req|req.*2[01]00"
|
|
501
|
-
- "max.*capacity|capacity.*limit"
|
|
502
|
-
|
|
503
|
-
validation:
|
|
504
|
-
schema_check: true
|
|
505
|
-
keyword_match_threshold: 0.75
|
|
506
|
-
|
|
507
|
-
- id: tc010_throughput_decline
|
|
508
|
-
description: "Detect throughput decline under load"
|
|
509
|
-
category: throughput
|
|
510
|
-
priority: critical
|
|
511
|
-
|
|
512
|
-
input:
|
|
513
|
-
scenario: |
|
|
514
|
-
Throughput declines as load increases:
|
|
515
|
-
|
|
516
|
-
100 VUs: 1500 req/s, p95=100ms
|
|
517
|
-
200 VUs: 1400 req/s, p95=180ms
|
|
518
|
-
300 VUs: 1200 req/s, p95=350ms
|
|
519
|
-
400 VUs: 900 req/s, p95=800ms
|
|
520
|
-
|
|
521
|
-
Throughput is dropping while response time increases.
|
|
522
|
-
This indicates severe resource contention.
|
|
523
|
-
context:
|
|
524
|
-
testType: stress
|
|
525
|
-
|
|
526
|
-
expected_output:
|
|
527
|
-
must_contain:
|
|
528
|
-
- "throughput"
|
|
529
|
-
- "decline"
|
|
530
|
-
- "contention"
|
|
531
|
-
- "resource"
|
|
532
|
-
severity_classification: critical
|
|
533
|
-
|
|
534
|
-
validation:
|
|
535
|
-
schema_check: true
|
|
536
|
-
keyword_match_threshold: 0.7
|
|
537
|
-
|
|
538
|
-
# ---------------------------------------------------------------------------
|
|
539
|
-
# CATEGORY: Bottleneck Identification
|
|
540
|
-
# ---------------------------------------------------------------------------
|
|
541
|
-
|
|
542
|
-
- id: tc011_database_bottleneck
|
|
543
|
-
description: "Identify database connection pool bottleneck"
|
|
544
|
-
category: bottleneck
|
|
545
|
-
priority: critical
|
|
546
|
-
|
|
547
|
-
input:
|
|
548
|
-
scenario: |
|
|
549
|
-
Load test shows database issues:
|
|
550
|
-
|
|
551
|
-
- Response time spikes when VUs > 200
|
|
552
|
-
- Database connection pool: 20 max
|
|
553
|
-
- Active connections at spike: 20 (saturated)
|
|
554
|
-
- Connection wait time: 500ms avg
|
|
555
|
-
- Query execution time: 10ms avg
|
|
556
|
-
|
|
557
|
-
Application waits for connections, not query execution.
|
|
558
|
-
context:
|
|
559
|
-
tool: k6
|
|
560
|
-
testType: load
|
|
561
|
-
|
|
562
|
-
expected_output:
|
|
563
|
-
must_contain:
|
|
564
|
-
- "connection pool"
|
|
565
|
-
- "bottleneck"
|
|
566
|
-
- "database"
|
|
567
|
-
- "increase"
|
|
568
|
-
- "20"
|
|
569
|
-
must_match_regex:
|
|
570
|
-
- "connection.*pool|pool.*connection"
|
|
571
|
-
- "saturat|exhaust"
|
|
572
|
-
severity_classification: critical
|
|
573
|
-
finding_count:
|
|
574
|
-
min: 1
|
|
575
|
-
|
|
576
|
-
validation:
|
|
577
|
-
schema_check: true
|
|
578
|
-
keyword_match_threshold: 0.8
|
|
579
|
-
reasoning_quality_min: 0.85
|
|
580
|
-
|
|
581
|
-
- id: tc012_cpu_bottleneck
|
|
582
|
-
description: "Identify CPU bottleneck"
|
|
583
|
-
category: bottleneck
|
|
584
|
-
priority: high
|
|
585
|
-
|
|
586
|
-
input:
|
|
587
|
-
scenario: |
|
|
588
|
-
Performance test with CPU saturation:
|
|
589
|
-
|
|
590
|
-
100 VUs:
|
|
591
|
-
- CPU: 45%
|
|
592
|
-
- Memory: 60%
|
|
593
|
-
- p95: 100ms
|
|
594
|
-
|
|
595
|
-
300 VUs:
|
|
596
|
-
- CPU: 85%
|
|
597
|
-
- Memory: 65%
|
|
598
|
-
- p95: 250ms
|
|
599
|
-
|
|
600
|
-
500 VUs:
|
|
601
|
-
- CPU: 98%
|
|
602
|
-
- Memory: 68%
|
|
603
|
-
- p95: 800ms
|
|
604
|
-
|
|
605
|
-
CPU is clearly the constraint.
|
|
606
|
-
context:
|
|
607
|
-
testType: stress
|
|
608
|
-
|
|
609
|
-
expected_output:
|
|
610
|
-
must_contain:
|
|
611
|
-
- "CPU"
|
|
612
|
-
- "bottleneck"
|
|
613
|
-
- "98%"
|
|
614
|
-
- "scale"
|
|
615
|
-
must_match_regex:
|
|
616
|
-
- "CPU.*bottleneck|bottleneck.*CPU"
|
|
617
|
-
- "horizontal|vertical|scale"
|
|
618
|
-
severity_classification: high
|
|
619
|
-
|
|
620
|
-
validation:
|
|
621
|
-
schema_check: true
|
|
622
|
-
keyword_match_threshold: 0.75
|
|
623
|
-
|
|
624
|
-
- id: tc013_network_bottleneck
|
|
625
|
-
description: "Identify network bandwidth bottleneck"
|
|
626
|
-
category: bottleneck
|
|
627
|
-
priority: high
|
|
628
|
-
|
|
629
|
-
input:
|
|
630
|
-
scenario: |
|
|
631
|
-
API returns large JSON responses. Network becomes limiting factor:
|
|
632
|
-
|
|
633
|
-
- Average response size: 500KB
|
|
634
|
-
- Network bandwidth: 1Gbps
|
|
635
|
-
- At 200 req/s: 800Mbps used, p95=150ms
|
|
636
|
-
- At 250 req/s: 1Gbps saturated, p95=500ms
|
|
637
|
-
- At 300 req/s: packet drops, p95=2000ms
|
|
638
|
-
|
|
639
|
-
Application servers have capacity but network is saturated.
|
|
640
|
-
context:
|
|
641
|
-
testType: load
|
|
642
|
-
|
|
643
|
-
expected_output:
|
|
644
|
-
must_contain:
|
|
645
|
-
- "network"
|
|
646
|
-
- "bandwidth"
|
|
647
|
-
- "bottleneck"
|
|
648
|
-
- "1Gbps"
|
|
649
|
-
must_match_regex:
|
|
650
|
-
- "network.*bottleneck|bottleneck.*network"
|
|
651
|
-
- "bandwidth|compress|reduce.*size"
|
|
652
|
-
severity_classification: high
|
|
653
|
-
|
|
654
|
-
validation:
|
|
655
|
-
schema_check: true
|
|
656
|
-
keyword_match_threshold: 0.7
|
|
657
|
-
|
|
658
|
-
# ---------------------------------------------------------------------------
|
|
659
|
-
# CATEGORY: Negative Tests
|
|
660
|
-
# ---------------------------------------------------------------------------
|
|
661
|
-
|
|
662
|
-
- id: tc014_healthy_system_no_false_positives
|
|
663
|
-
description: "Verify healthy system is not flagged with false positives"
|
|
664
|
-
category: negative
|
|
665
|
-
priority: critical
|
|
666
|
-
|
|
667
|
-
input:
|
|
668
|
-
scenario: |
|
|
669
|
-
Production load test results - System is healthy:
|
|
670
|
-
|
|
671
|
-
- 500 VUs for 30 minutes
|
|
672
|
-
- p50: 45ms, p95: 85ms, p99: 120ms
|
|
673
|
-
- Throughput: 2,500 req/s (stable)
|
|
674
|
-
- Error rate: 0.02%
|
|
675
|
-
- CPU: 55%, Memory: 65%
|
|
676
|
-
- All SLAs passed
|
|
677
|
-
- No bottlenecks detected
|
|
678
|
-
- Response times stable throughout
|
|
679
|
-
context:
|
|
680
|
-
tool: k6
|
|
681
|
-
testType: load
|
|
682
|
-
environment: production
|
|
683
|
-
|
|
684
|
-
expected_output:
|
|
685
|
-
must_contain:
|
|
686
|
-
- "healthy"
|
|
687
|
-
- "passed"
|
|
688
|
-
- "stable"
|
|
689
|
-
must_not_contain:
|
|
690
|
-
- "critical"
|
|
691
|
-
- "bottleneck"
|
|
692
|
-
- "memory leak"
|
|
693
|
-
- "degradation"
|
|
694
|
-
- "failure"
|
|
695
|
-
status: success
|
|
696
|
-
finding_count:
|
|
697
|
-
max: 3 # Allow informational findings only
|
|
698
|
-
|
|
699
|
-
validation:
|
|
700
|
-
schema_check: true
|
|
701
|
-
keyword_match_threshold: 0.6
|
|
702
|
-
allow_partial: true
|
|
703
|
-
|
|
704
|
-
- id: tc015_incomplete_data_handling
|
|
705
|
-
description: "Handle incomplete performance data gracefully"
|
|
706
|
-
category: negative
|
|
707
|
-
priority: high
|
|
708
|
-
|
|
709
|
-
input:
|
|
710
|
-
scenario: |
|
|
711
|
-
Partial load test data (test interrupted after 5 minutes):
|
|
712
|
-
|
|
713
|
-
- Collected 5 minutes of 30 minute planned test
|
|
714
|
-
- p95: 200ms (limited sample)
|
|
715
|
-
- Total requests: 5,000
|
|
716
|
-
- Cannot determine steady-state behavior
|
|
717
|
-
|
|
718
|
-
Provide analysis with appropriate caveats.
|
|
719
|
-
context:
|
|
720
|
-
tool: artillery
|
|
721
|
-
testType: load
|
|
722
|
-
|
|
723
|
-
expected_output:
|
|
724
|
-
must_contain:
|
|
725
|
-
- "incomplete"
|
|
726
|
-
- "partial"
|
|
727
|
-
- "caveat"
|
|
728
|
-
- "limited"
|
|
729
|
-
must_not_contain:
|
|
730
|
-
- "definitive"
|
|
731
|
-
- "conclusive"
|
|
732
|
-
status: partial
|
|
733
|
-
|
|
734
|
-
validation:
|
|
735
|
-
schema_check: true
|
|
736
|
-
allow_partial: true
|
|
737
|
-
|
|
738
|
-
# =============================================================================
|
|
739
|
-
# SUCCESS CRITERIA
|
|
740
|
-
# =============================================================================
|
|
741
|
-
|
|
742
|
-
success_criteria:
|
|
743
|
-
# Overall pass rate (90% of tests must pass)
|
|
744
|
-
pass_rate: 0.9
|
|
745
|
-
|
|
746
|
-
# Critical tests must ALL pass (100%)
|
|
747
|
-
critical_pass_rate: 1.0
|
|
748
|
-
|
|
749
|
-
# Average reasoning quality score
|
|
750
|
-
avg_reasoning_quality: 0.75
|
|
751
|
-
|
|
752
|
-
# Maximum suite execution time (5 minutes)
|
|
753
|
-
max_execution_time_ms: 300000
|
|
754
|
-
|
|
755
|
-
# Maximum variance between model results (15%)
|
|
756
|
-
cross_model_variance: 0.15
|
|
757
|
-
|
|
758
|
-
# =============================================================================
|
|
759
|
-
# METADATA
|
|
760
|
-
# =============================================================================
|
|
761
|
-
|
|
762
|
-
metadata:
|
|
763
|
-
author: "qe-performance-tester"
|
|
764
|
-
created: "2026-02-02"
|
|
765
|
-
last_updated: "2026-02-02"
|
|
766
|
-
coverage_target: >
|
|
767
|
-
Performance Testing: Load testing (k6, Artillery, JMeter), Stress testing
|
|
768
|
-
(breaking point, gradual degradation), Endurance testing (memory leaks,
|
|
769
|
-
stability), Response time analysis (percentiles p50/p95/p99, outliers),
|
|
770
|
-
Throughput analysis (capacity, decline), Bottleneck identification
|
|
771
|
-
(database, CPU, network). 15 test cases with 90% pass rate requirement
|
|
772
|
-
and 100% critical pass rate.
|
|
1
|
+
# =============================================================================
|
|
2
|
+
# AQE Skill Evaluation Test Suite: Performance Testing v1.0.0
|
|
3
|
+
# =============================================================================
|
|
4
|
+
#
|
|
5
|
+
# Comprehensive evaluation suite for the performance-testing skill per ADR-056.
|
|
6
|
+
# Tests load testing, stress testing, endurance testing, response time analysis,
|
|
7
|
+
# throughput calculation, SLA validation, and bottleneck identification.
|
|
8
|
+
#
|
|
9
|
+
# Schema: .claude/skills/.validation/schemas/skill-eval.schema.json
|
|
10
|
+
# Validator: .claude/skills/performance-testing/scripts/validate-config.json
|
|
11
|
+
#
|
|
12
|
+
# Coverage:
|
|
13
|
+
# - Load Testing: k6, Artillery, JMeter scenarios
|
|
14
|
+
# - Stress Testing: Breaking point identification
|
|
15
|
+
# - Endurance Testing: Memory leak detection
|
|
16
|
+
# - Response Time Analysis: Percentile calculations (p50, p95, p99)
|
|
17
|
+
# - Throughput Analysis: Requests per second, transactions
|
|
18
|
+
# - SLA Validation: Threshold compliance checking
|
|
19
|
+
# - Bottleneck Identification: CPU, memory, DB, network
|
|
20
|
+
#
|
|
21
|
+
# =============================================================================
|
|
22
|
+
|
|
23
|
+
skill: performance-testing
|
|
24
|
+
version: 1.0.0
|
|
25
|
+
description: >
|
|
26
|
+
Comprehensive evaluation suite for the performance-testing skill.
|
|
27
|
+
Tests load/stress/endurance testing capabilities, response time percentile
|
|
28
|
+
accuracy, throughput calculation, SLA compliance checking, and bottleneck
|
|
29
|
+
identification. Supports multi-model testing and integrates with ReasoningBank
|
|
30
|
+
for continuous improvement.
|
|
31
|
+
|
|
32
|
+
# =============================================================================
|
|
33
|
+
# Multi-Model Configuration
|
|
34
|
+
# =============================================================================
|
|
35
|
+
|
|
36
|
+
models_to_test:
|
|
37
|
+
- claude-3.5-sonnet # Primary model (high accuracy expected)
|
|
38
|
+
- claude-3-haiku # Fast model (minimum quality threshold)
|
|
39
|
+
- gpt-4o # Cross-vendor validation
|
|
40
|
+
|
|
41
|
+
# =============================================================================
|
|
42
|
+
# MCP Integration Configuration
|
|
43
|
+
# =============================================================================
|
|
44
|
+
|
|
45
|
+
mcp_integration:
|
|
46
|
+
enabled: true
|
|
47
|
+
namespace: skill-validation
|
|
48
|
+
|
|
49
|
+
# Query existing performance patterns before running evals
|
|
50
|
+
query_patterns: true
|
|
51
|
+
|
|
52
|
+
# Track each test outcome for learning feedback loop
|
|
53
|
+
track_outcomes: true
|
|
54
|
+
|
|
55
|
+
# Store successful patterns after evals complete
|
|
56
|
+
store_patterns: true
|
|
57
|
+
|
|
58
|
+
# Share learning with fleet coordinator agents
|
|
59
|
+
share_learning: true
|
|
60
|
+
|
|
61
|
+
# Update quality gate with validation metrics
|
|
62
|
+
update_quality_gate: true
|
|
63
|
+
|
|
64
|
+
# Target agents for learning distribution
|
|
65
|
+
target_agents:
|
|
66
|
+
- qe-learning-coordinator
|
|
67
|
+
- qe-queen-coordinator
|
|
68
|
+
- qe-performance-tester
|
|
69
|
+
- qe-chaos-engineer
|
|
70
|
+
|
|
71
|
+
# =============================================================================
|
|
72
|
+
# ReasoningBank Learning Configuration
|
|
73
|
+
# =============================================================================
|
|
74
|
+
|
|
75
|
+
learning:
|
|
76
|
+
store_success_patterns: true
|
|
77
|
+
store_failure_patterns: true
|
|
78
|
+
pattern_ttl_days: 90
|
|
79
|
+
min_confidence_to_store: 0.7
|
|
80
|
+
cross_model_comparison: true
|
|
81
|
+
|
|
82
|
+
# =============================================================================
|
|
83
|
+
# Result Format Configuration
|
|
84
|
+
# =============================================================================
|
|
85
|
+
|
|
86
|
+
result_format:
|
|
87
|
+
json_output: true
|
|
88
|
+
markdown_report: true
|
|
89
|
+
include_raw_output: false
|
|
90
|
+
include_timing: true
|
|
91
|
+
include_token_usage: true
|
|
92
|
+
|
|
93
|
+
# =============================================================================
|
|
94
|
+
# Environment Setup
|
|
95
|
+
# =============================================================================
|
|
96
|
+
|
|
97
|
+
setup:
|
|
98
|
+
required_tools:
|
|
99
|
+
- jq # JSON parsing (required)
|
|
100
|
+
- bc # Math operations (optional)
|
|
101
|
+
|
|
102
|
+
environment_variables:
|
|
103
|
+
PERF_TEST_MODE: "evaluation"
|
|
104
|
+
SLA_STRICT: "true"
|
|
105
|
+
PERCENTILE_VALIDATION: "true"
|
|
106
|
+
|
|
107
|
+
fixtures:
|
|
108
|
+
- name: k6_load_test_script
|
|
109
|
+
path: fixtures/k6-load-test.js
|
|
110
|
+
content: |
|
|
111
|
+
import http from 'k6/http';
|
|
112
|
+
import { check, sleep } from 'k6';
|
|
113
|
+
|
|
114
|
+
export const options = {
|
|
115
|
+
stages: [
|
|
116
|
+
{ duration: '1m', target: 50 },
|
|
117
|
+
{ duration: '3m', target: 50 },
|
|
118
|
+
{ duration: '1m', target: 0 },
|
|
119
|
+
],
|
|
120
|
+
thresholds: {
|
|
121
|
+
http_req_duration: ['p(95)<200'],
|
|
122
|
+
http_req_failed: ['rate<0.01'],
|
|
123
|
+
},
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
export default function () {
|
|
127
|
+
const res = http.get('https://api.example.com/products');
|
|
128
|
+
check(res, {
|
|
129
|
+
'status is 200': (r) => r.status === 200,
|
|
130
|
+
'response time < 200ms': (r) => r.timings.duration < 200,
|
|
131
|
+
});
|
|
132
|
+
sleep(1);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
# =============================================================================
|
|
136
|
+
# TEST CASES
|
|
137
|
+
# =============================================================================
|
|
138
|
+
|
|
139
|
+
test_cases:
|
|
140
|
+
# ---------------------------------------------------------------------------
|
|
141
|
+
# CATEGORY: Load Testing
|
|
142
|
+
# ---------------------------------------------------------------------------
|
|
143
|
+
|
|
144
|
+
- id: tc001_load_test_basic_analysis
|
|
145
|
+
description: "Analyze basic load test results with response times and throughput"
|
|
146
|
+
category: load-testing
|
|
147
|
+
priority: critical
|
|
148
|
+
|
|
149
|
+
input:
|
|
150
|
+
scenario: |
|
|
151
|
+
A k6 load test was run against an e-commerce API with 100 virtual users
|
|
152
|
+
for 5 minutes. Analyze the results:
|
|
153
|
+
|
|
154
|
+
- Total Requests: 45,000
|
|
155
|
+
- Successful: 44,820
|
|
156
|
+
- Failed: 180
|
|
157
|
+
- Average Response Time: 145ms
|
|
158
|
+
- p50: 120ms
|
|
159
|
+
- p95: 280ms
|
|
160
|
+
- p99: 450ms
|
|
161
|
+
- Requests/second: 150
|
|
162
|
+
|
|
163
|
+
SLA Thresholds:
|
|
164
|
+
- p95 response time < 300ms
|
|
165
|
+
- Error rate < 1%
|
|
166
|
+
context:
|
|
167
|
+
tool: k6
|
|
168
|
+
testType: load
|
|
169
|
+
environment: staging
|
|
170
|
+
|
|
171
|
+
expected_output:
|
|
172
|
+
must_contain:
|
|
173
|
+
- "load test"
|
|
174
|
+
- "response time"
|
|
175
|
+
- "throughput"
|
|
176
|
+
- "150"
|
|
177
|
+
- "p95"
|
|
178
|
+
must_not_contain:
|
|
179
|
+
- "no data"
|
|
180
|
+
- "unable to analyze"
|
|
181
|
+
must_match_regex:
|
|
182
|
+
- "p95.*280|280.*p95"
|
|
183
|
+
- "error.*rate|rate.*error"
|
|
184
|
+
status: success
|
|
185
|
+
finding_count:
|
|
186
|
+
min: 1
|
|
187
|
+
max: 10
|
|
188
|
+
|
|
189
|
+
validation:
|
|
190
|
+
schema_check: true
|
|
191
|
+
keyword_match_threshold: 0.8
|
|
192
|
+
reasoning_quality_min: 0.75
|
|
193
|
+
|
|
194
|
+
timeout_ms: 30000
|
|
195
|
+
|
|
196
|
+
- id: tc002_load_test_sla_failure
|
|
197
|
+
description: "Detect SLA failures in load test results"
|
|
198
|
+
category: load-testing
|
|
199
|
+
priority: critical
|
|
200
|
+
|
|
201
|
+
input:
|
|
202
|
+
scenario: |
|
|
203
|
+
Load test results show SLA violations:
|
|
204
|
+
|
|
205
|
+
- p95 Response Time: 450ms (threshold: 300ms) - FAILED
|
|
206
|
+
- Error Rate: 2.5% (threshold: 1%) - FAILED
|
|
207
|
+
- Throughput: 1200 req/s (threshold: 1000) - PASSED
|
|
208
|
+
|
|
209
|
+
Identify the failures and provide recommendations.
|
|
210
|
+
context:
|
|
211
|
+
tool: artillery
|
|
212
|
+
testType: load
|
|
213
|
+
|
|
214
|
+
expected_output:
|
|
215
|
+
must_contain:
|
|
216
|
+
- "SLA"
|
|
217
|
+
- "failed"
|
|
218
|
+
- "threshold"
|
|
219
|
+
- "p95"
|
|
220
|
+
- "error rate"
|
|
221
|
+
must_not_contain:
|
|
222
|
+
- "all thresholds met"
|
|
223
|
+
- "passed"
|
|
224
|
+
severity_classification: high
|
|
225
|
+
finding_count:
|
|
226
|
+
min: 2
|
|
227
|
+
|
|
228
|
+
validation:
|
|
229
|
+
schema_check: true
|
|
230
|
+
keyword_match_threshold: 0.7
|
|
231
|
+
|
|
232
|
+
# ---------------------------------------------------------------------------
|
|
233
|
+
# CATEGORY: Stress Testing
|
|
234
|
+
# ---------------------------------------------------------------------------
|
|
235
|
+
|
|
236
|
+
- id: tc003_stress_test_breaking_point
|
|
237
|
+
description: "Identify system breaking point from stress test"
|
|
238
|
+
category: stress-testing
|
|
239
|
+
priority: critical
|
|
240
|
+
|
|
241
|
+
input:
|
|
242
|
+
scenario: |
|
|
243
|
+
Stress test ramped from 100 to 1000 VUs over 30 minutes:
|
|
244
|
+
|
|
245
|
+
100 VUs: p95=120ms, errors=0.1%
|
|
246
|
+
200 VUs: p95=150ms, errors=0.2%
|
|
247
|
+
400 VUs: p95=220ms, errors=0.5%
|
|
248
|
+
600 VUs: p95=380ms, errors=1.5%
|
|
249
|
+
800 VUs: p95=850ms, errors=8%
|
|
250
|
+
1000 VUs: p95=2500ms, errors=25%
|
|
251
|
+
|
|
252
|
+
Identify the breaking point and recommend max capacity.
|
|
253
|
+
context:
|
|
254
|
+
tool: k6
|
|
255
|
+
testType: stress
|
|
256
|
+
|
|
257
|
+
expected_output:
|
|
258
|
+
must_contain:
|
|
259
|
+
- "breaking point"
|
|
260
|
+
- "400"
|
|
261
|
+
- "600"
|
|
262
|
+
- "capacity"
|
|
263
|
+
- "degradation"
|
|
264
|
+
must_match_regex:
|
|
265
|
+
- "breaking.*point|point.*breaking"
|
|
266
|
+
- "recommend.*[0-9]+.*VU|[0-9]+.*VU.*recommend"
|
|
267
|
+
severity_classification: high
|
|
268
|
+
|
|
269
|
+
validation:
|
|
270
|
+
schema_check: true
|
|
271
|
+
keyword_match_threshold: 0.75
|
|
272
|
+
reasoning_quality_min: 0.8
|
|
273
|
+
|
|
274
|
+
- id: tc004_stress_test_gradual_degradation
|
|
275
|
+
description: "Analyze gradual performance degradation pattern"
|
|
276
|
+
category: stress-testing
|
|
277
|
+
priority: high
|
|
278
|
+
|
|
279
|
+
input:
|
|
280
|
+
scenario: |
|
|
281
|
+
Performance degrades gradually under increasing load:
|
|
282
|
+
|
|
283
|
+
Time 0m: 100 VUs, p95=100ms
|
|
284
|
+
Time 5m: 100 VUs, p95=105ms
|
|
285
|
+
Time 10m: 100 VUs, p95=120ms
|
|
286
|
+
Time 15m: 100 VUs, p95=150ms
|
|
287
|
+
Time 20m: 100 VUs, p95=200ms
|
|
288
|
+
Time 25m: 100 VUs, p95=280ms
|
|
289
|
+
Time 30m: 100 VUs, p95=400ms
|
|
290
|
+
|
|
291
|
+
Note: Load stayed constant but response time increased.
|
|
292
|
+
context:
|
|
293
|
+
tool: gatling
|
|
294
|
+
testType: stress
|
|
295
|
+
|
|
296
|
+
expected_output:
|
|
297
|
+
must_contain:
|
|
298
|
+
- "degradation"
|
|
299
|
+
- "memory"
|
|
300
|
+
- "leak"
|
|
301
|
+
- "resource"
|
|
302
|
+
must_not_contain:
|
|
303
|
+
- "stable"
|
|
304
|
+
- "healthy"
|
|
305
|
+
severity_classification: critical
|
|
306
|
+
|
|
307
|
+
validation:
|
|
308
|
+
schema_check: true
|
|
309
|
+
keyword_match_threshold: 0.7
|
|
310
|
+
|
|
311
|
+
# ---------------------------------------------------------------------------
|
|
312
|
+
# CATEGORY: Endurance Testing
|
|
313
|
+
# ---------------------------------------------------------------------------
|
|
314
|
+
|
|
315
|
+
- id: tc005_endurance_test_memory_leak
|
|
316
|
+
description: "Detect memory leak in endurance test"
|
|
317
|
+
category: endurance-testing
|
|
318
|
+
priority: critical
|
|
319
|
+
|
|
320
|
+
input:
|
|
321
|
+
scenario: |
|
|
322
|
+
24-hour endurance test with 50 VUs:
|
|
323
|
+
|
|
324
|
+
Hour 0: Memory=2GB, p95=100ms
|
|
325
|
+
Hour 4: Memory=2.5GB, p95=105ms
|
|
326
|
+
Hour 8: Memory=3.2GB, p95=115ms
|
|
327
|
+
Hour 12: Memory=4.1GB, p95=130ms
|
|
328
|
+
Hour 16: Memory=5.2GB, p95=160ms
|
|
329
|
+
Hour 20: Memory=6.8GB, p95=220ms
|
|
330
|
+
Hour 24: Memory=8.5GB, p95=350ms
|
|
331
|
+
|
|
332
|
+
Server has 16GB RAM. Response time degraded as memory grew.
|
|
333
|
+
context:
|
|
334
|
+
tool: jmeter
|
|
335
|
+
testType: endurance
|
|
336
|
+
|
|
337
|
+
expected_output:
|
|
338
|
+
must_contain:
|
|
339
|
+
- "memory leak"
|
|
340
|
+
- "endurance"
|
|
341
|
+
- "24 hour"
|
|
342
|
+
- "growth"
|
|
343
|
+
- "fix"
|
|
344
|
+
must_match_regex:
|
|
345
|
+
- "memory.*leak|leak.*memory"
|
|
346
|
+
- "recommend|fix|solution"
|
|
347
|
+
severity_classification: critical
|
|
348
|
+
finding_count:
|
|
349
|
+
min: 1
|
|
350
|
+
|
|
351
|
+
validation:
|
|
352
|
+
schema_check: true
|
|
353
|
+
keyword_match_threshold: 0.8
|
|
354
|
+
reasoning_quality_min: 0.85
|
|
355
|
+
|
|
356
|
+
- id: tc006_endurance_test_stable
|
|
357
|
+
description: "Verify stable system in endurance test"
|
|
358
|
+
category: endurance-testing
|
|
359
|
+
priority: high
|
|
360
|
+
|
|
361
|
+
input:
|
|
362
|
+
scenario: |
|
|
363
|
+
48-hour soak test with 100 VUs - System remained stable:
|
|
364
|
+
|
|
365
|
+
- Response time p95: 150ms +/- 10ms throughout
|
|
366
|
+
- Memory: 4GB +/- 200MB throughout
|
|
367
|
+
- CPU: 45% +/- 5% throughout
|
|
368
|
+
- Error rate: 0.05% constant
|
|
369
|
+
- No connection pool exhaustion
|
|
370
|
+
- No thread leaks detected
|
|
371
|
+
|
|
372
|
+
All metrics within acceptable variance.
|
|
373
|
+
context:
|
|
374
|
+
tool: k6
|
|
375
|
+
testType: soak
|
|
376
|
+
|
|
377
|
+
expected_output:
|
|
378
|
+
must_contain:
|
|
379
|
+
- "stable"
|
|
380
|
+
- "soak"
|
|
381
|
+
- "48 hour"
|
|
382
|
+
- "healthy"
|
|
383
|
+
must_not_contain:
|
|
384
|
+
- "memory leak"
|
|
385
|
+
- "degradation"
|
|
386
|
+
- "critical"
|
|
387
|
+
status: success
|
|
388
|
+
|
|
389
|
+
validation:
|
|
390
|
+
schema_check: true
|
|
391
|
+
keyword_match_threshold: 0.7
|
|
392
|
+
|
|
393
|
+
# ---------------------------------------------------------------------------
|
|
394
|
+
# CATEGORY: Response Time Analysis
|
|
395
|
+
# ---------------------------------------------------------------------------
|
|
396
|
+
|
|
397
|
+
- id: tc007_percentile_analysis
|
|
398
|
+
description: "Analyze response time percentiles correctly"
|
|
399
|
+
category: response-time
|
|
400
|
+
priority: critical
|
|
401
|
+
|
|
402
|
+
input:
|
|
403
|
+
scenario: |
|
|
404
|
+
Analyze these response time percentiles:
|
|
405
|
+
|
|
406
|
+
min: 15ms
|
|
407
|
+
p50: 85ms
|
|
408
|
+
p75: 120ms
|
|
409
|
+
p90: 180ms
|
|
410
|
+
p95: 250ms
|
|
411
|
+
p99: 450ms
|
|
412
|
+
p999: 850ms
|
|
413
|
+
max: 2500ms
|
|
414
|
+
avg: 110ms
|
|
415
|
+
stdDev: 95ms
|
|
416
|
+
|
|
417
|
+
SLA: p95 < 300ms, p99 < 500ms
|
|
418
|
+
context:
|
|
419
|
+
testType: load
|
|
420
|
+
|
|
421
|
+
expected_output:
|
|
422
|
+
must_contain:
|
|
423
|
+
- "p95"
|
|
424
|
+
- "p99"
|
|
425
|
+
- "percentile"
|
|
426
|
+
- "SLA"
|
|
427
|
+
- "passed"
|
|
428
|
+
must_match_regex:
|
|
429
|
+
- "p95.*250|250.*p95"
|
|
430
|
+
- "p99.*450|450.*p99"
|
|
431
|
+
|
|
432
|
+
validation:
|
|
433
|
+
schema_check: true
|
|
434
|
+
keyword_match_threshold: 0.8
|
|
435
|
+
|
|
436
|
+
- id: tc008_response_time_outliers
|
|
437
|
+
description: "Identify response time outliers"
|
|
438
|
+
category: response-time
|
|
439
|
+
priority: high
|
|
440
|
+
|
|
441
|
+
input:
|
|
442
|
+
scenario: |
|
|
443
|
+
Response time distribution shows outliers:
|
|
444
|
+
|
|
445
|
+
p50: 50ms
|
|
446
|
+
p95: 100ms
|
|
447
|
+
p99: 200ms
|
|
448
|
+
max: 15000ms
|
|
449
|
+
|
|
450
|
+
The max value is 75x the p99. This suggests occasional extreme outliers.
|
|
451
|
+
Investigate potential causes.
|
|
452
|
+
context:
|
|
453
|
+
testType: load
|
|
454
|
+
|
|
455
|
+
expected_output:
|
|
456
|
+
must_contain:
|
|
457
|
+
- "outlier"
|
|
458
|
+
- "spike"
|
|
459
|
+
- "max"
|
|
460
|
+
- "investigate"
|
|
461
|
+
must_match_regex:
|
|
462
|
+
- "15000|15,000|15s"
|
|
463
|
+
- "garbage.*collection|timeout|network"
|
|
464
|
+
|
|
465
|
+
validation:
|
|
466
|
+
schema_check: true
|
|
467
|
+
keyword_match_threshold: 0.7
|
|
468
|
+
|
|
469
|
+
# ---------------------------------------------------------------------------
|
|
470
|
+
# CATEGORY: Throughput Analysis
|
|
471
|
+
# ---------------------------------------------------------------------------
|
|
472
|
+
|
|
473
|
+
- id: tc009_throughput_capacity
|
|
474
|
+
description: "Analyze throughput capacity"
|
|
475
|
+
category: throughput
|
|
476
|
+
priority: high
|
|
477
|
+
|
|
478
|
+
input:
|
|
479
|
+
scenario: |
|
|
480
|
+
Throughput analysis:
|
|
481
|
+
|
|
482
|
+
50 VUs: 500 req/s (10 req/VU/s)
|
|
483
|
+
100 VUs: 950 req/s (9.5 req/VU/s)
|
|
484
|
+
200 VUs: 1600 req/s (8 req/VU/s)
|
|
485
|
+
400 VUs: 2000 req/s (5 req/VU/s)
|
|
486
|
+
800 VUs: 2100 req/s (2.6 req/VU/s)
|
|
487
|
+
|
|
488
|
+
Throughput is plateauing. Calculate max capacity.
|
|
489
|
+
context:
|
|
490
|
+
tool: k6
|
|
491
|
+
testType: scalability
|
|
492
|
+
|
|
493
|
+
expected_output:
|
|
494
|
+
must_contain:
|
|
495
|
+
- "throughput"
|
|
496
|
+
- "plateau"
|
|
497
|
+
- "capacity"
|
|
498
|
+
- "bottleneck"
|
|
499
|
+
must_match_regex:
|
|
500
|
+
- "2[01]00.*req|req.*2[01]00"
|
|
501
|
+
- "max.*capacity|capacity.*limit"
|
|
502
|
+
|
|
503
|
+
validation:
|
|
504
|
+
schema_check: true
|
|
505
|
+
keyword_match_threshold: 0.75
|
|
506
|
+
|
|
507
|
+
- id: tc010_throughput_decline
|
|
508
|
+
description: "Detect throughput decline under load"
|
|
509
|
+
category: throughput
|
|
510
|
+
priority: critical
|
|
511
|
+
|
|
512
|
+
input:
|
|
513
|
+
scenario: |
|
|
514
|
+
Throughput declines as load increases:
|
|
515
|
+
|
|
516
|
+
100 VUs: 1500 req/s, p95=100ms
|
|
517
|
+
200 VUs: 1400 req/s, p95=180ms
|
|
518
|
+
300 VUs: 1200 req/s, p95=350ms
|
|
519
|
+
400 VUs: 900 req/s, p95=800ms
|
|
520
|
+
|
|
521
|
+
Throughput is dropping while response time increases.
|
|
522
|
+
This indicates severe resource contention.
|
|
523
|
+
context:
|
|
524
|
+
testType: stress
|
|
525
|
+
|
|
526
|
+
expected_output:
|
|
527
|
+
must_contain:
|
|
528
|
+
- "throughput"
|
|
529
|
+
- "decline"
|
|
530
|
+
- "contention"
|
|
531
|
+
- "resource"
|
|
532
|
+
severity_classification: critical
|
|
533
|
+
|
|
534
|
+
validation:
|
|
535
|
+
schema_check: true
|
|
536
|
+
keyword_match_threshold: 0.7
|
|
537
|
+
|
|
538
|
+
# ---------------------------------------------------------------------------
|
|
539
|
+
# CATEGORY: Bottleneck Identification
|
|
540
|
+
# ---------------------------------------------------------------------------
|
|
541
|
+
|
|
542
|
+
- id: tc011_database_bottleneck
|
|
543
|
+
description: "Identify database connection pool bottleneck"
|
|
544
|
+
category: bottleneck
|
|
545
|
+
priority: critical
|
|
546
|
+
|
|
547
|
+
input:
|
|
548
|
+
scenario: |
|
|
549
|
+
Load test shows database issues:
|
|
550
|
+
|
|
551
|
+
- Response time spikes when VUs > 200
|
|
552
|
+
- Database connection pool: 20 max
|
|
553
|
+
- Active connections at spike: 20 (saturated)
|
|
554
|
+
- Connection wait time: 500ms avg
|
|
555
|
+
- Query execution time: 10ms avg
|
|
556
|
+
|
|
557
|
+
Application waits for connections, not query execution.
|
|
558
|
+
context:
|
|
559
|
+
tool: k6
|
|
560
|
+
testType: load
|
|
561
|
+
|
|
562
|
+
expected_output:
|
|
563
|
+
must_contain:
|
|
564
|
+
- "connection pool"
|
|
565
|
+
- "bottleneck"
|
|
566
|
+
- "database"
|
|
567
|
+
- "increase"
|
|
568
|
+
- "20"
|
|
569
|
+
must_match_regex:
|
|
570
|
+
- "connection.*pool|pool.*connection"
|
|
571
|
+
- "saturat|exhaust"
|
|
572
|
+
severity_classification: critical
|
|
573
|
+
finding_count:
|
|
574
|
+
min: 1
|
|
575
|
+
|
|
576
|
+
validation:
|
|
577
|
+
schema_check: true
|
|
578
|
+
keyword_match_threshold: 0.8
|
|
579
|
+
reasoning_quality_min: 0.85
|
|
580
|
+
|
|
581
|
+
- id: tc012_cpu_bottleneck
|
|
582
|
+
description: "Identify CPU bottleneck"
|
|
583
|
+
category: bottleneck
|
|
584
|
+
priority: high
|
|
585
|
+
|
|
586
|
+
input:
|
|
587
|
+
scenario: |
|
|
588
|
+
Performance test with CPU saturation:
|
|
589
|
+
|
|
590
|
+
100 VUs:
|
|
591
|
+
- CPU: 45%
|
|
592
|
+
- Memory: 60%
|
|
593
|
+
- p95: 100ms
|
|
594
|
+
|
|
595
|
+
300 VUs:
|
|
596
|
+
- CPU: 85%
|
|
597
|
+
- Memory: 65%
|
|
598
|
+
- p95: 250ms
|
|
599
|
+
|
|
600
|
+
500 VUs:
|
|
601
|
+
- CPU: 98%
|
|
602
|
+
- Memory: 68%
|
|
603
|
+
- p95: 800ms
|
|
604
|
+
|
|
605
|
+
CPU is clearly the constraint.
|
|
606
|
+
context:
|
|
607
|
+
testType: stress
|
|
608
|
+
|
|
609
|
+
expected_output:
|
|
610
|
+
must_contain:
|
|
611
|
+
- "CPU"
|
|
612
|
+
- "bottleneck"
|
|
613
|
+
- "98%"
|
|
614
|
+
- "scale"
|
|
615
|
+
must_match_regex:
|
|
616
|
+
- "CPU.*bottleneck|bottleneck.*CPU"
|
|
617
|
+
- "horizontal|vertical|scale"
|
|
618
|
+
severity_classification: high
|
|
619
|
+
|
|
620
|
+
validation:
|
|
621
|
+
schema_check: true
|
|
622
|
+
keyword_match_threshold: 0.75
|
|
623
|
+
|
|
624
|
+
- id: tc013_network_bottleneck
|
|
625
|
+
description: "Identify network bandwidth bottleneck"
|
|
626
|
+
category: bottleneck
|
|
627
|
+
priority: high
|
|
628
|
+
|
|
629
|
+
input:
|
|
630
|
+
scenario: |
|
|
631
|
+
API returns large JSON responses. Network becomes limiting factor:
|
|
632
|
+
|
|
633
|
+
- Average response size: 500KB
|
|
634
|
+
- Network bandwidth: 1Gbps
|
|
635
|
+
- At 200 req/s: 800Mbps used, p95=150ms
|
|
636
|
+
- At 250 req/s: 1Gbps saturated, p95=500ms
|
|
637
|
+
- At 300 req/s: packet drops, p95=2000ms
|
|
638
|
+
|
|
639
|
+
Application servers have capacity but network is saturated.
|
|
640
|
+
context:
|
|
641
|
+
testType: load
|
|
642
|
+
|
|
643
|
+
expected_output:
|
|
644
|
+
must_contain:
|
|
645
|
+
- "network"
|
|
646
|
+
- "bandwidth"
|
|
647
|
+
- "bottleneck"
|
|
648
|
+
- "1Gbps"
|
|
649
|
+
must_match_regex:
|
|
650
|
+
- "network.*bottleneck|bottleneck.*network"
|
|
651
|
+
- "bandwidth|compress|reduce.*size"
|
|
652
|
+
severity_classification: high
|
|
653
|
+
|
|
654
|
+
validation:
|
|
655
|
+
schema_check: true
|
|
656
|
+
keyword_match_threshold: 0.7
|
|
657
|
+
|
|
658
|
+
# ---------------------------------------------------------------------------
|
|
659
|
+
# CATEGORY: Negative Tests
|
|
660
|
+
# ---------------------------------------------------------------------------
|
|
661
|
+
|
|
662
|
+
- id: tc014_healthy_system_no_false_positives
|
|
663
|
+
description: "Verify healthy system is not flagged with false positives"
|
|
664
|
+
category: negative
|
|
665
|
+
priority: critical
|
|
666
|
+
|
|
667
|
+
input:
|
|
668
|
+
scenario: |
|
|
669
|
+
Production load test results - System is healthy:
|
|
670
|
+
|
|
671
|
+
- 500 VUs for 30 minutes
|
|
672
|
+
- p50: 45ms, p95: 85ms, p99: 120ms
|
|
673
|
+
- Throughput: 2,500 req/s (stable)
|
|
674
|
+
- Error rate: 0.02%
|
|
675
|
+
- CPU: 55%, Memory: 65%
|
|
676
|
+
- All SLAs passed
|
|
677
|
+
- No bottlenecks detected
|
|
678
|
+
- Response times stable throughout
|
|
679
|
+
context:
|
|
680
|
+
tool: k6
|
|
681
|
+
testType: load
|
|
682
|
+
environment: production
|
|
683
|
+
|
|
684
|
+
expected_output:
|
|
685
|
+
must_contain:
|
|
686
|
+
- "healthy"
|
|
687
|
+
- "passed"
|
|
688
|
+
- "stable"
|
|
689
|
+
must_not_contain:
|
|
690
|
+
- "critical"
|
|
691
|
+
- "bottleneck"
|
|
692
|
+
- "memory leak"
|
|
693
|
+
- "degradation"
|
|
694
|
+
- "failure"
|
|
695
|
+
status: success
|
|
696
|
+
finding_count:
|
|
697
|
+
max: 3 # Allow informational findings only
|
|
698
|
+
|
|
699
|
+
validation:
|
|
700
|
+
schema_check: true
|
|
701
|
+
keyword_match_threshold: 0.6
|
|
702
|
+
allow_partial: true
|
|
703
|
+
|
|
704
|
+
- id: tc015_incomplete_data_handling
|
|
705
|
+
description: "Handle incomplete performance data gracefully"
|
|
706
|
+
category: negative
|
|
707
|
+
priority: high
|
|
708
|
+
|
|
709
|
+
input:
|
|
710
|
+
scenario: |
|
|
711
|
+
Partial load test data (test interrupted after 5 minutes):
|
|
712
|
+
|
|
713
|
+
- Collected 5 minutes of 30 minute planned test
|
|
714
|
+
- p95: 200ms (limited sample)
|
|
715
|
+
- Total requests: 5,000
|
|
716
|
+
- Cannot determine steady-state behavior
|
|
717
|
+
|
|
718
|
+
Provide analysis with appropriate caveats.
|
|
719
|
+
context:
|
|
720
|
+
tool: artillery
|
|
721
|
+
testType: load
|
|
722
|
+
|
|
723
|
+
expected_output:
|
|
724
|
+
must_contain:
|
|
725
|
+
- "incomplete"
|
|
726
|
+
- "partial"
|
|
727
|
+
- "caveat"
|
|
728
|
+
- "limited"
|
|
729
|
+
must_not_contain:
|
|
730
|
+
- "definitive"
|
|
731
|
+
- "conclusive"
|
|
732
|
+
status: partial
|
|
733
|
+
|
|
734
|
+
validation:
|
|
735
|
+
schema_check: true
|
|
736
|
+
allow_partial: true
|
|
737
|
+
|
|
738
|
+
# =============================================================================
|
|
739
|
+
# SUCCESS CRITERIA
|
|
740
|
+
# =============================================================================
|
|
741
|
+
|
|
742
|
+
success_criteria:
|
|
743
|
+
# Overall pass rate (90% of tests must pass)
|
|
744
|
+
pass_rate: 0.9
|
|
745
|
+
|
|
746
|
+
# Critical tests must ALL pass (100%)
|
|
747
|
+
critical_pass_rate: 1.0
|
|
748
|
+
|
|
749
|
+
# Average reasoning quality score
|
|
750
|
+
avg_reasoning_quality: 0.75
|
|
751
|
+
|
|
752
|
+
# Maximum suite execution time (5 minutes)
|
|
753
|
+
max_execution_time_ms: 300000
|
|
754
|
+
|
|
755
|
+
# Maximum variance between model results (15%)
|
|
756
|
+
cross_model_variance: 0.15
|
|
757
|
+
|
|
758
|
+
# =============================================================================
|
|
759
|
+
# METADATA
|
|
760
|
+
# =============================================================================
|
|
761
|
+
|
|
762
|
+
metadata:
|
|
763
|
+
author: "qe-performance-tester"
|
|
764
|
+
created: "2026-02-02"
|
|
765
|
+
last_updated: "2026-02-02"
|
|
766
|
+
coverage_target: >
|
|
767
|
+
Performance Testing: Load testing (k6, Artillery, JMeter), Stress testing
|
|
768
|
+
(breaking point, gradual degradation), Endurance testing (memory leaks,
|
|
769
|
+
stability), Response time analysis (percentiles p50/p95/p99, outliers),
|
|
770
|
+
Throughput analysis (capacity, decline), Bottleneck identification
|
|
771
|
+
(database, CPU, network). 15 test cases with 90% pass rate requirement
|
|
772
|
+
and 100% critical pass rate.
|