黑盒测试(black—boxtesting)又称功能测试、数据驱动测试或基于规范的测试
用这种方法进行测试时,被测程序被当作看不见内部的黑盒
在完全不考虑程序内部结构和内部特性的情况下,测试者仅依据程序功能的需求规范考虑确定测试用例和推断测试结果的正确性
因此黑盒测试是从用户观点出发的测试,黑盒测试直观的想法就是既然程序被规定做某些事,那我们就看看它是不是在任何情况下都做的对
完整的“任何情况”是无法验证的,为此黑盒测试也有一套产生测试用例的方法,以产生有限的测试用例而覆盖足够多的“任何情况”
由于黑盒测试不需要了解程序内部结构,所以许多高层的测试如确认测试、系统测试、验收测试都采用黑盒测试
黑盒测试首先是程序通常的功能性测试
要求:每个软件特性必须被一个测试用例或一个被认可的异常所覆盖;用数据类型和数据值的最小集测试;用一系列真实的数据类型和数据值运行,测试超负荷、饱和及其他“最坏情况”的结果;用假想的数据类型和数据值运行,测试排斥不规则输入的能力;对影响性能的关键模块,如基本算法、应测试单元性能(包括精度、时间、容量等)
不仅要考核“程序是否做了该做的
”还要考察“程序是否没做不该做的2”同时还要考察程序在其他一些情况下是否正常
这些情况包括数据类型和数据值的异常等等
下述几种方法:(a)等价类划分,(b)因果图方法,(c)边值分析法,(d)猜错法,(e)随机数法,就是从更广泛的角度来进行黑盒测试
每一个方法都力图能涵盖更多的“任何情况”,但又各有长处,综合使用这些方法,会得到一个较好的测试用例集
等价类划分等价类划分是一种典型的黑盒测试方法
等价类是指某个输入域的集合
它表示对揭露程序中的错误来说,集合中的每个输入条件是等效的
因此我们只要在一个集合中选取一个测试数据即可
等价类划分的办法是把程序的输入域划分成若干等价类,然后从每个部分中选取少数代表性数据当作测试