4.黑盒测试
作者:互联网
一、介绍
定义
- 一种测试程序被视为“黑盒”的方法
- 程序测试用例基于系统规范
- 测试计划可以在软件过程的早期开始
黑盒测试的优点
- 测试是无偏的,因为设计者和测试者是相互独立的
- 测试人员不需要任何特定编程语言的知识
- 测试是从用户的角度进行的,而不是设计师的
- 一旦规格说明完成,就可以设计测试用例。
测试用例的设计必须遵循以下特征
-
有效性 测试用例是测试人员测试过程中的重要参考依据。不同的
测试人员根据相同的测试用例所得到的输出应该是一致的,对于准确的测试
用例的计划、执行和跟踪是测试的有效性的有力证明。
-
可复用性 良好的测试用例具有重复使用的功能,使得测试过程事半功
倍,可以大大节约时间,提高测试效率。
-
易组织性 即使很小的项目,也可能会有几千甚至更多的测试用例,测试
用例可能在数月甚至几年的测试过程中被创建和使用,正确的测试计划会很
好地组织这些测试用例并提供给测试人员或其他项目的人参考和有效使用。
-
可评估性 从测试的项目管理角度来说,测试用例的通过率是
检验代码质量的保证。测试用例的通过率和软件错误的数目就是检查代码质
量好坏的量化标准。
-
可管理性 测试用例可作为检验测试人员进度、工作量以及跟
踪/管理测试人员的工作效率因素,尤其是比较适用于对新的测试人员的检
验,从而做出测试安排和计划。
如何设计测试用例
- 了解产品的设计、规格、场景
- 一个测试用例应该尝试覆盖一种或多种情况
- 请勿复制规范
- 本地化软件测试
- 状态
- 分解测试用例
测试方法
- 等价类划分
- 边值分析
- 决策表
- 因果图
- 正交阵列测试
- 场景测试
二、等价类划分
- 输入数据和输出结果通常属于不同的类,其中一个类的所有成员都是相关的。
- 这些类中的每一个都是一个等效分区或域,其中程序对每个类成员都以等效的方式运行。
- 应从每个分区中选择测试用例。
等价类定义
- 它是输入域或输出域的子集
- 合理假设:对于测试者来说,典型数据等于同一个等价类中的其他数据。
等价类划分方法
- 有效等价类
- 就规范而言,它是由合理且有意义的数据组成的集合。
- 可用于检查应用程序是否实现了预期的功能和性能。
- 无效等价类
- 就规范而言,它是由不合理和无意义的数据组成的集合。
- 可用于检查无效数据是否正确处理
为变量生成等价类的指南
- 范围:一个类的值在范围内,两个类的值在范围外。
- 字符串:至少一个包含所有合法字符串,一个包含所有非法字符串。 合法性是基于对字符串长度和其他语义特征的约束来确定的。
- 枚举:每个值都在一个单独的类中。
- 数组:一类包含所有合法数组,一类只包含空数组,一类包含大于预期大小的数组。
设计测试用例的步骤
- 找出等价类
- 建表并列出所有等价类
- 每个等价类都有一个唯一的编号
- 设计一个新的测试用例,尽量让它包含那些现在没有包含的独占等价类,重复此步骤直到包含所有有效的等价类
- 设计一个新的测试用例,尽量让它只包含一个现在不包含的无效等价类,重复此步骤直到包含所有无效等价类。
三、边界值分析
- 边界值分析侧重于输入空间的边界以识别测试用例。
- 边界值测试背后的基本原理是错误往往发生在输入变量的极值附近。
- 例如 循环条件(< 而不是 ≤),计数器
- 边界值分析基于单一故障。
边界值分析的局限性
- 当要测试的程序是表示有界物理量的几个独立变量的函数时,边界值分析效果很好。
- 例如 NextDate测试用例不足(2月压力小,月日年依赖)
- 例如 变量是指物理量,如温度、风速、负载等。
稳健性测试
- 边值分析的简单扩展
- 略大于最大值 (max+) 的值和略小于最小值 (min-) 的值
- 关注预期产出
- 例如 超过公共电梯的承载能力
- 强制注意异常处理
总结
- 等价类测试的弱形式不如强形式测试全面
- 无效值会引起运行错误的时候(实现语言是强类 型),则没有必要做健壮形式的测试
- 错误条件很重要的时候,健壮测试很重要
- 边界值测试是等价类测试的一种补充,两者结合 可以加强测试效果
- 决策表技术可以解决变量之间依赖的问题
- 要进行多次尝试,确认最合适的等价类划分
四、决策表
- 在所有功能测试方法中,基于决策表的方法最为严格,因为决策表本身强制执行逻辑严密性。
- 它们非常适合描述在不同条件下采取多种行动组合的情况。
- 规则指示针对规则的条件部分中指示的条件情况采取哪些操作。
- “-”或“n/a”表示条件无需关心或不可用。
构建决策表的步骤
- 确定规则编号
- 如果有n个条件,则必须有2n个规则(真/假,是/否,0/1)
- 列出所有条件存根和动作存根
- 输入条件条目
- 输入动作条目,得到初始决策表,然后简化决策表
- 如果还有两条规则具有相同的动作,并且条件非常相似,则可以合并
- Don’t Care 条目有两种主要解释:条件无关,或者条件不适用。
指导方针和意见
- 决策表技术适用于具有以下特征的应用程序
- 突出的 If-Then-Else 逻辑
- 输入变量之间的逻辑关系
- 涉及输入变量子集的计算
- 输入和输出之间的因果关系
- 决策表不能很好地扩展
- 与其他技术一样,迭代也有帮助。 您确定的第一组条件和操作可能并不令人满意。 将其作为垫脚石,逐步改进,直到您对决策表感到满意为止。
五、因果图
因果图
- 因果图是输入和输出之间逻辑关系的可视化表示,可以表示为布尔表达式。
- 原因是需求中可能影响程序输出的任何条件。
- 效果是程序对输入条件的某种组合的响应。
因果图中使用的符号
因果关系
-
Implication(等价) :if C1 is 1,then E1 is 1 also,else E1 is 0.
-
Not (非) :if C1 is 1,then E1is 0,else E1 is 1.
-
Or (或) : if C1or C2 or C3 is 1,then E1 is 1,else E1 is 0; “Or” may have arbitrary number of inputs.
-
And(与):if both C1 and C2 are 1,then E1 is1,else E1 is 0; “And” may have arbitrary number of input.
约束(constraint)
- 在实际问题中,输入状态也存在一定的依赖性,称为约束。
- 输出状态之间存在约束。
- 这些用虚线(虚线)表示为用约束符号标记的边。
-
Exclusive (E)(异): either C1 or C2
-
Inclusive (I)(或): at least C1 or C2 or C3
-
One and only one (O)(唯一): one, and only one, of C1 and C2
-
Requires ®(要求): C1 requires C2
-
Masking (M)(强制): E1 masks E2
因果图设计的步骤
- 通过阅读要求确定原因和影响。 每个因果都被分配了一个唯一的标识符。 请注意,一个结果也可能是其他一些结果的原因。
- 使用因果图表达因果关系。
- 将因果图转化为有限条目决策表,以下简称决策表。
- 从决策表生成测试用例。
CEG测试用例设计的缺点:
- 有时,很难找出输入条件的原因与规范结果之间的因果关系。
- 通常因果关系非常大,导致使用CEG测试获得了惊人数量的测试用例。 会给软件测试带来沉重的负担。
- 解决方案
- 使用正交测试设计测试用例。
六、正交矩阵测试
- 正交阵列测试是一种系统的、统计的测试方式。
- 正交阵列可应用于
- 用户界面测试
- 系统测试
- 回归测试
- 配置测试
- 性能测试
- 实验设计方法的类型
- 综合测试
- 单因素测试
- 正交试验
- OTDM(正交测试设计方法)
- 根据伽罗瓦理论
多次单因素检验
修正了在相同情况下其他一些因素,在某个阶段,某个因素发生了变化,从而达到了参数的最优水平,最后是最接近实际情况的最佳参数组合 结果。
优势
- 次数=level+(factors-1)×(levels-1)=3+2×2=7(无重复条件)。
- 更少的实验时间
- 如果情况之间没有“因素”相互作用,结果从根本上是正确的。
- 在大多数情况下,它比综合测试更容易操作。
坏处
- 如果因素之间存在相关性,则更大可能出现偏差。
正交测试设计
- 有效平衡了综合检验法和单因素检验的优点。
- 从综合点“因子水平值”中选择一个典型的、有代表性的测试点。 它可以反映全部情况。
- 通过一系列正交设计形式来实现的那些表称为“正交表”。
正交表
- 是正交试验设计的关键。
- 是由一组严格规则设计的形式。
- 由 LRuns(LevelsFactors) 定义:
- Runs:数组中的行数。
- Factors:数组中的列数。
- Levels:任何单个因素可以采用的最大数量的值。
- 实验次数=∑(每个因子-1的水平量)+1
正交测试用例设计步骤
- 提取功能描述,构建因子状态表
- 划分需求的功能,根据软件规范识别影响功能对象运行的因素和外部因素,将其作为因素。
- 取每个因素的值作为一个状态。
- 选择加权,生成因子分析表(根据需要的因子、状态和测试频率确定权重)。
- 根据因素、水平、行数和实验次数选择合适的正交表,选择具有最小行数的正交表。
- 使用正交表结构测试数据集。
七、场景测试
- 它是一种软件测试活动,它使用基于假设故事的场景案例或简单的场景来帮助人们思考测试环境中的复杂问题或系统。
- 理想的场景有五个关键特征:
–it is a story
–motivating
–credible
–complex
–easy to evaluate
用例的重要部分是事件流
- 事件的基本流程
应该涵盖执行用例时“正常”发生的情况。 - 交替流事件
涵盖相对于正常行为的可选或特殊字符的行为,以及正常行为的变体。
标签:黑盒,决策表,等价,正交,测试用例,测试人员,测试 来源: https://blog.csdn.net/AIbeichen/article/details/121715190