本书共8章。第1~3章介绍了软件测试的基本概念、原理和分类等基础理论,嵌入式系统和软件的组成与特点,以及嵌入式软件测试的特点、策略、方法和原则;第4章介绍了常用嵌入式软件测试方法;第5章介绍了测试需求分析、测试设计与实现、测试报告的撰写等主要内容;第6章阐述了嵌入式软件测试自动化的需求、理论原理、技术分类和应用原则;第7章介绍了现有可应用于嵌入式软件测试的自动化工具的功能与特点;第8章通过全国大学生软件测试大赛嵌入式专项真题,讲解了如何应用前面所学知识系统地组织、计划与实施嵌入式软件测试。附录给出了测试过程中技术文档的模板。
本书可以作为高等院校软件测试课程的教材,也可供刚进入软件测试行业的从业人员参考使用。
目 录
前言
第1章 软件测试概述1
1.1 软件测试的定义及发展1
1.2 软件及软件缺陷的概念3
1.2.1 软件3
1.2.2 软件缺陷4
1.3 软件质量及软件质量模型5
1.3.1 软件质量5
1.3.2 两个软件质量模型6
1.4 软件测试的基本原理12
1.5 软件测试的分类15
1.5.1 白盒测试和黑盒测试16
1.5.2 静态测试和动态测试17
1.5.3 测试级别18
1.5.4 测试类型24
1.6 通过维恩图理解测试27
习题29
第2章 嵌入式系统概述30
2.1 嵌入式系统30
2.1.1 什么是嵌入式系统31
2.1.2 嵌入式系统的组成31
2.1.3 嵌入式系统的发展历程33
2.2 嵌入式软件的组成及特点35
2.2.1 嵌入式软件的组成35
2.2.2 嵌入式软件的特点37
2.3 嵌入式系统的设计流程40
2.4 嵌入式软件的应用领域44
习题46
第3章 嵌入式软件测试概述47
3.1 嵌入式软件测试的特点47
3.1.1 嵌入式软件测试与普通软件测试的相同点47
3.1.2 嵌入式软件测试的特殊性48
3.2 嵌入式软件测试的策略和方法51
3.2.1 交叉测试51
3.2.2 白盒测试54
3.2.3 黑盒测试56
3.2.4 灰盒测试57
3.3 嵌入式软件测试的原则58
3.4 嵌入式软件测试的环境61
3.4.1 全实物仿真测试环境61
3.4.2 半实物仿真测试环境62
3.4.3 全数字仿真测试环境64
3.4.4 三种仿真测试的优缺点65
习题67
第4章 嵌入式软件测试设计方法68
4.1 等价类划分测试70
4.2 边界值测试76
4.3 因果图测试80
4.4 决策表测试84
4.5 逻辑覆盖测试89
4.6 组合测试96
4.7 蜕变测试101
习题104
第5章 嵌入式软件测试过程108
5.1 嵌入式软件测试过程概述108
5.2 测试需求分析112
5.2.1 为什么要进行测试需求分析112
5.2.2 测试需求分析的内容113
5.2.3 测试需求分析实例114
5.3 嵌入式软件测试的设计与实现119
5.3.1 嵌入式软件测试设计过程119
5.3.2 嵌入式软件测试设计要点119
5.3.3 嵌入式软件测试设计实例121
5.4 问题报告的撰写124
5.4.1 问题报告的内容125
5.4.2 问题报告的撰写要点126
5.4.3 问题报告撰写实例127
5.5 嵌入式软件测试案例127
5.5.1 被测对象概述128
5.5.2 油压功能模块测试130
5.5.3 车速功能模块测试135
5.5.4 灯光控制功能模块测试137
习题141
第6章 软件测试自动化概述142
6.1 为什么要实现软件测试自动化142
6.1.1 因为人会犯错142
6.1.2 因为测试中有大量重复性的非“智力”操作143
6.1.3 因为手工测试效率低143
6.1.4 某些测试只能由测试工具完成144
6.2 软件自动化测试技术分类144
6.2.1 依据测试级别划分145
6.2.2 依据测试技术划分146
6.2.3 依据测试阶段划分155
6.3 嵌入式软件自动化测试技术156
6.4 应用自动化测试的原则157
习题160
第7章 常用测试工具161
7.1 测试工具概述161
7.2 单元测试工具162
7.2.1 JUnit162
7.2.2 NUnit164
7.2.3 Cantata166
7.2.4 Visual Unit168
7.2.5 CodeSonar169
7.2.6 Pinpoint175
7.2.7 TBrun177
7.2.8 PureCoverage179
7.2.9 CodeTEST181
7.2.10 BullseyeCoverage184
7.2.11 RTT-MBT185
7.2.12 Testbed189
7.2.13 McCabe IQ190
7.2.14 Klocwork191
7.2.15 其他常用代码审查与静态分析工具193
7.2.16 其他常用覆盖率分析工具194
7.3 集成化的嵌入式软件测试工具195
7.3.1 VectorCAST/RSP195
7.3.2 嵌入式系统测试平台ETest197
7.4 测试过程管理工具200
7.4.1 测试过程自动化管理工具QC201
7.4.2 测试过程自动化管理工具STM204
7.4.3 软件测试过程管理系统206
7.4.4 其他测试过程管理工具209
习题210
第8章 嵌入式软件测试实践211
8.1 使用ETest Studio进行嵌入式自动化测试211
8.1.1 空调控制板需求介绍213
8.1.2 测试环境的构建216
8.1.3 测试脚本的编写219
8.1.4 测试自动化的执行233
8.1.5 测试监控236
8.2 一个典型的嵌入式软件测试案例238
8.2.1 软件需求238
8.2.2 测试设计与执行243
8.3 2019年全国大学生软件测试大赛真题279
8.3.1 试题内容279
8.3.2 参考答案283
8.3.3 解题思路284
8.3.4 测试执行293
习题296
附录A 测试需求规格说明模板297
附录B 测试说明模板304
参考文献311