Renaissance enlightenment-reawakening-reformation

Testing and the Perfect Software

Testing is important. Testing software is important. But testing can not guarantee a perfect product. It can provide information that can be used to mitigate risk of releasing a product.

Also, for a perfect product, you need perfect and exhaustive testing and as Gerald M. Weinberg1 said in his book Perfect Software2, this will require an infinite number of tests, which will require more time than the life of a product itself.

Edsger W. Dijkstra3 said, “Testing may convincingly demonstrate the presence of bugs, but can never demonstrate their absence.” So, use tests to gain the information about bugs in your program/product. And fix them. Do not let the presence of bugs shame you if your testing caught them. You will not have a perfect product but you are at least mitigating the risk to not have a low quality one.

Notes

  1. Gerald M Weinberg was a computer scientist, who was unknown to me till recently. He was a teacher with focus on psyhcology of Computer Science. He died in 2018. 

  2. Book link: https://leanpub.com/perfectsoftware

  3. Dijkstra said this on Reliability of programs https://www.cs.utexas.edu/users/EWD/transcriptions/EWD03xx/EWD303.html