了解黑匣子测试 - 类型、技术和实例

122 阅读9分钟

了解黑匣子测试 - 类型、技术和实例

当你听到黑匣子这个词,特别是关于测试的时候,你会想到什么?嗯,这是不太容易听到的东西,但仍然是软件测试的一种基本形式。因此,它是一种软件测试技术,从外部角度检查软件的功能,而不深入挖掘其代码。黑盒测试最好的一点是,它可以应用于所有级别的测试(单元、集成、系统和验收)。任何人都可以对软件产品进行黑盒测试,没有编码语言的软件测试人员也可以这样做。

什么是黑盒测试?

在一个黑盒子里,我们无法透过盒子知道里面是什么;我们只能从外面知道它是一个黑颜色的盒子。同样,在软件测试领域,黑盒测试是一种测试技术,在不强调其设计和内部编码结构的情况下检查被测试的应用程序。它的执行是为了从外部检查软件的行为。因此,它也被称为行为测试,即,在不看代码细节的情况下,你的软件在不同情况下的行为如何。在某些方面,我们都在生活中尝试过黑匣子测试。例如,在按下自行车的启动按钮时,我们希望它能启动,而不去研究它的内部工作机制。

换句话说,它专注于软件的功能,而不需要任何编码知识。它包括从客户的角度进行软件测试,即软件的用户界面。它检查产品与客户的关系,以找出影响软件成功或失败的外部因素。黑匣子测试是在测试过程的最后阶段进行的,以检查软件的功能方面。它只关注应用程序的输入和输出。

黑盒测试帮助测试人员识别以下问题。

- 软件的功能缺失

- 使用应用程序界面时发生的错误

- 访问数据库时的错误

- 在某一特定功能的开始和结束时发生的错误

-应用程序性能和行为方面的问题

黑盒测试对应用程序进行测试,同时考虑到终端用户。它检查可用性,功能,以及作为一个完整系统的应用程序的性能。

白盒与黑盒测试

相比之下,白盒测试是一种纯粹关注软件内部代码结构工作的测试方法。它需要深入的编码知识来了解软件的构建方式。黑盒测试不是白盒测试的替代品。它是对它的补充。例如,如果你在网站上进行交易,并测试在交易时是否有任何故障发生,它是在黑盒测试的帮助下确定的。而如果你研究同一网站的源代码,检查特定表格的功能,了解变量,基于核心编码知识的限制,这被称为白盒测试。换句话说,白盒测试提供了整个系统的内部视角,它使用最高的编程技巧检查应用程序的设计和内部结构。

黑盒测试的例子

让我们看一下黑盒测试的几个例子,以便更好地了解这种测试方法。

例1:测试文字处理器是否按预期工作。一种情况是检查用户是否可以创建新文件,保存,打开或删除现有文件。另一种情况是测试编辑工具的功能,如剪切、复制、选择、改变文件的字体大小/颜色等。

例2:测试网站登录屏幕的登录功能。在黑盒测试的帮助下,测试人员将测试使用用户名和密码(输入)是否允许一个人无缝登录到系统(输出)。在这里,测试人员不会进入背后的代码功能;他将只是检查输入的有效性和收到的结果。如果用户输入了错误的密码,但没有得到任何错误信息,黑盒测试人员会检测到这一点,并将其发送给编码人员进行解决。

有不同的方法来执行黑盒测试,例如:

-手动:通过测试用户数据和错误信息,以用户身份检查应用程序的用户界面。

-自动:记录用户与软件的交互,找出错误。

-文档化:一种手动方法,测试人员记录软件应该执行的功能,而不关注它应该如何执行。

黑盒测试的类型

随着黑盒测试的范围不断扩大,它有许多类型,其中最突出和最受欢迎的类型是。

