1 白盒测试
优点:
● 迫使测试人员去思考软件的实现;
● 可以检测代码中的每条分支和路径;
● 揭示隐藏在代码中的错误;
● 对代码的测试比较彻底;
● 最优化。
缺点:
● 昂贵;
● 无法检测代码中遗漏的路径和数据敏感性错误;
● 不验证规格的正确性。
2 黑盒测试
优点:
● 对比较大的代码单元来说,黑盒测试比白盒测试效率要高;
● 测试人员不需要了解实现的细节,包括特定的编程语言;
● 测试人员和编码人员是彼此独立的;
● 从用户的视角进行测试,很容易被理解和接受;
● 有助于暴露任何规格不一致或者有歧义的问题;
● 测试用力可以在规格完成之后马上执行。
缺点:
● 只有一小部分可能的输入被测试到,要测试每个可能的输入流几乎是不可能的;
● 没有清洗的和简明的规格,测试用例是很难设计的;
● 如果测试人员不被告知开发人员已经执行过的用例,在测试数据上会存在不必要的重复;
● 会有很多程序路径没有被测试到;
● 不能直接针对特定程序段测试,该程序段可能隐藏更多错误;
● 大部分和研究相关的测试都是直接针对白盒测试的。
3 灰盒测试
介于黑盒和白盒测试之间的一种测试。
2. 静态、动态测试方法的优缺点,适用范围分别是什么?分别举例说明。
静态方法是指不运行被测程序本身,仅通过分析或检查源程序的文法、结构、过程、接口等来检查程序的正确性。静态方法通过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用于进一步的查错,并为测试用例选取提供指导。
动态方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能,这种方法由三部分组成:构造测试实例、执行程序、分析程序的输出结果。
3. 手工、自动化测试方法的优缺点,适用范围分别是什么?分别举出实例进行说明。
手工测试方法能够发现更多的缺陷,测试设计不会遗漏问题。
缺点:测试重复频繁的测试,效率低,完全一致性得不到保证。
自动化测试方法的优点:
1、对程序的回归测试更方便。由于回归测试的动作和用例是完全设计好的,期望的结果也是可以预料的,自动运行何以提高测试的效率,缩短测试的时间;
2、可以运行更多更繁琐的测试;可以执行一些手工测试不能进行或者困难的测试,比如,对于大量用户的测试,不可能同时让足够多的测试人员同时进行测试,但是却可以通过自动化测试模拟同时有许多用户,从而达到测试的目的。
3、更好地利用资源。将繁琐的任务自动化,可以提高准确性和测试人员的积极性,将测试技术人员解脱出来投入更多精力设计更好的测试用例。有些测试不适合于自动测试,仅适合于手工测试,将可自动测试的测试自动化后,可以让测试人员专注于手工测试部分,提高手工测试的效率。
4、测试具有一致性和可重复性。由于测试是自动执行的,每次测试的结果和执行的内容的一致性是可以得到保障的,从而达到测试的可重复的效果。
5、测试的复用性。由于自动测试通常采用脚本技术,这样就有可能只需要做少量的甚至不做修改,实现在不同的测试过程中使用相同的用例。
6、增加软件信任度。由于测试是自动执行的,所以不存在执行过程中的疏忽和错误,完全取决于测试的设计质量。一旦软件通过了强有力的自动测试后,软件的信任度自然会增加。
自动化测试的缺点:不能取代手工测试,只能提高测试的效率,不能提高测试的有效性,不能发现更多的缺陷,对测试设计的依赖性大,不能保证正确性,工具不具有想象力,不具有智能。
使用于:智力含量低,反复频繁重复时,版本相对稳定时,项目中的技术能力达到,有代码编码能力时,进度允许时