Properties about the logical behaviour of programs.
- e.g. a program has no [[Generic Bugs]] but it still has some incorrect output according to the program spec.
- Requires the intended behaviours/properties to be specified (e.g. as pre and post conditions)
Specifications are costly (in developer time), can contain [[Functional Bugs]] themselves (e.g. preconditions do not actually ensure what the programmer intends).