3 ms·
There are tests and there are tests. Software engineers benefit from having tests that encode invariants they cannot otherwise encode in the type system, so th
by ithkuil 6y ago
There are tests and there are tests.
Software engineers benefit from having tests that encode invariants they cannot otherwise encode in the type system, so that they have a machine assisted refactoring aid. It's just an extension of writing the code; if you think you know what you want your code to do, you just add more of that
But it's very hard for software engineers to think about what happens outside of that realm, whether because the software encounters edge cases naturally or due to "creative" ways the end users find to (ab)use the software.
Some of those cases can be explored with a fuzzer, some of them are best found with actual human QA testers.
Obligatory:
https://youtu.be/baY3SaIhfl0 https://youtu.be/baY3SaIhfl0
As always, things stop working when you just go through the motions and become cargo cults.