From the perspective of a user, the purpose of Hypothesis is to make it easier for you
to write better tests.
From my perspective as the primary author, that is of course also a purpose of Hypothesis.
I write a lot of code, it needs testing, and the idea of trying to do that without Hypothesis
has become nearly unthinkable.
But, on a large scale, the true purpose of Hypothesis is to drag the world kicking and screaming
into a new and terrifying age of high quality software.
You have probably never written a significant piece of correct software.
That’s not a value judgement. It’s certainly not a criticism of your competence. I can say with almost complete confidence that every non-trivial piece of software I have written contains at least one bug. You might have written small libraries that are essentially bug free, but the chance that you have written a non-trivial bug free program is tantamount to zero.
I don’t even mean this in some pedantic academic sense. I’m talking about behaviour where if someone spotted it and pointed it out to you you would probably admit that it’s a bug. It might even be a bug that you cared about.