(特价书)开发者测试
基本信息
- 作者: 王兴亚 王智钢 赵源 陈振宇
- 丛书名: 软件工程技术丛书
- 出版社:机械工业出版社
- ISBN:9787111616818
- 上架时间:2019-12-16
- 出版日期:2019 年1月
- 开本:16开
- 页码:201
- 版次:1-1
- 所属分类:计算机 > 软件工程及软件方法学 > 软件质量、软件测试及维护

编辑推荐
开发者讨厌给自己程序写测试,更讨厌不给自己程序写测试的人。
—— 陈振宇
内容简介
目录
第1章 开发者测试概述 1
1.1 开发者与软件测试 1
1.1.1 测试和调试 1
1.1.2 开发者测试 3
1.1.3 PIE模型 4
1.2 开发者测试方法与技术 6
1.2.1 静态测试与动态测试 6
1.2.2 黑盒测试与白盒测试 8
1.2.3 失效重现 9
1.3 开发者测试工具 9
1.3.1 静态测试扫描工具 9
1.3.2 测试覆盖分析工具 12
1.4 开发者测试趋势 14
1.4.1 软件开发和运营困境 14
1.4.2 DevOps介绍 16
1.4.3 DevOps中的开发者测试 17
1.5 慕测开发者测试 19
1.6 小结 27
习题1 28
前言
本书从开发者测试出现的背景与意义、开发者所应掌握的基本和高级程序分析方法以及软件测试技术、开发者所应掌握的软件测试分析辅助工具、用于开发者测试教学和竞赛的慕测平台等多个方面对开发者测试进行系统性介绍。相信通过本书的学习,读者可以对开发者参与测试的必要性、开发者测试所涵盖的内容有初步的认识和了解,同时能够结合本书的示例及平台锻炼自己的测试能力。
本书适用于两类不同的读者:1)在高等院校学习和工作的教师和学生,本书有助于他们理解和认识测试工作承担者的责任,并为他们学习和锻炼自身的测试能力提供方向和平台;2)软件产业的开发人员、测试人员和管理人员,本书有助于他们认识开发者在测试工作中的重要性和所应承担的工作内容,以及开发者所应具备的测试技能。
本书讲述的方法是通用的,可以用于测试任何类型的计算机软件。但是,为了使读者更好地理解和学习本书的开发者测试方法,本书提供了大量Java示例代码以及面向Java的程序分析、测试工具。这些示例和工具可以在任何支持Java的操作系统(如Windows、Linux、Mac)、开发环境(如Eclipse、IntelliJ、Sublime Text)中开发、测试和运行。
本书共包含8章及一个附录,除第7章与第8章外,其他章节的内容互不相关,因而读者可选择其中部分章节进行阅读。
第1章:开发者测试概述。本章在研究和分析开发者与软件测试关系的基础上,介绍了开发者测试的定义、背景与意义。同时,本章还从静态测试与动态测试、白盒测试与黑盒测试、不同测试工具间的对比中分析得到开发者测试所涉及的方法、技术与工具。此外,本章还讨论了开发者测试技术未来的趋势,并介绍了支持开发者测试教学与竞赛的慕测平台。
第2章:程序静态分析。本章对软件静态测试的基础—程序静态分析方法进行了介绍。通过代码评审、结构分析等方法可以有效地检测出程序中的逻辑错误,而程序流程分析(如控制流分析、数据流分析)则可以更细粒度地反映程序中语句间、变量间的关联。此外,本章还介绍了辅助程序正确性证明的静态/动态符号执行方法,便于读者了解更高级的程序分析方法。
第3章:白盒测试。白盒测试要求软件内部的逻辑结构透明可见,因此更适合由软件项目的开发者来承担。本章介绍了两类主要的白盒测试方法,包括以程序内部逻辑结构为基础的逻辑覆盖测试方法和以程序路径为基础的路径覆盖测试方法。与此同时,本章还比较了不同白盒测试方法的测试强度,并介绍了用于度量程序复杂度的环复杂度方法。
第4章:程序插桩与变异测试。本章介绍了用于获取程序运行时信息的程序插桩方法,以及用于度量测试用例集缺陷检测能力的变异测试方法。对于程序插桩方法,本章详细介绍了插桩位置、类型、数量的选择方法;对于变异测试方法,本章详细介绍了变异算子的设计与选择方法。同时,本章还介绍了工具JaCoCo和PITest,以便读者体验Java程序的运行时信息收集和变异测试过程。
第5章:单元测试。单元测试是对软件基本组成单元(如方法、函数、过程)的测试。在测试过程中要完成初始状态的创建、测试结果的验证、测试资源的释放等工作,这些工作适合开发者使用代码控制开展。本章在介绍单元测试框架的基础上,进一步阐述了单元测试的各项内容,使读者能针对不同的测试对象分析、建立相应的测试模型。
第6章:集成测试。通过单元测试的软件模块并不能保证在整合后依然运行正确,因此需要做集成测试以进一步验证。本章介绍了集成测试过程、集成测试所面向的缺陷类型以及分析方法,并详细介绍了多种集成测试策略。同时,本章还讨论了不同集成测试策略的优缺点,并对它们各自的适用场景进行了分析,测试人员可据此选择合适的集成测试策略。
第7章:JUnit基础。工欲善其事,必先利其器。JUnit是开发者开展单元测试的一把利器。本章对Java单元测试框架的基本功能(如注解、测试类与测试方法、错误与异常处理、批量测试)进行了详细的介绍,使读者对JUnit的功能和适用范围有了详细的了解。本章还穿插了数个JUnit示例程序,帮助读者更快、更方便地学习Java单元测试。
第8章:JUnit深入应用。在前一章介绍JUnit基本功能的基础上,本章对JUnit的高级功能进行了介绍,包括用于提高测试代码开发效率的匹配器功能,面向Controller和Private函数的测试功能、Stup测试功能和Mock测试功能。同时,本章还介绍了JUnit与常用Java开发框架(如Ant、Maven)的集成方法,读者可据此配置来构建更方便的Java单元测试环境。
附录:慕测科技—开发者测试平台。实践练习是提高开发者测试能力的有效方法。本附录介绍了支持开发者测试教学的慕测平台,并说明了面向教师的账号注册、班级管理、考试管理等功能。同时,还对由慕测平台提供技术支持的全国大学生软件测试大赛进行了介绍,该赛事为软件测试专业的宣传及开发者测试理念的普及做出了重要贡献。
媒体评论
本书介绍了软件测试的产生与发展以及开发者与测试的关系;讲述了程序静态分析、逻辑覆盖测试、程序插桩与变异测试等开发者需要掌握的测试方法和技术;结合示例讲解了单元测试、集成测试中开发者应能发现和避免的各种问题;由浅入深地介绍了JUnit的使用;最后介绍了慕测开发者测试平台和全国大学生软件测试大赛。
本书力争做到内容详实、结构清晰、示例丰富、表述通俗易懂,可以作为高校软件测试等课程的教材,也可以作为产业界软件测试初学者的参考书,另外也是全国大学生软件测试大赛开发者测试分项赛的参赛指南。
主要特色
从开发者测试角度来介绍相关测试方法、技术、工具和平台,具有很强的针对性,旨在培养和提高开发者的软件测试能力和水平。
按照开发者测试所应掌握的基础知识、基本技术和方法来组织教材内容,并对每项技术和工具尽可能给出示例分析和使用说明,便于学习者理解和应用。
各个章节既有联系又相对独立,读者可根据兴趣及自身知识水平和能力来选择学习某个章节的内容。
引入慕测开发者测试平台,为读者实践开发者测试的相关方法和技术提供了支撑平台。