文章目录
前言
这是初学者对软件测试学习的记录博客,如有错误,欢迎指正,如有同行者,希望共同探讨进步。
<以下所使用的图片大部分源自互联网,如有侵权,联系删除,谢谢>
一、等价类划分
1、定义
在所有的测试数据中,具有某种共同特征的数据集合进行划分, 为解决穷举问题。
2、分类
- 有效等价类:合理的、有意义的输入数据构成的集合
- 无效等价类:不合理的、没有意义的输入数据集合
3、步骤
- 明确需求
- 确定有效和无效等价类
- 提取数据编写测试用例
4、【案例】
QQ号登录(正常为7-10位自然数)
- 明确需求:长度:7-10 类型:自然数
- 划分等价类:
有效等价类 | 无效等价类 |
---|---|
8位自然数 | 3位、12位自然数、8位非自然数、为空 |
- 提取数据编写测试用例
5、应用场景
- 针对:需要输入大量数据测试输入,但没法穷举测试的地方
- 典型代表:页面的输入框类测试(输入框,下拉列表,单选复选框)。
6、优缺点
6.1 优点:
- 高效,将大量输入数据划分为等价类,减少测试用例数量,提高效率。
- 代表性强,从等价类中选取的测试用例能反映该类特征。
- 易于理解和实施,概念简单,易被掌握,可根据需求快速设计用例。
6.2 缺点: - 不完整,不能保证完全覆盖所有输入数据,可能忽略边界和特殊情况。
- 有局限性,主要关注输入数据等价性,对软件内部结构和复杂业务逻辑覆盖有限。
- 依赖经验,等价类划分和测试用例选取依赖测试人员经验和判断。
二、边界值法
1、定义
使用边界值解决边界位数限制的问题
2、边界范围节点
选取正好等于、刚好大于、刚好小于边界的值作为测试数据
- 上点:边界上的点(正好等于)
- 离点:距离上点最近的点(刚好大于、刚好小于)
- 内点:范围内的点(区间范围的数据)
3、步骤
- 明确需求
- 确定有效和无效等价类
- 确定边界范围值
- 提取数据编写测试用例
4、优缺点
4.1 优点:
- 高效,以较少用例发现较多错误,很多软件错误常出现在边界情况,针对性强。
- 实用性强,简单易懂易实施,开发和测试人员能快速根据需求设计测试用例。
- 针对性明确,针对边界情况测试,能有效发现边界处理不当导致的错误。
4.2 缺点: - 局限性,主要关注输入数据边界,对中间值和复杂业务逻辑组合覆盖有限。
- 单一性,单独使用效果有限,需与其他测试方法结合。
- 不完整性,对于非数值型输入边界值确定困难,应用不够准确全面。
三、决策表法
1、定义
决策表,也叫判定表。在所有的功能性测试方法中,基于决策表的测试方法被认为是最严格的,因为决策表具有逻辑严格性。
在一些数据处理问题当中,某些操作的实施以来与多个逻辑条件的组合,既针对不同逻辑条件的组合之,分别执行不同的操作;决策表就是分析和表达多逻辑条件下执行不同操作情况的工具。
2、决策表通常由以下4部分组成
- 条件桩(condition stub):列出了问题的所有条件。通常认为列出的条件的次序无关紧要。
- 动作桩(action stub):列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。
- 条件项(condition entry):列出针对它所列条件的取值,在所有可能情况下的真假值。
- 动作项(action entry):列出在条件项的各种取值情况下应该采取的动作。
3、应用场景
- 输入条件多且组合复杂时,如在线购物系统受多种因素影响,可梳理组合情况设计测试用例。
- 业务逻辑复杂,有多个关联条件判断和分支流程时,如审批系统,可明确审批路径。
- 需求变更频繁的项目中,易根据新需求修改决策表生成测试用例,提高效率。
- 安全关键系统,如航空航天、医疗设备等,可全面考虑输入情况和系统响应,提高安全性和稳定性。
4、优缺点:
4.1 优点:
- 全面性:能够考虑输入条件的各种组合情况,设计出全面的测试用例,减少遗漏重要情况的可能性。
- 清晰性:以表格的形式呈现,结构清晰,易于理解和审查。对于复杂的逻辑关系,决策表可以帮助测试人员更直观地分析和设计测试用例。
- 可维护性:当需求发生变化时,只需要对决策表进行相应的修改,就可以快速生成新的测试用例,提高了测试用例的可维护性。
- 高效性:可以快速地确定各种输入条件组合下的预期结果,提高测试效率。
4.2 缺点:
- 复杂性:对于复杂的系统,决策表的构建可能会非常复杂,需要花费大量的时间和精力。特别是当输入条件和输出结果之间的关系非常复杂时,决策表可能会变得难以理解和维护。
- 局限性:决策表主要关注输入条件和输出结果之间的逻辑关系,对于系统的内部结构和实现细节考虑较少。因此,在某些情况下,决策表可能无法发现一些深层次的问题。
- 不灵活性:决策表一旦确定,就比较固定,对于一些特殊情况或异常情况可能无法很好地处理。在实际测试中,可能需要结合其他测试方法来弥补决策表的不足。
四、因果图法
1、定义
因果图是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法。适用于检查程序输入条件的各种组合的情况。
2、设计步骤
2.1 分析需求
- 理解系统的功能需求,确定输入条件和输出结果。
- 对输入条件和输出结果进行编号,以便后续分析。
2.2 确定因果关系
- 分析输入条件之间的关系,以及输入条件与输出结果之间的关系。
- 用因果图表示这些关系,其中原因用节点表示,结果用节点表示,因果关系用箭头表示。
2.3 标注约束条件
- 分析输入条件之间的约束关系,如排他性、包含性、唯一性等。
- 在因果图上标注这些约束条件,以便后续生成决策表。
2.4 生成决策表
- 根据因果图,生成决策表。决策表的每一行表示一种输入条件的组合,每一列表示一个输出结果。
- 对于每一种输入条件的组合,根据因果关系确定输出结果。
2.5 设计测试用例
- 根据决策表,设计测试用例。测试用例的输入数据应覆盖决策表中的每一种输入条件的组合。
- 对于每一个测试用例,预期输出结果应与决策表中的输出结果一致。
3、应用场景
- 输入条件之间存在复杂的组合关系时,因果图法可以有效地分析这些关系,设计出全面的测试用例。
- 当输入条件和输出结果之间的关系不明确时,因果图法可以帮助分析这些关系,设计出有效的测试用例。
4、优缺点
4.1 优点:
- 可考虑输入条件组合,设计全面测试用例。
- 有助于分析输入与输出关系,提高用例有效性。
- 利于测试人员理解复杂系统功能需求。
4.2 缺点:
- 因果图绘制复杂,需经验技巧。
- 对大规模系统可能过于复杂,难管理维护。
- 只能分析输入输出关系,无法考虑系统内部结构和实现细节。
五、场景法
1、定义
场景法是通过描述软件系统的业务流程和用户操作场景,来设计测试用例的一种方法。它关注的是用户在使用软件系统时的一系列操作步骤和可能出现的情况。
2、设计步骤
2.1 分析需求
- 仔细阅读软件系统的需求文档,了解系统的功能和业务流程。
- 确定系统的主要业务场景和用户操作流程。
2.2 绘制流程图
- 根据需求分析的结果,绘制系统的业务流程图。
- 流程图应包括系统的各个主要功能模块和用户操作步骤。
2.3 确定基本流和备选流
- 基本流是指系统正常的业务流程,即用户按照正常的操作步骤完成任务的流程。
- 备选流是指在基本流的基础上,由于各种异常情况或错误操作而产生的分支流程。
2.4 设计测试用例
- 针对基本流和备选流,分别设计测试用例。
- 测试用例应包括输入数据、操作步骤和预期结果。
2.5 执行测试用例
- 按照设计好的测试用例,对软件系统进行测试。
- 记录测试结果,发现并报告软件系统中的缺陷。
3、应用场景
- 适用于业务流程复杂的软件系统,如银行、电子商务系统等,可帮助理解业务逻辑设计全面用例。
- 用于用户体验测试,模拟实际操作场景测试易用性和界面友好性等。
- 进行错误处理测试,模拟异常情况和错误操作测试系统错误处理能力。
4、优缺点
4.1 优点:
- 设计的测试用例贴近用户实际操作,能更好发现实际使用中的问题。
- 可覆盖软件系统各业务流程和操作场景,提高测试覆盖率。
- 以流程图和用例描述呈现,易于理解和执行。
4.2 缺点:
- 设计过程相对复杂,需深入了解软件系统业务流程。
- 随软件系统变化,测试用例维护成本高。
六、正交实验法
1、定义
正交实验法是利用正交表来安排多因素多水平的实验,通过挑选部分有代表性的水平组合进行测试,从而实现用较少的测试用例覆盖尽可能多的情况。
2、设计步骤
2.1 明确测试目标和因素
- 确定要测试的系统功能或特性,以及影响该功能或特性的因素。例如,一个在线购物系统的订单提交功能,可能的因素有商品种类、支付方式、配送方式等。
2.2 确定因素的水平
- 对于每个因素,确定其可能的取值范围,即水平。比如商品种类可以分为电子产品、服装、食品等水平。
2.3 选择合适的正交表
- 根据因素和水平的数量,选择合适的正交表。
- 正交表是一种经过科学设计的表格,能够保证各因素的不同水平在实验中均匀搭配。
2.4 进行实验安排
- 将因素和水平对应到正交表中,确定具体的测试用例组合。
2.5 执行测试用例
- 按照正交表确定的测试用例进行测试,记录测试结果。
2.6 分析测试结果
- 根据测试结果,分析系统的性能、功能是否符合要求,找出可能存在的问题。
3、应用场景
- 适用于多因素影响性能或功能且每个因素有多个水平的复杂系统测试,如软件配置参数众多的情况。
- 在时间和资源有限的测试项目中,可快速确定关键测试用例组合,提高效率。
4、优缺点
4.1 优点:
- 高效,以较少用例覆盖较多因素组合,减少工作量。
- 均匀,保证各因素不同水平均匀搭配,提高全面性和可靠性。
- 可扩展,能根据实际情况调整因素和水平以适应不同需求。
4.2 缺点:
- 有局限性,可能找不到合适正交表或不能完全覆盖所有场景。
- 较复杂,选择正交表和进行实验安排需专业知识和经验。