探索性测试

17 Mar 2025 | 5 分钟阅读

在本节中,我们将学习探索性测试、其类型、何时使用以及其优缺点。

什么是探索性测试?

如果需求不存在,那么我们将进行一轮探索性测试。

因此,首先,我们将以所有可能的方式探索应用程序,理解应用程序的流程,准备测试文档,然后测试应用程序,这种方法被称为探索性测试。

Exploratory Testing

何时使用探索性测试

我们将针对以下方面使用这种测试

  • 当需求缺失时
  • 需要早期迭代时
  • 测试团队拥有经验丰富的测试人员,当我们的应用程序很关键,并且有新的测试人员加入团队时。

例如,为了测试任何软件或应用程序,我们首先会执行单元测试、集成测试和系统测试

所以,如果我们要理解任何应用程序,我们首先会执行单元或组件测试,假设应用程序有一个包含许多元素的登录页面,我们将理解每个部分并进行组件测试,但实际上,我们正在进行探索性测试,因为我们正在探索应用程序。

假设应用程序中有许多模块,我们正在尝试执行一些集成场景。

间接地,我们只是在执行集成测试时进行探索性测试。

而且,即使我们正在执行系统测试,我们也在间接地执行探索性测试,因为这里我们也在理解和探索应用程序。

为什么需求会缺失

需求缺失的原因如下

如果项目非常老旧,测试工程师无法从一开始就理解每个场景,并且可能会出现需求缺失的情况。

例如,在每个公司中,我们不会看到任何快速流程,这意味着,我们不能指望在短短一个月内完成发布,并且产品应该在非常短的时间内交付。

许多公司在过去 6 到 12 年里仍然处于特定产品的开发阶段。

假设一家公司有一个 15 年的项目,他们现在雇佣了一名新的测试工程师。由于他/她对应用程序不熟悉,新的测试工程师在从头开始或一开始就理解每个场景或需求时会遇到许多困难。

在这种情况下,测试工程师将如何处理这个已有 15 年历史的软件?

所以首先,他/她将获取应用程序并开始探索应用程序。一旦测试工程师开始使用应用程序,他/她就会了解应用程序是如何工作的。而这个过程就是探索性测试。

如何进行探索性测试

要进行探索性测试,我们首先将开始使用应用程序,并从对产品有良好知识的人员(如高级测试工程师和开发人员)那里了解应用程序的需求。

然后我们将探索应用程序并编写必要的文档,并将此文档发送给领域专家,他们将审阅该文档。

我们可以根据我们的知识,并借助市场上已有的竞争产品来测试应用程序。

探索性测试的类型

探索性测试可分为三个部分,具体如下

  • 自由式
  • 基于策略
  • 基于场景
Exploratory Testing

自由式

在自由式测试中,我们不遵循任何规则,没有最大覆盖范围,我们将像 Adhoc 测试一样探索应用程序。

如果我们想熟悉软件并检查其他测试工程师的工作,我们可以使用自由式探索性测试。

基于策略

基于策略的探索性测试可以通过多种测试技术进行,例如基于风险、边界值分析和等价划分。

它由经验丰富的测试人员执行,并且是使用应用程序时间最长的人,因为他/她对应用程序非常熟悉。

基于场景

基于场景的探索性测试是在多种场景的帮助下进行的,例如端到端、测试场景和真实用户场景。

测试工程师可以在探索应用程序时,凭借他们的应用程序知识,发现缺陷并检查多种场景的各种可能性。

探索性测试的优缺点

优点

以下是探索性测试的一些优点

  • 如果测试工程师使用探索性测试,他/她可能会早期发现严重错误,因为这种测试所需的准备较少。
  • 在这种测试中,我们还可以发现那些可能在测试用例中遗漏的错误。
  • 这种测试可用于测试新功能,而对于现有功能,如果时间不足以测试应用程序,我们将使用回归测试。
  • 对于测试工程师来说,这种测试需要高度集中精力来探索应用程序。

缺点

以下是探索性测试的缺点

  • 耗时
    这是一个耗时的过程,因为我们不知道需求,也不知道应该先测试哪个功能,因为我们只是在探索应用程序。
  • 测试工程师会将功能误认为是错误。
    例如,假设我们有一个登录页面,要求我们提供必要的详细信息,如用户名、密码员工 ID,然后单击登录按钮。
    但在执行探索性测试时,我们只提供用户名、密码的详细信息,然后单击登录按钮,但我们没有输入员工 ID。由于我们没有需求,并且正在进行探索性测试,因此我们认为员工 ID 组件是一个错误,但它是一个功能。
  • 错误可能会被误解为功能
    例如,假设我们有一个注册页面,我们需要提供用户名、密码、手机号码电子邮件 ID等详细信息。
    需求规定,当我们提供手机号码和电子邮件 ID 时,相同的代码将发送到注册的电子邮件 ID 和手机号码,以验证其是否正确。
    但是当我们在注册页面上进行探索性测试并提供所有详细信息(用户名、密码、手机号码和电子邮件 ID)时,代码只会发送到我们的手机号码,而不会发送到电子邮件 ID。
    发生这种情况是因为需求缺失,我们会误解这个错误是一个功能,我们永远不会发现这是一个错误。

下一主题可视化测试