I find that QuickCheck-style tests that randomly choose inputs can have value approaching that of a proof. Code that&#x27;s even heavily tested with test cases tends to have minor bugs and inconsistencies that need resolving before a proof will work. Code that passes a test with random inputs generally goes through as-is(or with minor restructuring to make the proof easier).