|
|
|
|
移动端

前言

《软件测试:一个软件工艺师的方法(原书第4版)》本书是经典的软件测试教材,综合阐述了软件测试的基础知识和方法,既涉及基于模型的开发,又介绍测试驱动的开发,做到了理论与实践的完美结合,反映了软件标准和开发的新进展和变化。本节为前言。

作者:马琳/李海峰 译来源:机械工业出版社|2017-11-15 16:36

技术沙龙 | 邀您于8月25日与国美/AWS/转转三位专家共同探讨小程序电商实战

前言

Software Testing: A Craftsman’s Approach, Fourth Edition

此次再版,我们增加了四章新内容,同时更加深入地讨论了基于路径的测试,从而拓展了本书18年以来一直侧重基于模型测试的传统。此前本书已经再版三次,经过了18年的教学和业界使用的检验。借助精心挑选的简单易懂的实例,本书把理论与实践紧密地结合在一起。此外,很多第3版中的内容被合并、重组在一起,使全书内容更加简洁流畅。把很多面向对象软件测试的内容和过程软件测试(procedural software testing)整合在一起形成了一个有机的整体。还有就是针对美国联邦航空管理局和美国国防部有关标准的要求,在“路径测试”一章中扩充了复杂条件测试(complex condition testing)和修正的条件判定覆盖率(modified condition decision coverage)指标等内容。

这一版新增加的章节如下:

软件技术评审(第22章)。侧重软件技术检验,这实际上被视为“静态测试”,而本书的前三版一直侧重于讨论如何利用精心挑选的测试用例来执行代码的“动态测试”。本章内容实际上来自一个软件开发公司20多年来的产业实践经验,该公司具有完善的技术评审流程。

附录。附录中给出了一套完整的用例集(采用UML),可以针对典型的客户需求实现实际产业开发所要求的技术检验。其中包括用例标准、用例故障严重程度定义、潜在问题的技术检验事项表,以及典型评审报告和最终报告的格式文档。

基于模型的综合系统测试(第17章)。由系统构成复杂系统的问题相对还是较新的(始于1999年)。软件测试从业人员现在是在追随几位大学研究人员的步伐,主要关注如何界定一个由若干系统构成的复杂系统。这一章介绍了“泳道事件驱动Petri网”,在表达能力上接近著名的状态图方法。有了它就可以对复杂系统实施基于模型的测试。

软件复杂度(第16章)。目前大部分文献都仅考察了在单元层面上的圈复杂度(cyclomatic,也称为McCabe)。本章从两个方面拓展了对单元层面复杂度的考量,引进了两种集成层面上的复杂度。对面向对象编程和系统层面的测试来说,需要涉及对复杂度的处理。在任何层面上,对复杂度的考量都是提升设计、编码、测试和维护工作的重要手段。保持一种一致的软件复杂度表述,对每个阶段都有很大的促进作用。

测试用例的评估(第21 章)。新增的这一章要研究一个难题:如何评估一个测试用例集?测试覆盖性是长期以来为人所接受的指标,但是其中总有一定程度的不确定性。古罗马关于“谁来守卫卫兵”的问题,在此变成了“谁来评估测试”的问题。十几年来,变异测试(mutation testing)逐渐成为一种解决方案,所以本章对其效果和贡献进行了介绍,同时也介绍了另外两种方法:漏洞挖掘(fuzzing)和故障注入(fault insertion)。

做了47年的软件开发人员和大学教授,我认为自己的软件测试知识既有深度也有广度。在大学里,我一直在数学系和计算机系授课,同时我还有20多年的工业软件开发和管理经验,这些经历使我能够很好地编写和改进我的软件测试教程并不断加深对于软件测试的理解。在我讲到书本以外的内容时,我经常会不断地产生新的看法。所以,我把本书的出版视为我对软件测试领域做出的一点贡献。最后,我还要感谢我的三位同事Roger Ferguson博士、Jagadeesh Nandigam博士和Christian Trefftz博士,感谢他们在面向对象测试这几章的撰写中给予我的巨大帮助。

非常感谢!

Paul C. Jorgensen

于密歇根州罗克福德市


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目      下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Struts 2权威指南:基于WebWork核心的MVC开发

本书所介绍的Struts 2已经完全超出了Struts 1框架原有的高度,Struts 2建立在Struts 1和WebWork两个框架整合的基础之上,因此提供了更多优...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