# Property-Based Testing

Record: `arch:property-based-testing`
Kind: activity
Layer: [Computation Core](https://banes-lab.com/records/layer/computation-core.md)
Severity: recommended
Scope: function, algorithm, parser, domain invariant
Canonical: https://banes-lab.com/ontology#arch-property-based-testing

## Repair

- Refactored by: Define Property, Add Generator
- Detected by: missing generative tests for critical properties
- Violated by: invariant-heavy code with only example tests
- Measured by: property coverage, counterexample count
- Enforced by: property test suite

## requires

- [Properties/Invariants](https://banes-lab.com/records/lex/properties-invariants.md)

## reinforces

- [Correctness](https://banes-lab.com/records/arch/correctness.md)
- [Robustness](https://banes-lab.com/records/lex/robustness.md)

## enables

- [Broad Input Exploration](https://banes-lab.com/records/lex/broad-input-exploration.md)

## conflicts-with

- [Example-Only Testing](https://banes-lab.com/records/lex/example-only-testing.md)

## tensions-with

- [Shrinking/Debug Complexity](https://banes-lab.com/records/lex/shrinking-debug-complexity.md)

## tensions

- [Property-Based Testing Shrinking/Debug Complexity](https://banes-lab.com/records/tension/property-based-testing-shrinking-debug-complexity.md)