功能测试:这是最常用的黑盒测试类型,测试人员专注于软件的核心功能、操作和规格。测试人员通过向应用程序输入信息来获得所需的输出。它通常在非功能测试之前进行。各种类型的功能测试有烟雾测试、单元测试、集成测试、用户验收测试等,可以以手动或自动的方式进行。

非功能测试:这种类型的黑盒测试侧重于软件功能以外的方面,如可用性、可靠性、可扩展性和性能。与这些方面有关的任何问题都会严重影响用户体验。因此,有必要保持产品的质量。各种类型的非功能测试包括负载、性能、压力、合规性测试等。

回归测试:它是在代码修复/更改或系统升级后进行的,以确保任何代码修改不影响软件的现有功能。它是SDLC的一个重要组成部分;任何软件都必须经过回归测试,以处理未见的影响。

这里有一张有用的海报,强调了黑盒测试的不同类型。

黑盒测试的技术

我们知道黑盒测试对组织提高其软件应用的质量有多大影响和好处。有许多黑盒测试技术可用于满足软件测试要求。让我们来看看测试策略中的流行技术。

  1. 等价分割
    在这种类型的黑盒测试技术中,行为相同或产生类似结果的输入被划分并归入一个类别。从每组中挑选一个输入值并进行测试。对于每一组,选择一个有代表性的值并进行测试。测试组中的每个值都会很耗时。在这种技术中,只测试每组中的代表值,这样更容易一次测试许多输入,保持测试覆盖率,并减少返工。

  2. 边界值分析这是一种流行的黑盒测试技术,其工作原理与等价测试类似。然而,这种技术不是测试每组的代表值,而是测试每组输入的边界值(包括有效和无效的输入)。据观察,应用程序在边界附近面临问题,这意味着在边界之后,系统开始表现出不同的极限。

  3. 决策表测试这种技术适用于功能之间有逻辑输入的情况,如if/else条件。这里要考虑不同的输入组合。我们使用条件(输入)和动作(输出),用决策表来检查系统行为。

  4. 状态转换测试在这种技术中,输入/输出和系统状态在整个测试阶段都被考虑。它对软件应用程序的测试输入的转换序列进行测试。它检查系统行为的变化,取决于什么事件发生/或什么输入值被赋予。事件引发的状态,成为测试人员测试的场景。比如说。当用户三次输入错误的密码时,所有三个输入将被发送到登录页面。第三次尝试将产生一个错误信息给用户。这种方法考虑了所有三种系统状态,只通过正确的状态序列。

  5. 基于图的测试

    为应用程序所包含的对象准备一个图。然后基于这个对象图,弄清每个对象之间的关系,并编写测试来发现错误。它使输入和输出的流程和关联性可视化。

  6. 错误猜测技术。

    这种测试技术是完全基于经验的。在这里,测试人员猜测应用程序的错误方面(输入/输出)。判断完全基于他以前对软件行为、功能和对终端用户体验影响的经验。

除了上述的黑盒测试技术外,还有一些其他的技术,如所有配对测试和正交阵列测试,比较测试等。

结论

为了确保软件质量得到维持,并且不会因为用户体验不好而失去客户,你的应用程序应该使用合适的测试技术经过严格的监督。黑盒测试是在没有任何编码知识的情况下调查软件功能的最简单和最快的解决方案。关于白盒测试与黑盒测试的辩论是一个不断盛行的讨论,其中两者都是赢家。无论是白盒测试还是黑盒测试,都取决于你想深入到被测软件结构的程度。如果你想从终端用户的角度来测试功能,黑盒测试就很合适。而如果你想把你的测试工作引向软件是如何建立的,它的编码结构和设计,那么白盒测试就很好用。然而,两者都旨在以各自不同的方式提高软件质量。上面讨论了很多黑盒测试技术。测试人员可以结合不同的技术来获得黑盒测试的好处。无论你使用什么测试方法,你的测试策略的最终目的应该是尽量减少错误和应用程序失败的风险,并最大限度地提高软件质量和用户体验。