校导周绪龙〡软件测试第三篇——笑傲黑盒的江湖

黑盒测试是一门软件测试的必修课程,也是软件测试的基础课程。在整个软件测试界占有举足轻重的地位。

下面我们就来聊聊黑盒测试。

一.什么是黑盒测试

黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。

在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。

黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。

黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。

二.黑盒测试的作用

黑盒测试注重于测试软件的功能需求,它最主要的是覆盖产品的需求部分,通常都是对功能不正确、遗漏、界面错误、输入和输出错误、数据库访问错误、性能错误、初始化和终止错误等。

它能很好的测试我们软件的基本功能,为软件的最基础的质量保驾护航。

三.黑盒测试的工具

比较通用的是QTP,QACenter,Loadrunner,IEtest,Testlink,WinRunner,IBM Rational Robot,Jmeter,AutoRunner,bugzilla还有一些是自己公司开发的测试工具。总之这些工具都是优化黑盒测试的,提升黑盒测试的效率。

四.黑盒测试测试用例的方法

黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法,场景法,状态迁移法,思维导图法,综合设计法,随机数法。想说的是这十二种方法是目前最全的黑盒测试方法的集合。

同时它们也是分阶次的。如下图所示:你所修炼的阶次在哪一层,决定了你的设计能力。也就代表着你目前的能力在哪一个层次,能否悟透这些设计方法是个创造性的过程,因为设计都是要有灵感的。

五.黑盒测试修炼心法

修炼之路是一个过程。在这个过程中,你可以沉淀出属于你的那个部分。

不同的人对同一句话的理解和感悟通常是不一样的,正是这种不一样才呈现出不同的结果。

第一阶:等价类划分法,边界值法

这几种设计方法是最底层的,大多数人看下概念,看几个例子都可以立刻掌握。是的,他们很简单。日常生活中我们也经常用到的,只是没有那么正式专业的运用到软件领域而已。

但是我想分享的是:他们是最简单的,同时也是最复杂的、最重要的设计方法。

我们要有一个思想:学东西要回到本原中去,不可以投机取巧,往往想走捷径的人,走了很远的路。

你必须回到本原中去寻找属于你的那部分。就是上面谈到的,回归本原,重塑自我。

下面我们来看下它们的原始定义:

★ 等价类划分:解决如何选择适当的数据子集来代表整个数据集的问题,通过降低测试的数目去实现“合理的”覆盖,覆盖了更多的可能数据,以发现更多的软件缺陷。

我从中体会到是:这种方法不仅仅只是选择适当的数据子集来代表,更重要的是,在后期的测试过程中,它们可以把设计的测试用例集合进行精简,简化出最有代表最优覆盖的测试集合。用好它,可以加快工作的效率。直到工作3年后,我才对这块越来越有体验。

★ 边界值法:边界值分析也是一种黑盒测试方法,是对等价类分析方法的一种补充,由长期的测试工作经验得知,大量的错误是发生在输入或输出的边界上。因此针对各种边界情况设计测试用例,可以查出更多的错误。

注意:这里说的是补充哦,是等价类分析的补充。既然是补充那就是说不是主要的,要看具体情况而定,不是主要的方法。一定是这个业务有边界的情况下,才能用得到。

那么对于你来说,你必须总结通用边界和业务边界。

通用边界就是我们通常说的,除数为零的情况,整型的最大值和最小值。

业务边界就要看你根据具体的业务需求,去分析发觉具体的边界。

比如:需求上面文本框的值规定13个字符。那么边界就很明显。但是有时候边界就不是那么明显。可能出现的异常边界情况需要你根据业务的理解深度来看。

第二阶:错误推测法,思维导图法

这一阶:什么原因要把他们划分到第二个层次,是因为要运用他们,你得对你所测试的领域的业务要有一定的了解了。

★ 错误推测法:在测试程序时,人们可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法。

看定义根据经验和直觉,这就说明你也对你的业务要有一定的理解。否则你都不知道该如何运用。

★ 思维导图法:把看似分散的业务点连成线、结成 ,使知识系统化、规律化、结构化。

看定义:是看似分散的业务点,这也说明,你必须理解你的业务,当它们不能构成业务逻辑流时,这种方法将是你的首选。特别是那些零散的业务功能点,你又不能忽略。

第三阶:场景法,因果图法,判定表驱动法,正交试验设计法

能来到这一阶就说明,你已经有一定的修为了。能灵活运用这一阶的测试人员可以说是懂测试的了。咱们继续。

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

用例场景来测试需求是指模拟特定场景边界发生的事情,通过事件来触发某个动作的发生,观察事件的最终结果,从而用来发现需求中存在的问题。我们通常以正常的用例 场景分析开始,然后再着手其他的场景分析。

场景法一般包含基本流和备用流。

一个流程开始,通过描述经过的路径来确定的过程,经过遍历所有的基本流和备用流来完成整个场景。

场景主要包括4种主要的类型:正常的用例场景,备选的用例场景,异常的用例场景,假定推测的场景。

看定义:提高测试效果的方法,通过事件来触发某个动作的发生,观察事件的最终结果。就这些最核心的字眼,就知道该种方法使用的场合。

