Monkey测试


Monkey测试

软件开发生命周期 (SDLC) 中,测试阶段起着至关重要的作用,它可以帮助测试工程师在产品发布前后一起建立产品的质量、性能、一致性、效率和安全性。

正如我们所知,测试过程是识别特定软件中的错误和缺陷并立即控制它们的最佳方式,它们会被测试工程师团队检测到。

在本教程中,我们将了解特定类型的软件测试的以下主题,即Monkey测试

  • Monkey测试简介
  • Monkey测试的属性
  • Monkey测试的使用
  • Monkey测试的类型
  • Smart Monkey 测试 vs Dumb Monkey 测试
  • Monkey测试与临时测试
  • Monkey测试的优点
  • Monkey测试的缺点

Monkey测试简介

一种独特的软件测试类型是Monkey Testing。它首先在Glenford J. Myers1979 年撰写的The Art of Software Testing\一书中介绍。

它是一种软件测试技术,用户通过提供随机输入来检查应用程序;这就是为什么它也被称为随机测试

如果我们没有足够的时间来编写和执行测试,我们将实施**Monkey测试。

它也被称为随机测试,最适合桌面、Web 和移动应用程序。如果我们使用随机测试或Monkey测试输入,这是一个省时省力的过程。

Monkey 测试通常作为随机、自动化的单元测试执行,并为我们提供从测试结果有效评估软件可靠性的好处。

Monkey测试主要是自动实现的,用户插入任何随机的无效输入并测试其性能。

如果我们正在执行负载和压力测试,Monkey 测试效果很好,或者我们可以这是一个非常好的方法。

通过随机测试创建或开发的数据还可用于近似产品一致性。另一方面,不能以这种方式使用各种测试方法来近似软件一致性。

这在测试工程师中很流行,因为他们使用此测试通过提供随机输入并检查其行为来测试应用程序。

使用临时性能检测软件应用程序中的错误和错误是执行Monkey测试的主要目的。

Monkey测试的特点

随后,Monkey测试包括通过提供一些随机数据并检测系统是否失败来测试软件或应用程序。

执行Monkey测试的主要目的是识别软件中的缺陷和错误,并确保在软件产品的整个开发完成后系统不会崩溃。

Monkey测试或随机测试的一些重要特征如下:

  • 在执行Monkey测试时,没有规范。
  • 这是一种本能测试,在没有考虑任何精确测试的情况下进行。
  • 当没有定期检测到缺陷时,就会实施Monkey测试。
  • Monkey测试用于列出系统的可靠性和性能。
  • 在Monkey测试中投入的时间和精力相对少于实际测试工作。
  • Monkey测试的实施保证了系统的可靠性和效率。

Monkey测试的使用

  • Monkey 测试可以通过开始一个事务并插入一些随机数据来进行数据库测试。
  • 它也可以在硬件的帮助下进行测试,或者更优选地,软件来模拟插入随机数据的Monkey的活动。
  • 为了测试应用程序的 OWASP 问题,我们可以使用预编译和随机数据。

Monkey测试的类型

根据其执行方式,Monkey Testing分为多种类型。为了快速了解它,我们可以在下面的图片中看到:

Monkey测试

  • Dumb Monkey Testing
  • Smart Monkey Testing
  • Brilliant Monkey Testing

现在,让我们一一看看,以便我们更好地理解:

Dumb Monkey 测试

第一种Monkey测试是Dumb Monkey 测试。这是最简单和直接的Monkey测试类型,不知道他们或系统的能力或应用程序的流程。

在这个测试中,我们可以比聪明的Monkey识别出更少的错误,但可以天真地发现难以发现的重大错误。

在这种情况下,测试经理或负责人指定一名不具备应用程序特定模块知识的测试工程师来测试产品。

即使是那些测试工程师也不知道给定的输入是有效还是无效。这就是为什么愚蠢的Monkey测试也被称为无知的Monkey

换句话说,我们可以说哑猴不知道应用程序或系统的工作流程或数据。

测试工程师被要求自动测试应用程序并输入测试工程师认为合适的随机数据。

以下功能可以识别一个愚蠢的Monkey:

  • 测试工程师的行为可能就像一个没有技术知识但正在尝试使用应用程序的用户。
  • 测试工程师可以根据自己的理解对应用进行测试,输入无效的数据。
  • 当测试工程师对应用程序没有任何想法时。
  • 要查看它是否按预期执行,我们可以记下应用程序的行为。
  • 测试人员不知道输入是否有效。
  • 当测试人员对用户界面和功能了解不多时。

智能Monkey测试

下一种Monkey测试是Smart Monkey 测试,其中测试工程师完全专注于系统或应用程序。

此外,测试团队知道确切产品的功能,因此提供合适且有效的输入,有助于对产品执行测试。

此外,智能Monkey测试知道应用程序的页面将重定向到哪里。

在智能Monkey测试中,测试工程师专注于超越应用程序,如果他们发现错误,他们就足够聪明地报告错误。此外,智能测试是执行负载测试和压力测试的绝佳选择。

换句话说,我们可以说测试工程师对系统、其目标和功能有一定的了解,并且测试工程师浏览系统并提供有效的输入以执行测试。

Brilliant Monkey测试

最后一种和第三种Monkey测试是出色的Monkey测试。在这种Monkey测试中,测试工程师对系统有很好的了解。

这种类型的测试还可以识别一些错误,这些错误将来可能会在软件中发现。

