第一章
什么是战略性新兴产业?
战略性新兴产业是以重大前沿技术突破和重大发展需求为基础,对经济社会全局和长远发展具有重大引领作用的产业。
什么是新一代信息技术产业?
新一代信息技术分为以下几个方面:
- 下一代通信网络(5G);
- 三网融合;
- 物联网;
- 新兴平台显示;
- 高性能集成电路;
- 以云计算为代表的高端软件。
IT行业的发展
IT行业发展和前景备受关注,主要有以下发展趋势:
- 整体增长与稳定;
- 技术创新驱动;
- 应用领域拓展;
- 人才竞争激烈;
- 政策环境优化。
软件测试的概念
软件测试是使用人工或者自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。简言之,软件测试就是为了发现错误而执行程序的过程。
测试岗位与开发岗位的对比
- 职责与任务不同;
- 知识体系要求不同;
- 技能要求不同;
- 问题思维模式不同。
测试岗位的基本要求
- 从职业技术要求角度,软件测试可以分为手工测试、自动化测试、白盒测试等几个方面;
- 从业务知识角度,可分为金融产品、电子商务、移动互联等业务方向;
- 从测试管理角度,软件测试工作者有测试主管、测试经理、测试总监等之分;
- 从测试资历来分,则有初级测试工程师、中级测试工程师、高级及专家级测试工程师。
常见的测试工具和框架
- 接口测试工具:JMeter、PostMan、SoapUI等;
- 功能自动化测试工具:Selenium、Appium等;
- 性能自动化测试工具:LoadRunner、JMeter等;
- 测试管理工具:Quality Center;
- 应用程序生命周期管理软件(ALM):ClearQuest、禅道等。
测试岗位职业素质要求
测试岗位的职业素质要求主要包括
- 责任心;
- 沟通能力;
- 团队合作能力;
- 持续学习能力;
- 细心与耐心;
- 抗压能力;
- 风险防范意识。
软件的基本概念
软件(software)是一系列按照特定顺序组织的计算机数据和指令的集合,是计算机系统中的非有形部分。
简而言之,软件即是源代码、文档、配置数据的集合体。
软件生命周期的阶段
- 问题定义;
- 可行性研究;
- 需求分析;
- 设计;
- 编码;
- 测试;
- 维护。
测试的阶段
测试阶段通常分为:
- 单元测试;
- 集成测试;
- 系统测试;
- 验收测试。
测试人员的构成
从角色构成角度设计,一般包括以下几种角色:
- 测试主管;
- 测试组长;
- 环境保障人员;
- 配置管理员;
- 测试设计人员;
- 测试工程师。
软件开发模型
目前比较流行的软件开发模型主要有:
- 瀑布模型;
- 原型模型;
- 螺旋模型;
- RUP模型;
- 敏捷模型。
软件开发模型-瀑布模型
瀑布模型将开发测试阶段按照固定顺序从前向后、互相衔接,形如瀑布流水,逐级下落。

软件开发模型-原型模型

软件开发模型-螺旋模型
螺旋模型最大的特点在于引入了其他模型不具备的风险分析。
螺旋模型的特点:
- 只适用于内部的大规模软件开发;
- 螺旋模型只适合大规模软件项目;
- 螺旋模型的成本相对较高,需要专业的风险分析专家参与。

软件开发模型-RUP模型
RUP模型是一种基于迭代和增量的软件开发过程模型。
RUP有两个轴:一个是时间轴,这是动态的;另外一个是工作流轴,这是静态的。
RUP划分了四个阶段:起始阶段、细化阶段、构建阶段和发布阶段。
核心支撑工作流包括:环境管理、项目管理、配置管理、变更管理。
RUP的特点是:高内聚低耦合。
RUP模型的优点
- 软件开发是一个迭代过程;
- 软件开发是由用例驱动的;
- 软件开发是以构架设计为中心的;
- RUP模型的应用角色、活动、制品和工作流,描述了“谁做”、“做什么”、“怎么做”和“什么时候做”等关键信息;
- RUP模型强调风险驱动;
- 针对大型复杂的系统,逐步完善,降低了实施复杂度。
RUP模型的缺点
- 模块与模块间的耦合度较高时,不使用RUP模型;
- 已经确定的功能将不允许变更。
软件开发模型-敏捷模型
敏捷模型主要核心思想有以下几点:
- 适应性而非预期性;
- 面向人而非面向过程;
- 迭代增量式的开发过程。
敏捷模型的优势包括:快速响应变化、灵活可变、以人为本和聚焦业务。
测试模型
软件测试模型一般分为:
- V模型;
- W模型;
- X模型;
- H模型;
- 敏捷模型。
软件测试模型-V模型
V模型的缺点是测试活动滞后于研发活动。

