黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。
等价划分:等价划分通俗的意思就是说将测试用例分成一个个等效类,等效类中测试数据对于程序的测试所起到的作用是一样的,这样我们就可以减少测试的用例,毕竟对于每个用例我们都进行测试是不现实的,这样我们也大大减少了工作量。这样我们首先就要确定什么是有效类和无效类,有效类顾名思义就是说对于程序所需要的输入数据的范围,就是我们必须得让他们通过测试。而无效类就是说程序中没有要求的,也可以说成是违背了输入规则,也许是千奇百怪的输入,这是我们的程序都需要考虑的,不然遇到没看注意事项的用户乱输入出来了意想不到的结果可就不好了。实际来看个例子:
注意看输入的要求,第一行为一个整数,而第一行为一个整数,这就说明有效类至少是一个整数,无效类就是非整数,看后面还有要求N<=10000,就是说小于10000的整数是有效类,而非整数和大于10000的整数都是无效类。输出也分为有效类和无效类,这里要求输出为一个整数,则整数就是有效类,而非整数就是无效类。当然有些有效类还可以进行划分的更细,比如要求输入整数就可以分为负整数,0,正整数。当然这都根据具体情况具体分析。测试的时候一般是将所有有效类和无效类都进行测试一遍,防止各种错误情况的发生。这样也充分利用了分类的价值。
边界值分析: 一般在边界出现的错误可能性比较大,所以一般测试方法就是分为刚好等于边界,刚刚大于,刚刚小于边界值。比如上述程序,第一行整数要求能n<= 10000;这个时候我们应该测试n=9999和n=10000和n=10001:对于出错的情况我们就要进行相应的处理情况。特别注意参数的可能溢出的情况,有些怀有恶意的程序员故意使程序数值溢出然后破坏程序的数据结构,导致程序崩溃或者行为异常。有些溢出甚至会非法读取机器上存储的数据。例如2002年,人们发现了Sun Microsystems公司提供的实现XDR库的代码存在安全漏洞,就是因 为会产生乘法溢出。
错误推测:一般是依靠测试人员的经验,觉得哪个地方最有可能出现错误,随着经验的增长,能想到的出错的情况也就越多,能挑出来的错误会更多些。
原文:http://www.cnblogs.com/2014700519-cgp/p/5299215.html