首页 >> 网络安全 >>渗透测试 >> 黑盒测试与白盒测试:了解区别
详细内容

黑盒测试与白盒测试:了解区别

时间:2020-11-24        阅读

质量保证不足是破坏软件公司声誉的最快,肯定的方法之一。

隐藏在应用程序源代码中的微小错误可能导致巨大的财务损失。如果错误足够严重,则该公司可能永远无法恢复。


备受瞩目的软件案例遭到破坏,并给大型公司造成了数百万美元的损失,这些问题一直无时无刻成为头条新闻。由于POS系统故障,星巴克曾经不得不暂时关闭其一半以上的北美门店。由于安全气囊传感器故障,日产曾经不得不召回超过一百万辆汽车,而事实证明这是软件故障。


对于市值数十亿美元的全球组织而言,从重大软件问题中反弹是真正的挑战。对于较小的公司,这可能是一个巨大的挑战,无法应对。


这就是为什么任何发布软件的组织都必须对软件测试非常熟悉。测试可以识别应用程序代码中的错误,差距和缺少的要求。这使软件开发团队能够在发布之前纠正错误。


测试软件的两种主要方法是白盒测试和黑盒测试。这些测试方法具有不同的优点和缺点。每个解决方案都旨在解决特定问题,并提供对软件问题原因的质量保证见解。

1.jpg

白盒测试

白盒测试也称为结构测试。一些开发人员将其称为透明盒测试或玻璃盒测试。

白盒测试技术着重于系统地检查应用程序的源代码。开发人员可以自动化白盒测试,以便在开发过程进行之前有效地解决错误的代码行。


白盒测试的主要目的是验证应用程序代码的质量。由于系统的内部结构是已知的,因此开发人员可以查明错误的出处。例如,在正确配置的白盒测试中,相对容易发现定义不清的变量或调用函数不准确。


白盒测试人员需要是一位软件工程师,他必须完全了解所测试应用程序的预期结果。即使安装了一流的自动化工具,它仍然是一种详尽而耗时的体验。如果应用程序的代码库快速更改,则自动测试可能不起作用。


白盒测试技术的示例包括:

  • 语句覆盖率:此测试技术验证每行代码是否至少执行一次。

  • 分支覆盖率:此测试技术验证每个分支是否至少执行一次。

  • 路径覆盖:此测试技术检查程序描述的所有路径。

白盒测试的缺点之一是它公开了代码。外包测试的开发人员冒着被盗代码的风险。开发人员应该只信任在白盒测试方面具有长期记录的知名专家。

2.jpg

黑盒测试

黑盒测试也称为功能测试或数据驱动测试。这种方法的目的是检查程序功能。


无需编程知识即可进行黑盒测试。软件酯是浏览应用程序界面的人类用户。应用程序是否通过测试取决于其可用性,而不是基于其代码的质量。


由于黑匣子测试人员不知道该程序的工作原理,因此他们的担忧反映了普通用户的担忧。此测试方法基于反复试验。


程序员可能无法预测黑盒子测试人员可能选择的特定路径,这将导致错误。然后,程序员将需要检查代码以查找失败原因。


黑盒测试非常适合具有清晰功能的大型代码段。它是外包测试的理想选择,因为它允许低技能的测试人员完成有价值的工作。由于未公开该代码,因此不会存在知识产权被盗的风险。


黑盒测试方法有多种,其中大多数专注于测试输入:

  • 等效分区将大量潜在的输入减少为小型的,代表性的测试用例。它是创建测试用例的理想选择。

  • 边界值分析寻找会产生误差的极限输入值。测试人员会寻找输入值的边界并进行报告。

  • 因果图使用图来识别产生错误的输入值。它是多元输入类型的理想选择。

3.jpg

何时使用白盒与黑盒测试

白盒测试不需要完整的用户界面。当程序员希望测试早期的应用程序构建时,这是更可取的。它提供了一种快速,彻底的方法来测试程序中的每个路径。这样可以确保代码是好的–但不能保证它可以执行用户想要的操作。


白盒测试不会将程序和测试环境分开。有时更新会破坏源代码。这可能会对显影时间造成额外负担。


这使白盒测试成为开发过程中的不错选择。当需要验证程序的一小部分时,白盒测试使其成为一项简单的内部任务。随着发布日期的临近,白盒测试逐渐被黑盒测试所取代。


黑盒测试最适合已完成的程序。在发布之前测试程序的大型团队可以在最后一刻确定用户体验问题。测试用例很容易制作,程序员可以快速响应它们。


仔细组织黑盒测试方案非常重要。测试结果可能很难重现。测试可能变得多余。即使在最佳情况下,测试也很少涵盖所有软件路径。


由于黑盒测试人员不需要高技能,因此程序员可以在发布日期临近时扩大测试范围。这为软件公司提供了发布最终产品的同时,增强最终用户体验的最佳机会。

.
更多

1589982338979126.png


ots网络社区

www.ots-sec.cn

联系方式
更多

投稿邮箱:1481840992@qq.com

交流群2群:622534175

ots网络社区3群:1078548359

关注我们
更多
技术支持: 建站ABC | 管理登录