# Specification-Based Testing

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

## Repair

- Refactored by: Add Spec Tests
- Detected by: lack of spec-derived tests
- Violated by: tests coupled to implementation details
- Measured by: spec coverage
- Enforced by: test gates

## requires

- [Specification](https://banes-lab.com/records/lex/specification.md)

## reinforces

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

## enables

- [Behavior Validation](https://banes-lab.com/records/lex/behavior-validation.md)

## conflicts-with

- [Implementation-Only Testing](https://banes-lab.com/records/lex/implementation-only-testing.md)
- [Mock Mirage](https://banes-lab.com/records/arch/mock-mirage.md)

## tensions-with

- [Spec Maintenance](https://banes-lab.com/records/lex/spec-maintenance.md)

## tensions

- [Specification-Based Testing Spec Maintenance](https://banes-lab.com/records/tension/spec-maintenance-specification-based-testing.md)
