软件质量保证与测试——第二章 黑盒测试

本文详细介绍了黑盒测试中的等价类划分、决策表、因果图和正交测试等技术。等价类划分分为弱、强和传统等不同形式,用于覆盖输入和输出的有效与无效情况。决策表解决了变量间的依赖问题,而因果图则用于表示条件与结果的逻辑关系。正交测试通过控制变量寻找最优组合,确保测试的全面性。此外,文章还提到了情景测试的重要性和应用。
摘要由CSDN通过智能技术生成

第二章

  • 穷尽所有可能的输入和输出才是完美的测试,但是无法实现
  • 变量独立用等价类划分;不独立用决策表

等价类划分

  • 划分原则:
    • 互不相交
    • 无冗余
    • 结合后较完备
  • 常见划分方法:
划分方法有效区间无效区间
按数值区间12
布尔(合法性)必须满足 ...条件11
集合(可以无限)11
枚举(有限)11
  • 等价类测试
    • weak(弱):只考虑单缺陷
    • strong(强):考虑单缺陷与多缺陷并发
    • traditional(一般):只考虑有效值
    • robust(健壮):考虑有效和无效值
      尽量考虑强健壮性测试
      强健壮:0-所有个属性的错误
      弱健壮:只考虑0-1个
  • 设计测试用例:
    • 找到所有等价类:输入条件、输出域
    • 建立表格,填入等价类
    • 唯一编号等价类
    • 生成测试用例:一条测试用例尽量多覆盖有效等价类,只覆盖一个无效类
  • 边界值分析:控制单一等价类变化,取值范围为( m i n + min^+ min+ m i n − min^- min m a x + max^+ max+ m a x − max^- max,),其他都去正常值( n o r m norm norm
    只适用于独立的有界的物理量变量之中
    在这里插入图片描述
  • 等价类测试的弱形式不如强形式测试全面。
  • 无效值会引起运行错误的时候(实现语言是强类型),则没有必要做健壮形式的测试。
  • 错误条件很重要的时候,健壮测试很重要。
  • 边界值测试是等价类测试的一种补充,两者结合可以加强测试效果。
  • 决策表技术可以解决变量之间依赖的问题。
  • 要进行多次尝试,确认最合适的等价类划分。

决策表

桩 Stub条目 Rule
条件桩 Condition (输入)
C1条件条目1
C2条件条目2
行动桩 Action (输出)
A1行动条目1
A2行动条目2
  • 建立决策表
    • 找到所有的条件桩和行动桩
    • 列表
    • 填入条目:条件和行动
    • 简化(条件相似,行动相同)

因果图

  • 等价 Implication:if C 1 = 1 C_1=1 C1=1 then E 1 = 1 E_1 =1 E1=1,else E 1 = 0 E_1 =0 E1=0
    在这里插入图片描述
  • 非 Not: if C 1 = 1 C_1=1 C1=1 then E 1 = 0 E_1 =0 E1=0,else E 1 = 1 E_1 =1 E1=1
    在这里插入图片描述
  • 或 Or: if C 1 o r C 2 o r C 3 = 1 C_1orC_2orC_3=1 C1orC2orC3=1 then E 1 = 1 E_1 =1 E1=1,else E 1 = 0 E_1 =0 E1=0
    在这里插入图片描述
  • 与 And: if C 1 a n d C 2 = 1 C_1andC_2=1 C1andC2=1 then E 1 = 1 E_1 =1 E1=1,else E 1 = 0 E_1 =0 E1=0在这里插入图片描述

约束

  • 异 Exclusive: either C 1 o r C 2 = 1 C_1orC_2=1 C1orC2=1 不同时为1
    在这里插入图片描述
  • 或 Inclusive: at least C 1 o r C 2 o r C 3 = 1 C_1orC_2orC_3=1 C1orC2orC3=1 不同时为0,至少有一个为1在这里插入图片描述
  • 唯一 One and only one: one and only one of C 1 o r C 2 o r C 3 = 1 C_1orC_2orC_3=1 C1orC2orC3=1只能有一个为1
    在这里插入图片描述
  • 要求 Require: C 1 r e q u i r e s C 2 C_1requiresC_2 C1requiresC2
    我强,你也得强
    在这里插入图片描述
C1C2
11
01
00
  • 强制 Masking: E 1 m a s k s E 2 E_1masksE_2 E1masksE2
    我强,你不能强
    E1E2
    00
    01
    10
  • 生成因果图步骤:
    • 了解需求,给每个因果编号,联系因与果或果与果
    • 用因果图表达出因与果的逻辑关系
    • 建立决策表
    • 测试用例
  • 一个果结点只能接收一个逻辑关系,不能同时接受两个及以上逻辑关系
    在这里插入图片描述
    如图即为错误画法,正确画法可以在上中间加入中间状态结点在这里插入图片描述
  • 当一个因与另两个因的结果共同有结果时一定需要一个中间状态。

正交测试

控制变量,找出最优组合

  • 因子 Factor:变量数
  • 水平 Level: 一个变量可以取到的值的个数
  • 轮数 Runs:需要进行测试的次数
  • 综合检测 Comprehensive test:每一个组合都要测试一遍,需要进行 F a c t o r L e v e l Factor^{Level} FactorLevel次,耗费时间。
  • 单变量测试多次 Single factor test for many times:在相同的情况下固定其他变量,单一变量发生变化,达到参数的最优水平。多次变换变量最后得到最优的参数组合,即最接近实际情况的结果。
  • 单变量测试次数: t i m e s = l e v e l + ( f a c t o r s − 1 ) × ( l e v e l s − 1 ) times=level+(factors-1)×(levels-1) times=level+factors1×levels1
  • 正交表格 L R u n s ( L e v e l s F a c t o r s ) L_{Runs}(Levels^{Factors}) LRuns(LevelsFactors)
    • Runs: 数组行数
    • Factors: 数组列数
    • Levels: 单个因子可接受的值的最大数目
    • Experiment times=∑(每个Factor的Level数量-1)+1
  • 正交测试步骤
    • 因子水平表
    • 因子取值范围
    • 边界值确定
    • 实验次数
    • 找到合适的表
    • 填表

情景测试

  • 基于一个假设的故事,帮助人思考复杂的测试环境或系统
  • 五个特性:
    • 有情景
    • 激发性
    • 可信
    • 复杂
    • 已被评估
  • 事件流
    • 基本流事件:应该包含执行用例时“通常”发生的情况。
    • 替代流事件:包含了一个可选的或特殊的角色相对于正常行为的行为,以及正常行为的变化。

在这里插入图片描述Scenario for the use case
– Scenario 1: Basic flow
– Scenario 2: Basic flow ->Alternate flow 1
– Scenario 3: Basic flow ->Alternate flow 1 ->Alternate flow 2
– Scenario 4: Basic flow ->Alternate flow 3
– Scenario 5: Basic flow ->Alternate flow 3 ->Alternate flow 1
– Scenario 6: Basic flow ->Alternate flow 3 ->Alternate flow 1 ->Alternate flow 2
– Scenario 7: Basic flow ->Alternate flow 4
– Scenario 8: Basic flow ->Alternate flow 3 ->Alternate flow 4

  • 情景测试步骤
    • 阅读用例文本描述,并识别基本流和替代流的每个组合——情景
    • 识别测试用例并创建一个场景矩阵
      • 每个场景应该至少有一个测试用例,但可能会有更多。
      • 场景矩阵的通用格式,其中各行代表各个测试用例,各列代表测试用例的信息。
      • V (valid): 表示有效的条件,可执行基本流。
      • I (invalid): 表示在这种条件下将激活备选流。
      • N/A: 表示不适用于测试用例
    • 确定要进行测试的数据值

有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下:
(1)若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。
(2) 若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来。
(3)若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。
答案:
– 基本流:投入5角硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。
– 备选流:
1、〖零钱找完〗的红灯没亮,这时在投入1元硬币并押下按钮后,在送出饮料的同时退还5角硬币。
2、〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来
场景:
– 场景1:基本流
– 场景2:备选流1
– 场景3:备选流2
在这里插入图片描述

黑盒测试

  • 道 :不关注细节、规约、早期开展
  • 法 :等价类划分、边界值分析;决策表、因果图;正交测试
  • 术 :。。↖ 独立变量↗。。。。。↖不独立↗。。↑更少、代表性
  • 器 :项目管理,各个阶段
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Env1sage

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值