Hacker News new | ask | show | jobs
by waps 4369 days ago
When was the last time that a unit test caught a race condition ? When was the last time a unit test caught a contract violation (one subsystem doesn't agree with another about the semantics of a piece of data) ? When was the last time a unit test caught the use of an O(n^large number) algorithm in a production system ?

Unit tests verify if the programmer's understanding of the code matches reality.

That's all. Not saying it's useless, but a) it's at best a start of proper testing, b) insisting on coverage is beyond useless.

What is needed is a test if the programmer's understanding of the problem is up to par. Since that's impossible, let's go with the programmer's understanding of the whole program : system and loadtests.

Unit tests, while useful for TDD for "fiddly" code, are useless to guarantee correctness of an application. System tests are better. Proper type system abstractions are best.