62 lines
2.7 KiB
Markdown
62 lines
2.7 KiB
Markdown
# QA Plan: Quality & Diversity Baseline
|
|
|
|
## Scope
|
|
|
|
Verify that the new `brief` built-in ranking profile enforces quality gates and diversity constraints as specified, without regressing existing functionality.
|
|
|
|
## Test Matrix
|
|
|
|
### 1. Quality Gate Verification
|
|
|
|
| # | Scenario | Input | Expected | Type |
|
|
|---|----------|-------|----------|------|
|
|
| Q1 | Low-view items excluded | 10 items: 5 with 1-2 views, 5 with >= 3 views. All have >= 1 completion. | Only the 5 high-view items appear in results | Integration |
|
|
| Q2 | Zero-completion items excluded | 10 items: all have >= 3 views, 5 have 0 completions | Only the 5 items with completions appear | Integration |
|
|
| Q3 | Both gates combined | Items with mixed view/completion. Some fail view gate, some fail completion gate, some pass both | Only items passing both gates appear | Integration |
|
|
| Q4 | Edge case: exactly at threshold | Items with exactly 3 views and exactly 1 completion | Items appear in results (>= threshold, not >) | Integration |
|
|
|
|
### 2. Diversity Verification
|
|
|
|
| # | Scenario | Input | Expected | Type |
|
|
|---|----------|-------|----------|------|
|
|
| D1 | Creator diversity | 30 items from 5 creators, 10 from dominant creator. Limit 10. | Multiple creators represented, no single creator has all 10 | Integration |
|
|
| D2 | Format dominance prevented | 12 items: 6 video, 6 podcast. Different creators, all pass quality gates. | No format exceeds 60% of results | Integration |
|
|
| D3 | Combined constraints | 13 items: mixed quality, skewed creators, mixed formats | Quality gates + creator diversity + format max 60% all hold | Integration |
|
|
|
|
### 3. Profile Registration
|
|
|
|
| # | Scenario | Expected | Type |
|
|
|---|----------|----------|------|
|
|
| R1 | Profile resolvable | `brief` profile found in registry, query executes without error | Integration |
|
|
| R2 | Builtin count | Total registered builtins includes `brief` | Unit (existing test updated) |
|
|
|
|
### 4. Regression
|
|
|
|
| # | Scenario | Expected | Type |
|
|
|---|----------|----------|------|
|
|
| RG1 | Existing lib tests pass | `cargo test --lib` passes with no failures | Automated |
|
|
| RG2 | Clippy clean | `cargo clippy -D warnings` passes | Automated |
|
|
| RG3 | Format clean | `cargo fmt --check` passes | Automated |
|
|
|
|
## Pass Criteria
|
|
|
|
- All Q1-Q4, D1-D3, R1-R2 tests pass.
|
|
- All RG1-RG3 checks pass.
|
|
- No new warnings introduced.
|
|
|
|
## Automation
|
|
|
|
All tests are automated via `cargo test`. No manual testing required.
|
|
|
|
```bash
|
|
# Quality and diversity integration tests
|
|
cargo test --manifest-path tidal/Cargo.toml --test p1_quality_diversity
|
|
|
|
# Lib unit tests (includes builtin count check)
|
|
cargo test --manifest-path tidal/Cargo.toml --lib
|
|
|
|
# Lint
|
|
cargo clippy --manifest-path tidal/Cargo.toml -- -D warnings
|
|
cargo fmt --manifest-path tidal/Cargo.toml --check
|
|
```
|