此外,测试工程师了解产品的使用模式,因此他们可以从用户的角度进行测试。

换句话说,我们可以说出色的Monkey测试比聪明的Monkey测试领先一步。

在这种情况下,测试工程师或测试工程师团队被分配执行任务,因为他们对特定软件领域及其功能有完整的了解。

Smart Monkey 测试和 Dumb Monkey 测试的区别

让我们在下表中看到Smart Monkey 测试和 Dumb Monkey 测试之间的一些重要比较。

Monkey测试

编号 Smart Monkey Testing Dumb Monkey Testing
1. 在这里,智能的Monkey知道系统的工作流程,这意味着产品在哪里以及将在哪里管理。 在这方面,DumbMonkey不知道系统的工作流程。
2. 在智能Monkey测试中,他们对软件产品有一些工作想法。 Dumb的Monkey中,他们没有任何与系统及其功能相关的知识。
3. 在这种情况下,智能的Monkey可以报告检测到的错误或缺陷的错误。 与智能Monkey测试相比,它发现的错误较少,但可能会发现即使是聪明的Monkey也难以检测的错误。
4. 在智能Monkey测试中,测试人员可以了解系统的能力及其强度。 Dumbmonkeys测试中,测试人员无法建立系统的能力。
5. 在智能的Monkey测试中,智能的Monkey很清楚系统的持续输入。这意味着他们了解有效和无效的输入类型。 Dumbmonkeys中,Dumbmonkeys不知道输入类型并提供有效或无效的系统。

Monkey 测试与 Gorilla 测试和 Fuzz 测试相似吗?

  • 众所周知,Monkey测试是预先计划好的,而Monkey测试本质上是非常临时的,与Monkey测试相比,我们必须混淆很多次。
  • 如果我们将模糊测试与大猩猩测试和Monkey测试进行比较,它们彼此有很大不同。
  • 对随机选择的数据输入进行模糊测试的关注,而Monkey测试则处理执行测试的随机动作。
  • 因此,我们可以得出结论,Monkey 测试不同于其他类型的测试程序,它们用于不同的目的。我们可以根据需要选择合适的测试类型,无论是Monkey测试、大猩猩测试还是模糊测试。

注意:有些人认为Monkey测试和临时测试是一种类似的测试技术,这是不正确的,因为临时测试是在没有任何计划或文档工作的情况下执行的。

为了澄清上面的说法,我们可以通过monkey和Adhoc测试的区别。

Monkey测试与临时测试

让我们在下表中看到Monkey测试和临时测试之间的一些显着差异:

Monkey测试

编号 Monkey Testing Adhoc Testing
1. 它是随机执行的,没有明确预定义的测试用例。 它是根据客户的要求执行的。
2. 它可以由任何人实施,甚至是不了解计算机或应用程序的个人。 它可以由开发人员以及对应用程序非常了解的测试工程师执行。
3. 实现Monkey测试的主要目标是使用随机或无效数据随机执行测试,以检查应用程序是否失败。 Adhoc 测试旨在通过随机使用应用程序来检查系统是否使应用程序崩溃或发现缺陷。
4. 在Monkey测试中,我们可以使用测试用例,因为它是随机的。 临时测试也是随机执行的,但不依赖或使用测试用例。
5. 在Monkey测试中,测试工程师可能不知道系统的全部内容及其目标。 在临时测试中,测试工程师必须在执行测试过程之前广泛了解系统。

Monkey测试的优缺点

它是一个软件测试程序,用于分析随机和临时的测试场景。尽管给最终用户和测试工程师带来了各种好处,Monkey测试也有许多缺点,这会抑制其积极的能力。

因此,有一些基本优点以及Monkey测试的缺点,如下所述:

Monkey测试的优势

以下是Monkey测试的一些重要好处:

  • 不需要熟练的测试工程师来执行Monkey测试。
  • Monkey测试非常划算。
  • 个人可以在此测试的帮助下快速分类错误,这可能会显着影响软件的效率和性能。
  • 测试软件的可靠性,这是一个很好的方法。
  • Monkey测试技术易于设置和实施。
  • 在Monkey测试期间可以识别新的错误;它们不会在传统测试中被发现。
  • 这是以临时方式执行压力测试和负载测试的最佳方法。

Monkey测试的缺点

以下是 Monkey 测试的缺点:

  • 评估Monkey测试期间发现的意外问题使这个过程变得非常困难和耗时。
  • 在Monkey测试中,识别出的错误可能超出范围或超出业务需求。
  • 测试工程师无法保证测试用例的准确性,因为他们难以定义准确的测试场景。
  • 在对错误进行分类之前,Monkey测试的实现可能会花费大量时间,因为它没有任何预定义的测试。
  • 它是随机完成的;这就是为什么测试用例覆盖率不能具体的原因。

概述

在本教程中,我们了解到 Monkey 测试是一种相对较新且在软件测试工程师中流行的软件测试,并且在某些测试领域非常有用。

Monkey 测试与Gorilla 测试Adhoc 测试明显不同。

Monkey测试分为三类测试,即Dumb monkey testing, Smart monkey testing, and Brilliant Monkey testing.

在 Monkey 测试中,用户输入随机输入,然后执行测试以检查其性能并了解系统或应用程序是否失败。

此外,Monkey测试是由测试工程师团队进行的自动化测试,没有任何详细的测试。

最后,我们可以说 Monkey 测试是检查软件功能质量和软件性能的最简单方法;由于这种质量,Monkey测试也被称为随机测试。