什么是单元测试,黑盒测试和白盒测试?我谷歌了一下,但我找到的所有解释都是非常技术性的。有人能用一个简单的例子来回答这个问题吗?
在黑盒测试中,您不关心被测试事物的内部是如何工作的。调用公开的API并检查结果;你不关心被测试的东西为了给你结果做了什么。
在白盒测试中,您确实关心被测试事物的内部是如何工作的。因此,除了检查程序的输出,您还可以检查被测试程序的内部变量是否正确。
单元测试是一种测试软件组件的方法。"单元"是被测试的东西。你可以用单元测试进行黑盒和白盒测试;这个概念与白盒/黑盒测试是正交的。
一个非常非技术的解释,缺乏任何细节....来. .
-
Blackbox Testing:在不知道内部应用程序如何工作的情况下测试应用程序
-
白盒测试:在了解内部工作原理的情况下测试应用程序,例如在进行测试时将源代码并排放置。
-
单元测试:这是你创建测试直接与你的应用程序交互的地方。您将检查应用程序和
assert
中的一个函数,响应应该与value X
一起返回。单元测试通常(但不总是)由开发人员自己创建,而如果公司进行白盒和黑盒测试,则可以由任何人来完成。
这是一个非常基本的解释。
黑盒测试:
- 测试员是人而不是开发者
- 测试者不知道系统如何实现*
- 当系统对测试的任何步骤的响应不是预期结果时,测试仪将报告一个问题。
白盒测试:
- 测试员是人而不是开发者
- 测试人员是否知道系统是如何实现的* 当系统对测试的任何步骤的响应不是预期的结果时,
- Tester将报告一个问题并且更有可能检测到测试用例本身或系统的问题,尽管收到了预期的结果。
- Tester通常是测试系统中特定模块的代码。例如,在Java中,一个项目可能有一个名为Student的类和一个名为StudentTest的测试类。对于Student中的每个函数(如
getGrades
), StudentTest可能有0个或多个函数来测试它们(如getGradesTest
)。这只是其中一种方法。 - 测试代码通常只知道系统某一部分的各种输入的预期输出。单元测试通常在提交代码之前运行,或者在构建要部署的应用程序时自动运行。目标是在添加、更改或删除功能时防止尽可能多的错误被引入系统。
*黑盒测试人员和白盒测试人员之间已知的知识数量因组织而异。例如,我所说的可用性测试,另一家公司可能称之为黑盒测试。在一些公司中,白盒测试人员可能是另一个开发人员(开发人员QA),而另一个组织可能不允许开发人员完成任何测试签名。黑盒测试人员可能只拥有一系列需要遵循和验证的指令,也可能是通常知道系统如何工作的人,但不是特别详细的级别。例如:
尽管测试用例符合预期,黑盒测试人员可能会也可能不会识别问题,就像电子商务测试用例省略了收集客人结帐送货地址的步骤。
基本上,白盒和黑盒测试很少被严格执行。大多数组织都有单元测试、开发人员测试(可能有也可能没有正式的文档记录——取决于失败的含义)、QA测试人员(黑色、白色以及介于两者之间的每一个灰色阴影)和用户测试/业务签名(应该参与整个项目的人,但在运行不良的组织中只出现在开始和结束,并在部署之前将完成的项目送回设计)。
Blackbox测试:这总是基于用户或客户端的测试,其中测试是根据提供的需求进行的。此测试仅由测试人员完成。
白盒测试:这是为了验证代码库的流程。测试条件语句、循环语句等的流程。这主要是从开发者的角度来看。
单元测试:这是白盒测试的一部分,因为您使用测试数据测试代码中的每个方法并断言。现在有一天,测试人员和公司从测试人员那里看到了他们能够理解代码和算法的技能。