5.8 KiB
Test Specification — Satellite Service
Acceptance Criteria Traceability
| AC ID | Acceptance Criterion | Test IDs | Coverage |
|---|---|---|---|
| AC-3.2 | Sharp-turn relocalization | IT-02, AT-01 | Covered |
| AC-3.3 | >=3 disconnected segments | IT-03 | Covered |
| AC-3.4 | Relocalization request after loss | IT-02 | Covered |
| AC-4.1 | Trigger path latency | PT-01 | Covered |
| AC-4.2 | Memory budget | PT-01 | Covered |
| AC-8.1 | Cache imagery interface | IT-01 | Covered |
| AC-8.3 | Preloaded/preprocessed cache | IT-01 | Covered |
| AC-8.6 | VPR chunks, multi-scale, dynamic K | IT-01, IT-04 | Covered |
| AC-NEW-1 | Cold-start first fix support | PT-02 | Covered |
| AC-NEW-6 | Freshness-aware retrieval | IT-04, ST-01 | Covered |
Blackbox Tests
IT-01: Index Load And Chunk Coverage
Summary: Verify preloaded VPR chunks and FAISS index cover the operational area.
Traces to: AC-8.1, AC-8.3, AC-8.6
Input data: PostgreSQL/PostGIS cache manifest, VPR chunk metadata, FAISS index.
Expected result: Every test frame footprint falls inside at least one VPR chunk; fine and coarse descriptors are present where required.
Max execution time: 2 minutes per mission cache.
IT-02: Sharp-Turn Local Retrieval Trigger
Summary: Verify sharp-turn state requests candidates rather than relying on frame-to-frame VO.
Traces to: AC-3.2, AC-3.4
Input data: Wrapper relocalization request with sharp-turn/loss reason.
Expected result: Satellite Service returns bounded top-K candidates from preloaded local indexes based on sector/covariance policy.
Max execution time: 2 seconds per query.
IT-03: Disconnected Segment Retrieval
Summary: Verify at least three disconnected segments can each retrieve candidate chunks.
Traces to: AC-3.3
Input data: Three disconnected query frames with approximate prior/covariance.
Expected result: Each query returns a candidate set including the ground-truth region when covered by the cache fixture.
Max execution time: Dataset-dependent.
IT-04: Dynamic K And Freshness Filter
Summary: Verify K varies by sector and covariance, and stale candidates are tagged.
Traces to: AC-8.6, AC-NEW-6
Input data: Stable and active-conflict sector cache fixtures with fresh/stale tiles.
Expected result: K=5 for stable low-covariance, K=20 for active-conflict, K=50 fallback; stale candidates are flagged for rejection/down-confidence.
Max execution time: 2 seconds per query.
Performance Tests
PT-01: Retrieval Query Runtime
Summary: Verify descriptor extraction and FAISS query fit trigger-path budget.
Traces to: AC-4.1, AC-4.2
Load scenario:
- Query set: 100 representative relocalization frames.
- Environment: Jetson and replay workstation.
| Metric | Target | Failure Threshold |
|---|---|---|
| Retrieval p95 | <=300 ms trigger path share | >400 ms |
| Memory contribution | <=2 GB | >3 GB |
| Candidate count policy | Exact | Any wrong K |
Resource limits: Total system memory remains below 8 GB.
PT-02: Cold-Start Index Load
Summary: Verify retrieval readiness supports first fix <30 s.
Traces to: AC-NEW-1
Load scenario:
- Cold boot 50 runs.
- Cache/index mounted locally.
| Metric | Target | Failure Threshold |
|---|---|---|
| Index ready p95 | <=10 s | >15 s |
| First retrieval p95 | Fits <30 s first-fix budget | Exceeds budget |
Security Tests
ST-01: Stale Candidate Handling
Summary: Verify stale imagery cannot silently appear as a trusted retrieval candidate.
Traces to: AC-NEW-6
Attack vector: Manipulated cache manifest marks stale tile as available.
Test procedure:
- Load cache fixture with stale capture dates.
- Query against stale region.
Expected behavior: Candidate carries stale status; anchor path cannot accept it as satellite_anchored.
Pass criteria: 0 stale candidates without explicit stale/down-confidence metadata.
ST-02: No Mid-Flight Satellite Service Calls
Summary: Verify relocalization never performs satellite-provider or suite Satellite Service network calls during flight.
Traces to: AC-8.3, R-SAT-01
Attack vector: Runtime attempts to fetch missing cache/index data over the network during relocalization.
Test procedure:
- Disable external network access during a replay scenario.
- Trigger relocalization against preloaded cache fixtures.
- Inspect network call logs and Satellite Service client telemetry.
Expected behavior: Retrieval uses only mounted local cache/index data; missing data produces degraded/no-candidate behavior, not a network fetch.
Pass criteria: 0 mid-flight Satellite Service or satellite-provider calls.
Acceptance Tests
AT-01: Relocalization Candidate Returned
Summary: Verify a relocalization request returns usable candidates for anchor verification.
Traces to: AC-3.2, AC-8.6
| Step | Action | Expected Result |
|---|---|---|
| 1 | Submit sharp-turn query | Retrieval invokes VPR |
| 2 | Read output | Candidate list includes chunk IDs, tile IDs, scores, footprints, freshness |
Test Data Management
| Data Set | Description | Source | Size |
|---|---|---|---|
cache_vpr_fixture |
PostGIS manifest, COGs, descriptors, FAISS index | Generated/cache fixture | Mission-dependent |
aerial_vpr_queries |
Aerial query frames with ground-truth regions | ALTO/AerialVL/representative | Dataset-dependent |
Setup procedure: Restore isolated PostgreSQL schema and mount read-only descriptor/index files.
Teardown procedure: Drop schema and remove generated retrieval reports.
Data isolation strategy: Per-run schema and read-only cache fixture volume.