目录 第1篇理论篇 第1章绪论31.1软件测试的产生与发展3 1.1.1软件测试的产生3 1.1.2软件测试的第一类方法3 1.1.3软件测试的第二类方法4 1.1.4从软件测试到软件质量保证5 1.1.5软件发展特点对软件测试的影响6 1.2软件缺陷和事故案例8 1.2.1第一个Bug8 1.2.2软件缺陷9 1.2.3缺陷产生的原因9 1.2.4软件测试PIE模型12 1.2.5软件缺陷导致的事故案例14 1.2.6质量意识、社会责任、工匠精神和创新16 1.3软件测试的意义、原则和挑战19 1.3.1软件质量成本19 1.3.2测试的意义19 1.3.3软件测试的基本原则21 1.3.4软件测试面临的挑战22 1.4软件测试模型、过程和组织管理23 1.4.1软件测试模型23 1.4.2软件测试过程26 1.4.3软件测试用例27 1.4.4软件缺陷管理28 1.5软件测试方法和技术29 1.5.1静态测试与动态测试291.5.2黑盒测试和白盒测试31 1.5.3手工测试与自动化测试32 1.6信创测试33 1.6.1信创战略33 1.6.2信创体系33 1.6.3信创测试34 1.7移动应用测试35 1.7.1移动应用技术简介35 1.7.2移动应用的特点44 1.7.3移动应用测试简介46 习题一49第2章黑盒测试53 2.1黑盒测试概述53 2.1.1黑盒测试的特点53 2.1.2主要的黑盒测试方法54 2.1.3黑盒测试针对的软件缺陷54 2.2等价类划分测试概述56 2.2.1等价类划分56 2.2.2等价类划分测试60 2.2.3等价类的组合测试62 2.3边界值测试63 2.3.1边界值63 2.3.2边界值测试用例设计64 2.3.3边界值的组合测试65 2.4错误推测法67 2.4.1错误推测法介绍67 2.4.2移动应用错误推测法应用68 2.5判定表驱动法68 2.5.1判定表68 2.5.2判定表的建立70 2.5.3判定表驱动测试应用70 2.6因果图法72 2.6.1因果图介绍73 2.6.2采用因果图法设计测试用例的步骤74 2.6.3因果图法测试应用74 2.7场景法76 2.7.1事件流76 2.7.2场景77 2.7.3场景法应用78 2.8正交实验法80 2.8.1正交实验法应用背景80 2.8.2正交实验设计方法80 2.8.3正交实验法应用步骤81 2.8.4正交实验法应用示例82 习题二84第3章白盒测试87 3.1白盒测试概述87 3.1.1白盒测试简介87 3.1.2静态白盒测试和动态白盒测试87 3.2静态白盒测试88 3.2.1代码检查88 3.2.2编码规则和编程规范91 3.2.3质量度量94 3.3逻辑覆盖95 3.3.1简介95 3.3.2语句覆盖95 3.3.3判定覆盖96 3.3.4条件覆盖98 3.3.5条件/判定覆盖98 3.3.6条件组合覆盖99 3.3.7覆盖标准小结101 3.4基本路径覆盖102 3.4.1控制流图102 3.4.2环路复杂度105 3.4.3基本路径覆盖106 3.5循环测试109 3.5.1基本循环结构测试109 3.5.2复合循环结构测试111 3.6程序变异测试112 3.6.1程序变异112 3.6.2变异测试114 3.6.3变异测试的优缺点115 3.7符号执行116 3.7.1符号执行的概念116 3.7.2符号执行示例117 3.7.3符号执行的特点和作用118 3.8程序插桩和调试118 3.8.1断言119 3.8.2设计插桩120 3.8.3程序调试122 习题三124第4章自动化测试130 4.1自动化测试概述130 4.1.1自动化测试的概念130 4.1.2自动化测试的优点、局限性和适用情况131 4.1.3自动化测试工具133 4.2自动化黑盒测试134 4.2.1自动化黑盒测试的基本原理134 4.2.2自动化黑盒测试的相关技术136 4.3自动化白盒测试138 4.3.1静态测试IDE插件工具138 4.3.2自动化白盒测试工具Logiscope145 习题四146第5章软件测试过程148 5.1单元测试148 5.1.1简介148 5.1.2单元测试的任务151 5.1.3JUnit单元测试入门159 5.2集成测试163 5.2.1集成测试简介163 5.2.2一次性集成与增量式集成168 5.2.3自顶向下集成与自底向上集成168 5.2.4基于调用图的集成170 5.2.5其他集成测试方法171 5.3系统测试174 5.3.1系统测试简介174 5.3.2系统测试项目176 5.4验收测试184 5.4.1验收测试简介184 5.4.2验收测试的分类185 5.5回归测试187 5.5.1回归测试简介187 5.5.2实施回归测试188 习题五190第6章软件质量与质量保证194 6.1软件质量194 6.1.1软件质量基本概念194 6.1.2相关概念194 6.1.3软件质量特性195 6.2软件质量模型和质量度量197 6.2.1软件质量模型197 6.2.2软件质量的度量199 6.2.3不同质量之间的关系201 6.3软件质量管理与质量保证201 6.3.1软件质量管理201 6.3.2软件质量保证202 6.3.3软件质量保证体系204 6.4质量理念和质量文化207 6.4.1简介207 6.4.2华为的质量理念和质量文化207 习题六208第2篇实践篇 第7章移动应用测试准备2137.1测试环境搭建213 7.1.1配置Java环境213 7.1.2安装Eclipse217 7.1.3安装ADT工具包218 7.1.4安装Ant221 7.1.5配置Android环境222 7.1.6连接Android设备226 7.2建立移动测试工程230 7.2.1导入待测移动应用程序230 7.2.2新建Android测试工程233 7.3执行测试命令238 7.3.1adb常用指令238 7.3.2执行Android shell命令242第8章移动应用功能测试246 8.1基于Instrumentation的移动应用功能测试246 8.1.1Instrumentation测试框架简介246 8.1.2使用仪表盘技术编写测试用例255 8.1.3示例程序263 8.1.4执行仪表盘测试用例270 8.1.5常用API273 8.2Robotium274 8.2.1简介274 8.2.2添加Robotium包275 8.2.3示例程序277 8.2.4常用API285 8.3基于UiAutomator的App功能测试286 8.3.1简介286 8.3.2建立Java项目286 8.3.3编写测试代码289 8.3.4UiAutomatorHelper类控制台快速调试294 8.3.5常用API296第9章Kikbug自动化测试299 9.1Monkey299 9.1.1Monkey介绍299 9.1.2基本指令302 9.1.3Monkey实例318 9.2Kikbug自动化测试之Appium318 9.2.1Appium简介318 9.2.2WebDriver介绍320 9.2.3环境配置324 9.2.4Appium API示例338 9.2.5Appium测试用例录制339 9.2.6Appium测试用例编写343第10章移动应用其他测试351 10.1性能测试351 10.1.1响应能力测试351 10.1.2压力测试351 10.1.3耗电量测试351 10.1.4Benchmark测试351 10.2安全性测试352 10.2.1风险和权限控制352 10.2.2数据安全性352 10.2.3通信安全性352 10.3特殊或异常情况测试353 10.4人机界面交互测试353 10.5安装与卸载测试353参考文献355