什么是黑盒测试?
在黑盒测试中,测试人员没有关于软件系统内部工作的任何信息。黑盒测试几乎可以应用于软件测试的每个级别:单元、集成、系统和验收。
什么是白盒测试?
白盒测试是一种检查系统内部功能的测试技术。在此方法中,测试白盒测试方法假定单元或程序中的逻辑路径是已知的。
关键差异
- 在黑盒中,测试是在不知道程序或应用程序的内部结构的情况下进行的,而在白盒中,测试是在知道程序的内部结构的情况下进行的。
- 比较黑盒测试和白盒测试时,黑盒测试不需要编程知识,而白盒测试需要编程知识。
- 黑盒测试的主要目标是测试软件的行为,而白盒测试的主要目标是测试系统的内部操作。
- 比较白盒测试和黑盒测试,黑盒测试关注的是外部或最终用户的角度,而白盒测试关注的是代码结构、条件、路径和分支。
- 黑盒测试提供低粒度报告,而白盒测试提供高粒度报告。
- 比较黑盒测试和白盒测试,黑盒测试不是一个耗时的过程,而白盒测试是一个耗时的过程。
黑盒测试与白盒测试的区别
下面是白盒测试和黑盒测试的主要区别:
黑盒测试与白盒测试的区别
参数 | 黑盒测试 | 白盒测试 |
---|---|---|
定义 | 用于在不了解程序或应用程序的内部结构的情况下测试软件。 | 已知内部结构的测试方法。 |
别名 | 称为数据驱动、盒测试、数据测试和功能测试。 | 称为结构测试、清盒测试、基于代码的测试或玻璃盒测试。 |
测试基础 | 测试基于外部预期;应用程序的内部行为未知。 | 内部工作是已知的,测试人员可以进行相应的测试。 |
用法 | 适合更高级别的测试,如系统测试、验收测试。 | 最适合较低级别的测试,如单元测试、集成测试。 |
编程知识 | 不需要编程知识。 | 需要编程知识。 |
自动化 | 测试和程序员是相互依赖的,很难实现自动化 | 白盒测试很容易实现自动化 |
目标 | 主要目标是检查被测试系统的哪些功能。 | 主要目标是检查代码的质量。 |
测试用例的基础 | 编写需求规范文档后,即可开始测试。 | 准备好详细设计文档后,可以开始测试。 |
由以下人员测试 | 由最终用户、开发人员和测试人员执行。 | 通常由测试人员和开发人员完成。 |
粒度 | 粒度低 | 粒度高 |
测试方法 | 基于试错法的 | 基于测试数据域和内部边界。 |
时间 | 耗时少 | 耗时多 |
算法测试 | 不适合算法测试 | 适合算法测试 |
代码访问 | 不需要代码访问 | 需要代码访问。因此,如果测试被外包,代码可能会被泄漏。 |
优势 | 非常适合和高效地处理大型代码段。 | 允许删除额外的代码行,可能会隐藏缺陷。 |
技能级别 | 测试人员可以在不了解编程语言或操作系统实现的情况下测试应用程序 | 需要一个具有丰富经验的专家测试员来执行白盒测试 |
技巧 |
等价划分进行黑盒测试。 等价分区将输入值分为有效分区和无效分区,并从测试数据的每个分区中选择相应的值。
边值分析 检查输入值的边界。 |
语句覆盖、分支覆盖和路径覆盖是白盒测试技术。 语句覆盖率验证代码的每一行至少执行一次。
分支覆盖验证每个分支是否至少执行一次 路径覆盖法测试程序的所有路径。 |
缺点 | 如果要频繁改动,自动化测试脚本也需要频繁改动。 | 如果代码库变化很快,自动化测试用例可能很快失效。 |