The real value of tests is not that they detect bugs in the code, but that they detect inadequacies in the methods, concentration, and skills of those who design and produce the code.
“I realised that both verification and testing were using the same technology—assertions—on a common goal of improving software products in their speed of delivery, their quality, and their reliability.”
Hoare examines why software had become highly reliable despite little use of formal proof, and how mathematical theory and engineering practice reinforce one another.