1、浅析黑盒测试理论及在程序设计中的应用 摘要:程序设计是软件专业的一门重要课程,在完成一个问题的设计思路后,如何判断其结果的正确性,必须要进行相应的测试,软件测试方法分为白盒测试与黑盒测试,而黑盒测试对于初学者来说简单易行,本文针对黑盒测试方法对其原理进行了分析与阐述,并针对实际问题在程序设计中加以分析及应用。 关键词:黑盒 测试 1 黑盒测试概述 1.1 什么是黑盒测试 黑盒测试也称功能测试或数据驱动测试,它是指在已知产品所应具有功能前提下,通 ?测试来检测每个功能是否都能正常使用。在测试时,把程序看成一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试。 1.
2、2 黑盒测试的优缺点 优点如下:比较简单,与软件的内部实现无关;从用户角度出发;基于软件开发文档。其缺点如下:覆盖率较低,大概只能达到代码量的 30%左右;自动化测试复用率较低。 1.3 黑盒测试方法 黑盒测试 方法主要有五种,分为等价类划分法、边界值划分法、错误推测法、场景法和因果图法。在实际测试用例设计过程中,不仅根据需要、场合单独使用这些方法,而且常常综合运用多个方法,使测试用例的设计更为有效。 2 等价类法 2.1 等价类定义 指某个输入域的子集合。在该集合中,各个输入数据对于揭露程序中的错误都是等效的。包括有效等价类和无效等价类。有效等价类指符合需求规格说明书,合理地输入数据集合。无
3、效等价类指不符合需求规格说明书,无意义地输入数据集合。 2.2 等价类划分的原则 划分等价类最重要的原则是集合的划分。集合划分为互不相交的子集。确定等价类的原则如下: 如果规定了输入值的范围,可以分为一个有效等价类,两个无效等价类;如果输入是布尔表达式,可以分为一个有效等价类和一个无效等价类;如果输入条件规定了输入值的集合或者 “ 必须如何 ” 的条件,则可以确定一个有效等价类和一个无效等价类;在规定了输入数据的一组值(假定 n个),且程序要对每一个输入值分别处理的情况下,可确定 n个有效等价类和一个无效等价类;在规定了输入数据必须遵守的规则的情况下,可确定一个有效等价类和若干个 无效等价类。
4、 2.3 等价类的应用 案例 1:输入 X值,当 X0 时,输出 1;当 X=0 时,输出 0;当 X0 时,输出为 -1。 利用 c#语言编写程序代码片断如下: Int x=1; elseif( x=0) y=0 else y=-1; 利用等价类法划分为三个有效等价类, 根据上述测试,分析与测试结果完全符合预期,程序完全正确。 3 边界值法 3.1 边界值法定义 边界值法就是假定错误发生在输入和输出边界上,并对其进行测试分析的方法 ,实践证明,大量的错误发生在输入或输出范围的边界上,而不是输入或输出范围的内部。 3.2 边界法的应用 案例 2:利用循环计算前 100 项的和。利用 c#语句编
5、写代码片断如下: 重点关注在循环到终点时的情况,即边界值为 99、 100、 101时的情况,根据上表分析,当 i 值在临近边界 99时,累加情况刚好随着 i值累加到了99, i值为 100时,累加刚好到 100, i值为 101时循环结束。此时刚好累加到 100 程序终止,可见程序分析和测试结果完全正确。 4 场景法 4.1 场景法内涵 场景是通过描述流经用例的路径来确定的过程,这个流经过程要从用例开始到结束遍历所有基本流和备选流。场景法就是根据这些基本流和备选流的流动过程设计测试用例。 4.2 场景法应用 案例 3:从甲地到乙地,经过二次猜数游戏方能顺利到达,每次猜数最多只能猜三次,猜错则
6、被淘汰,否则正常通过。用伪代码编写 c#程序如下: Booleanf=true; For( int i=1; i=3; i+) 猜数; if(猜错) f=false; For( int i=1; i=3; i+) 猜数; if(猜错) f=false; If( f)通过; else 不通过; 将上述三种场景进行测试分析,程序完全符合预期,程序设计正确。 5 其它方法简述 因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。错误推测法是根据经验和直觉推测程序中所有可能存在的各种错误,从而有针对性地设计测试用例的方法。 综述,在程序设计中充分利用软件测试的方法和原理可以有效地检测和防止 程序中发生的各种错误,对于提高程序的分析和设计能力具有重要的意义,丰富了软件过程设计思想。