Allows applications to test that invariants are always satisfied. Can test mutexes and readers/writer locks. Does not test recursive acquisition.