HIT软件构造:黑盒测试学习Blog

这是作者在CSDN的第一篇Blog哦~

已经上了两周的软件构造课,课听得迷迷糊糊的,一直也没get到这门课是要交给我们什么。这周已经开始上实验了,可能上手实践才能体会到课件上的理论之外的别有洞天吧。

这篇blog是想记录一下我对黑盒白盒测试的学习。这两种测试方法听起来很新奇,这也是为什么我选择在课外多了解他们的原因……(纯纯被名字吸引)这篇是黑盒!听起来很有趣,一种薛定谔的感觉(^-^)V


黑盒测试

理解黑盒测试是什么

黑盒黑盒,重点是黑……

(百度百科)在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。

我的理解:看不到程序代码都写了啥,我只知道我需要输入什么,他能根据我的输入给我什么结果。

黑盒测试常用方法简述

等价类划分法、边界值分析法、判定表法、因果图法、场景法、错误推测法、功能图法

作者也是在学习,参考了很多其他文章,整理的不全,重点在于简单了解,没有深入地学习如何去用这些方法~

1.等价类划分法

定义:等价类划分的方法就是将程序的输入域划分为若干部分,也可以说是若干个等价类,然后从各个部分中选取少数代表性数据进行测试。

我的理解:就是把输入集合按照属性分成块块,然后笛卡尔积组合(就比如输入集合:衣服,划分1:红色;其他颜色,划分2:一百以内;一百以外。衣服就可以是{一百以内红色衣服,一百以内的其他颜色衣服,一百以外的红色衣服,一百以外的其他颜色衣服})

有效等价类与无效等价类:看到一个很好地解释

 2.边界值分析法

定义:边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。

边界点

        1)边界是指相对于输入等价类和输出等价类而言,稍高于、稍低于其边界值的一些特定情况。

        2)边界点分为上点、内点和离点。

 

我的理解:还是刚刚那个例子,一百块这个数值的边界需要考虑,100-、100/100+都需要测试。很有可能程序员在写代码的时候忘记处理100块了,如果测试用例选择的时候也忘了,那就检查不出这个错误了。

等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。

3.判定表法

前两个上课讲过,也比较好理解,后面就是一些其他方法啦

定义:判定表(decision table),是指一个表格,用于显示条件和条件导致动作的集合。是分析和表达多逻辑条件下执行不同操作的工具。

判定表的几个基本条件:

条件桩:列出问题的所有条件

动作桩:列出可能采取的所有操作

条件项:列出所有条件的取值

动作项:所有取值条件下输出的情况通常:0表示某条件不出现,1表示某条件出现

看例子看例子

我根据自己的理解写了个小例子,感觉表达清楚了,用判定表,一定要不同输入之间没有固定的顺序,或者说顺序不影响结果,就是要把输入组合起来,可以实现一些简化……?

好的程序怎么判定?

条件12345678
输入可读yyyynnnn
健壮yynnynyn
正确ynynyynn

输出
OOO
不好OOOOO

如果程序有错误,就别说好不好了,一定不好啊

所以,上面的8种情况就可以做一些简化

不正确:坏程序

正确+健壮+可读:好程序

正确+健壮+不可读:好程序

正确+不健壮+可读:好程序

正确+不健壮+不可读:坏程序

4.因果图法

定义: 因果图法就是把复杂的逻辑关系转化成判定表的系统化方法,从该图中可以产生测试数据。其中,原因是表示输入条件,结果是对输入执行的一系列计算后得到的输出。因果图法最终生成的就是判定表,它适合于检查软件输入条件的各种组合情况。

因果图分类:

第一类:因果关系(输入和输出之间的逻辑关系)

第二类:原因与原因之间的关系(输入与输入之间的制约关系)

第三类:结果与结果之间的关系(输出与输出之间的制约关系)

我的理解:输入和输出各自之间或两者之间存在某些依赖关系。例如, 某些输入条件本身不可能同时出现。

因果图的使用步骤

        1)划分需求规格片段

        2)找出输入输出

        3)分析输入与输出之间的关系,画出因果图(包括因果之间关系,原因与原因,结果与结果之间的关系)

        4)把因果图转换成判定表

        5)简化判定表

        6)用判定表中的每一项生成测试用例(结合等价、边界值)

