![]()
内容推荐 本书共分为三篇:软件测试的原理与方法,软件测试的技术,软件测试项目实践。第1篇首先系统地介绍了软件测试的基本概念,从不同的视角探讨软件测试的本质及其内涵;全面而系统地讲解了软件测试所需的基本方法、流程和规范,按照SWEBOK 3.0对方法进行了重新分类和组织,使内容结构更加合理、清晰,更好地满足教学需求。第2篇介绍了软件测试各个层次(单元测试、集成测试、系统测试和专项测试)的测试技术及其工具,系统、务实而有效,和业界的实践保持高度一致,学以致用;而且还介绍了软件国际化和本地化的测试、软件测试自动化的原理和框架,可使读者有效地提高动手能力。为了更好地将测试方法和技术应用于实际项目中,第3篇从软件测试需求分析与测试计划开始,逐步深入测试用例设计、测试基础设施部署、测试执行、缺陷报告与跟踪、测试结果分析与报告,贯穿整个软件开发生命周期,最后介绍了软件测试的新技术并展望了未来发展趋势。 本书在内容组织上力求自然且条理清晰、丰富且实用,通俗易懂、循序渐进,并提供了丰富的实例和实践要点,使理论和实践能够有机地结合起来,更好地满足软件测试学科的特点,使读者更容易理解所学的理论知识、掌握测试方法和技术的应用之道。 本书可作为高等学校软件工程专业、计算机应用专业和相关专业的教材,也可作为其他各类软件工程技术人员的参考书。 作者简介 朱少民,同济大学软件学院教授、中国科学技术大学软件学院教学指导委员会委员,曾任恩科一网迅(中国)软件有限公司QA高级总监,国内软件测试界的领军人物和资深专家。30多年来一直从事软件测试、质量管理和过程改进等工作,先后获机械工业部、安徽省、青岛市、合肥市等多项科技进步奖,并出版了十多部著作,包括测试方面的畅销书《全程软件测试》《完美测试》《软件测试方法和技术》等,经常在国内外会议上发表演讲。 目录 第1篇 软件测试的原理与方法 第1章 引论 1.1 软件测试的必要性 1.1.1 迪士尼并不总是带来笑声 1.1.2 一个缺陷造成了数亿美元的损失 1.1.3 火星探测飞船坠毁 1.1.4 人类容易得健忘症——再次忽视了集成测试 1.1.5错误指令造成骑士资本集团损失4.4 亿美元 1.1.6 AWS宕机整整4小时 1.1.7 预订的酒店住不进去导致旅客露宿街头 1.1.8 Uber泄露个人隐私导致用户要求赔偿3亿多元 1.1.9 更多的悲剧 1.2 为什么要进行软件测试 1.3 什么是软件测试 1.3.1 软件测试学科的形成 1.3.2 正反两方面的争辩 1.3.3 软件测试的定义 1.3.4 软件测试的其他观点 1.4 测试和质量保证的关系 1.5 测试和开发的关系 1.6 测试驱动开发的思想 小结 思考题 第2章 软件测试的基本概念 2.1 软件缺陷 2.1.1 软件质量的内涵 2.1.2 软件缺陷的定义 2.1.3 软件缺陷的测试判断准则 2.1.4 软件缺陷的产生 2.1.5 软件缺陷的构成 2.1.6 修复软件缺陷的代价 2.2 软件测试的分类 2.3 静态测试和动态测试 2.3.1 产品评审 2.3.2 静态分析 2.3.3 验证和确认 2.4 主动测试和被动测试 2.5 黑盒测试和白盒测试 2.6 软件测试层次 2.7 软件测试工作范畴 2.7.1 测试分析 2.7.2 测试策略制订 2.7.3 测试计划 2.7.4 测试设计 2.7.5 测试执行 2.7.6 测试结果和过程评估 小结 思考题 实验1 完成一个简单的测试过程 第3章 软件测试方法 3.1 基于直觉和经验的方法 3.1.1 Adhoc测试方法和ALAC测试方法 3.1.2 错误推测法 3.2 基于输入域的方法 3.2.1 等价类划分法 3.2.2 边界值分析法 3.3 基于组合及其优化的方法 3.3.1 判定表方法 3.3.2 因果图法 3.3.3 Pairwise方法 3.3.4 正交试验法 3.4 基于逻辑覆盖的方法 3.4.1 判定覆盖 3.4.2 条件覆盖 3.4.3 判定条件覆盖 3.4.4 条件组合覆盖 3.4.5 基本路径覆盖 3.5 基于缺陷模式的测试 3.5.1 常见的缺陷模式 3.5.2 DPBT的自动化实现 3.6 基于模型的测试 3.6.1 功能图法 3.6.2 模糊测试方法 3.7 形式化测试方法 3.7.1 形式化方法 3.7.2 形式化验证 3.7.3 扩展有限状态机方法 小结 思考题 第4章 软件测试流程和规范 4.1 传统的软件测试过程 4.1.1 W模型 4.1.2 TMap 4.2 敏捷测试过程 4.2.1 敏捷测试的价值观和原则 4.2.2 传统测试和敏捷测试的区别 4.2.3 敏捷测试流程 4.2.4 SBTM 4.3 软件测试学派 4.4 测试过程改进 4.4.1 TMMi 4.4.2 TPI 4.4.3 CTP 4.4.4 STEP 4.5 软件测试规范 小结 思考题 第2篇 软件测试的技术 第5章 单元测试与集成测试 5.1 代码静态测试 5.1.1 编码的标准和规范 5.1.2 代码评审 5.2 代码评审案例分析 5.2.1 空指针保护错误 5.2.2 数据类型转换错误 5.2.3 字符串或数组越界错误 5.2.4 资源不合理使用 5.2.5 不当使用synchronized导致系统性能下降 5.3 代码静态检测工具 5.3.1 FindBugs检查代码缺陷 5.3.2 PMD检查代码缺陷 5.3.3 CheckStyle检查代码风格 5.3.4 SonarQube构建自动的代码扫描 5.4 单元测试的目标和任务 5.4.1 为何要进行单元测试 5.4.2 单元测试的目标和要求 5.4.3 单元测试的任务 5.4.4 驱动程序和桩程序 5.4.5 类测试 5.5 分层单元测试 5.5.1 Action层的单元测试 5.5.2 数据访问层的单元测试 5.5.3 Servlet的单元测试 5.6 单元测试工具 5.6.1 JUnit介绍 5.6.2 IntelliJ IDEA中的JUnit应用举例 5.6.3 Mock框架Mockito 5.6.4 测试覆盖率工具JaCoCo 5.6.5 JUnit 5+Gradle构建自动的单元测试 5.6.6 开源的单元测试工具 5.7 系统集成的模式与方法 5.7.1 单体架构的集成测试 5.7.2 微服务架构的集成测试 5.7.3 持续集成及其测试 小结 思考题 实验2 单元测试实验 第6章 系统测试 6.1 系统功能测试 6.1.1 功能测试要求和基本思路 6.1.2 面向接口的功能测试 6.1.3 面向UI的功能测试 6.2 功能测试自动化 |