黑盒测试技术

       测试人员必须在测试的过程中尽量发现测试对象中的缺陷,以尽可能少的成本验证尽量多的需求。黑盒测试,顾名思义,不需要使用任何关于被测组件和系统的内部结构信息。

       黑盒测试技术测试人员不需要了解被测对象的内部结构和具体设计,主要包括:等价类划分、边界值分析、决策表测试,状态转换测试及用例测试

(1)等价类划分:

      是一种典型的,常用的黑盒测试技术,它把被测试对象的输入数据或者输出数据根据他们的处理方式或反应划分成若干等价类。一般把被测对象分为有效等价类个无效等价类。有效等价类包含所有的有效数据,而无效等价类包含了无效的数据,即被测对象将拒绝这些数据或这些数据进行出错处理。下述是根据等价类划分结果获取测试案例的一般步骤:

①确定基本等价类:对需求测试的每个输入(参数),例如在组件测试中函数/方法的参数或者系统测试中的屏幕输入域,需要确定所有可能的输入范围,这些输入值范围可以继续细分成不同的等价类。

②细分等价类:若测试对象的说明中规定等价类中的一些参数需要进行不同的出路,这些参数就需要归类到一个新的等价类内。

③选择代表值和设计测试用例:对每个等价类,选择其中的一个代表值进行测试。测试人员需要定义每个测试用例的前置条件,期望结构,测试步骤,后置条件等完成测试用例的测试。

例如:公司定义的员工工资范围为2000~51999元/月。有效等价类:2000~51999(包括2000,51999),可以选5000作为代表值;两个无效等价类分别是小于2000的值和大于51999的值,可以选60000作为代表值。

    等价类覆盖率可以定义为已经覆盖的等价类项目与总等价类项目之比:

    等价类覆盖率=(已覆盖等价类数据/总等价类数目)×100%

    假设定义了18个等价类,但设计的测试用例中只覆盖了其中的15个等价类则等价类覆盖率为(15/18)×100%=83.33%。

等价类划分的原则
①如果输入条件规定了连续的取值范围,则可以创建一个有效等价类和两个无效等价类;
②假如描述的是允许数值的范围(离散的数字),则可以创建一个有效等价类(所有可能的有效值),和两个无效等价类(少于和多于有效的个数);
③假如输入数据规定的是一组值(假定n个),并且软件对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类;
④假如输入数据规定的是一组值(假定n个),并且软件对每个输入值都一样的处理,可确立一个有效等价类和一个无效等价类;
⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则);
⑥在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类;
⑦在输入条件规定了输入值的集合或者规定了"必须如何"的条件的情况下,可确立一个有效等价类和一个无效等价类;
⑧在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类;

(2)边界值分析:

       指通过分析输入或者输出的边界值并取值进行测试用例设计的一种黑盒测试技术。在软件开发过程中大量的错误时发生在输入或者输出范围的边界上,而不是发生在输入输出范围的内部。通常边界值分析时作为对等价类划分的补充,这种情况下,其测试用例来自等价类的边界,边界值分析可以应用于所有的测试级别。边界值分析通常分析边界值和边界附近的值。

表1.控制语句(X>8)的边界分析表

序号表达x=7x=8x=9
1if(x>8)FALSEFALSETRUE
2if(x≥8)FALSETRUETRUE
3if(x<>8)TRUEFALSETRUE
4if(x<8)TRUEFALSEFALSE
5if(x≤8)TRUETRUEFALSE

(3)决策表测试:

       等价类划分和边界值分析时非常有用的黑盒测试技术,在设计测试用例过程中借助于两种技术能有效选择测试数据,大大的提高测试的效率。但在很多情况下,不仅要考虑册数的输入数据,好药对系统的业务逻辑进行测试验证,而这些业务逻辑往往又是比较复杂的。

       决策表或者因果图是通过分析说明,识别出系统可能的条件和行为,并最终设计测试用例的技术。

决策表组成的定义:
条件桩(Condition Stub):列出了问题的所有条件。通常认为列出的条件的次序无关紧要;
动作桩(Action Stub):列出了问题规定可能采取的操作。这些操作的排列顺序没有约束;
条件项(Condition Entry):列出针对它左列条件的取值。在所有可能情况下的真假值;

动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作;

决策表测试的规则:
①任何一个条件组合的特定取值及其相应要执行的动作就称为规则;
②在决策表中贯穿条件项和动作项的一列就是一条规则;

③决策表中列出多少组条件取值,也就有多少条规则,既条件项和动作项有多少列;

决策表测试步骤:
①确定规则的个数。假如有n个条件,每个条件有两个取值(0,1),故有2n种规则;
②列出所有的条件桩和动作桩;
③填入条件项;
④填入动作项,得到初始的决策表;
⑤简化合并相似的规则,比如相同动作,得到优化的决策表;

⑥每列规则设计一个测试用例;


图1.决策表示例图

 (4)状态转换测试:

       测试对象的输出和行为方式不仅受当前输入数据的影响,同时还与测试对象之前的执行情况,或者之前的事件或以前的输入数据等有关;通过引入状态图(state diagram)来描述测试对象和测试数据、对象状态之间的关系;状态图中的各个状态是通过不同的事件驱动的,比如函数的调用;基于状态图开展的测试称之为状态转换测试;

图2.状态转换测试之状态图

状态图到状态树的规则:
①初始状态或开始状态是树的根;
②对于状态图内从开始状态出发到达一个任意可达状态的每个可能的转换,转换树都包含了从根出发到达一个代表此状态的下一后续状态的结点的分支;
③对转换树的每个叶结点(新增加的结点)重复步骤2的过程,直到满足下面结束条件中的一个:
④与叶结点相关的状态已经出现过一次从状态树的根到叶结点的连接上,这个结束条件对应于状态图中的一遍循环;

⑤与叶结点相关的状态是一个结束状态,并且也没有更多的状态转换需要考虑;

(5)用例测试:

      通过用例(UseCases)或业务场景来设计测试,用例描述了参与者(包括用户与系统)之间的相互作用,并从这些交互产生一个从用户的角度所期望和能观察到的结果;每个用例都有测试前置条件,这是用例成功执行的必要条件。每个用例结束后都存在后置条件,这是在用例执行完成后能观察到的结果和系统的结束状态;通过用例(UseCases)或业务场景来设计测试,用例描述了参与者(包括用户与系统)之间的相互作用,并从这些交互产生一个从用户的角度所期望和能观察到的结果;每个用例都有测试前置条件,这是用例成功执行的必要条件。每个用例结束后都存在后置条件,这是在用例执行完成后能观察到的结果和系统的结束状态;


图3.用例测试例子

    测试用例必要信息:开始情况和前置条件,其他可能的条件,期望结果,后置条件;

    用例测试技术的价值:
    ①基于用例的测试技术适合于测试典型的用户系统交互。因此,将这种技术应用在验收测试和系统测试中是最好的;
    ②另外,测试规格说明工具可以用于支持用例测试技术。其他测试技术(如边界值分析)可以在这方面做些辅助;






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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值