软件测试的艺术

                By Cheno
     最近读了《软件测试的艺术》(The art of software testing),书是三十多年前(1979)写的,为了与时俱进,前几年(2004)被翻新了一下,增加了一些新的测试方法例如(eXtreme testing,Web testing),成为第二版。

     书写的非常简洁,没有太多的冗余,结构非常清晰,内容非常全面,这可能是这本书成为经典软件测试书籍的主要原因;由于书是30年前写的,而且作者的拥有的主要的集成电路中的软件测试的背景,对真正的现代商业软件测试并未涉足太深(那时Microsoft和Oracle刚刚成立没有几年,还没有什么大型的应用软件产品),因此这本书忽视了用户在软件测试中所起的作用。总体来说,这是一本经典的书籍,可以放在书架中作为常阅参考书籍。

     阅读这本书不需要太多的技术背景,任何人都能在读这本书中受益。第一章就是一个非常经典测试问题,用于检测你的测试技能,帮助你更好的理解测试用例(Test Case)。第二章给出了测试的定义以及一些好的原则,应该说这些原则在以后的软件测试发展中起着重要作用。例如“开发人员应该避免自己进行测试”,"测试是一个非常需要创造力和智力的任务”,这些原则都体现在微软建立测试组织的重要原则。第三章给出了细致的代码检查的具体步骤,甚至包括检查点的列表。第六章是我最喜欢的章节,它列出了系统测试中几乎所有的方面,可以作为设计系统级测试用例的重要参考。

     作为一本经典的软件测试教材,却很少提到软件用户对于测试的影响,这也是此书最大的缺憾了。此书对软件测试活动的定义为“带着发现错误的目的,执行被测软件”,其实不然,软件的Bugs数量是不可预测的,最好的测试活动应该是最大程度满足用户对软件质量的要求。在第四章,软件测试用例设计中,也缺少对于用户需求的考虑,此书更多的是从数据流角度分析问题。对于Internet应用软件,虽然第二版增加的第九章提到了相关的内容,但是所设计的深度和可用性却是大大不如其它章节。

     这本书像一本软件测试的一本字典,可以帮助着很多软件测试的初学者,也可以作为资深软件测试人员的参考手册。