分享

黑盒测试与白盒测试的优缺点

 东北十三少 2022-09-09 发布于四川

软件测试可以分为黑盒测试(又叫功能测试)和白盒测试(也叫结构化测试或者逻辑驱动测试)。

所谓黑盒测试,就是把软件当作一个“黑盒”,测试人员不关心软件的内部结构、运作情况只需要根据软件需求文档,验证软件与需求的一致性。所以,如果软件只进行黑盒测试是不需要提供源代码的。

黑盒测试能够发现以下类型的错误:软件的功能错误或遗漏的功能、界面错误、数据结构或外部数据库访问错误、性能缺陷、初始化和程序终止错误等。

黑盒测试不应当由编码人员来执行,因为他知道太多的程序内部知识。最常见的黑盒测试类型有功能测试、容量测试、安全性测试、负载测试、恢复性测试、稳定性测试、可靠性测试等。

黑盒测试具有以下优点:

  • 对于大规模软件,黑盒测试比白盒测试效率要高;

  • 进行黑盒测试时测试人员不需要了解实现的细节,包括特定的编程语言;

  • 进行黑盒测试的测试人员和软件编程人员是彼此独立的;

  • 可以从用户的视角进行黑盒测试;

  • 有助于暴露任何与需求不一致或有歧义的问题;

  • 测试用例可以在需求确认完成之后马上进行。

黑盒测试具有以下缺点:

  • 黑盒测试只能测试到部分可能的输入;

  • 如果没有清晰和简明的需求文档,黑盒测试的测试用例很难设计;

  • 难以实现对程序路径的完全覆盖;

  • 不能直接针对特定代码段测试,可能隐藏更多的问题。

所谓白盒测试按照程序内部的结构来测试程序,检验程序中的每条路径是否都能按预定要求正确工作。因此,白盒测试是基于程序的测试,测试人员必须知道软件内部的工作过程,

白盒测试的主要方法有基本路径测试和控制结构测试等。白盒测试又可分为静态方法和动态方法。静态分析是不通过执行程序进行测试的方法。它是任何进一步测试执行的前提。动态分析方法包含了程序在受控环境下使用特定的期望结果进行正式的运行。

白盒测试期望达到这样的目的:

  • 所有独立路径至少都能测试一遍;

  • 所有逻辑判断都能测试True和False两条路径;

  • 所有循环结构都能测试到边界和循环域内的情况;

  • 所有的内部结构都能被测试以确保其有效性。

白盒测试具有以下优点:

  • 迫使测试人员去思考软件的实现(所以白盒测试通常由编码人员完成);

  • 可以检测代码中的每条分支和路径(逻辑覆盖率高);

  • 验证代码实现的正确性;

  • 对代码的测试比较彻底(代码覆盖率100%)。

白盒测试具有以下缺点:

  • 需要投入巨大的工作量,代价昂贵;

  • 无法检测代码中遗漏的路径和数据敏感性错误;

  • 不能验证需求文档的正确性。

总之,黑盒测试和白盒测试的测试对象、测试目的是不同的,白盒测试重在验证代码的正确性,黑盒测试重在软件与需求的符合性,在软件的测试过程中,二者缺一不可。

这正是:

测试分为黑白盒,二者功效差很多

若要测试很有效,二者缺一都不可

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多