【软件测试】08 -- 黑盒测试方法(边界值分析法、因果图与决策表法)

  1.边界值分析法

  对于测试人员来说,测试工作做得越多越会发现,程序的一些错误往往发生在边界处理上,例如,某程序的输入数据要求取值范围为1~100,当取值在1~100内部时没有问题,然而取边界值1或100时会发生错误,这就是程序开发时对边界问题没有做好处理。边界值分析法就是对边界值进行测试的一种方法,本节将针对边界值分析法进行详细讲解。

  边界值分析法概述

  边界值分析法是对软件的输入或输出边界进行测试的一种方法,它通常作为等价类划分法的一种补充测试。对于软件来说,错误经常发生在输入或输出值的关键点,即从符合需求到不符合需求的关键点,因此边界值分析法是在等价类的边界上执行软件测试工作,它的所有测试用例都是在等价类的边界处设计。

  在等价类划分法中,无论是输入等价类还是输出等价类,都会有多个边界,而边界值分析法就是在这些边界附近寻找某些点作为测试数据,而不是在等价类内部选择测试数据。

  在等价类中选择边界值时,如果输入条件规定了取值范围或值的个数,则在选取边界值时可选取5个测试值或7个测试值。如果选取5个测试值,即在两个边界值内选取5个测试数据:最小值、略大于最小值、正常值、略小于最大值、最大值。例如,输入条件规定取值范围为1~100,则可以选取1、1.1、50、99.9、100这5个值作为测试数据。如果选取7个测试值,则在取值范围外再各选取一个测试数据,分别是略小于最小值、最小值、略大于最小值、正常值、略小于最大值、最大值、略大于最大值。对于上述输入条件,可选取0.9、1、1.1、50、99.9、100、100.1这7个值作为测试数据。这2种取值方案如表1所示。

在这里插入图片描述
  如果软件要求输入或输出是一组有序集合,如数组、链表等,则可选取第一个和最后一个元素作为测试数据。如果被测试程序中有循环,则可选取第0次、第1次与最后两次循环作为测试数据。除了上述讲解到的边界值选取之外,软件还有其他边界值的选取情况,在对软件进行测试时,要仔细分析软件规格需求,找出其可能的边界条件。

  边界值分析法作为一种单独的软件测试方法,它只在边界取值上考虑测试的有效性,相对于等价类划分法来说,它的执行更加简单易行,但缺乏充分性,不能整体全面地测试软件,因此它只能作为等价类划分法的补充测试。

  2.因果图与决策表法

  等价类划分法与边界值分析法主要侧重于输入条件,却没有考虑这些输入之间的关系,如组合、约束等。如果程序输入之间有作用关系,等价类划分法与边界值分析法很难描述这些输入之间的作用关系,无法保证测试效果。因此,需要学习一种新的方法来描述多个输入之间的制约关系,这就是因果图法。

  因果图设计法

  因果图法是一种利用图解法分析输入的各种组合情况的测试方法,它考虑了输入条件的各种组合及输入条件之间的相互制约关系,并考虑输出情况。例如,某一软件要求输入地址,具体到市区,如“北京→昌平区”“天津→南开区”,其中第2个输入受到第1个输入的约束,输入的地区只能在输入的城市中选择,否则地址就是无效的。像这样多个输入之间有相互制约关系,就无法使用等价类划分法和边界值法设计测试用例。因果图法就是为了解决多个输入之间的作用关系而产生的测试用例设计方法。

  1. 因果图

  因果图需要处理输入之间的作用关系,还要考虑输出情况,因此它包含了复杂的逻辑关系,这些复杂的逻辑关系通常用图示来展现,这些图示就是因果图。

  因果图使用一些简单的逻辑符号和直线将程序的因(输入)与果(输出)连接起来,一般原因用ci表示,结果用ei表示,ci与ei可以取值“0”或“1”,其中“0”表示状态不出现,“1”表示状态出现。ci与ei之间有恒等、非(~)、或(∨)、与(∧)4种关系,如图2所示。
