首页 > 代码库 > 软件测试基本方法(三)之黑盒测试

软件测试基本方法(三)之黑盒测试

黑盒测试:

  • 概念:也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
  • 分类:黑盒测试有很多具体方法,这里只选取两种最常用的——等价类划分法和边界值分析法。

等价类划分法:
定义:分为有效等价类和无效等价类。有效等价类是合理的输入数据,可检查程序是否实现了规格说明中所规定的功能和性能。无效等价类与有效等价类的意义相反。

例1:
输入日期,如200001,前四位代表年,后两位代表月,限制条件为日期由年月的6位数字组成,日期限制在2000年1月至2045年12月(奇点时刻,有兴趣的朋友参见超链接:))。下面就是等价类划分的一个实例。



例2:

问题:针对国内18位身份证号码验证,通过等价类划分法设计测试用例。

先了解一下18位身份证,拿370686199211204618来说:

37——所在省

06——所在地级市

86——所在县级市

19921120——出生年月日

461——顺序码,表示你在该地区与你同年同月同日生的人群中的序号,奇数表示男,偶数表示女

8——对前17进行加权求和并mod11,如果结果为10,用‘X’表示



总之根据输入要求,先明白合理等价类是什么,然后再找出不合理等价类。曾经有位scrum master说这是最重要最基本的测试方法,但某些测试人员却不遵守。

边界值分析法:
定义:确定边界情况(输入或输出等价类的边界),选取正好等于、刚刚大于或刚刚小于边界值作为测试数据。

例3:
如上面例1,如果用边界值法,会有如下测试用例:
  • 200001(边界有效最小值)、204512(边界有效最大值)
  • 199901、199912、204601、204612(边界无效值)
边界值分析法常被看做是等价类划分法的一种补充,二者结合起来使用更有效。

例4:
对于一个排序程序,设计它的边界值。

其边界条件有:
  • 排序序列为空
  • 排序序列仅有一个数据
  • 排序序列为最长序列
  • 排序序列已经按要求排好序
  • 排序序列的顺序与要求的顺序恰好相反
  • 排序序列中的所有数据全部相等
例5:
一个文本输入的测试过程,字符编码采用ASCII码。如果输入0~9,那么这个输入的边界字符为/(斜杠)和:(冒号)。

总结:

除了以上两种,还有判定表法、因果图法等。其实所有的白盒和黑盒,最终都要生成测试用例,关于测试用例,如下:

  • 测试用例:为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。
  • 一个测试用例用于证明该需求已经满足,通常称作正面测试用例;另一个测试用例反映某个意外的条件,用于论证只有在所需条件下才能够满足该需求,这个测试用例称作负面测试用例
  • 测试用例是软件测试的核心。