软件测试模型-W模型
W模型提出了测试活动与研发活动并行的概念,这样可以在早期就发现错误,减少修复成本。
W模型提出的初衷是解决V模型的缺点(也就是试活动滞后于研发活动)。

软件测试模型-X模型
X模型的左边,主要是对程序片段进行编码和测试,即完成若干彼此分离的程序片段的编码实现和测试验证。
X模型的右边,是对部分片段集合的编码和测试,通过不断地对程序片段进行集合,不断丰富软件的功能,同时对集成的部分开展相关编码测试工作。
X模型提出的初衷是解决V模型的缺点(也就是试活动滞后于研发活动)。

软件测试模型-H模型
H模型是一种软件测试过程模型,它将软件测试看作是一个独立的流程。H模型强调测试尽早执行的原则。

软件测试模型-敏捷测试模型
敏捷测试模型的主要特点包括:
- 持续测试与反馈;
- 跨职能团队协作;
- 快速响应变化;
- 自动化测试;
- 用户故事测试。
软件测试的对象
- 源程序和目标程序;
- 数据;
- 相关文档。
需求调研阶段的测试对象
- 业务需求文档;
- 原型和概念验证;
- 非功能性需求。
验收测试阶段的测试对象
- 功能测试;
- 性能测试;
- 安全测试;
- 兼容性测试;
- 可靠性测试;
- 用户体验测试。
软件测试方法
- 黑盒测试;
- 白盒测试。
黑盒测试
黑盒测试时完全不考虑程序内部的结构和处理过程,只按照规格说明书的规定来检查程序是否符合它的功能要求。
只关注输入、输出是否与预期保持一致。
黑盒测试的测试方法
- 等价类划分法;
- 边界值分析法;
- 判定表法;
- 因果图法;
- 正交实验;
- 场景法。
白盒测试
测试人员完全了解程序的内部结构和处理过程。
第二章
等价类划分法
等价类的分类
等价类一般可以分为有效等价类和无效等价类。
- 有效等价类:针对被测对象需求规格说明而言,有意义、有效的测试输入集合。至少存在1个。
- 无效等价类:针对被测对象需求规格说明而言,无意义、无效的测试输入集合。至少存在1个,可以存在1个或者多个。
等价类的划分
等价类字符的划分
字母、数字、汉字、特殊符号和空白。
多重条件的等价类划分
多重条件之时,考虑每个条件时,只考虑自身条件,不可若干条件一起考虑,否则会很凌乱。

边界值分析法
边界值分析法是指对输入的边界条件进行分析,设计出针对边界的测试用例。
构造测试用例
刚好小于最小值,刚好大于最大值,区间范围内任意一个值,考虑三个。
常见的字符边界
| 符号 | 对应的ASCII值 | 符号 | 对应的ASCII值 | 符号 | 对应的ASCII值 |
|---|---|---|---|---|---|
/ |
47 | @ |
64 | ‘ |
96 |
0(数字) |
48 | A(大写字母) |
65 | a(小写字母) |
97 |
9(数字) |
57 | Z(大写字母) |
90 | z(小写字母) |
122 |
: |
58 | [ |
91 | { |
123 |
判定表设计法
判定表分析和表达若干输入条件下,被测对象根据输入做出不同响应的工具。
判定表设计法的优缺点
优点:充分考虑了输入间的组合情况,每条规则覆盖了多个输入条件,考虑了输入项之间的约束关系,降低了漏测风险。
缺点:当输入项过多时,规则数量以2的n次方剧增,判定表将变得非常庞大。
因果图法
通过分析软件规格说明书,找出模块的原因和结果,然后利用因果图来明确它们之间的关系,从而设计出能够全面覆盖各种可能情况的测试用例。
输入与输出之间的关系
- 恒等关系

- 非关系

- 与关系

- 或关系

输入与输入之间的关系
- 异关系

- 或关系

- 唯一关系

- 要求关系

正交实验法
正交实验设计是一种基于正交表的、高效率、快速、经济的实验设计方法。
场景法
场景法设计测试用例主要是为了确保软件产品在实际使用场景能正确无误地执行预期功能,特别是在复杂业务流程或者特定情境下。
场景法着重于模拟用户的真实行为和交互过程,以覆盖各种可能发生的操作流程,包括正常流程(基本流)和异常流程(备选流)。
业务软件的组成部分
目前软件行业内大多数业务软件基本都由用户管理、角色管理、权限管理、工作流等几个部分组成。
针对场景业务流,通常可以分为基本流、备选流以及异常流三种业务流向。
第三章
白盒测试
白盒测试,又称为结构测试、逻辑驱动测试或基于程序代码内部构成的测试。
语句覆盖
语句覆盖(Statement Coverage),又被称为语句执行覆盖,是软件测试中的一种基本覆盖标准,其核心目标是确保程序中的每一条语句都被至少执行一次。
整理的很不错