1.两种集成测试
1.1自顶向下测试
特点:是从程序的初始模块开始测试。
(1)该方法会在早期发现顶层的错误。
(2)早期的程序框架可以进行演示
(3)需要开发桩模块辅助测试。有些甚至需要多个桩模块辅助,加大了桩模块本来的错误影响。
(4)测试完一个上层模块后,挑选哪个模块作为下一个测试模块,以及测试的顺序没有唯一的界定标准。
优点:较早地验证了主要控制和判断点;按深度优先可以首先实现和验证一个完整的软件功能;功能较早证实,带来信心;只需一个驱动,减少驱动器开发的费用;支持故障隔离。
缺点:柱的开发量大;底层验证被推迟;底层组件测试不充分。
1.2自底向上测试:
特点:是从程序的底层模块开始测试。
(1)I/O操作可以提前测试,更好提交测试用例。
(2)测试后比较容易观察输出。
(3)需要开发驱动模块
(4)直到最后一个模块提交,程序才能完整的系统测试。
优点:对底层组件行为较早验证;工作最初可以并行集成,比自顶向下效率高;减少了桩的工作量;支持故障隔离。
缺点:驱动的开发工作量大;对高层的验证被推迟,设计上的错误不能被及时发现。
2.逻辑覆盖
- 语句覆盖:(最弱)
程序中每条可执行语句都有至少执行一次。 - 判定(分支)覆盖:(较弱)
每个判断的真假分支至少执行一次。 - 条件覆盖:(弱)
每个判定中的每个条件可能至少满足一次。 - 判定/条件覆盖:(强)
每个判断的真假分支至少执行一次。每个判定中的每个条件可能至少满足一次。 - 条件组合覆盖:(较强)
每个判定中条件的各种可能组合至少满足一次。 - 路径覆盖:(最强)
把所有可能路径至少都走一遍。
3. 黑盒测试方法
- 等价类划分法:
- 边界值划分法:
- 决策表法:
- 错误推测法
- 因果图法
- 场景法
4. 白盒测试方法
- 代码检查法
- 静态结构分析法
- 逻辑覆盖法(***)
- 基本路径测试法
- 路径覆盖(***)
5. 软件测试模型
6. 自动化测试工具
7.α、β、λ测试
软件测试一般分α、β、λ三个阶段,α是第一阶段,一般只供内部测试使用,公司内部用户;β是第二个阶段,已经消除了软件中大部分的不完善之处,但仍有可能还存在缺陷和漏洞,一般只提供给特定的用户群来测试使用;λ是第三个阶段,此时产品已经相当成熟,只需在个别地方再做进一步的优化处理即可上市发行。
8. 动态 静态测试
静态测试: 静态测试是指不运行被测程序本身,通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。静态测试主要包括各阶段的评审、代码检查、程序分析、软件质量度量等,用于对被测程序进行特性分析。
动态测试: 通过运行被测程序来检查运行结果与预期结果的差异,并分析运行效率和健壮性等指标;这种方法包括三部分:构造测试用例、执行程序、分析程序的输出结果。
9. 测试过程
按4个步骤进行,即单元测试、集成测试、确认测试和系统测试及发版测试。
- 开始是单元测试,集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。
- 集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。
- 确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。
- 系统测试把已经经过确认的软件纳入实际运行环境中,与其它系统成份组合在一起进行测试。
10. 冒烟测试(不过,返工或等下一次重建)
概念
冒烟测试就是在每日build(构建版本)建立后,对系统的基本功能进行简单的测试。这种测试强调程序的主要功能进行的验证,而不会对具体功能进行更深入的测试。
题目
冒烟测试为一个测试阶段 (×)
冒烟测试需要把此次需求的主流程都走一遍 (×)
#其他
- 研发需要对自己的代码审核, 检查代码的正确性,这个过程我们称为 代码走查
- 在以下测试阶段中,哪些涉及到路径测试 集成测试、单元测试
- IOS单元测试框架:OCUnit 、XCTest、 GHUnit、 OCMock