Özellik tabanlı test
Her girdi için geçerli olması gereken değişmezleri (özellikleri) yazarsınız; kütüphane yüzlerce rastgele girdi üretip onları bozmaya çalışır.
Haskell için QuickCheck ile doğdu (Claessen ve Hughes, 1999). Klasik örnekler: reverse(reverse(xs)) == xs, sort(xs).length == xs.length, encode(decode(x)) == x. Başarısızlık olduğunda küçültme (shrinking) girdiyi hatayı yeniden üreten en küçük hale indirir.
Yaygın kütüphaneler: Hypothesis (Python), fast-check (JS), proptest (Rust), ScalaCheck, jqwik. Elle yazılmış birim testlerin kaçırdığı hataları, özellikle uç durumları (boş liste, negatif sayılar, unicode) bulur. Örnek tabanlı testlerin yerini almaz, onları tamamlar.