【正确答案】黑盒测试注重于测试软件的功能需求,因此设计测试用例时,需要研究需求规格说明书和概要设计说明中的有关程序功能或输入输出之间的关系等信息,从而与测试后的结果进行分析比较。用黑盒技术设计测试用例的方法一般有以下4种,但没有一种方法能提供一组完整的测试用例,以检查程序的全部功能,在实际测试中应该把各种方法结合起来使用。
(1)等价类划分。为了保证输入数据中选择一个适当的子集,使其发现更多的错误。等价类划分将输入数据域按有效的或无效的(也称合理的或不合理的)划分为若干个等价类,测试每个等价类的代表值就等于对该类其他值的测试。也就是说,如果从某个等价类中任选一个测试用例未发现程序错误,该类中其他测试用例也不会发现程序的错误。这样就把漫无边际的随机测试改变为有针对性的等价类测试,用少量有代表性的例子代替大量测试目的相同的例子,能有效地提高测试概率。
(2)边界值分析。边界值是指输入等价类或输出等价类边界上的值。实践经验证明,程序往往在处理边界情况时发生错误。边界情况指输入等价类和输出等价类边界上的情况,因此检查边界情况的测试用例是比较高效的,可以查出更多的错误。
使用边界值分析方法设计测试用例时~般与等价类划分结合起来。但它不是从一个等价类中任选一个例子作为代表,而是将测试边界情况作为重点目标,选取正好等于、刚刚大于或刚刚小于边界值的测试数据。
(3)错误推测。在测试程序时,人们可能根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地检查这些错误的测试用例,这就是错误推测法。
错误推测法没有确定的步骤,凭经验进行。它的基本思想是列出程序中可能发生错误的情况,根据这些情况选择测试用例。如输入、输出数据为零是容易发生错误的情况,又如,输入数据为空或输入数据只有一行是容易出错的情况等。
(4)因果图。等价类划分和边界值分析方法都只是孤立地考虑各个输入数据的测试功能,而没有考虑多个输入数据的组合引起的错误。因果图能有效地检测输入条件的各种组合可能会引起的错误。因果图的基本原理是通过画因果图,把自然语言描述的功能说明转换为判定表,最后为判定表的每一列设计一个测试用例。
前面介绍的软件测试方法,各有所长。每种方法都能设计出一组又用例子,用这组例 子容易发现某种类型的错误,但可能不易发现另一种类型的错误。因此在实际测试中,联合使用各种测试方法,形成综合策略,通常先用黑盒法设计基本的测试用例,再用白盒法补充一些必要的测试用例。
具体做法是:
①在任何情况下都应使用边界值分析法,用这种方法设计的用例暴露程序错误能力强。设计用例时,应该既包括输入数据的边界情况又包括输出数据的边界情况。
②必要时用等价类划分方法补充一些测试用例。
③再用错误推测法编程测试用例。
④检查上述测试用例的逻辑覆盖程度,如未满足所要求的覆盖标准,再增加例子。
⑤如果规格说明中含有输入条件的组合情况,则一开始就可使用因果图法。
【答案解析】