目录 第一篇软件测试理论 第1章软件测试基础3 1.1软件测试产生的背景3 1.2软件测试的定义5 1.3软件测试的目的5 1.4软件测试的原则6 1.5软件测试的复杂性与经济性分析7 1.6本章小结9 1.7练习题9 第2章软件测试类型11 2.1软件测试分类11 2.2常见的软件测试类型13 2.3软件测试过程模型14 2.4本章小结17 2.5练习题17 第3章软件测试过程19 3.1单元测试20 3.1.1单元测试的定义20 3.1.2单元测试的内容20 3.2集成测试21 3.2.1集成测试的定义21 3.2.2集成测试的层次22 3.2.3集成测试的模式22 3.2.4集成测试的组织和实施24 3.3确认测试26 3.4系统测试27 3.5验收测试283.5.1验收测试的内容28 3.5.2验收测试策略29 3.6本章小结29 3.7练习题30 第4章软件质量31 4.1软件质量概述31 4.1.1软件质量的定义31 4.1.2软件质量的要素32 4.2软件质量模型33 4.2.1McCall质量模型33 4.2.2Bohm质量模型33 4.2.3ISO软件质量模型34 4.3软件质量保证35 4.3.1软件质量保证的理论探索35 4.3.2软件质量保证的工作内容和工作方法38 4.3.3软件质量保证的活动内容39 4.3.4软件质量保证正式的技术评审(FTR)40 4.3.5质量保证与检验40 4.4软件质量控制41 4.4.1软件质量控制的定义41 4.4.2软件质量控制的目的41 4.4.3软件质量控制的必要性41 4.4.4软件质量控制的内容及过程42 4.5软件度量44 4.5.1为什么需要软件度量44 4.5.2什么是软件度量44 4.5.3软件度量的对象45 4.5.4软件度量的过程45 4.5.5软件度量小结46 4.6软件质量标准体系46 4.6.1ISO 9000系列46 4.6.2全面质量管理47 4.6.36σ方法48 4.7本章小结48 4.8练习题49第二篇软件测试实施 第5章白盒测试53 5.1逻辑覆盖法53 5.2基本路径分析法57 5.3程序插装61 5.4程序变异测试62 5.4.1变异测试理论62 5.4.2变异测试流程63 5.4.3等价变异体检测65 5.4.4变异体选择优化66 5.5本章小结66 5.6练习题67 第6章黑盒测试68 6.1等价类划分法68 6.2边界值法70 6.3决策表法71 6.4因果图法74 6.4.1因果图符号74 6.4.2因果图生成测试用例75 6.5场景图法78 6.6功能图法81 6.7正交试验法82 6.7.1正交试验设计82 6.7.2正交试验法设计用例的实现步骤83 6.8本章小结85 6.9练习题85 第7章软件测试流程87 7.1测试计划87 7.1.1测试计划的目的87 7.1.2测试计划的编写策略87 7.2测试需求88 7.2.1什么是测试需求88 7.2.2为什么要做测试需求分析89 7.2.3测试需求的依据与收集89 7.2.4测试需求分析89 7.2.5测试需求的优先级90 7.3测试用例91 7.3.1测试用例的概念91 7.3.2测试用例的重要性91 7.3.3测试用例的分类91 7.3.4测试用例的设计92 7.3.5测试用例的编写92 7.4测试执行93 7.4.1测试用例执行93 7.4.2测试数据记录94 7.4.3测试沟通94 7.4.4测试用例验证95 7.5缺陷提交95 7.5.1缺陷管理95 7.5.2缺陷跟踪95 7.6测试总结96 7.6.1测试数据整理96 7.6.2测试用例修订96 7.6.3测试用例维护96 7.7测试管理工具97 7.7.1测试需求管理97 7.7.2测试计划管理98 7.7.3测试执行98 7.7.4缺陷登记与跟踪98 7.7.5生成测试报告的图表99 7.8本章小结99 7.9练习题99 第三篇软件测试技术 第8章自动化测试103 8.1自动化测试概述103 8.1.1自动化测试的定义103 8.1.2自动化测试的优缺点104 8.1.3自动化测试适用范围105 8.2自动化测试的流程106 8.3自动化测试的框架108 8.3.1自动化测试框架的概念108 8.3.2自动化测试框架的分类109 8.4自动化测试的工具110 8.4.1白盒测试工具110 8.4.2黑盒测试工具111 8.4.3自动化测试工具的选取114 8.5本章小结114 8.6练习题115 第9章功能测试116 9.1功能测试概述116 9.1.1功能测试的定义116 9.1.2功能测试流程及策略117 9.1.3功能测试需求分析117 9.2功能自动化测试工具119 9.2.1功能自动化测试工具——UFT119 9.2.2功能自动化测试工具——Selenium122 9.3实例: 自动化测试设计128 9.3.1测试需求分析128 9.3.2自动化测试设计的实现129 9.4本章小结131 9.5练习题131 第10章性能测试133 10.1性能测试概述133 10.1.1软件性能133 10.1.2软件性能测试的概念134 10.1.3性能测试工程师135 10.2性能测试术语135 10.3性能测试类型137 10.4性能测试流程139 10.5性能测试工具142 10.5.1性能测试工具——LoadRunner142 10.5.2性能测试工具——JMeter145 10.6实例: 性能测试方案设计151 10.7本章小结152 10.8练习题153 第11章Web测试154 11.1Web网站功能测试154 11.2性能测试156 11.3安全性测试157 11.3.1安全性测试内容157 11.3.2安全性测试工具159 11.4可用性/可靠性测试161 11.5配置和兼容性测试162 11.6数据库测试163 11.7实例: Web测试的测试用例考虑的因素164 11.8本章小结166 11.9练习题166 第12章移动APP测试168 12.1移动APP测试概述168 12.1.1移动APP测试的定义168 12.1.2移动APP测试的特点168 12.1.3移动APP测试的流程169 12.2移动APP手动测试171 12.2.1APP功能测试171 12.2.2APP安装卸载测试171 12.2.3APP用户体验测试172 12.3移动APP自动化测试172 12.3.1自动化测试框架概述173 12.3.2自动化测试工具——Appium174 12.4实例: Appium测试177 12.5本章小结181 12.6练习题181 第13章嵌入式软件测试183 13.1嵌入式软件测试概述183 13.1.1嵌入式软件概述183 13.1.2嵌入式软件测试的定义184 13.1.3嵌入式软件测试与非嵌入式软件测试的区别185 13.1.4嵌入式软件测试的策略186 13.2嵌入式软件测试的工具187 13.3实例: 嵌入式软件测试分析189 13.3.1自动驾驶仪189 13.3.2嵌入式测试分析的实施189 13.4本章小结190 13.5练习题191 第14章面向对象的软件测试192 14.1面向对象的特点192 14.2面向对象开发对软件测试的影响194 14.3面向对象软件测试的基本概念194 14.4面向对象软件测试的内容195 14.5面向对象的测试模型及方法197 14.5.1面向对象分析的测试198 14.5.2面向对象设计的测试200 14.5.3面向对象编程的测试202 14.5.4面向对象的单元测试203 14.5.5面向对象的集成测试204 14.5.6面向对象的系统测试205 14.6面向对象测试工具JUnit206 14.7本章小结208 14.8练习题209 参考文献210