mirror of
https://github.com/azaion/missions.git
synced 2026-06-21 18:01:08 +00:00
b0c7132889
Decompose Step 5 (tests-only mode) produced the test-task ladder for the Blackbox Tests epic. Test infrastructure (AZ-576) blocks the rest; all 10 blackbox child tasks fan out from it. Tasks (epic AZ-575): - AZ-576 test_infrastructure (5 SP) - AZ-577 test_vehicles_positive (5 SP) - AZ-578 test_missions_positive (5 SP) - AZ-579 test_waypoints_health_positive (5 SP) - AZ-580 test_validation_authz_negative (3 SP) - AZ-581 test_security_auth_claims (5 SP) - AZ-582 test_security_alg_rotation_cors (5 SP) - AZ-583 test_resilience_cascade_migrator (3 SP) - AZ-584 test_resilience_config_db_rotation_race (5 SP) - AZ-585 test_resource_limits (3 SP) - AZ-586 test_performance (3 SP) Total: 45 SP across 11 tasks. Coverage verified against blackbox/security/resilience/resource-limit/performance test specs (56 scenarios). _docs/_autodev_state.md advanced to Step 6 (Implement Tests). Co-authored-by: Cursor <cursoragent@cursor.com>
72 lines
4.8 KiB
Markdown
72 lines
4.8 KiB
Markdown
# Dependencies Table
|
|
|
|
**Date**: 2026-05-15
|
|
**Mode**: tests-only decomposition (Step 5 of `existing-code` autodev flow)
|
|
**Epic**: AZ-575 — Blackbox Tests — Missions
|
|
**Total Tasks**: 11
|
|
**Total Complexity Points**: 45 (5 + 5 + 5 + 5 + 3 + 5 + 5 + 3 + 5 + 3 + 3)
|
|
|
|
| Task | Name | Complexity | Dependencies | Epic |
|
|
|------|------|-----------|-------------|------|
|
|
| AZ-576 | test_infrastructure | 5 | None | AZ-575 |
|
|
| AZ-577 | test_vehicles_positive | 5 | AZ-576 | AZ-575 |
|
|
| AZ-578 | test_missions_positive | 5 | AZ-576 | AZ-575 |
|
|
| AZ-579 | test_waypoints_health_positive | 5 | AZ-576 | AZ-575 |
|
|
| AZ-580 | test_validation_authz_negative | 3 | AZ-576 | AZ-575 |
|
|
| AZ-581 | test_security_auth_claims | 5 | AZ-576 | AZ-575 |
|
|
| AZ-582 | test_security_alg_rotation_cors | 5 | AZ-576 | AZ-575 |
|
|
| AZ-583 | test_resilience_cascade_migrator | 3 | AZ-576 | AZ-575 |
|
|
| AZ-584 | test_resilience_config_db_rotation_race | 5 | AZ-576 | AZ-575 |
|
|
| AZ-585 | test_resource_limits | 3 | AZ-576 | AZ-575 |
|
|
| AZ-586 | test_performance | 3 | AZ-576 | AZ-575 |
|
|
|
|
## Coverage Verification
|
|
|
|
| Spec file | Scenarios | Covered by |
|
|
|-----------|-----------|------------|
|
|
| `tests/blackbox-tests.md` § Positive | FT-P-01..06 (Vehicles) | AZ-577 |
|
|
| `tests/blackbox-tests.md` § Positive | FT-P-07..12 (Missions) | AZ-578 |
|
|
| `tests/blackbox-tests.md` § Positive | FT-P-13..18 (Waypoints + Health) | AZ-579 |
|
|
| `tests/blackbox-tests.md` § Negative | FT-N-01..08 | AZ-580 |
|
|
| `tests/security-tests.md` | NFT-SEC-01..06 + 04b | AZ-581 |
|
|
| `tests/security-tests.md` | NFT-SEC-07..13 | AZ-582 |
|
|
| `tests/resilience-tests.md` | NFT-RES-01..04 | AZ-583 |
|
|
| `tests/resilience-tests.md` | NFT-RES-05..08 | AZ-584 |
|
|
| `tests/resource-limit-tests.md` | NFT-RES-LIM-01..04 | AZ-585 |
|
|
| `tests/performance-tests.md` | NFT-PERF-01..04 | AZ-586 |
|
|
|
|
**Total scenarios covered**: 56 (18 FT-P + 8 FT-N + 14 NFT-SEC + 8 NFT-RES + 4 NFT-RES-LIM + 4 NFT-PERF).
|
|
|
|
## Cross-Task Consistency Checks
|
|
|
|
| Check | Result |
|
|
|-------|--------|
|
|
| Every scenario from `blackbox-tests.md` § Positive (FT-P-01..18) is covered | PASS |
|
|
| Every scenario from `blackbox-tests.md` § Negative (FT-N-01..08) is covered | PASS |
|
|
| Every scenario from `security-tests.md` (NFT-SEC-01..13 + 04b) is covered | PASS |
|
|
| Every scenario from `resilience-tests.md` (NFT-RES-01..08) is covered | PASS |
|
|
| Every scenario from `resource-limit-tests.md` (NFT-RES-LIM-01..04) is covered | PASS |
|
|
| Every scenario from `performance-tests.md` (NFT-PERF-01..04) is covered | PASS |
|
|
| No task exceeds 5 complexity points | PASS |
|
|
| Every blackbox test task depends on the test-infrastructure task (AZ-576) | PASS |
|
|
| Test-infrastructure task (AZ-576) has no upstream test dependencies | PASS |
|
|
| No circular dependencies in the task graph | PASS — graph is a fan-out: AZ-576 → {AZ-577..AZ-586} |
|
|
| Every e2e/blackbox task has a System Under Test Boundary section | PASS — all 10 child tasks include the section |
|
|
| System Under Test Boundary forbids stubbing internal product modules | PASS — verified in each task spec |
|
|
| System Under Test Boundary requires comparison to expected-results artifacts | PASS — every task references `_docs/00_problem/input_data/expected_results/results_report.md` and/or the relevant machine-readable expected-result JSON |
|
|
|
|
## Overlap & Shared-Concern Notes
|
|
|
|
- **NFT-SEC-08 (Task 15) ↔ FT-N-08 (Task 13)** both exercise the 500 error envelope. FT-N-08 owns the destructive `DROP TABLE vehicles` fault injection and asserts redaction + log line presence; NFT-SEC-08 additionally asserts the body has NO key matching `stack`/`stackTrace`/`exception`/`inner`/`trace`/file-path/type-name. No work duplication — the two tests share the fixture but assert distinct invariants.
|
|
- **NFT-SEC-11 (Task 15) ↔ NFT-RES-07 (Task 17)** both exercise JWKS rotation. NFT-SEC-11 focuses on the `kid`-cache mechanics + grace-window timing; NFT-RES-07 additionally asserts the `docker inspect StartedAt` invariant (no restart). Sharing the same primitive via the `JwksRotateFixture` from AZ-576.
|
|
- **NFT-SEC-12 (Task 15) ↔ NFT-RES-05 (Task 17)** both exercise startup fail-fast on missing required env vars. NFT-SEC-12 covers 4 missing-env cases + HTTP-JWKS-URL path. NFT-RES-05 covers the same 4 missing-env cases + an additional whitespace-only case + the DB-down-after-config-resolution differentiator (proves config resolution succeeded before Npgsql failed). Tasks share the `MissionsContainerHelper` docker-run primitive from AZ-576.
|
|
|
|
## Execution Order Hint
|
|
|
|
Recommended dependency-aware batches for `/implement`:
|
|
|
|
1. **Batch 1 (sequential, blocking the rest)**: AZ-576 — test_infrastructure
|
|
2. **Batch 2 (parallel, fan-out from AZ-576)**: AZ-577..AZ-586 in any order. Independent test classes within a single xUnit assembly; no inter-task ordering needed.
|
|
|
|
CSV report sorting at suite end: by `Category` (Blackbox / Sec / Res / ResLim / Perf), then by test ID within category.
|