com um clique
reproduce-reduce-regress
// Systematic workflow for debugging by reproducing bugs with real data, reducing test cases to minimal examples, and adding regression tests
// Systematic workflow for debugging by reproducing bugs with real data, reducing test cases to minimal examples, and adding regression tests
Guidelines for using facet crates (facet-json, facet-toml, figue) instead of serde-based alternatives for consistent dogfooding
Orientation to facet-format JIT deserialization (tiering, fallbacks, key types/entry points) and where to look when changing or debugging JIT code
Debug crashes, segfaults, and memory errors using valgrind integration with nextest through pre-configured profiles
| name | reproduce-reduce-regress |
| description | Systematic workflow for debugging by reproducing bugs with real data, reducing test cases to minimal examples, and adding regression tests |
When debugging a bug, follow this workflow:
Goal: Get a failing test that demonstrates the bug using REAL data.
Goal: Find the MINIMAL input that still triggers the bug.
test_minimal_one_field, test_with_queries, etc.The difference between your minimal failing case and your minimal passing case IS the bug.
Goal: Ensure the bug never comes back.
test_issue_1356_*❌ Commenting code in/out to test different scenarios ❌ Modifying a single test repeatedly ❌ "Simplifying" input without verifying the bug still reproduces ❌ Deleting test variants after finding the bug ❌ Theorizing about what MIGHT cause the bug before reproducing
// Minimal failing case
#[test]
fn test_issue_1356_fails_without_queries_default() { ... }
// Minimal passing case (shows the workaround)
#[test]
fn test_issue_1356_passes_with_queries_default() { ... }
// Original reproduction from user's code
#[test]
fn test_issue_1356_full_reproduction() { ... }