當我初學編程時,我發(fā)現(xiàn)測試與調試這一過程是令人沮喪的。我當時使用Selectrictvlaewriters與分時系統(tǒng)進行交互,Selectrictypewriters的“速度驚人”可以達到每秒15個字符,我可以記起當時我是如何用力Selectrictypewriters的堅硬金屬外殼的。然而bug并未因為我的敲擊而更快地消失。在我印象當中,從未有老師教授過我如何測試和調試程序。在我從事軟件開發(fā)的近3年中,軟件開發(fā)業(yè)的諸多方面都發(fā)生了變化,編程語言已經更為普及并且不再陽春白雪。業(yè)界已經引入了更好的軟件開發(fā)方法學,而且這些方法學還將被更為優(yōu)秀的方法學所替代。微處理器已經無所不在,軟件也成為了諸多新產品的驅動力量。將我初學編程時所使用的價值數百萬美元的IBM大型機與我編寫本書時所使用的筆記本電腦相比,后者有更快的處理器、更多的內存以及更大的磁盤空間。然而一些事情仍未變化,軟件產品仍有太多的bug,軟件開發(fā)者依然花費著過多的時間查找并解決bug。正在學習編程的人們在使用試錯法上花費了太多的時間。我編寫本書的目的在于給廣大讀者介紹一套系