【问题标题】:Unit testing, Black-box testing and white box testing [closed]单元测试、黑盒测试和白盒测试
【发布时间】:2011-08-31 14:31:54
【问题描述】:

什么是单元测试、黑盒测试和白盒测试?我用谷歌搜索,但我发现的所有解释都是非常技术性的。谁能用适当的例子简单地回答这个问题?

【问题讨论】:

  • 不是这样的问题。您甚至可以通过阅读您使用的标签的描述来自己回答部分问题。维基百科对这些主题非常清楚。有趣的是这里弹出了什么:|
  • “这个问题看起来很幼稚吧”。同意。您能否附上您的具体问题,以便我们尝试提供帮助?

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


【解决方案1】:

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

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

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

【讨论】:

  • 更好地说,单元测试与被测组件的大小有关。单元测试着眼于测试隔离的代码块,而不是整个功能、应用程序或整个系统。 “单元”的大小显然可以解释,但在 OOP 中,通常指的是单个类。
【解决方案2】:

一个非常非技术性的解释,缺乏任何细节......来......

  • 黑盒测试:在不了解内部应用程序如何工作的情况下测试应用程序

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

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

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

【讨论】:

    【解决方案3】:

    黑盒测试:

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

    白盒测试:

    1. 测试人员是人,而不是开发人员
    2. 测试人员是否知道系统是如何实现的 *
    3. 当系统对测试任何步骤的响应不是预期结果时,测试人员将报告问题并且更有可能检测到测试用例本身或系统存在问题,尽管收到预期的结果。

    单元测试:

    1. 测试程序通常是测试系统中特定模块的代码。例如,在 Java 中,一个项目可能有一个名为 Student 的类和一个名为 StudentTest 的测试类。对于 Student 中的每个函数(如 getGrades),StudentTest 可能有 0 个或多个函数来测试它们(如 getGradesTest)。这只是其中一种方法。
    2. 测试代码通常只知道系统一部分的各种输入的预期输出。
    3. 单元测试通常在提交代码之前运行,或者在构建要部署的应用程序时自动运行。目标是防止在添加、更改或删除功能时将尽可能多的错误引入系统。

    * 黑盒测试人员和白盒测试人员之间已知的知识量因组织而异。例如,我认为的可用性测试,另一家公司可能称之为黑盒测试。某些公司的白盒测试员可能是另一个开发人员(开发人员 QA),而另一个组织可能不允许开发人员完成任何测试签核。黑盒测试人员可能只是拥有一份他们需要遵循和验证的指令列表的人,也可能是通常知道系统如何工作但不是特别详细的人。例如:

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

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

    【讨论】:

    • 开发者不是人?
    • 不,他们是超人 :)
    【解决方案4】:

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

    白盒测试:这是为了验证代码库的流程。测试条件语句、循环语句等的流程。这主要是从开发人员的角度来看的。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多