for the Robust Programs chapter of “How to Learn Computer Science”.
Thank you for buying my book! This page discusses the content in the “Robust Programs” chapter and answers the “Fertile Questions” I asked there. There are no perfect answers, however: you may even disagree, but the point of a fertile question is to make you think.
Here are the questions, and my suggested answers. Do you agree?
What proportion of a computing project should be testing?
Which is more effective: black-box or white-box testing? Why?
Can we make our programs foolproof?
What are all the ways in which computer systems can fail?
Consider self-driving cars, the Mars rovers, or a social media app.