Skip to content

docs(design): add the Satchel test strategy - #48

Open
JasMehta08 wants to merge 2 commits into
mainfrom
docs/31-test-strategy
Open

JasMehta08 wants to merge 2 commits into
mainfrom
docs/31-test-strategy

Conversation

@JasMehta08

@JasMehta08 JasMehta08 commented Oct 28, 2026 •

Copy link
Copy Markdown
Collaborator

What

Adds docs/design/test-strategy.md:

  • test levels (unit, integration on the Compose cluster, end-to-end on AWS)
  • required tests per component, each with a TS-... ID
  • failure tests, test data and what runs in CI

Closes #31

Why

Week 3 build issues (#19) need to know which tests they must ship with. Each build issue can now link the TS IDs it has to meet. The approach mirrors how Dropbox tests Magic Pocket: failure injection, deliberately corrupting data to test the verifiers, and zone drills [B3][T9].

How to check it

Checklist

  • cargo fmt, cargo clippy and cargo test pass locally (code PRs)
  • Tests added or updated for the change (code PRs)
  • New sources are added to docs/sources/README.md (research PRs)
  • Design decisions are recorded in the Design Decision Log
  • Docs and README are updated if behaviour or setup changed

@frectrium

Copy link
Copy Markdown
Owner

@JasMehta08 the content looks good to me, but a few parts depend on PRs that aren't merged yet. Can you update them so this doesn't land with placeholders?

  1. The "(set by [Design] Finalize the exercise plan, including the erasure coding scheme and parameters #14)" placeholders. The exercise plan is up in docs(design): finalize the exercise plan with RS(6,3) on 9 nodes #56. Section 8 there has the values: 3 replicas, one per zone. RS(6,3), so k = 6 and m = 3. Repair threshold 30 s in tests. Empty blocks rejected with 400. Zone loss is tolerated, so TS-FAIL-5 always applies.
  2. Service count. docs(design): finalize the exercise plan with RS(6,3) on 9 nodes #56 grows the Compose cluster to 9 storage nodes (3 per zone), so "six services" in section 2 and TS-SVC-1 becomes 12. Easiest is to say "every service in docker-compose.yml" so it doesn't go stale again. Same for [Infra] Integration test harness on the local cluster, run in CI #32.
  3. "2 MB is the workload model's average ([Cost] Build the case workload model from Dropbox's public disclosures #15)" points at docs(research): add the case workload model #47, which isn't merged. Either merge docs(research): add the case workload model #47 first or drop the reference for now.

Suggested order: #47, then #55 and #56, then this one with the numbers filled in.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Docs] Test strategy

2 participants