功能测试又称正确性测试,它检查软件的功能是否符合规格说明。由于正确性是软件重要的质量因素,所以其测试也重要。

    基本的方法是构造一些合理输入,检查是否得到期望的输出。这是一种枚举方法。测试人员一定要设法减少枚举的次数,否则测试投入太大。关键在于寻找等价区间,因为在等价区间中,只需用任意值测试一次即可。等价区间的概念可表述如下:记(A, B)是命题f(x) 的一个等价区间,在(A, B)中任意取x1进行测试。如果f (x1) 错误,那么f (x) 在整个(A, B)区间都将出错。如果f (x1) 正确,那么f (x) 在整个(A, B)区间将正确。上述测试方法称为等价测试,来源于人们的直觉与经验,可令测试事半功倍。

    还有一种有效的测试方法是边界值测试。即采用定义域或者等价区间的边界值进行测试。因为容易疏忽边界情况,程序也“喜欢”在边界值处出错。例如测试平方根函数的一段程序。凭直觉输入等价区间应是(0, 1)和(1, +∞)。可取x=0。5以及x=2。0进行等价测试。再取 x=0以及x=1进行边界值测试。

    有一些复杂的程序,我们难以凭直觉与经验找到等价区间和边界值,这时枚举测试相当有难度。