单元测试,黑盒测试和白盒测试

时间:2011-08-31 14:31:55

标签: unit-testing testing white-box black-box-testing

什么是单元测试,黑盒测试和白盒测试?我用谷歌搜索,但我发现的所有解释都非常技术性。任何人都可以通过适当的例子以简单的方式回答这个问题吗?

4 个答案:

答案 0 :(得分:27)

在黑盒测试中,您并不关心被测物的内部是如何工作的。您调用公开的API并检查结果;你不关心被测试的东西能给你带来什么结果。

在白盒测试中,您关心被测事物的内部是如何工作的。因此,您可以检查正在测试的内容的内部变量是否正确,而不仅仅是检查事物的输出。

单元测试是一种测试软件组件的方法。 “单位”是被测试的东西。您可以使用单元测试进行黑白盒测试;这个概念与白/黑盒测试正交。

答案 1 :(得分:10)

缺乏任何细节的非技术性解释......来了......

  • Blackbox测试:在不知道内部应用程序如何工作的情况下测试应用程序

  • 白盒测试:测试应用程序,了解内部的工作原理,例如在进行测试时并排获取源代码。

  • 单元测试:您可以在此处创建与您的应用程序直接交互的测试。您将检查应用程序中的某个函数,并assert该响应应返回value X。单元测试通常(但不总是由开发人员自己创建),而如果公司进行白盒和黑盒测试,则任何人都可以完成。

这是一个非常基本的解释。

答案 2 :(得分:1)

Blackbox测试:这始终是基于用户或客户端的测试,其中测试是根据提供的要求完成的。此测试仅由测试人员完成。

Whitebox测试:这是为了验证代码库的流程。测试条件语句,循环语句等的流程。这主要来自开发人员的预期。

单元测试:当您使用测试数据测试代码中的每个方法并断言时,这是白盒测试的一部分。现在,测试人员和公司完成的这一天从测试人员那里了解了这项技能,他们能够理解代码和算法。

答案 3 :(得分:-1)

黑匣子测试:

  1. Tester是一个人而不是开发人员
  2. 测试人员 知道如何实施系统*
  3. 当系统对测试的任何步骤的响应不是预期结果时,测试人员将报告问题。
  4. 白盒测试:

    1. Tester是一个人而不是开发人员
    2. 测试人员确实知道如何实施系统*
    3. 当系统对测试的任何步骤的响应不是预期结果时,测试人员将报告问题更有可能检测到测试用例本身或系统的问题收到预期的结果。
    4. 单元测试:

      1. 测试程序通常是测试系统中特定模块的代码。例如,在Java中,项目可能有一个名为Student的类和一个名为StudentTest的测试类。对于Student中的每个函数(如getGrades),StudentTest可能有0个或更多函数来测试它们(如getGradesTest)。这只是一种这样的方式。
      2. 测试代码通常只知道系统某部分的各种输入的预期输出。
      3. 单元测试通常在提交代码之前运行,或在构建要部署的应用程序时自动运行。目标是防止在添加,更改或删除功能时将多少错误引入系统。
      4. *黑匣子测试仪和白盒测试仪之间已知的知识量因组织而异。例如,我认为可用性测试,另一家公司可能会称之为黑盒测试。某些公司的白盒测试仪可能是另一个开发人员(开发人员QA),而另一个组织可能不允许开发人员完成任何测试签核。黑匣子测试人员可能只是拥有他们需要遵循和验证的指令列表的人,或者可能是通常知道系统如何工作的人,但不是特别详细的。例如:

          

        黑盒测试人员可能会或可能不会发现问题,尽管测试用例符合预期,例如电子商务测试用例省略了收集访客结帐送货地址的步骤。

        基本上,白盒和黑盒测试很少严格执行。大多数组织都有单元测试,开发人员测试(可能会或可能不会正式记录 - 取决于失败的影响),QA测试人员(黑色,白色以及之间的每种灰色阴影),以及用户测试/商业标志 - off(应该参与整个项目的人员,但是在运行不良的组织中只会出现在开始和结束时,并在部署之前将完成的项目发送回设计)。