什么是黑盒测试?(技术、示例、类型)
什么是黑盒测试,它是如何工作的?
黑盒测试是一种软件测试方法,它测试被测软件 (SUT) 的功能,而不考虑其具体的实现细节、内部路由知识或内部代码结构。
这种类型的测试完全依赖于软件的规范和需求。
黑盒测试关注的是软件系统的输出和输入,而不是程序的底层知识。
“黑盒”是指进行这种测试的系统,它可以是任何程序,例如数据库、网站或操作系统。
黑盒测试包含什么?
黑盒测试检查系统的整体功能及其行为。
这种测试方法也称为行为测试或功能测试。
在软件测试生命周期的各个阶段,例如回归测试、验收测试、单元测试、系统测试、集成测试和软件开发中,这种测试方法都至关重要。
想要进行软件验证的最终用户可以从黑盒测试方法中受益。
黑盒测试技术
在对软件程序进行黑盒测试期间使用的方法如下。
边界值分析 (BVA)
这是等价划分中最重要和最有用的黑盒测试技术之一。BVA 可用于评估任何具有边界或极值范围的程序。
这种方法能够发现输入值限制中的问题,而不是关注输入值的范围。边界值分析也处理边缘或极端输出值。
等价类划分
黑盒测试是一种经常用于编写测试用例的方法。它有助于将大量潜在输入压缩成少量更有效的输入。
这是通过将输入分类到类中并为每个类分配一个值来实现的。
当需要进行大量测试并且不想让输入冗余时,可以使用此方法。
状态转换测试
此方法通常检查一段时间内系统的状态、输出和输入。
它根据被测试软件的类型,测试系统在特定状态或其他状态下的行为变化,同时保持相同的输入。
此方法的测试用例是通过检查输入转换和状态或事件发生的顺序来构建的。
预测的输出值和所有状态都将在整个测试用例集合中遍历。
功能测试和非功能测试的区别
使用决策表进行测试
条件 | 规则 1 | 规则 2 | 规则 3 | 规则 4 |
---|---|---|---|---|
月末 | 否 | 是 | 是 | 是 |
工资已转账 | N/A | 否 | 是 | 是 |
公积金 | N/A | N/A | 否 | 是 |
操作 | ||||
所得税 | 否 | 否 | 是 | 是 |
公积金 | 否 | 否 | 否 | 是 |
在某些情况下,监视多个选项的输入组合可能会变得相当复杂。
在这种复杂的情况下,使用决策表,因为它们为测试人员提供了输入和预期结果的有序视图。
此方法与基于图形的测试非常相似,区别在于使用表而不是图表或图形。
基于图形的测试 (GBT)
在此黑盒测试方法中,绘制图形以显示原因(输入)和触发效果(输出)之间的关系。
此测试使用了各种输出和输入组合。它是一个理解软件功能性能的有用工具,因为它生动地描绘了输入和输出的流程。
错误猜测技术
这种测试方法能够预测错误的输出和输入,从而允许测试人员快速纠正问题。它完全依赖于最终用户的判断和对先前经验的印象。
除了上面提到的方法外,还有一些其他常用的此测试方法,例如模糊测试、全对测试和正交阵列测试。
黑盒测试示例
下面的示例演示了如何使用这些测试方法来评估具有给定输入的特定软件。
考虑购物场景时,
如果您花费 500 美元,您将获得 5% 的折扣。
如果您花费 1000 美元,您将获得 7% 的折扣。
如果您花费 1500 美元或更多,您将获得 10% 的折扣。
可以使用此测试的等价划分方法将输入划分为四个部分,金额小于 0、0-500、501-1000、1001-1500 等。此测试方法不会考虑最大购物限额或产品规格等变量。
当将边界值添加到分区时,边界值将为 0、500、501、1000、1001 和 1500。最低值和最高值通常使用 BVA 方法进行评估,因此将包括 -1、1 和 499 等数字。此类值将有助于解释软件输入值的性能。
根据黑盒测试的状态转换测试方法,当购物者在一个月内两次花费超过 1500 美元时,他的状态将从金牌会员变为白金会员,如果他在接下来的两个月内没有购物,他的状态将恢复为金牌会员。测试人员可以通过使用其他测试用例来实现如此复杂的跟踪。
黑盒测试类型
回归测试、单元测试、beta 测试、集成测试、系统测试、功能测试、负载测试和其他流程都分为不同的类别。但是,这里描述的是最常见的类型。
功能测试 (FT) − 此类测试帮助测试人员确定软件或系统的功能需求。
回归测试 − 此类测试是在系统维护操作、升级或代码补丁之后进行的,以查看新代码与旧代码的比较情况。
非功能测试 (NFT) − 此类测试与功能测试无关,而是关注非功能因素,例如可用性、可扩展性和性能。
黑盒测试与白盒测试的区别
下表突出显示了黑盒测试和白盒测试之间的区别:
黑盒测试 | 白盒测试 |
---|---|
用于评估软件,而不了解其内部工作原理。 | 在了解软件的基本结构后执行。 |
测试人员负责此项。 | 开发人员负责此项。 |
无需了解编程。 | 需要了解编程。 |
需要实现专业知识。 | 无需任何先前的实现经验。 |
下一级别的测试 | 较低级别的测试 |
时间较短。 | 时间较长。 |
通过反复试验完成。 | 可以测试数据域和边界。 |
黑盒测试有多种形式和大小。
| 白盒测试有多种形式和大小。
|
不适合测试算法 | 适合测试算法 |
黑盒测试级别可用于各种情况:
- 集成测试
- 系统评估
- 验收测试
什么是黑盒测试以及它是如何工作的?
将分析规范和需求。
将向系统提供正面和负面输入以对其进行验证。
测试的输出将在事先指定。
将执行测试用例。
将比较实际输出和预期输出。
将对已修复的问题进行重新测试。
黑盒测试最重要的工具
对于功能和回归测试,使用带有 Selenium 的 QTP。
使用 LoadRunner 和 Jmeter 进行非功能测试
分步流程
一般来说,遵循系统的程序来测试项目/应用程序可以保持质量,并且对后续轮次的测试长期以来都是有价值的。
第一步是理解应用程序的需求说明。应该有一份完善的SRS(软件需求规格说明书)。
使用前面描述的黑盒测试方法(例如边界值分析、等价划分等)确定有效和无效输入及其预期输出的集合,并据此构建测试用例。
运行预定的测试用例以查看它们是通过还是失败,并将实际结果与预期结果进行比较。
将失败的测试用例作为缺陷/错误报告给开发团队,由开发团队修复。
此外,测试人员在问题修复后会重新测试这些问题,以查看它们是否仍然存在。
黑盒测试的优点
测试人员不需要具备技术背景。重要的是设身处地为用户着想,从用户的角度进行测试。
项目/应用程序完成后即可开始测试。测试人员和开发人员分别在其各自的领域工作,互不干扰。
对于大型和复杂的应用程序,它更有效。
可以在测试过程中尽早发现缺陷和不一致之处。
黑盒测试的缺点
如果您没有任何技术或编程经验,则有可能忽略被检查场景的可能情况。
通过绕过所有可用的输入和输出测试,可以在给定的时间内测试更少的输入和输出。
对于大型和复杂的项目,不可能实现完全的测试覆盖率。