485 lines
9.8 KiB
Markdown
485 lines
9.8 KiB
Markdown
# Template: Example Walkthrough
|
|
|
|
**Purpose**: Structured template for creating end-to-end practical examples in documentation
|
|
**Based on**: Testing methodology example from BAIME guide
|
|
**Validated**: 1 use, ready for reuse
|
|
|
|
---
|
|
|
|
## When to Use This Template
|
|
|
|
✅ **Use for**:
|
|
- End-to-end workflow demonstrations
|
|
- Real-world use case examples
|
|
- Tutorial practical sections
|
|
- "How do I accomplish X?" documentation
|
|
|
|
❌ **Don't use for**:
|
|
- Code snippets (use inline examples)
|
|
- API reference examples (use API docs format)
|
|
- Concept explanations (use concept template)
|
|
- Quick tips (use list format)
|
|
|
|
---
|
|
|
|
## Template Structure
|
|
|
|
```markdown
|
|
## Practical Example: [Use Case Name]
|
|
|
|
**Scenario**: [1-2 sentence description of what we're accomplishing]
|
|
|
|
**Domain**: [Problem domain - testing, CI/CD, etc.]
|
|
|
|
**Time to complete**: [Estimate]
|
|
|
|
---
|
|
|
|
### Context
|
|
|
|
**Problem**: [What problem are we solving?]
|
|
|
|
**Goal**: [What we want to achieve]
|
|
|
|
**Starting state**:
|
|
- [Condition 1]
|
|
- [Condition 2]
|
|
- [Condition 3]
|
|
|
|
**Success criteria**:
|
|
- [Measurable outcome 1]
|
|
- [Measurable outcome 2]
|
|
|
|
---
|
|
|
|
### Prerequisites
|
|
|
|
**Required**:
|
|
- [Tool/knowledge 1]
|
|
- [Tool/knowledge 2]
|
|
|
|
**Files needed**:
|
|
- `[path/to/file]` - [Purpose]
|
|
|
|
**Setup**:
|
|
```bash
|
|
[Setup commands if needed]
|
|
```
|
|
|
|
---
|
|
|
|
### Workflow
|
|
|
|
#### Phase 1: [Phase Name]
|
|
|
|
**Objective**: [What this phase accomplishes]
|
|
|
|
**Step 1**: [Action]
|
|
|
|
[Explanation of what we're doing]
|
|
|
|
```[language]
|
|
[Code or command]
|
|
```
|
|
|
|
**Output**:
|
|
```
|
|
[Expected output]
|
|
```
|
|
|
|
**Why this matters**: [Reasoning]
|
|
|
|
**Step 2**: [Continue pattern]
|
|
|
|
**Phase 1 Result**: [What we have now]
|
|
|
|
---
|
|
|
|
#### Phase 2: [Phase Name]
|
|
|
|
[Repeat structure for 2-4 phases]
|
|
|
|
---
|
|
|
|
#### Phase 3: [Phase Name]
|
|
|
|
---
|
|
|
|
### Results
|
|
|
|
**Outcomes achieved**:
|
|
- ✅ [Outcome 1 with metric]
|
|
- ✅ [Outcome 2 with metric]
|
|
- ✅ [Outcome 3 with metric]
|
|
|
|
**Before and after comparison**:
|
|
| Metric | Before | After | Improvement |
|
|
|--------|--------|-------|-------------|
|
|
| [Metric 1] | [Value] | [Value] | [%/x] |
|
|
| [Metric 2] | [Value] | [Value] | [%/x] |
|
|
|
|
**Artifacts created**:
|
|
- `[file]` - [Description]
|
|
- `[file]` - [Description]
|
|
|
|
---
|
|
|
|
### Takeaways
|
|
|
|
**What we learned**:
|
|
1. [Insight 1]
|
|
2. [Insight 2]
|
|
3. [Insight 3]
|
|
|
|
**Key patterns observed**:
|
|
- [Pattern 1]
|
|
- [Pattern 2]
|
|
|
|
**Next steps**:
|
|
- [What to do next]
|
|
- [How to extend this example]
|
|
|
|
---
|
|
|
|
### Variations
|
|
|
|
**For different scenarios**:
|
|
|
|
**Scenario A**: [Variation description]
|
|
- Change: [What's different]
|
|
- Impact: [How it affects workflow]
|
|
|
|
**Scenario B**: [Another variation]
|
|
- Change: [What's different]
|
|
- Impact: [How it affects workflow]
|
|
|
|
---
|
|
|
|
### Troubleshooting
|
|
|
|
**Common issues in this example**:
|
|
|
|
**Issue 1**: [Problem]
|
|
- **Symptoms**: [How to recognize]
|
|
- **Cause**: [Why it happens]
|
|
- **Solution**: [How to fix]
|
|
|
|
**Issue 2**: [Continue pattern]
|
|
|
|
```
|
|
|
|
---
|
|
|
|
## Section Guidelines
|
|
|
|
### Scenario
|
|
- **Length**: 1-2 sentences
|
|
- **Specificity**: Concrete, not abstract ("Create testing strategy for Go project", not "Use BAIME for testing")
|
|
- **Appeal**: Should sound relevant to target audience
|
|
|
|
### Context
|
|
- **Problem statement**: Clear pain point
|
|
- **Starting state**: Observable conditions (can be verified)
|
|
- **Success criteria**: Measurable (coverage %, time, error rate, etc.)
|
|
|
|
### Workflow
|
|
- **Organization**: By logical phases (2-4 phases)
|
|
- **Detail level**: Sufficient to reproduce
|
|
- **Code blocks**: Runnable, copy-paste ready
|
|
- **Explanations**: "Why" not just "what"
|
|
|
|
### Results
|
|
- **Metrics**: Quantitative when possible
|
|
- **Comparison**: Before/after table
|
|
- **Artifacts**: List all files created
|
|
|
|
### Takeaways
|
|
- **Insights**: What was learned
|
|
- **Patterns**: What emerged from practice
|
|
- **Generalization**: How to apply elsewhere
|
|
|
|
---
|
|
|
|
## Quality Checklist
|
|
|
|
**Completeness**:
|
|
- [ ] All prerequisites listed
|
|
- [ ] Starting state clearly defined
|
|
- [ ] Success criteria measurable
|
|
- [ ] All phases documented
|
|
- [ ] Results quantified
|
|
- [ ] Artifacts listed
|
|
|
|
**Reproducibility**:
|
|
- [ ] Commands are copy-paste ready
|
|
- [ ] File paths are clear
|
|
- [ ] Setup instructions complete
|
|
- [ ] Expected outputs shown
|
|
- [ ] Tested on clean environment
|
|
|
|
**Clarity**:
|
|
- [ ] Each step has explanation
|
|
- [ ] "Why" provided for key decisions
|
|
- [ ] Phases logically organized
|
|
- [ ] Progression clear (what we have after each phase)
|
|
|
|
**Realism**:
|
|
- [ ] Based on real use case (not toy example)
|
|
- [ ] Complexity matches real-world (not oversimplified)
|
|
- [ ] Metrics are actual measurements (not estimates)
|
|
- [ ] Problems/challenges acknowledged
|
|
|
|
---
|
|
|
|
## Example: Testing Methodology Walkthrough
|
|
|
|
**Actual example from BAIME guide** (simplified):
|
|
|
|
```markdown
|
|
## Practical Example: Testing Methodology
|
|
|
|
**Scenario**: Developing systematic testing strategy for Go project using BAIME
|
|
|
|
**Domain**: Software testing
|
|
**Time to complete**: 6-8 hours across 3-5 iterations
|
|
|
|
---
|
|
|
|
### Context
|
|
|
|
**Problem**: Ad-hoc testing approach, coverage at 60%, no systematic strategy
|
|
|
|
**Goal**: Reach 80%+ coverage with reusable testing patterns
|
|
|
|
**Starting state**:
|
|
- Go project with 10K lines
|
|
- 60% test coverage
|
|
- Mix of unit and integration tests
|
|
- No testing standards
|
|
|
|
**Success criteria**:
|
|
- Test coverage ≥ 80%
|
|
- Testing patterns documented
|
|
- Methodology transferable to other Go projects (≥70%)
|
|
|
|
---
|
|
|
|
### Workflow
|
|
|
|
#### Phase 1: Baseline (Iteration 0)
|
|
|
|
**Objective**: Measure current state and identify gaps
|
|
|
|
**Step 1**: Measure coverage
|
|
```bash
|
|
go test -cover ./...
|
|
# Output: coverage: 60.2% of statements
|
|
```
|
|
|
|
**Step 2**: Analyze test quality
|
|
- Found 15 untested edge cases
|
|
- Identified 3 patterns: table-driven, golden file, integration
|
|
|
|
**Phase 1 Result**: Baseline established (V_instance=0.40, V_meta=0.20)
|
|
|
|
---
|
|
|
|
#### Phase 2: Pattern Codification (Iterations 1-2)
|
|
|
|
**Objective**: Extract and document testing patterns
|
|
|
|
**Step 1**: Extract table-driven pattern
|
|
```go
|
|
// Pattern: Table-driven tests
|
|
func TestFunction(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
input int
|
|
want int
|
|
}{
|
|
{"zero", 0, 0},
|
|
{"positive", 5, 25},
|
|
{"negative", -3, 9},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got := Function(tt.input)
|
|
if got != tt.want {
|
|
t.Errorf("got %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
```
|
|
|
|
**Step 2**: Document 8 testing patterns
|
|
**Step 3**: Create test templates
|
|
|
|
**Phase 2 Result**: Patterns documented, coverage at 72%
|
|
|
|
---
|
|
|
|
#### Phase 3: Automation (Iteration 3)
|
|
|
|
**Objective**: Automate pattern detection and enforcement
|
|
|
|
**Step 1**: Create coverage analyzer script
|
|
**Step 2**: Create test generator tool
|
|
**Step 3**: Add pre-commit hooks
|
|
|
|
**Phase 3 Result**: Coverage at 86%, automated quality gates
|
|
|
|
---
|
|
|
|
### Results
|
|
|
|
**Outcomes achieved**:
|
|
- ✅ Coverage: 60% → 86% (+26 percentage points)
|
|
- ✅ Methodology: 8 patterns, 3 tools, comprehensive guide
|
|
- ✅ Transferability: 89% to other Go projects
|
|
|
|
**Before and after comparison**:
|
|
| Metric | Before | After | Improvement |
|
|
|--------|--------|-------|-------------|
|
|
| Coverage | 60% | 86% | +26 pp |
|
|
| Test generation time | 30 min | 2 min | 15x |
|
|
| Pattern consistency | Ad-hoc | Enforced | 100% |
|
|
|
|
**Artifacts created**:
|
|
- `docs/testing-strategy.md` - Complete methodology
|
|
- `scripts/coverage-analyzer.sh` - Coverage analysis tool
|
|
- `scripts/test-generator.sh` - Test template generator
|
|
- `patterns/*.md` - 8 testing patterns
|
|
|
|
---
|
|
|
|
### Takeaways
|
|
|
|
**What we learned**:
|
|
1. Table-driven tests are most common pattern (60% of tests)
|
|
2. Coverage gaps mostly in error handling paths
|
|
3. Automation provides 15x speedup over manual
|
|
|
|
**Key patterns observed**:
|
|
- Progressive coverage improvement (60→72→86)
|
|
- Value convergence in 3 iterations (faster than expected)
|
|
- Patterns emerged from practice, not designed upfront
|
|
|
|
**Next steps**:
|
|
- Apply to other Go projects to validate 89% transferability claim
|
|
- Add mutation testing for quality validation
|
|
- Expand pattern library based on new use cases
|
|
```
|
|
|
|
---
|
|
|
|
## Variations
|
|
|
|
### Variation 1: Quick Example (< 5 min)
|
|
|
|
For simple, focused examples:
|
|
|
|
```markdown
|
|
## Example: [Task]
|
|
|
|
**Task**: [What we're doing]
|
|
|
|
**Steps**:
|
|
1. [Action]
|
|
```
|
|
[Code]
|
|
```
|
|
2. [Action]
|
|
```
|
|
[Code]
|
|
```
|
|
3. [Action]
|
|
```
|
|
[Code]
|
|
```
|
|
|
|
**Result**: [What we achieved]
|
|
```
|
|
|
|
### Variation 2: Comparison Example
|
|
|
|
When showing before/after or comparing approaches:
|
|
|
|
```markdown
|
|
## Example: [Comparison]
|
|
|
|
**Scenario**: [Context]
|
|
|
|
### Approach A: [Name]
|
|
[Implementation]
|
|
**Pros**: [Benefits]
|
|
**Cons**: [Drawbacks]
|
|
|
|
### Approach B: [Name]
|
|
[Implementation]
|
|
**Pros**: [Benefits]
|
|
**Cons**: [Drawbacks]
|
|
|
|
### Recommendation
|
|
[Which to use when]
|
|
```
|
|
|
|
### Variation 3: Error Recovery Example
|
|
|
|
For troubleshooting documentation:
|
|
|
|
```markdown
|
|
## Example: Recovering from [Error]
|
|
|
|
**Symptom**: [What user sees]
|
|
|
|
**Diagnosis**:
|
|
1. Check [aspect]
|
|
```
|
|
[Diagnostic command]
|
|
```
|
|
2. Verify [aspect]
|
|
|
|
**Solution**:
|
|
1. [Fix step]
|
|
```
|
|
[Fix command]
|
|
```
|
|
2. [Verification step]
|
|
|
|
**Prevention**: [How to avoid in future]
|
|
```
|
|
|
|
---
|
|
|
|
## Validation
|
|
|
|
**Usage**: 1 complete walkthrough (Testing Methodology in BAIME guide)
|
|
|
|
**Effectiveness**:
|
|
- ✅ Clear phases and progression
|
|
- ✅ Realistic (based on actual experiment)
|
|
- ✅ Quantified results (metrics, before/after)
|
|
- ✅ Reproducible (though conceptual, not literal)
|
|
|
|
**Gaps identified in Iteration 0**:
|
|
- ⚠️ Example was conceptual, not literally tested
|
|
- ⚠️ Should be more specific (actual commands, actual output)
|
|
|
|
**Improvements for next use**:
|
|
- Make example literally reproducible (test every command)
|
|
- Add troubleshooting section specific to example
|
|
- Include timing for each phase
|
|
|
|
---
|
|
|
|
## Related Templates
|
|
|
|
- [tutorial-structure.md](tutorial-structure.md) - Practical Example section uses this template
|
|
- [concept-explanation.md](concept-explanation.md) - Uses brief examples; walkthrough provides depth
|
|
|
|
---
|
|
|
|
**Status**: ✅ Ready for use | Validated in 1 context | Refinement needed for reproducibility
|
|
**Maintenance**: Update based on example effectiveness feedback
|