logoalt Hacker News

gr_normtoday at 9:02 PM2 repliesview on HN

Agree in part, but remember that formal verification need not be done in full. By analogy, we don't avoid testing simply because everything under the sun can't be tested. Even simple things like verifying that certain API endpoints are idempotent, or as a few steps up, that the datastores used by Facebook have distributed consistency and fault-tolerance properties, are of enormous utility.


Replies

demibabstoday at 10:40 PM

I’m a bit confused as to what makes formal verification different from extensive testing.

show 1 reply
ip26today at 10:23 PM

Exactly, it feels dishonest that this point is so rarely brought up in essays on formal methods. You can do things like prove that all possible faults are always caught, or any memory that is accessed has first been malloc’d, or that the API endpoint will always respond (liveness). These are often both easy to specify and difficult to guarantee with conventional testing.