234 lines
4.2 KiB
Markdown
234 lines
4.2 KiB
Markdown
# BuildPulse v0.1 Test Plan
|
|
|
|
## Test Goal
|
|
|
|
Verify that BuildPulse v0.1 can manage one project, protect scope, log progress, and export useful AI handoff context.
|
|
|
|
## Manual Test Group 1 — Project Summary
|
|
|
|
### Test 1.1: Edit project summary
|
|
|
|
Steps:
|
|
1. Open app.
|
|
2. Edit project name.
|
|
3. Edit one-line pitch.
|
|
4. Edit current goal.
|
|
5. Refresh page.
|
|
|
|
Expected:
|
|
- Edited values persist after refresh.
|
|
|
|
### Test 1.2: Empty project fields
|
|
|
|
Steps:
|
|
1. Clear optional project fields.
|
|
2. Save.
|
|
3. Refresh.
|
|
|
|
Expected:
|
|
- App does not crash.
|
|
- Empty states are readable.
|
|
|
|
## Manual Test Group 2 — Feature Plan
|
|
|
|
### Test 2.1: Add feature
|
|
|
|
Steps:
|
|
1. Open Feature Plan.
|
|
2. Add new feature.
|
|
3. Enter title and description.
|
|
4. Save.
|
|
|
|
Expected:
|
|
- Feature appears in default column.
|
|
- Feature persists after refresh.
|
|
|
|
### Test 2.2: Move feature
|
|
|
|
Steps:
|
|
1. Move a feature from Now to Next.
|
|
2. Move it to Later.
|
|
3. Move it to Done.
|
|
|
|
Expected:
|
|
- Feature appears in the correct column each time.
|
|
- State persists after refresh.
|
|
|
|
### Test 2.3: Edit acceptance criteria
|
|
|
|
Steps:
|
|
1. Open feature detail.
|
|
2. Add acceptance criteria.
|
|
3. Save and close.
|
|
4. Reopen feature.
|
|
|
|
Expected:
|
|
- Acceptance criteria are saved and visible.
|
|
|
|
### Test 2.4: Delete feature
|
|
|
|
Steps:
|
|
1. Create a test feature.
|
|
2. Delete it.
|
|
|
|
Expected:
|
|
- Feature is removed.
|
|
- App remains stable.
|
|
- Related pulse events are either preserved with missing feature label or handled gracefully.
|
|
|
|
## Manual Test Group 3 — Parking Lot
|
|
|
|
### Test 3.1: Add parked idea
|
|
|
|
Steps:
|
|
1. Open Parking Lot.
|
|
2. Add an idea.
|
|
3. Add reason parked and risk level.
|
|
|
|
Expected:
|
|
- Item appears in Parking Lot.
|
|
- Item persists after refresh.
|
|
|
|
### Test 3.2: Convert parked idea to feature
|
|
|
|
If implemented in v0.1:
|
|
|
|
Steps:
|
|
1. Select Parking Lot item.
|
|
2. Convert to feature.
|
|
|
|
Expected:
|
|
- New feature is created.
|
|
- Original item is either removed or marked converted.
|
|
|
|
If not implemented:
|
|
- This test is skipped.
|
|
|
|
## Manual Test Group 4 — Pulse Log
|
|
|
|
### Test 4.1: Add INTENT pulse
|
|
|
|
Steps:
|
|
1. Open Pulse Log.
|
|
2. Add pulse type INTENT.
|
|
3. Link to a feature.
|
|
4. Add message and confidence.
|
|
|
|
Expected:
|
|
- Pulse appears in log.
|
|
- Feature name is shown.
|
|
- Pulse persists after refresh.
|
|
|
|
### Test 4.2: Add BLOCKER pulse without feature
|
|
|
|
Steps:
|
|
1. Add pulse type BLOCKER.
|
|
2. Do not link feature.
|
|
3. Save.
|
|
|
|
Expected:
|
|
- Pulse appears in log.
|
|
- App does not require feature link.
|
|
|
|
### Test 4.3: Filter pulses
|
|
|
|
If filtering is implemented:
|
|
|
|
Steps:
|
|
1. Add multiple pulse types.
|
|
2. Filter by RESULT.
|
|
3. Filter by feature.
|
|
|
|
Expected:
|
|
- Correct pulses are shown.
|
|
|
|
## Manual Test Group 5 — Export
|
|
|
|
### Test 5.1: Export full JSON
|
|
|
|
Steps:
|
|
1. Add project summary, features, parking items, and pulses.
|
|
2. Export full JSON.
|
|
3. Inspect file/content.
|
|
|
|
Expected:
|
|
- JSON contains schema version.
|
|
- JSON contains project.
|
|
- JSON contains features.
|
|
- JSON contains parking_lot.
|
|
- JSON contains pulses.
|
|
|
|
### Test 5.2: Import JSON
|
|
|
|
Steps:
|
|
1. Export JSON.
|
|
2. Clear app or use different browser.
|
|
3. Import JSON.
|
|
|
|
Expected:
|
|
- Data is restored.
|
|
- App does not duplicate IDs unexpectedly.
|
|
|
|
### Test 5.3: Export Pulse JSONL
|
|
|
|
Steps:
|
|
1. Add several pulses.
|
|
2. Export JSONL.
|
|
|
|
Expected:
|
|
- Each line is valid JSON.
|
|
- Each line represents one pulse event.
|
|
|
|
### Test 5.4: Export Markdown
|
|
|
|
Steps:
|
|
1. Export Markdown package.
|
|
2. Open `CLAUDE_CONTEXT.md`.
|
|
|
|
Expected:
|
|
- Contains project summary.
|
|
- Contains Now/Next/Later/Done features.
|
|
- Contains Parking Lot.
|
|
- Contains recent pulses.
|
|
- Is useful as an AI coder handoff.
|
|
|
|
## Manual Test Group 6 — Mobile Usability
|
|
|
|
### Test 6.1: Phone layout
|
|
|
|
Steps:
|
|
1. Open app in mobile-width browser.
|
|
2. Navigate all views.
|
|
3. Add feature.
|
|
4. Add parked idea.
|
|
5. Add pulse.
|
|
|
|
Expected:
|
|
- UI is usable on phone.
|
|
- No critical controls are inaccessible.
|
|
|
|
## Manual Test Group 7 — Scope Guard
|
|
|
|
### Test 7.1: Parking distracting idea
|
|
|
|
Scenario:
|
|
User thinks of “real-time OpenClaw integration.”
|
|
|
|
Steps:
|
|
1. Add it to Parking Lot.
|
|
2. Mark risk as high/dangerous.
|
|
3. Do not add it as active feature.
|
|
|
|
Expected:
|
|
- Idea is captured.
|
|
- Active v0.1 scope remains clean.
|
|
|
|
## Release Decision
|
|
|
|
v0.1 can ship when:
|
|
- All required happy paths pass.
|
|
- Data persists.
|
|
- Export works.
|
|
- App can manage BuildPulse itself.
|
|
- No forbidden v0.1 scope items have been implemented.
|