《高等学校计算机科学与技术项目驱动案例实践规划教材:软件测试技术案例教程》采用“项目驱动”的教学模式,通过完整的项日案例,系统地介绍软件测试的原理、方法和技术。全书围绕软件测试的整体流程,详细论述了软件测试基本原理、软件测试计划与策略、黑盒测试技术、白盒测试技术、单元测试技术、集成测试技术、系统测试技术、验收测试技术和软件测试管理等内容。《高等学校计算机科学与技术项目驱动案例实践规划教材:软件测试技术案例教程》注重理论与实践相结合,内容详尽,提供了大量实例,突出应用能力的培养,将一个实际项目的知识点分解在各章作为案例讲解,是一本实用性突出的教材。本书可作为普通高等院校计算机专业本、专科生软件测试课程的教材,也可供软件测试人员参考使用。
21世纪,什么技术将影响人类的生活?什么产业将决定国家的发展?信息技术与信息产业是首选的答案。大专院校学生是企业和政府的后备军,国家教育部门计划在大专院校中普及政府和企业信息技术与软件工程教育。经过多所院校的实践,信息技术与软件工程教育受到同学们的普遍欢迎,取得了很好的教学效果。然而也存在一些不容忽视的共性问题,其中突出的是教材问题。
从近两年信息技术与软件工程教育研究来看,许多任课教师提出目前教材不合适。具体体现在:第一,来自信息技术与软件工程专业的术语很多,对于没有这些知识背景的同学学习起来具有一定难度;第二,书中案例比较匮乏,与企业的实际情况相差太远,致使案例可参考性差;第三,缺乏具体的课程实践指导和真实项目。因此,针对大专院校信息技术与软件工程课程教学特点与需求,编写适用的教材已是刻不容缓。
本书就是针对以上问题编写的,它围绕一个完整的项目来组织和设计学习软件测试及管理的方法。作者希望推广一种最有效的学习与培训的捷径,即Project-Driven Training,也就是用项目实践来带动理论的学习(或者叫做“做中学”) 。基于此,作者围绕一个艾斯医药商务系统项目案例来贯穿软件测试及管理各个模块的理论讲解,内容包括软件测试概述、软件测试计划与策略、黑盒测试技术、白盒测试技术、单元测试技术、集成测试技术、系统测试技术、验收测试技术和软件测试管理等。通过项目实践,可以对技术应用有明确的目的性(为什么学),对技术原理更好地融会贯通(学什么),也可以更好地检验学习效果(学得怎样).
本书具有如下特色。
(1) 重项目实践。作者多年项目开发经验的体会是“IT是做出来的,不是想出来的”,理论虽然重要,但一定要为实践服务。以项目为主线,带动理论的学习是最好、最快、最有效的方法。本书的特色是提供了一个完整的真实项目案例。通过此书,作者希望读者对软件测试流程及管理有个整体了解,减少对软件测试的盲目感和神秘感,能够根据本书的体系循序渐进地动手测试真实的软件项目。
(2) 重理论要点。本书是以项目实践为主线的,着重介绍软件测试及管理技术理论中最重要、最精华的部分,以及它们之间的融会贯通;而不是面面俱到,没有重点和特色。读者首先通过项目案例把握整体概貌,再深入局部细节,系统学习理论;然后不断优化和扩展细节,完善整体框架和改进项目。既有整体框架,又有重点理论和技术。一书在手,思路清晰,项目无忧!
为了便于教学,本教材配有教学课件,可从清华大学出版社的网站下载。
鉴于编者的水平有限,书中难免有不足之处,敬请广大读者批评指正。
作 者2011年10月
第1章 软件测试概述
1.1 软件、软件危机与软件工程
1.2 软件质量与质量模型
1.2.1 软件质量
1.2.2 质量模型
1.3 软件测试的重要性
1.3.1 软件所带来的悲剧
1.3.2 其他一些例子
1.4 软件缺陷与软件故障
1.4.1 软件缺陷的定义
1.4.2 软件缺陷产生的原因
1.4.3 软件缺陷的组成
1.4.4 软件缺陷的修复费用
1.5 软件测试定义
1.5.1 软件测试的概念
1.5.2 软件测试的目的
1.5.3 软件测试的原则
1.5.4 软件测试与质量保证
1.6 软件测试模型
1.6.1 软件测试瀑布模型
1.6.2 软件测试V模型
1.7 软件测试用例
1.7.1 测试用例的基本概念
1.7.2 软件测试用例的作用
1.7.3 测试用例的设计及原则
1.7.4 测试用例设计实例
1.8 软件测试人员应具备的素质
本章总结
思考题
第2章 艾斯医药商务系统项目案例概述
2.1 项目需求分析
2.2 系统结构分析
2.3 案例测试需求
第3章 软件测试计划与策略
3.1 软件测试计划
3.2 软件测试策略
3.3 软件测试过程
3.4 软件测试与软件开发过程
3.5 软件自动化测试介绍
3.6 项目案例
本章总结
思考题
第4章 黑盒测试
4.1 黑盒测试的概念
4.2 等价类测试
4.3 边界值分析法
4.4 决策表
4.5 因果图
4.6 错误推测法
4.7 项目案例
本章总结
思考题
第5章 白盒测试
5.1 白盒测试的概念
5.2 测试覆盖率
5.3 白盒测试工具
5.4 项目案例
本章总结
思考题
第6章 单元测试
6.1 单元测试的概念
6.2 单元测试环境建立
6.3 插桩程序设计
6.4 类测试
6.5 单元测试框架xunit
6.6 项目案例
本章总结
思考题
第7章 集成测试
7.1 集成测试的概念
7.2 集成测试方法
7.3 项目案例
本章总结
思考题
第8章 系统测试
8.1 系统测试的概念
8.2 功能测试
8.3 性能测试
8.4 压力测试
8.5 容量测试
8.6 安全性测试
8.7 用户界面测试
8.8 安装/卸载测试
8.9 文档测试
8.10 回归测试
8.11 项目案例
本章总结
思考题
第9章 验收测试
9.1 验收测试的概念
9.2 验收测试的主要内容
9.3 alpha测试
9.4 beta测试
9.5 项目案例
本章总结
思考题
第10章 软件测试管理
10.1 测试团队的组织和管理
10.2 测试用例的组织和管理
10.3 软件bug管理
10.4 项目案例
本章总结
思考题
致谢