目录 第1章绪论1 1.1软件和软件危机1 1.1.1计算机软件1 1.1.2软件危机2 1.2软件开发4 1.2.1软件开发过程5 1.2.2软件开发过程模型6 1.3软件缺陷9 1.3.1软件缺陷概述9 1.3.2软件缺陷的严重性和优先级11 1.3.3软件缺陷分类13 1.3.4预防和修复软件缺陷15 1.3.5软件缺陷案例17 习题21 第2章软件测试基础22 2.1软件测试的含义22 2.1.1软件测试的发展22 2.1.2软件测试的基本原则23 2.1.3软件测试与软件开发的关系25 2.2软件测试模型26 2.3软件测试过程30 2.4软件测试基本理论33 2.4.1软件测试用例设计33 2.4.2软件测试方法36 2.4.3软件测试的误区38 2.5软件可靠性41 习题44 第3章黑盒测试45 3.1黑盒测试概述45 3.2等价类划分法46 3.2.1划分等价类46 3.2.2设计测试用例47 3.2.3等价类划分法举例47 3.3边界值分析法52 3.3.1边界值分析法的含义53 3.3.2边界值分析法原理53 3.3.3边界值分析法举例55 3.4决策表法57 3.4.1决策表的含义57 3.4.2决策表法举例58 3.5因果图分析法62 3.5.1因果图法的含义62 3.5.2因果图法的原理62 3.5.3因果图法举例64 3.6正交实验设计法66 3.6.1正交实验设计法的含义66 3.6.2正交实验法举例68 3.7黑盒测试方法比较73 习题74 第4章白盒测试76 4.1白盒测试概述76 4.1.1白盒测试含义76 4.1.2黑盒测试和白盒测试的比较77 4.1.3静态测试和动态测试79 4.1.4程序流程图和控制流图80 4.2逻辑覆盖测试81 4.3白盒静态测试86 4.3.1桌前检查86 4.3.2代码审查86 4.3.3代码走查87 4.3.4代码评审和同行评审87 4.3.5基于缺陷模式测试88 4.4其他白盒测试方法98 4.4.1程序插装测试98 4.4.2程序变异测试99 4.4.3循环语句测试100 4.5白盒测试策略101 习题101 第5章单元测试103 5.1单元测试概述103 5.1.1单元测试的定义103 5.1.2单元测试的目标104 5.1.3单元测试的任务104 5.2对单元测试的误解105 5.3单元测试的必要性108 5.4单元测试环境和方法109 5.4.1驱动模块和桩模块的定义109 5.4.2驱动模块和桩模块的使用条件110 5.5单元测试策略111 5.6单元测试用例设计112 5.7单元测试过程和单元测试工具113 5.8面向对象的单元测试115 习题116 第6章集成测试117 6.1集成测试概述117 6.2集成测试方案119 6.2.1大爆炸式集成测试119 6.2.2渐增式集成120 6.2.3几种集成测试比较123 6.2.4基于功能的集成测试124 6.2.5核心系统先行集成测试124 6.2.6客户/服务器集成测试125 6.2.7高频集成测试126 6.3集成测试用例设计127 6.4集成测试过程128 习题130 第7章系统测试132 7.1性能测试135 7.1.1性能测试概述135 7.1.2压力测试140 7.1.3容量测试142 7.1.4负载测试145 7.2可靠性测试145 7.2.1可靠性测试方法145 7.2.2可靠性测试的数学模型146 7.3安全性测试148 7.3.1安全性测试概述148 7.3.2安全性测试的主要内容149 7.3.3安全性测试方法150 7.4恢复测试153 7.4.1恢复测试的含义153 7.4.2恢复测试的主要内容和步骤 154 7.4.3恢复测试中一些要注意的地方155 7.5备份测试156 7.6可用性测试156 7.6.1可用性测试概述156 7.6.2可用性测试的发展157 7.6.3可用性测试方法157 7.6.4可用性测试的必备要素159 7.6.5可用性测试时需要注意的问题161 7.7协议测试161 7.8文档测试163 7.8.1文档测试的含义163 7.8.2文档测试方法 166 7.9GUI软件测试167 7.9.1GUI测试概述168 7.9.2GUI软件测试方法169 7.9.3GUI测试的几个要素171 7.9.4GUI测试主要内容173 7.9.5GUI测试常见问题175 7.10网站测试175 7.10.1网站测试的含义176 7.10.2网站测试的主要内容176 7.11安装性测试181 7.11.1安装性测试的含义181 7.11.2安装性测试的三个主要方面181 7.11.3安装和卸载程序测试内容182 7.12配置测试183 7.12.1配置测试的含义183 7.12.2配置测试方法183 7.13冒烟测试184 7.13.1冒烟测试概述184 7.13.2冒烟测试的应用和内容184 7.14α测试和β测试185 7.15回归测试187 习题190 第8章自动化测试及工具191 8.1自动化测试概述191 8.1.1自动化测试的含义191 8.1.2自动化测试的优点192 8.1.3自动化测试的缺点193 8.1.4自动化测试与手工测试的互补性194 8.2实施自动化测试194 8.2.1自动化测试的对象和范围194 8.2.2自动功能测试的脚本开发195 8.3自动化测试工具的选择与比较197 8.3.1白盒测试工具197 8.3.2黑盒测试工具198 8.3.3测试管理工具199 8.3.4常用自动化测试工具200 8.3.5自动化测试工具QTP205 8.3.6自动化测试工具AutoRunner209 习题213 第9章软件质量标准214 9.1软件质量214 9.2软件质量标准215 9.2.1国际标准215 9.2.2国家标准216 9.2.3行业标准217 9.2.4企业标准217 9.2.5其他标准217 9.3软件能力成熟度模型CMM218 9.3.1CMM的含义218 9.3.2CMM的五个级别219 9.3.3国内软件企业参与实施CMM221 9.4能力成熟度整合模型CMMI221 9.4.1CMMI的含义221 9.4.2CMMI的基本内容222 9.4.3CMM与CMMI的区别223 9.5ISO 9000软件质量标准224 9.5.1ISO 9000的主要内容224 9.5.2ISO 9000和CMM/CMMI的关系225 9.6其他质量标准225 9.6.1IEEE质量标准226 9.6.2SPICE226 9.6.3ISO/IEC227 习题228 第10章软件测试行业综述229 10.1软件测试的发展和现状229 10.2软件测试技术的发展方向232 10.3软件测试管理234 10.4软件测试外包240 10.5对软件测试工程师的要求243 10.5.1软件测试工作特点243 10.5.2软件测试工程师246 10.6软件测试工程师考试251 习题252 附录A基本术语(中英文词汇)253 附录B正交表264 附录CIEEE模板273 附录D软件测试工程师面试题及参考答案275 附录E全国计算机等级考试四级软件测试工程师练习题283 参考文献288