Property-Based Testing
// Definition
Asserting that a property (e.g., 'reverse(reverse(list)) == list') holds for many automatically generated inputs, instead of writing one example per case. Tools like Hypothesis and fast-check generate thousands of cases and shrink failures to a minimal example.
// Related terms
Fuzzing
Feeding malformed, random, or unexpected inputs to a system to expose crashes, memory issues, and security flaws. Effective at finding bugs that hand-written tests miss because real users would never type such inputs.
Data-Driven Testing
Running the same test logic against many input/output combinations, typically loaded from a CSV, JSON file, or database. Separates test data from test code so you can scale coverage without duplicating logic.
Mutation Testing
Measuring test quality by deliberately introducing small bugs (mutations) into the source and checking whether tests catch them. A high mutation score means the suite genuinely exercises the code, not just executes it. More honest than line coverage.