This post (Programming first principles - 8. First principle - Proof that code works) was originally published on Sargalias.
We require proof that code works.
It follows from our basic requirement that what we produce must work:
- Without proof that the system works, we do not know whether it works or not.
- If we do not know whether it works, it means it may not work.
- If it does not work, we have failed the requirement that the system must work.
- On the other hand, if we have proof that the system works then we know that it works and we have fulfilled our requirement.
Therefore we require proof that the system works.
Our proof must:
- Be reproducible on demand, because we need it for every single change we make, because we must know the system works at all times.
- Must be as effective as possible.
Currently the only thing I know of is a good test suite.