你所测试的业务领域一定是通过事件驱动的。比如:自动取款机:有取款事件、退卡事件、转账事件,这时就可以运用。另外它是提高测试效果的方法,提高效果哦,当你的时间有限,资源有限的时候,要记得多用用,哈哈。

★ 因果图法:即因果分析图,又叫特性要因图、石川图或鱼翅图。

它是由日本东京大学教授石川馨提出的一种通过带箭头的线,将质量问题与原因之间的关系表示出来,是分析影响产品质量的诸因素之间关系的一种工具,后来被运用在软件测试领域。

看定义:质量问题,是一个结果,影响它的有很多原因或者叫因素。这个时候我们清楚它试用的场合。当你所测试的业务类型里面有明显的结果,而且受很多因素影响的时候,就是运用它的场合。

因果图法是一种适合于描述对于多种输入条件组合的测试方法,根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件涉及的各种组合情况。

因果图法一般和判定表结合使用,通过映射同时发生相互影响的多个输入来确定判定条件。

因果图法最终生成的就是判定表,它适合于检查程序输入条件的各种组合情况。

采用因果图法能帮助我们按照一定的步骤选择一组高效的测试用例,同时,还能指出程序规范中存在什么问题,鉴别和制作因果图。

因果图法着重分析输入条件的各种组合,每种组合条件就是“因”,它必然有一个输出的结果,这就是“果”。

★ 判定表驱动法:是分析和表达多逻辑条件下执行不同操作的情况的工具,分析和表达多逻辑条件下的操作,这是它运用的场合。

它一般和因果图法搭配试用。记住哦,这里说是一种工具方法。

来,看看判定表长得啥样子。

看清楚了吗?它是条件和动作的组合情况哦,从这个层面来看,它是一种高级测试方法,应该比场景法和因果图法更高。但是一般它都是配合使用,放在这一阶也是委屈了它。

★ 正交试验设计法:是研究多因素多水平的又一种设计方法,它是根据正交性从全面试验中挑选出部分有代表性的点进行试验。

这些有代表性的点具备了“均匀分散,齐 整可比”的特点,正交试验设计是分析因式设计的主要方法。是一种高效率、快速、经济的实验设计方法。

看定义:它是挑选部分有代表性的点进行试验,这种方法试用的场合是你所在的业务领域,有很多跟数字打交道的情况,数字模型中是否是均匀分散的,可比的。特别是最后几个字「高效率、快速、经济的实验设计方法」,对那种科研领域的软件就特别适用了。

第四阶:功能图法和状态迁徙法

进阶到这一层,你已经是中级黑盒测试的水平了,这一阶是你要懂得灵活运用前面所有方法后,再次递进一层。

我们来看定义:

★ 功能图方法:是一种灰盒测试(因其兼有黑盒和白盒测试)用例设计方法,用功能图FD形式化地表示程序的功能说明,机械地生成功能图的测试用例。通常情况一个程序的功能说明由动态说明和静态说明组成。

动态说明描述了输入数据的次序或转移的次序。

静态说明描述了输入条件与输出条件之间的对应关系。

对于较复杂的程序,由于存在大量的组合情况,因此,仅用静态说明组成的规格说明对于测试来说往往是不够的,必须用动态说明来补充功能说明。

功能图模型由状态迁移图和逻辑功能模型构成。

★ 状态迁移图:用于表示输入数据序列以及相应的输出数据。在状态迁移图中,由输入数据和当前状态决定输出数据和后续状态。

逻辑功能模型用于表示在状态中输入条件和输出条件之间的对应关系,只适合于描述静态说明,输出数据仅由输入数据决定。

测试用例则是由测试中经过的一系列状态和在每个状态中必须依靠输入/输出数据满足的一对条件组成。

这次就2种方法一起来说,这2种方法已经是灰盒领域了,但通常运用在黑盒领域,细心的一看就知道,它们比因果图和场景法要更深一层,因为它们着眼于程序的内部逻辑。而场景和因果着眼于业务逻辑。所去到的层次是不一样的。

特别想说一下的是:比如:程序中有某个对象出现状态跳转的时候,你得第一时间反应到可能会运用功能图和状态迁移法的时候了,特别是大型业务系统出现很多状态跳转的时候,它们是最有效的。

第五阶:综合测试用例设计法

来到了最高阶,感受肯定是不一样的。

能够达到这里的测试,一定是在中级之上的,但还不能是高级测试。但也足可以立足测试界了。因为你站在了黑盒测试的金字塔的顶端,是你必须用心体验了十二种测试方法后,总结出属于你自己的一套体系,同时灵活运用前面所说的十一种设计方法。

你得知道每个方法在什么场合下使用,每种方法的优缺点,每种方法怎么搭配使用。怎么设计出高效精简的测试用例。

记住哦,你得自成一体,大道至简。万法归宗。

到后来,方法已经不重要了,重要的是你能够快速发现软件中的问题,并且发现至今还没有发现的问题。这种感觉只有自己有体会。恭喜你,你已经可以笑傲黑盒测试界的江湖了。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2016年6月15日
下一篇 2016年6月15日

相关推荐