利用因果图来设计测试用例时, 作为输入条件的原因与输出结果之间的因果关系,有时很难从软件需求规格说明中得到。往往因果关系非常庞大,以至于据此因果图而得到的测试用例数目多的惊人,给软件测试带来沉重的负担,为了有效地,合理地减少测试的工时与费用,可利用正交实验设计方法(见6)进行测试用例的设计。
 


5.场景法

定义:通过运用场景来对系统的功能点或业务流程的描述,从而提高测试效果的一种方法。

组成:

1)基本流:基本事件

基本流是经过用例最简单的路径,即无任何的差错,程序从开始直接执行到结束的流程,通常来讲,一个业务只存在一个基本流,并且基本流只有一个起点和一个终点。

2)备选流:分支事件

备选流为除了基本流之外的各个支流,包含了多种不同情况。

我的理解:每个事件都有自己应该发展的路径,这就是基本流。而这个过程中可能出很多差错,或者是意外,这就是备选流。每个场景都会有相同的基本流,他们各自的备选流逝根据这个场景的情况而定的。

用例设计步骤

 1)分析需求,确定出软件的基本流和各项备选流。

 2) 依据基本流和各项备选流,生成不同的场景。

3)针对生成的各场景,设计相应的测试用例。

4)重新审核生成的测试用例,去掉多余的部分,并针对最终确定出的测试用例,设计测试数据。


看例子,我也是看例子才明白的

例子:分析ATM取款机的场景流程,并设计测试用例和测试数据  

基本流:

        1)插入磁卡

        2)ATM验证账户正确

        3) 输入密码正确,通过验证

        4)输入取款金额

        5)取出金额

        6)取卡

备选流一:账户不存在或者受限制

备选流二:密码不正确,还有输入机会

备选流三:密码不正确,没有输入机会

备选流四:卡中余额不足

备选流五:ATM机中余额不足

备选流六:超过每日最大提款限额

备选流七:输入金额非100的倍数

采用场景法进行测试用例的设计:

6.正交实验设计法

定义:正交实验设计法(Orthogonal experimental design)是指从大量的实验点中挑选出适量的、有代表性的点,依据Glois理论导出“正交表”,从而合理的安排实验的一种实验设计方法。

关键因素

  • 指标:判断实验结果优劣的标准。
  • 因子:因子也称为因素,是指所有影响实验指标的条件。
  • 因子的状态:因子的状态也叫因子的水平,它指的是因子变量的取值。

用例设计步骤

  • 提取因子,构造因子状态表
  • 加权筛选,简化因子状态表
  • 构建正交表,设计测试用例

我的理解:在一些实验中,输入和输出的规模很大,用因果图……会很复杂。正交实验像是因果图的简化版……只是选取一部分影响因素,列出状态进行正交来设计测试用例

上例子

例子:实验有3个因子,每个因子有两个状态,可以做4次实验;用0和1表示每个因子的两种状态。

 

7.错误预测法

定义:测试者根据经验、知识和直觉来发现软件的错误,来推测程序中可能存在的各种错误,从而有针对性地进行测试。

基本思想

(1) 列举出程序中所有可能有的错误和容易发生错误的特殊情况(比如,程序只能输入数字,测试时可以输入字母进行测试)

(2)根据它们选择测试用例。

感觉是一种完全靠直觉的方法啊,需要测试者有很丰富的经验

黑盒测试的优缺点
优点:①对较大的代码单元来说,黑盒测试比白盒测试的效率高 ,测试人员不需要了解实现的细节,包括特定的编程语言;②测试人员和编程人员是相互独立的,从用户的角度进行测试,很容易被接受和理解,有助于暴露任何与规格不一致或者歧异的地方,测试用例可以在规格完成后马上进行。

缺点:不能测试程序内部特定部位,比如程序未执行的代码,这些代码得不到测试,则无法发现错误。若没有清晰的和简明的规格,测试用例很难被设计,不易进行充分性测试。
 

写在最后:小白的第一篇blog就要结束啦,简单了解了一下黑盒测试,如果有什么不对的希望大家指正!

在这里感谢:(大家想要深入了解,快去看厉害的文章)

【软件测试】八大典型的黑盒测试方法已来袭,快快接住!_程序员小濠的博客-CSDN博客_小程序黑盒测试

黑盒测试9种常用方法_CSU迦叶的博客-CSDN博客_黑盒测试方法有哪些

八大黑盒测试方法总结【超详细】_Bonnie i的博客-CSDN博客_黑盒测试方法有哪些

【软件测试学习笔记】黑盒测试方法及案例_小怡同学.的博客-CSDN博客_黑盒测试

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值