在这里插入图片描述
  图2展示了因果图的4种关系,每种关系的具体含义如下所示。

  (1)恒等:在恒等关系中,要求程序有1个输入和1个输出,输出与输入保持一致。若c1为1,则e1也为1;若c1为0,则e1也为0。

  (2)非:非使用符号“~”表示,在这种关系中,要求程序有1个输入和1个输出,输出是输入的取反。若c1为1,则e1为0;若c1为0,则e1为1。

  (3)或:或使用符号“∨”表示,或关系可以有任意个输入,只要这些输入中有一个为1,则输出为1,否则输出为0。

  (4)与:与使用符号“∧”表示,与关系也可以有任意个输入,但只有这些输入全部为1,输出才能为1,否则输出为0。

  在软件测试中,如果程序有多个输入,那么除了输入与输出之间的作用关系之外,这些输入之间往往也会存在某些依赖关系,某些输入条件本身不能同时出现,某一种输入可能会影响其他输入。例如,某一软件用于统计体检信息,在输入个人信息时,性别只能输入男或女,这两种输入不能同时存在,而且如果输入性别为女,那么体检项就会受到限制。这些依赖关系在软件测试中称为“约束”,约束的类别可分为4种:E(Exclusive,异)、I(at least one,或)、O(one and only one,唯一)、R(Requires,要求),在因果图中,用特定的符号表明这些约束关系,如图3所示。

在这里插入图片描述
  图3展示了多个输入之间的约束符号,这些约束关系的含义具体如下所示。

  (1)E(异):a和b中最多只能有一个为1,即a和b不能同时为1。

  (2)I(或):a、b和c中至少有一个必须是1,即a、b、c不能同时为0。

  (3)O(唯一):a和b有且仅有一个为1。

  (4)R(要求):a和b必须保持一致,即a为1时,b也必须为1;a为0时,b也必须为0。

  上面这4种都是关于输入条件的约束。除了输入条件,输出条件也会相互约束,输出条件的约束只有一种——M(Mask,强制),在因果图中,使用特定的符号表示输出条件之间的强制约束关系,如图4所示。
在这里插入图片描述
  在输出条件的强制约束关系中,如果a为1,则b强制为0;如果a为0,则b强制为1。

  2. 因果图法设计测试用例的步骤

  使用因果图法设计测试用例需要经过以下几个步骤。
  (1)分析程序规格说明书描述内容,确定程序的输入与输出,即确定“原因”和“结果”。

  (2)分析得出输入与输入之间、输入与输出之间的对应关系,将这些输入与输出之间的关系使用因果图表示出来。

  (3)由于语法与环境的限制,有些输入与输入之间、输入与输出之间的组合情况是不可能出现的,对于这种情况,使用符号标记它们之间的限制或约束关系。

  (4)将因果图转换为决策表。决策表将在下一小节介绍。

  (5)根据决策表设计测试用例。

  因果图法考虑了输入情况的各种组合以及各种输入情况之间的相互制约关系,可以帮助测试人员按照一定的步骤高效率地开发测试用例。此外,因果图是由自然语言规格说明转化成形式语言规格说明的一种严格方法,它能够发现规格说明书中存在的不完整性和二义性,帮助开发人员完善产品的规格说明。

  3.决策表

  实际测试中,如果输入条件较多,再加上各种输入与输出之间相互的作用关系,画出的因果图会比较复杂,容易使人混乱。为了避免这种情况,人们往往使用决策表法代替因果图法。

  决策表也称为判定表,其实质就是一种逻辑表。在程序设计发展初期,判定表就已经被当作程序开发的辅助工具,帮助开发人员整理开发模式和流程,因为它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确。利用决策表可以设计出完整的测试用例集合。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

衍生星球

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

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

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

打赏作者

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

抵扣说明:

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

余额充值