1. 黑盒、白盒、灰盒测试方法的优缺点,适用范围分别是什么?分别举例进行说明。
白盒测试
优点:
● 迫使测试人员去思考软件的实现;
● 可以检测代码中的每条分支和路径;
● 揭示隐藏在代码中的错误;
● 对代码的测试比较彻底;
● 最优化。
缺点:
● 昂贵;
● 无法检测代码中遗漏的路径和数据敏感性错误;
● 不验证规格的正确性。
黑盒测试
优点:
● 对比较大的代码单元来说,黑盒测试比白盒测试效率要高;
● 测试人员不需要了解实现的细节,包括特定的编程语言;
● 测试人员和编码人员是彼此独立的;
● 从用户的视角进行测试,很容易被理解和接受;
● 有助于暴露任何规格不一致或者有歧义的问题;
● 测试用力可以在规格完成之后马上执行。
缺点:
● 只有一小部分可能的输入被测试到,要测试每个可能的输入流几乎是不可能的;
● 没有清洗的和简明的规格,测试用例是很难设计的;
● 如果测试人员不被告知开发人员已经执行过的用例,在测试数据上会存在不必要的重复;
● 会有很多程序路径没有被测试到;
● 不能直接针对特定程序段测试,该程序段可能隐藏更多错误;
● 大部分和研究相关的测试都是直接针对白盒测试的。
灰盒测试
介于黑盒和白盒测试之间的一种测试。