前两部分 1~7章
- (第一部分 软件测试综述)
- 第 1 章 软件测试的背景
-
- 1.1 臭名昭著的软件错误用例研究
- 1.2 软件缺陷是什么
- 1.3 为什么会出现软件缺陷
- 1.4 软件缺陷的修复费用
- 1.5 软件测试员究竟做些什么
- 1.6 软件测试员应具备的素质
- 第 2 章 软件开发的过程
-
- 2.1 产品的组成部分
- 2.2 软件项目成员
- 2.3 软件开发生命周期模式
- 第 3 章 软件测试的实质
-
- 3.1 测试的原则
- 3.2 软件测试的主语和定义
- (第二部分 测试基础)
- 第 4 章 检查产品说明书(静态黑盒测试)
-
- 4.1 开始测试
-
- 4.1.1 黑盒测试和白盒测试
- 4.1.2 静态测试和动态测试
- 4.1.3 静态黑盒测试、测试产品说明书
- 4.2 对产品说明书进行高级审查
- 4.3 产品说明书的低层次测试技术
-
- 4.3.1 产品说明书属性检查清单
- 4.3.2 产品说明书术语检查清单
- 第 5 章 戴上眼罩测试软件(动态黑盒测试 / 行为测试)
-
- 5.1 动态黑盒测试:戴上眼罩测试软件
- 5.2 通过性测试和失效性测试
- 5.3 等价类划分
- 5.4 数据测试
- 5.5 状态测试
- 5.6 其他黑盒测试技术
- 第 6 章 检查代码(静态白盒测试 / 结构化分析)
-
- 6.1 静态白盒测试:检查设计和代码
- 6.2 正式审查
-
- 6.2.1 同事审查 / 伙伴审查
- 6.2.2 走查
- 6.2.3 检验
- 6.3 编码标准和规范
- 6.4 通用代码审查清单
- 第 7 章 带上 X 光眼镜测试软件(动态白盒测试 / 结构化测试)
-
- 7.1 动态白盒测试
- 7.2 动态白盒测试和调试
- 7.3 分段测试
-
- 7.3.1 单元测试和集成测试
- 7.3.2 单元测试示例
- 7.4 数据覆盖
- 7.5 代码覆盖
(第一部分 软件测试综述)
第 1 章 软件测试的背景
本章重点:
(1)软件缺陷如何影响我们的生活
(2)软件缺陷是什么,为什么会出现
(3)软件测试员是谁,他们在做什么
1.1 臭名昭著的软件错误用例研究
1.2 软件缺陷是什么
-
软件失败的术语
缺点、故障、失败、异常、事件、偏差、问题、错误、缺陷、矛盾、特殊等。描述软件缺陷的术语很多,完全取决于公司的文化和开发软件的过程。在用词上过多计较是没有意义的。
本书中,所有软件问题都称为 缺陷(bug)。 -
软件缺陷 的官方定义
产品说明书:又称说明或产品说明,是软件开发小组的一个协定。它对开发的产品进行定义,给出了 产品的细节、如何做、做什么、不能做什么。(详见第 2 章)
至少满足下列 5 个规则之一才称发生了一个 软件缺陷(software bug):
(1)软件未实现产品规格说明书要求的功能
(2)软件出现了产品规格说明书指明不应该出现的错误
(3)软件实现了产品规格说明书未提到的功能
(4)软件未实现产品规格说明书虽未明确提及但应该实现的目标
(5)软件难以理解、不易使用、运行缓慢、或者(从测试员的角度看)最终用户会认为不好
注: 第(4)条,其目的是为了捕获产品说明书上的遗漏之处。第(5)条,并非所有测试发现的缺陷都要修改,要全面,最重要的是要客观。
1.3 为什么会出现软件缺陷
1.5 软件测试员究竟做些什么
软件测试员的目标: 尽可能早地找出缺陷,并确保其得以修复
1.6 软件测试员应具备的素质
(1)喜欢探索,喜欢拿到一个新的软件安装在自己的机器上,观看结果
(2)故障排除员,善于发现问题的症结,喜欢解谜
(3)不放过任何蛛丝马迹,喜欢不停地尝试,去发现软件缺陷
(4)具有创造性,创造新的手段来发现缺陷
(5)追求完美,但当知道某些无法企及时,不去苛求,而是尽力接近
(6)判断准确,要决定测试内容、测试时间,以及看到的问题是否是真的缺陷
(7)注重策略和外交
(8)善于说服
第 2 章 软件开发的过程
本章重点:
(1)软件产品构成的主要部分
(2)软件产品中包含哪些人的劳动和技术
(3)软件从构想到最终产品的过程
2.1 产品的组成部分
2.2 软件项目成员
- 体系架构师 或者 系统工程师:产品小组中的技术专家,设计整个系统的体系架构或软件
- 测试员 或 质量保证员:找出并 告产品的问题。与开发小组全部成员在开发过程中密切合作
2.3 软件开发生命周期模式
软件产生从最初构思到公开发行的过程称为 软件开发生命周期模式 :
(1)大爆炸模式
软件测试员喜欢这个模式,因为他们很早就参与开发过程,有机会尽早发现问题,为项目节省时间和金钱。
第 3 章 软件测试的实质
本章重点:
(1)软件为什么永远不会完美
(2)软件测试为什么不仅仅是技术问题
(3)软件测试员的常用术语
3.1 测试的原则
-
1. 完全测试程序是不可能的
主要原因:
(1)输入量太大。
(2)输出结果太多。
(3)软件执行路径太多。
(4)软件说明书是主观的,从旁观者角度来看是缺陷。 -
2. 软件测试是有风险的行为
如果不测试所有的情况,就是选择了冒险。测试量和发现的软件缺陷数量之间的关系:
-
2. 确认和验证
确认:保证软件符合产品说明书的过程
验证:保证软件满足客户要求的过程 -
3. 质量和可靠性
可靠性仅仅是质量的一个方面。
软件产品质量高就是指它能够满足客户要求,客户感到该产品性能卓越,优于其他产品。
为了确保程序质量高而且可靠性强,软件测试员必须在整个产品开发过程中进行确认和验证。 -
4. 测试和质量保证
软件测试员的目标:尽可能早地找出软件缺陷,并确保缺陷的已修复
软件质量保证人员:创建和执行 改进软件开发过程并防止软件缺陷发生的 标准和方法
双方的工作是交叉的。
(第二部分 测试基础)
第 4 章 检查产品说明书(静态黑盒测试)
本章重点:
(1)什么是黑盒测试和白盒测试
(2)静态测试和动态测试有何区别
(3)审查产品说明书有哪些高级技术
(4)在详细审查产品说明书时应注意哪些特殊问题
4.1 开始测试
确保最终产品符合客户要求 以及 正确计划测试投入 的唯一方法是 在产品说明书中完整描述产品。
编写详细产品说明书的另一好处:软件测试员可以将其作为测试项目的书面材料,据此可以在编写代码之前找出软件缺陷。
4.1.1 黑盒测试和白盒测试
黑盒测试(功能测试、行为测试) | 白盒测试 |
---|---|
只需知道软件要做什么,无法知道软件是如何运行的 | 可以访问程序员的代码,并通过检查代码来协助测试 |
4.1.2 静态测试和动态测试
静态测试 | 动态测试 |
---|---|
使用和运行软件 |
4.1.3 静态黑盒测试、测试产品说明书
测试产品说明书属于静态黑盒测试,因为:
(1)产品说明书是书面文档,而不是可执行程序,因此是静态的;
(2)产品说明书是利用各种资源获得的数据,不必了解怎样和为什么要获取这些信息,以及获取这些信息的途径,只需要知道它们最终构成产品说明书就可以了,因此是黑盒。
4.2 对产品说明书进行高级审查
测试产品说明书的第一步:站在一个高度上进行审查
- 假设自己是客户
(1)了解客户所想(牢记,质量的定义是 “满足客户要求” ),但同时不要忘记软件安全性问题,因为客户可能会假设软件是安全的,但软件测试员不能这样。
(2)假设什么知识也没有。要搞懂产品说明书的任何细节。 - 研究现有的标准和规范
标准比规范更加严格。标准必须严格遵守,规范可选。
项目经理 :定义软件要符合何种标准和规范
软件测试员:观察、检查采用的标准是否正确、有无遗漏;在对产品进行确认和验收时,还要注意是否与标准和规范相抵触,把标准和规范视为产品说明书的一部分。 - 审查和测试类似软件
类似软件有助于设计测试条件和测试方法,还可能暴露意想不到的潜在问题。
4.3 产品说明书的低层次测试技术
4.3.1 产品说明书属性检查清单
(1)完整
(2)准确
(3)精确、不含糊、清晰
(4)一致
(5)贴切
(6)合理
(7)代码无关
(8)可测试性
4.3.2 产品说明书术语检查清单
7.3 分段测试
7.3.1 单元测试和集成测试
代码分段构建和测试,最后合并在一起形成更大的部分,形成产品。
7.4 数据覆盖
查看代码决定如何调整测试用例合理的方法是,把软件分成数据和状态(或程序流程)。
**数据:**包括变量、常量、数组、数据结构、键盘和鼠标的输入、文件、屏幕输入输出,以及调制解调器、 络等设备的输入输出。
-
数据流
数据流覆盖:是指在软件中完全跟踪一批数据
黑盒测试只能知道变量开始和结束时候的值,动态白盒测试可以在程序运行期间检查变量的中间值,进而更改测试用例,保证变量取得感兴趣的、甚至具有风险的值。 -
次边界
进行白盒测试需要仔细检查代码找到次边界条件,并建立能测试它们的测试用例。 -
公式和等式
撇开代码中的公式和等式,查看它们使用的变量,在程序中正常输入和输出之外,为其建立测试用例和等价类划分。 -
错误强制
懂
7.5 代码覆盖
测试程序的状态以及程序流程。代码覆盖是设法进入和退出每一个模块,执行每一行代码,进入软件每一条逻辑呵呵决策分支。
对于小程序或单独模块,可以利用编译环境的调试器通过单步执行程序查看代码。
但对大多数程序进行代码覆盖要用到代码覆盖分析器。利用代码覆盖分析器可以得到:
(1)测试用例没有覆盖软件的哪些部分
(2)那些测试用例是多余的
(3)为了使覆盖率更好,需要建立什么样的新测试用例
(4)还可以得到软件质量的大致情况。
-
语句覆盖/代码行覆盖
保证程序中每一条语句最少执行一次。
但是,即使全部语句都被执行了,不能说明走遍了软件的所有路径 -
分支覆盖/路径覆盖
试图覆盖软件中的所有路径。
大多数代码覆盖率分析器将根据代码分支,分别 告语句覆盖和分支覆盖的结果,使软件测试员更加清楚测试结果 -
条件覆盖
将分支语句的条件考虑在内。
代码覆盖率分析器可以被设置为将条件考虑在内。如果测试条件覆盖,就能达到分支覆盖,顺便也能达到语句覆盖

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!