agentic-qe 2.0.0 → 2.1.1
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/agents/qx-partner.md +17 -4
- package/.claude/skills/accessibility-testing/SKILL.md +144 -692
- package/.claude/skills/agentic-quality-engineering/SKILL.md +176 -529
- package/.claude/skills/api-testing-patterns/SKILL.md +180 -560
- package/.claude/skills/brutal-honesty-review/SKILL.md +113 -603
- package/.claude/skills/bug-reporting-excellence/SKILL.md +116 -517
- package/.claude/skills/chaos-engineering-resilience/SKILL.md +127 -72
- package/.claude/skills/cicd-pipeline-qe-orchestrator/SKILL.md +209 -404
- package/.claude/skills/code-review-quality/SKILL.md +158 -608
- package/.claude/skills/compatibility-testing/SKILL.md +148 -38
- package/.claude/skills/compliance-testing/SKILL.md +132 -63
- package/.claude/skills/consultancy-practices/SKILL.md +114 -446
- package/.claude/skills/context-driven-testing/SKILL.md +117 -381
- package/.claude/skills/contract-testing/SKILL.md +176 -141
- package/.claude/skills/database-testing/SKILL.md +137 -130
- package/.claude/skills/exploratory-testing-advanced/SKILL.md +160 -629
- package/.claude/skills/holistic-testing-pact/SKILL.md +140 -188
- package/.claude/skills/localization-testing/SKILL.md +145 -33
- package/.claude/skills/mobile-testing/SKILL.md +132 -448
- package/.claude/skills/mutation-testing/SKILL.md +147 -41
- package/.claude/skills/performance-testing/SKILL.md +200 -546
- package/.claude/skills/quality-metrics/SKILL.md +164 -519
- package/.claude/skills/refactoring-patterns/SKILL.md +132 -699
- package/.claude/skills/regression-testing/SKILL.md +120 -926
- package/.claude/skills/risk-based-testing/SKILL.md +157 -660
- package/.claude/skills/security-testing/SKILL.md +199 -538
- package/.claude/skills/sherlock-review/SKILL.md +163 -699
- package/.claude/skills/shift-left-testing/SKILL.md +161 -465
- package/.claude/skills/shift-right-testing/SKILL.md +161 -519
- package/.claude/skills/six-thinking-hats/SKILL.md +175 -1110
- package/.claude/skills/skills-manifest.json +71 -20
- package/.claude/skills/tdd-london-chicago/SKILL.md +131 -448
- package/.claude/skills/technical-writing/SKILL.md +103 -154
- package/.claude/skills/test-automation-strategy/SKILL.md +166 -772
- package/.claude/skills/test-data-management/SKILL.md +126 -910
- package/.claude/skills/test-design-techniques/SKILL.md +179 -89
- package/.claude/skills/test-environment-management/SKILL.md +136 -91
- package/.claude/skills/test-reporting-analytics/SKILL.md +169 -92
- package/.claude/skills/testability-scoring/SKILL.md +172 -538
- package/.claude/skills/testability-scoring/scripts/generate-html-report.js +0 -0
- package/.claude/skills/visual-testing-advanced/SKILL.md +155 -78
- package/.claude/skills/xp-practices/SKILL.md +151 -587
- package/CHANGELOG.md +86 -0
- package/README.md +23 -16
- package/dist/agents/QXPartnerAgent.d.ts +47 -1
- package/dist/agents/QXPartnerAgent.d.ts.map +1 -1
- package/dist/agents/QXPartnerAgent.js +2086 -125
- package/dist/agents/QXPartnerAgent.js.map +1 -1
- package/dist/agents/lifecycle/AgentLifecycleManager.d.ts.map +1 -1
- package/dist/agents/lifecycle/AgentLifecycleManager.js +34 -31
- package/dist/agents/lifecycle/AgentLifecycleManager.js.map +1 -1
- package/dist/cli/commands/init-claude-md-template.d.ts.map +1 -1
- package/dist/cli/commands/init-claude-md-template.js +14 -0
- package/dist/cli/commands/init-claude-md-template.js.map +1 -1
- package/dist/core/SwarmCoordinator.d.ts +180 -0
- package/dist/core/SwarmCoordinator.d.ts.map +1 -0
- package/dist/core/SwarmCoordinator.js +473 -0
- package/dist/core/SwarmCoordinator.js.map +1 -0
- package/dist/core/memory/ReflexionMemoryAdapter.d.ts +109 -0
- package/dist/core/memory/ReflexionMemoryAdapter.d.ts.map +1 -0
- package/dist/core/memory/ReflexionMemoryAdapter.js +306 -0
- package/dist/core/memory/ReflexionMemoryAdapter.js.map +1 -0
- package/dist/core/memory/RuVectorPatternStore.d.ts +28 -0
- package/dist/core/memory/RuVectorPatternStore.d.ts.map +1 -1
- package/dist/core/memory/RuVectorPatternStore.js +70 -0
- package/dist/core/memory/RuVectorPatternStore.js.map +1 -1
- package/dist/core/memory/SparseVectorSearch.d.ts +55 -0
- package/dist/core/memory/SparseVectorSearch.d.ts.map +1 -0
- package/dist/core/memory/SparseVectorSearch.js +130 -0
- package/dist/core/memory/SparseVectorSearch.js.map +1 -0
- package/dist/core/memory/TieredCompression.d.ts +81 -0
- package/dist/core/memory/TieredCompression.d.ts.map +1 -0
- package/dist/core/memory/TieredCompression.js +270 -0
- package/dist/core/memory/TieredCompression.js.map +1 -0
- package/dist/core/memory/index.d.ts +6 -0
- package/dist/core/memory/index.d.ts.map +1 -1
- package/dist/core/memory/index.js +29 -1
- package/dist/core/memory/index.js.map +1 -1
- package/dist/core/metrics/MetricsAggregator.d.ts +228 -0
- package/dist/core/metrics/MetricsAggregator.d.ts.map +1 -0
- package/dist/core/metrics/MetricsAggregator.js +482 -0
- package/dist/core/metrics/MetricsAggregator.js.map +1 -0
- package/dist/core/metrics/index.d.ts +5 -0
- package/dist/core/metrics/index.d.ts.map +1 -0
- package/dist/core/metrics/index.js +11 -0
- package/dist/core/metrics/index.js.map +1 -0
- package/dist/core/optimization/SwarmOptimizer.d.ts +5 -0
- package/dist/core/optimization/SwarmOptimizer.d.ts.map +1 -1
- package/dist/core/optimization/SwarmOptimizer.js +17 -0
- package/dist/core/optimization/SwarmOptimizer.js.map +1 -1
- package/dist/core/orchestration/AdaptiveScheduler.d.ts +190 -0
- package/dist/core/orchestration/AdaptiveScheduler.d.ts.map +1 -0
- package/dist/core/orchestration/AdaptiveScheduler.js +460 -0
- package/dist/core/orchestration/AdaptiveScheduler.js.map +1 -0
- package/dist/core/orchestration/WorkflowOrchestrator.d.ts +13 -0
- package/dist/core/orchestration/WorkflowOrchestrator.d.ts.map +1 -1
- package/dist/core/orchestration/WorkflowOrchestrator.js +32 -0
- package/dist/core/orchestration/WorkflowOrchestrator.js.map +1 -1
- package/dist/core/recovery/CircuitBreaker.d.ts +176 -0
- package/dist/core/recovery/CircuitBreaker.d.ts.map +1 -0
- package/dist/core/recovery/CircuitBreaker.js +382 -0
- package/dist/core/recovery/CircuitBreaker.js.map +1 -0
- package/dist/core/recovery/RecoveryOrchestrator.d.ts +186 -0
- package/dist/core/recovery/RecoveryOrchestrator.d.ts.map +1 -0
- package/dist/core/recovery/RecoveryOrchestrator.js +476 -0
- package/dist/core/recovery/RecoveryOrchestrator.js.map +1 -0
- package/dist/core/recovery/RetryStrategy.d.ts +127 -0
- package/dist/core/recovery/RetryStrategy.d.ts.map +1 -0
- package/dist/core/recovery/RetryStrategy.js +314 -0
- package/dist/core/recovery/RetryStrategy.js.map +1 -0
- package/dist/core/recovery/index.d.ts +8 -0
- package/dist/core/recovery/index.d.ts.map +1 -0
- package/dist/core/recovery/index.js +27 -0
- package/dist/core/recovery/index.js.map +1 -0
- package/dist/core/skills/DependencyResolver.d.ts +99 -0
- package/dist/core/skills/DependencyResolver.d.ts.map +1 -0
- package/dist/core/skills/DependencyResolver.js +260 -0
- package/dist/core/skills/DependencyResolver.js.map +1 -0
- package/dist/core/skills/ManifestGenerator.d.ts +114 -0
- package/dist/core/skills/ManifestGenerator.d.ts.map +1 -0
- package/dist/core/skills/ManifestGenerator.js +449 -0
- package/dist/core/skills/ManifestGenerator.js.map +1 -0
- package/dist/core/skills/index.d.ts +9 -0
- package/dist/core/skills/index.d.ts.map +1 -0
- package/dist/core/skills/index.js +24 -0
- package/dist/core/skills/index.js.map +1 -0
- package/dist/mcp/handlers/chaos/chaos-inject-failure.d.ts +5 -0
- package/dist/mcp/handlers/chaos/chaos-inject-failure.d.ts.map +1 -1
- package/dist/mcp/handlers/chaos/chaos-inject-failure.js +36 -2
- package/dist/mcp/handlers/chaos/chaos-inject-failure.js.map +1 -1
- package/dist/mcp/handlers/chaos/chaos-inject-latency.d.ts +5 -0
- package/dist/mcp/handlers/chaos/chaos-inject-latency.d.ts.map +1 -1
- package/dist/mcp/handlers/chaos/chaos-inject-latency.js +36 -2
- package/dist/mcp/handlers/chaos/chaos-inject-latency.js.map +1 -1
- package/dist/mcp/server.d.ts +9 -9
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +1 -2
- package/dist/mcp/server.js.map +1 -1
- package/dist/types/qx.d.ts +113 -7
- package/dist/types/qx.d.ts.map +1 -1
- package/dist/types/qx.js.map +1 -1
- package/dist/visualization/api/RestEndpoints.js +1 -1
- package/dist/visualization/api/RestEndpoints.js.map +1 -1
- package/package.json +15 -54
|
@@ -1,39 +1,72 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: compatibility-testing
|
|
3
|
-
description: Cross-browser, cross-platform, and cross-device compatibility testing ensuring consistent experience across environments. Use when validating browser support, testing responsive design, or ensuring platform compatibility.
|
|
3
|
+
description: "Cross-browser, cross-platform, and cross-device compatibility testing ensuring consistent experience across environments. Use when validating browser support, testing responsive design, or ensuring platform compatibility."
|
|
4
|
+
category: specialized-testing
|
|
5
|
+
priority: medium
|
|
6
|
+
tokenEstimate: 800
|
|
7
|
+
agents: [qe-visual-tester, qe-test-executor, qe-performance-tester]
|
|
8
|
+
implementation_status: optimized
|
|
9
|
+
optimization_version: 1.0
|
|
10
|
+
last_optimized: 2025-12-02
|
|
11
|
+
dependencies: []
|
|
12
|
+
quick_reference_card: true
|
|
13
|
+
tags: [compatibility, cross-browser, responsive, browserstack, playwright, devices]
|
|
4
14
|
---
|
|
5
15
|
|
|
6
16
|
# Compatibility Testing
|
|
7
17
|
|
|
8
|
-
|
|
18
|
+
<default_to_action>
|
|
19
|
+
When validating cross-browser/platform compatibility:
|
|
20
|
+
1. DEFINE browser matrix (cover 95%+ of users)
|
|
21
|
+
2. TEST responsive breakpoints (mobile, tablet, desktop)
|
|
22
|
+
3. RUN in parallel across browsers/devices
|
|
23
|
+
4. USE cloud services for device coverage (BrowserStack, Sauce Labs)
|
|
24
|
+
5. COMPARE visual screenshots across platforms
|
|
25
|
+
|
|
26
|
+
**Quick Compatibility Checklist:**
|
|
27
|
+
- Chrome, Firefox, Safari, Edge (latest + N-1)
|
|
28
|
+
- Mobile Safari (iOS), Mobile Chrome (Android)
|
|
29
|
+
- Screen sizes: 320px, 768px, 1920px
|
|
30
|
+
- Test on actual target devices for critical flows
|
|
31
|
+
|
|
32
|
+
**Critical Success Factors:**
|
|
33
|
+
- Users access from 100+ browser/device combinations
|
|
34
|
+
- Test where users are, not where you develop
|
|
35
|
+
- Cloud testing reduces 10 hours to 15 minutes
|
|
36
|
+
</default_to_action>
|
|
37
|
+
|
|
38
|
+
## Quick Reference Card
|
|
39
|
+
|
|
40
|
+
### When to Use
|
|
41
|
+
- Before release
|
|
42
|
+
- After CSS/layout changes
|
|
43
|
+
- Launching in new markets
|
|
44
|
+
- Responsive design validation
|
|
45
|
+
|
|
46
|
+
### Browser Matrix
|
|
47
|
+
| Browser | Versions | Priority |
|
|
48
|
+
|---------|----------|----------|
|
|
49
|
+
| **Chrome** | Latest, N-1 | High |
|
|
50
|
+
| **Firefox** | Latest, N-1 | High |
|
|
51
|
+
| **Safari** | Latest, N-1 | High |
|
|
52
|
+
| **Edge** | Latest | Medium |
|
|
53
|
+
| **Mobile Safari** | iOS latest | High |
|
|
54
|
+
| **Mobile Chrome** | Android latest | High |
|
|
55
|
+
|
|
56
|
+
### Screen Breakpoints
|
|
57
|
+
| Category | Width Range |
|
|
58
|
+
|----------|-------------|
|
|
59
|
+
| **Mobile** | 320px - 480px |
|
|
60
|
+
| **Tablet** | 481px - 768px |
|
|
61
|
+
| **Desktop** | 769px - 1920px+ |
|
|
9
62
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
Compatibility testing ensures consistent functionality and UX across browsers, operating systems, devices, and screen sizes.
|
|
13
|
-
|
|
14
|
-
## Browser Matrix
|
|
15
|
-
|
|
16
|
-
**Test on:**
|
|
17
|
-
- Chrome (latest, N-1)
|
|
18
|
-
- Firefox (latest, N-1)
|
|
19
|
-
- Safari (latest, N-1)
|
|
20
|
-
- Edge (latest)
|
|
21
|
-
- Mobile Safari (iOS)
|
|
22
|
-
- Mobile Chrome (Android)
|
|
23
|
-
|
|
24
|
-
**Market share guidance:** Test browsers representing 95%+ of user base.
|
|
63
|
+
---
|
|
25
64
|
|
|
26
65
|
## Responsive Design Testing
|
|
27
66
|
|
|
28
|
-
**Screen sizes:**
|
|
29
|
-
```
|
|
30
|
-
Mobile: 320px - 480px
|
|
31
|
-
Tablet: 481px - 768px
|
|
32
|
-
Desktop: 769px - 1920px+
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
**Test with Playwright:**
|
|
36
67
|
```javascript
|
|
68
|
+
import { test, expect } from '@playwright/test';
|
|
69
|
+
|
|
37
70
|
const devices = [
|
|
38
71
|
{ name: 'iPhone 12', width: 390, height: 844 },
|
|
39
72
|
{ name: 'iPad', width: 768, height: 1024 },
|
|
@@ -49,7 +82,6 @@ for (const device of devices) {
|
|
|
49
82
|
|
|
50
83
|
await page.goto('https://example.com');
|
|
51
84
|
|
|
52
|
-
// Verify responsive layout
|
|
53
85
|
const nav = await page.locator('nav');
|
|
54
86
|
if (device.width < 768) {
|
|
55
87
|
// Mobile: hamburger menu
|
|
@@ -62,10 +94,33 @@ for (const device of devices) {
|
|
|
62
94
|
}
|
|
63
95
|
```
|
|
64
96
|
|
|
65
|
-
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Cross-Browser with Playwright
|
|
100
|
+
|
|
101
|
+
```javascript
|
|
102
|
+
// playwright.config.ts
|
|
103
|
+
import { defineConfig, devices } from '@playwright/test';
|
|
104
|
+
|
|
105
|
+
export default defineConfig({
|
|
106
|
+
projects: [
|
|
107
|
+
{ name: 'chromium', use: { ...devices['Desktop Chrome'] } },
|
|
108
|
+
{ name: 'firefox', use: { ...devices['Desktop Firefox'] } },
|
|
109
|
+
{ name: 'webkit', use: { ...devices['Desktop Safari'] } },
|
|
110
|
+
{ name: 'mobile-chrome', use: { ...devices['Pixel 5'] } },
|
|
111
|
+
{ name: 'mobile-safari', use: { ...devices['iPhone 12'] } }
|
|
112
|
+
]
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
// Run: npx playwright test --project=chromium --project=firefox
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Cloud Testing Integration
|
|
66
121
|
|
|
67
|
-
**BrowserStack:**
|
|
68
122
|
```javascript
|
|
123
|
+
// BrowserStack configuration
|
|
69
124
|
const capabilities = {
|
|
70
125
|
'browserName': 'Chrome',
|
|
71
126
|
'browser_version': '118.0',
|
|
@@ -74,22 +129,77 @@ const capabilities = {
|
|
|
74
129
|
'browserstack.user': process.env.BROWSERSTACK_USER,
|
|
75
130
|
'browserstack.key': process.env.BROWSERSTACK_KEY
|
|
76
131
|
};
|
|
132
|
+
|
|
133
|
+
// Parallel execution across devices
|
|
134
|
+
const deviceMatrix = [
|
|
135
|
+
{ os: 'Windows', browser: 'Chrome' },
|
|
136
|
+
{ os: 'OS X', browser: 'Safari' },
|
|
137
|
+
{ os: 'Android', device: 'Samsung Galaxy S24' },
|
|
138
|
+
{ os: 'iOS', device: 'iPhone 15' }
|
|
139
|
+
];
|
|
77
140
|
```
|
|
78
141
|
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Agent-Driven Compatibility Testing
|
|
145
|
+
|
|
146
|
+
```typescript
|
|
147
|
+
// Cross-platform visual comparison
|
|
148
|
+
await Task("Compatibility Testing", {
|
|
149
|
+
url: 'https://example.com',
|
|
150
|
+
browsers: ['chrome', 'firefox', 'safari', 'edge'],
|
|
151
|
+
devices: ['desktop', 'tablet', 'mobile'],
|
|
152
|
+
platform: 'browserstack',
|
|
153
|
+
parallel: true
|
|
154
|
+
}, "qe-visual-tester");
|
|
155
|
+
|
|
156
|
+
// Returns:
|
|
157
|
+
// {
|
|
158
|
+
// combinations: 12, // 4 browsers × 3 devices
|
|
159
|
+
// passed: 11,
|
|
160
|
+
// differences: [{ browser: 'safari', device: 'mobile', diff: 0.02 }]
|
|
161
|
+
// }
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## Agent Coordination Hints
|
|
167
|
+
|
|
168
|
+
### Memory Namespace
|
|
169
|
+
```
|
|
170
|
+
aqe/compatibility-testing/
|
|
171
|
+
├── browser-matrix/* - Browser/version configurations
|
|
172
|
+
├── device-matrix/* - Device configurations
|
|
173
|
+
├── visual-diffs/* - Cross-browser visual differences
|
|
174
|
+
└── reports/* - Compatibility reports
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Fleet Coordination
|
|
178
|
+
```typescript
|
|
179
|
+
const compatFleet = await FleetManager.coordinate({
|
|
180
|
+
strategy: 'compatibility-testing',
|
|
181
|
+
agents: [
|
|
182
|
+
'qe-visual-tester', // Visual comparison
|
|
183
|
+
'qe-test-executor', // Cross-browser execution
|
|
184
|
+
'qe-performance-tester' // Performance by platform
|
|
185
|
+
],
|
|
186
|
+
topology: 'parallel'
|
|
187
|
+
});
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
79
192
|
## Related Skills
|
|
193
|
+
- [mobile-testing](../mobile-testing/) - Mobile-specific testing
|
|
194
|
+
- [visual-testing-advanced](../visual-testing-advanced/) - Visual regression
|
|
195
|
+
- [accessibility-testing](../accessibility-testing/) - Cross-platform a11y
|
|
80
196
|
|
|
81
|
-
|
|
82
|
-
- [accessibility-testing](../accessibility-testing/)
|
|
83
|
-
- [visual-testing-advanced](../visual-testing-advanced/)
|
|
197
|
+
---
|
|
84
198
|
|
|
85
199
|
## Remember
|
|
86
200
|
|
|
87
|
-
**Test where users are, not where you develop.**
|
|
201
|
+
**Test where users are, not where you develop.** Developers use latest Chrome on high-end machines. Users access from older browsers, low-end devices, and slow networks.
|
|
88
202
|
|
|
89
|
-
|
|
90
|
-
- Older browsers (N-1, N-2)
|
|
91
|
-
- Low-end devices
|
|
92
|
-
- Slow networks
|
|
93
|
-
- Different screen sizes
|
|
203
|
+
**Cover 95%+ of your user base.** Use analytics to identify actual browser/device usage. Don't waste time on browsers nobody uses.
|
|
94
204
|
|
|
95
|
-
**With Agents:** Agents orchestrate parallel cross-browser testing across cloud platforms, reducing 10 hours of testing to 15 minutes.
|
|
205
|
+
**With Agents:** Agents orchestrate parallel cross-browser testing across cloud platforms, reducing 10 hours of manual testing to 15 minutes. `qe-visual-tester` catches visual inconsistencies across platforms automatically.
|
|
@@ -1,48 +1,84 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: compliance-testing
|
|
3
|
-
description: Regulatory compliance testing for GDPR, CCPA, HIPAA, SOC2, PCI-DSS and industry-specific regulations. Use when ensuring legal compliance, preparing for audits, or handling sensitive data.
|
|
3
|
+
description: "Regulatory compliance testing for GDPR, CCPA, HIPAA, SOC2, PCI-DSS and industry-specific regulations. Use when ensuring legal compliance, preparing for audits, or handling sensitive data."
|
|
4
|
+
category: specialized-testing
|
|
5
|
+
priority: high
|
|
6
|
+
tokenEstimate: 900
|
|
7
|
+
agents: [qe-security-scanner, qe-test-executor, qe-quality-gate]
|
|
8
|
+
implementation_status: optimized
|
|
9
|
+
optimization_version: 1.0
|
|
10
|
+
last_optimized: 2025-12-02
|
|
11
|
+
dependencies: []
|
|
12
|
+
quick_reference_card: true
|
|
13
|
+
tags: [compliance, gdpr, hipaa, pci-dss, ccpa, soc2, privacy, audit]
|
|
4
14
|
---
|
|
5
15
|
|
|
6
16
|
# Compliance Testing
|
|
7
17
|
|
|
8
|
-
|
|
18
|
+
<default_to_action>
|
|
19
|
+
When validating regulatory compliance:
|
|
20
|
+
1. IDENTIFY applicable regulations (GDPR, HIPAA, PCI-DSS, etc.)
|
|
21
|
+
2. MAP requirements to testable controls
|
|
22
|
+
3. TEST data rights (access, erasure, portability)
|
|
23
|
+
4. VERIFY encryption and access logging
|
|
24
|
+
5. GENERATE audit-ready reports with evidence
|
|
25
|
+
|
|
26
|
+
**Quick Compliance Checklist:**
|
|
27
|
+
- Data subject rights work (access, delete, export)
|
|
28
|
+
- PII is encrypted at rest and in transit
|
|
29
|
+
- Access to sensitive data is logged
|
|
30
|
+
- Consent is tracked with timestamps
|
|
31
|
+
- Payment card data not stored (only tokenized)
|
|
32
|
+
|
|
33
|
+
**Critical Success Factors:**
|
|
34
|
+
- Non-compliance = €20M or 4% revenue (GDPR)
|
|
35
|
+
- Audit trail everything
|
|
36
|
+
- Test continuously, not just before audits
|
|
37
|
+
</default_to_action>
|
|
38
|
+
|
|
39
|
+
## Quick Reference Card
|
|
40
|
+
|
|
41
|
+
### When to Use
|
|
42
|
+
- Legal compliance requirements
|
|
43
|
+
- Before security audits
|
|
44
|
+
- Handling PII/PHI/PCI data
|
|
45
|
+
- Entering new markets (EU, CA, healthcare)
|
|
46
|
+
|
|
47
|
+
### Major Regulations
|
|
48
|
+
| Regulation | Scope | Key Focus |
|
|
49
|
+
|------------|-------|-----------|
|
|
50
|
+
| **GDPR** | EU data | Privacy rights, consent |
|
|
51
|
+
| **CCPA** | California | Consumer data rights |
|
|
52
|
+
| **HIPAA** | Healthcare | PHI protection |
|
|
53
|
+
| **PCI-DSS** | Payments | Card data security |
|
|
54
|
+
| **SOC2** | SaaS | Security controls |
|
|
55
|
+
|
|
56
|
+
### Penalties
|
|
57
|
+
| Regulation | Maximum Fine |
|
|
58
|
+
|------------|--------------|
|
|
59
|
+
| **GDPR** | €20M or 4% revenue |
|
|
60
|
+
| **HIPAA** | $1.5M per violation |
|
|
61
|
+
| **PCI-DSS** | $100k/month |
|
|
62
|
+
| **CCPA** | $7,500 per violation |
|
|
9
63
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
Compliance testing validates software meets legal and regulatory requirements. Critical for avoiding penalties and protecting users.
|
|
64
|
+
---
|
|
13
65
|
|
|
14
66
|
## GDPR Compliance Testing
|
|
15
67
|
|
|
16
|
-
**Key Requirements:**
|
|
17
|
-
- Right to access
|
|
18
|
-
- Right to erasure ("right to be forgotten")
|
|
19
|
-
- Data portability
|
|
20
|
-
- Consent management
|
|
21
|
-
- Breach notification
|
|
22
|
-
|
|
23
|
-
**Test data subject rights:**
|
|
24
68
|
```javascript
|
|
69
|
+
// Test data subject rights
|
|
25
70
|
test('user can request their data', async () => {
|
|
26
|
-
const userId = 'user123';
|
|
27
|
-
|
|
28
|
-
// User requests data export
|
|
29
71
|
const response = await api.post('/data-export', { userId });
|
|
30
72
|
|
|
31
|
-
// Should receive download link
|
|
32
73
|
expect(response.status).toBe(200);
|
|
33
74
|
expect(response.data.downloadUrl).toBeDefined();
|
|
34
75
|
|
|
35
|
-
// Download contains all user data
|
|
36
76
|
const data = await downloadFile(response.data.downloadUrl);
|
|
37
77
|
expect(data).toHaveProperty('profile');
|
|
38
78
|
expect(data).toHaveProperty('orders');
|
|
39
|
-
expect(data).toHaveProperty('preferences');
|
|
40
79
|
});
|
|
41
80
|
|
|
42
81
|
test('user can delete their account', async () => {
|
|
43
|
-
const userId = 'user123';
|
|
44
|
-
|
|
45
|
-
// User requests deletion
|
|
46
82
|
await api.delete(`/users/${userId}`);
|
|
47
83
|
|
|
48
84
|
// All personal data deleted
|
|
@@ -50,44 +86,35 @@ test('user can delete their account', async () => {
|
|
|
50
86
|
expect(await db.orders.find({ userId })).toHaveLength(0);
|
|
51
87
|
|
|
52
88
|
// Audit log retained (legal requirement)
|
|
53
|
-
|
|
54
|
-
expect(auditLog).toBeDefined();
|
|
89
|
+
expect(await db.auditLogs.find({ userId })).toBeDefined();
|
|
55
90
|
});
|
|
56
91
|
|
|
57
92
|
test('consent is tracked', async () => {
|
|
58
93
|
await api.post('/consent', {
|
|
59
|
-
userId: '
|
|
60
|
-
|
|
61
|
-
granted: true,
|
|
62
|
-
timestamp: new Date(),
|
|
63
|
-
ipAddress: '192.168.1.1'
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
const consent = await db.consents.findOne({
|
|
67
|
-
userId: 'user123',
|
|
68
|
-
type: 'marketing'
|
|
94
|
+
userId, type: 'marketing', granted: true,
|
|
95
|
+
timestamp: new Date(), ipAddress: '192.168.1.1'
|
|
69
96
|
});
|
|
70
97
|
|
|
71
|
-
|
|
98
|
+
const consent = await db.consents.findOne({ userId, type: 'marketing' });
|
|
72
99
|
expect(consent.timestamp).toBeDefined();
|
|
73
|
-
expect(consent.ipAddress).
|
|
100
|
+
expect(consent.ipAddress).toBeDefined();
|
|
74
101
|
});
|
|
75
102
|
```
|
|
76
103
|
|
|
77
|
-
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## HIPAA Compliance Testing
|
|
78
107
|
|
|
79
|
-
**Test PHI (Protected Health Information) security:**
|
|
80
108
|
```javascript
|
|
109
|
+
// Test PHI security
|
|
81
110
|
test('PHI is encrypted at rest', async () => {
|
|
82
111
|
const patient = await db.patients.create({
|
|
83
112
|
ssn: '123-45-6789',
|
|
84
|
-
medicalHistory: 'Diabetes
|
|
113
|
+
medicalHistory: 'Diabetes'
|
|
85
114
|
});
|
|
86
115
|
|
|
87
|
-
// Verify encrypted in database
|
|
88
116
|
const raw = await db.raw('SELECT * FROM patients WHERE id = ?', patient.id);
|
|
89
117
|
expect(raw.ssn).not.toBe('123-45-6789'); // Should be encrypted
|
|
90
|
-
expect(raw.ssn).toMatch(/^[a-f0-9]{64}$/); // Looks like hash
|
|
91
118
|
});
|
|
92
119
|
|
|
93
120
|
test('access to PHI is logged', async () => {
|
|
@@ -106,51 +133,93 @@ test('access to PHI is logged', async () => {
|
|
|
106
133
|
});
|
|
107
134
|
```
|
|
108
135
|
|
|
109
|
-
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## PCI-DSS Compliance Testing
|
|
110
139
|
|
|
111
|
-
**Test credit card handling:**
|
|
112
140
|
```javascript
|
|
141
|
+
// Test payment card handling
|
|
113
142
|
test('credit card numbers not stored', async () => {
|
|
114
143
|
await api.post('/payment', {
|
|
115
144
|
cardNumber: '4242424242424242',
|
|
116
|
-
expiry: '12/25',
|
|
117
|
-
cvv: '123'
|
|
145
|
+
expiry: '12/25', cvv: '123'
|
|
118
146
|
});
|
|
119
147
|
|
|
120
|
-
// Card number should NOT be in database
|
|
121
148
|
const payment = await db.payments.findOne({ /* ... */ });
|
|
122
149
|
expect(payment.cardNumber).toBeUndefined();
|
|
123
|
-
expect(payment.last4).toBe('4242'); // Only last 4
|
|
150
|
+
expect(payment.last4).toBe('4242'); // Only last 4
|
|
124
151
|
expect(payment.tokenId).toBeDefined(); // Token from gateway
|
|
125
152
|
});
|
|
126
153
|
|
|
127
154
|
test('CVV never stored', async () => {
|
|
128
|
-
// CVV should never touch database
|
|
129
155
|
const payments = await db.raw('SELECT * FROM payments');
|
|
130
|
-
const
|
|
131
|
-
JSON.stringify(p).includes('cvv')
|
|
132
|
-
JSON.stringify(p).includes('cvc')
|
|
156
|
+
const hasCVV = payments.some(p =>
|
|
157
|
+
JSON.stringify(p).toLowerCase().includes('cvv')
|
|
133
158
|
);
|
|
134
|
-
|
|
135
159
|
expect(hasCVV).toBe(false);
|
|
136
160
|
});
|
|
137
161
|
```
|
|
138
162
|
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## Agent-Driven Compliance
|
|
166
|
+
|
|
167
|
+
```typescript
|
|
168
|
+
// Comprehensive compliance validation
|
|
169
|
+
await Task("Compliance Validation", {
|
|
170
|
+
regulations: ['GDPR', 'PCI-DSS'],
|
|
171
|
+
scope: 'full-application',
|
|
172
|
+
generateAuditReport: true
|
|
173
|
+
}, "qe-security-scanner");
|
|
174
|
+
|
|
175
|
+
// Returns:
|
|
176
|
+
// {
|
|
177
|
+
// gdpr: { compliant: true, controls: 12, passed: 12 },
|
|
178
|
+
// pciDss: { compliant: false, controls: 8, passed: 7 },
|
|
179
|
+
// violations: [{ control: 'card-storage', severity: 'critical' }],
|
|
180
|
+
// auditReport: 'compliance-audit-2025-12-02.pdf'
|
|
181
|
+
// }
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## Agent Coordination Hints
|
|
187
|
+
|
|
188
|
+
### Memory Namespace
|
|
189
|
+
```
|
|
190
|
+
aqe/compliance-testing/
|
|
191
|
+
├── regulations/* - Regulation requirements
|
|
192
|
+
├── controls/* - Control test results
|
|
193
|
+
├── audit-reports/* - Generated audit reports
|
|
194
|
+
└── violations/* - Compliance violations
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Fleet Coordination
|
|
198
|
+
```typescript
|
|
199
|
+
const complianceFleet = await FleetManager.coordinate({
|
|
200
|
+
strategy: 'compliance-validation',
|
|
201
|
+
agents: [
|
|
202
|
+
'qe-security-scanner', // Scan for vulnerabilities
|
|
203
|
+
'qe-test-executor', // Execute compliance tests
|
|
204
|
+
'qe-quality-gate' // Block non-compliant releases
|
|
205
|
+
],
|
|
206
|
+
topology: 'sequential'
|
|
207
|
+
});
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
139
212
|
## Related Skills
|
|
213
|
+
- [security-testing](../security-testing/) - Security vulnerabilities
|
|
214
|
+
- [test-data-management](../test-data-management/) - PII handling
|
|
215
|
+
- [accessibility-testing](../accessibility-testing/) - Legal requirements
|
|
140
216
|
|
|
141
|
-
|
|
142
|
-
- [test-data-management](../test-data-management/)
|
|
143
|
-
- [accessibility-testing](../accessibility-testing/)
|
|
217
|
+
---
|
|
144
218
|
|
|
145
219
|
## Remember
|
|
146
220
|
|
|
147
|
-
**Compliance is mandatory, not optional.**
|
|
148
|
-
|
|
149
|
-
Fines:
|
|
150
|
-
- GDPR: Up to €20M or 4% of revenue
|
|
151
|
-
- HIPAA: Up to $1.5M per violation
|
|
152
|
-
- PCI-DSS: Up to $100k per month
|
|
221
|
+
**Compliance is mandatory, not optional.** Fines are severe: GDPR up to €20M or 4% of revenue, HIPAA up to $1.5M per violation. But beyond fines, non-compliance damages reputation and user trust.
|
|
153
222
|
|
|
154
|
-
**
|
|
223
|
+
**Audit trail everything.** Every access to sensitive data, every consent, every deletion must be logged with timestamps and user IDs.
|
|
155
224
|
|
|
156
|
-
**With Agents:** Agents validate compliance requirements, detect violations, and generate audit reports
|
|
225
|
+
**With Agents:** Agents validate compliance requirements continuously, detect violations early, and generate audit-ready reports. Catch compliance issues in development, not in audits.
|