Get your 6-month No-Cost Opt-Out offer for Unlimited Software Automation?

大多数类型的软件测试都使用精心定义的测试计划来确保覆盖范围。 然而,虽然这些参数涵盖了使用软件的许多可能情况,但它们并不总能模仿不熟悉应用程序、只是试图以探索方式与之交互的用户的行为:这就是猴子测试。

在本文中,我们将介绍猴子测试的所有内容,包括猴子测试软件、流程、类型、方法等。

 

什么是猴子试验?

软件测试中的增量测试--深入探讨什么是增量测试、增量测试的类型、过程、方法、工具等!

猴子测试是一种日益流行的软件测试技术。 它包括向应用程序发送随机输入,以模拟用户界面交互的不可预测性。

目的是发现预定义测试用例可能难以检测到的错误或崩溃。 猴子测试模仿的是一个对应用程序毫无经验或知识的人随机探索软件的方式。

对于
加载

压力测试
应用。 实际上,测试提供连续的随机输入,试图破坏应用程序。

猴子测试与
特别测试
尤其是其随机性和不依赖测试计划的特点。 然而,两者之间的差异足以让人认为它们是不同的方法。

虽然有些开发人员认为猴子测试是一种特别测试,但两者之间的一个显著区别是,猴子测试可以由对应用程序一无所知的人进行。

猴子测试就是没有测试计划。 这是以崩溃软件为目标的随机输入。

 

为什么叫猴子试验?

α测试与β测试

至于为什么这种技术被称为猴子试验,目前还没有达成共识。 不过,在这个名字的背后有一些令人信服的理论。

 

理论 1:无限猴子定理

 

第一种理论认为,这个名字与 “无限猴子定理 “有关,”无限猴子定理 “是用来讨论统计概率的一个比喻。 简而言之,如果一只猴子坐在打字机前,在无限长的时间内随意敲击键盘,那么在某一时刻,它就会敲出威廉-莎士比亚的全部作品。

这里的想法是,猴子测试模拟这些随机按键,只要有足够的时间,就能涵盖应用程序在生产中可能遇到的所有情况。

 

理论 2:麦金塔的 “猴子”

 

另一种说法是,该名称来自 1983 年的一款 MacOS 应用程序,名为 “The Monkey”。 简而言之,研发第一台 Macintosh 电脑的团队希望找到一种方法,对他们的机器进行压力测试。

他们的理由是,如果让一只猴子疯狂地敲击键盘和移动鼠标,就能帮助他们测试计算机的应变能力。 他们手头没有活猴子,于是就制作了一个可以模拟这种使用的应用程序,并将其命名为 “猴子”。

 

为什么猴子测试很重要?

澄清软件测试自动化中的一些困惑

猴子测试之所以重要,主要是因为它能帮助团队发现应用程序中的边缘情况或意外行为。 这样做的目的是,开发人员可以使用猴子测试和更传统的方法来更好地了解应用程序在野外的受欢迎程度。

即使对产品进行全面测试,也无法与数万或更多用户长期使用应用程序相比。 在一小部分情况下,用户会要求应用程序做一些意想不到的事情。 通过测试用例揭示所有这些情况几乎是不可能的。

猴子测试试图涵盖这些近乎随机的情况。 当开发人员构建测试用例时,他们往往对应用程序有深入的了解。 他们了解用户的目标是什么,也知道在应用程序中应该使用哪种最佳交互顺序来实现某些目标。

对这些输入进行随机化意味着要以开发人员未曾考虑过的方式对应用程序进行测试。 总之,这可以增强软件的整体适应能力和耐用性,确保软件可以走向世界,面对广大用户的不可预测性而不会崩溃。

 

何时使用猴子测试?

检查清单 UAT、网络应用程序测试工具、自动化和更多

猴子测试是一种很好的辅助测试技术。 它的最大优势在于能够发现传统软件测试方法无法发现的意外错误。 因此,它最好与其他方法一起使用,如

通常情况下,开发人员会在测试流程的早期采用猴子测试。 在缺乏可借鉴的预定义测试计划时,它尤其有用。

 

如何进行猴子试验?

最受欢迎的 30 种 RPA(机器人流程自动化)工具和软件

在并不久远的过去,猴子测试都是人工进行的。 测试人员受雇敲击按钮、输入文本、选择对象等,以了解系统如何应对非常规输入。 这里存在着明显的问题。 首先,这相当耗时。 其次,很难保证这些行动能涵盖所有可能发生的情况。

 

人工猴子测试示例

下面是几个手动猴子测试的例子。 它还能让您了解自动化猴子测试所要模拟的内容。

  • 测试人员通过点击随机链接浏览网站,查看这些链接是否会导致应用程序崩溃或进入意外页面
  • 测试人员在表单字段中输入随机文本,查看应用程序的响应情况
  • 测试人员拖放图标和对象,查看它们的行为是否符合预期,还是会出现不想要的结果。

 

不同类型的猴子试验

网络应用程序自动化测试

开发人员主要使用三种类型的猴子测试来发现有关应用程序弹性的独特信息。

 

1.笨猴测试

 

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

笨猴测试描述了一种测试人员对被测应用程序一无所知的方法。 相反,测试人员被要求在完全不了解工作流程的情况下,按下按钮、输入文本等。 这种技术有助于发现开发人员没有意识到的重大缺陷。

 

2.智能猴测试

 

通过智能猴测试,测试人员对应用程序及其目的有一定的了解,甚至掌握了有关其工作原理的详细信息。 这一过程还使用了一种更有针对性的随机输入,旨在将应用程序推向特定的极限。 使用这种方法对压力和负载测试都有好处。

 

3.出色的猴子试验

 

聪明猴测试是智慧猴测试的升级版。 测试人员对应用程序有全面深入的了解,并以此为基础进行选择。 这种疏忽可以帮助测试人员发现很多错误,因为他们应该从用户的角度来理解产品。

 

猴子试验的利弊

挑战-负载测试

在决定使用猴子测试技术之前,您需要了解其利弊。

 

猴子测试的优势

 

1.查找罕见或隐藏的错误

猴子测试最令人信服的优点也许是,它能揭示错误、缺陷或行为,而这些错误、缺陷或行为可能不会被发现。 传统的测试技术很难找到这些边缘情况,因此猴子测试是测试崩溃、数据损坏和其他威胁应用程序稳定性的可靠方法。

 

2.确保稳健性

Monkey 测试旨在了解应用程序在实际使用过程中如何应对不可预测的情况。 当应用程序交到用户手中时,会产生许多不同的输入,这是开发人员无法预料的。 猴子测试可以模拟这种情况,从而获得更可靠的构建。

 

3.成本效益

与其他类型的测试相比,猴子测试的成本效益非常高。 这有几个原因。 首先,您无需花费大量时间为应用程序设计用例。 其次,猴子测试软件工具在很大程度上是自动化的,这就为开发人员腾出了时间从事其他工作,从而为您节省了资金。

 

4.多功能性

猴子测试的一大优点是,没有技术背景的人也能进行测试。 事实上,在某些情况下,最好是有一个完全绿色的人。 更重要的是,这些测试的设置非常简单,这再次减少了对技术熟练的工程师的依赖。

 

5.早期错误检测

在开发生命周期的早期发现并解决错误,可以节省开发时间。 猴子测试在测试中引入了一定程度的随机性,这可以帮助您发现代码中的缺陷,同时又易于修复。

 

猴子测试的缺点

 

1.覆盖范围

虽然猴子测试可以提高测试覆盖率,但它缺乏其他测试类型的计划性和策略性。 实际上,因为你是在用随机输入的方式轰击应用程序,所以在查找错误时,你只能听天由命。 这并不是说它不能找到所有的东西,但如果没有一个明确和预定义的策略,你就不能百分之百地确定所有的东西都被捕捉到了。

 

2.有限的应用

猴子测试并不适合所有类型的应用。 它非常适合具有大量不同特性和功能的复杂应用程序,最重要的是,这些应用程序可能会与用户产生意想不到的交互。 提供更严格和可预测功能的计划不太可能从这些测试中受益。

 

3.耗时

人工猴子测试非常耗时。 它需要与模块和软件进行大量交互,而且不能保证每次交互都能发现错误。 当然,您也可以实现流程自动化,从而节省大量时间和资源。

 

4.误报

由于猴子测试的混沌或随机性质,一些输入可以模拟在产品实际使用过程中不会发生的情况。 这种情况可能会产生误报,导致编码员修复不必要的问题。

 

什么是混沌猴测试?

什么是混沌猴测试?

混沌测试是一种软件工程技术,它使用受控和故意的实验来破坏系统(甚至诱发故障),以评估系统的复原力和恢复能力。

故意破坏系统以确保弹性的想法在软件开发领域非常普遍,而这些方法通常会产生工程师可以支持的构建结果。

2008 年,在经历了为期三天的数据库损坏后,流行的流媒体服务 Netflix 决定迁移到亚马逊网络服务(AWS)。 这样做的目的是避免单点故障,减少因扩大服务范围而产生的可扩展性问题。

团队实施了混沌猴测试,以测试 AWS 基础设施上面向公众的实例。 这样做有两方面的好处:

  1. 这一过程暴露了 Netflix 工程师可以修复的弱点
  2. 这激励团队为其服务建立自动恢复机制。

混沌猴子测试是混沌工程的一部分。 它用于测试系统的容错能力,以及即使个别组件出现意外故障,系统仍能保持稳定和性能的能力。

虽然它与猴子试验有关,但却是一种独特的技术。

 

猴子测试与大猩猩测试

猴子测试与大猩猩测试

您可能还听说过软件开发中的大猩猩测试概念。 虽然这两种技术都有灵长类动物的名称,但它们有许多相似之处和不同之处。 让我们来了解一下什么是大猩猩测试以及它的应用场合。

大猩猩测试被认为是猴子测试的结构化版本。 相比之下,猴子测试通常用于测试的早期阶段,此时还没有正式的测试用例。 另一方面,猩猩测试使用自动化工具或脚本为软件应用程序生成随机输入。

大猩猩测试比人工猴子测试更快、更有效。 它覆盖面广,是查找需要解决的崩溃问题的绝佳方法。 不过,它最适用于边界明确的应用,或彻底测试特定模块。

在现代软件开发测试中,猴子测试和大猩猩测试都有自己的用武之地。 了解它们是在正确的空间使用正确方法的关键。

 

什么是最好的猴子测试工具?

最佳猴子测试工具

Monkey 测试软件已成为现代开发人员工具包的重要组成部分。 不过,现在也有一些选择。 那么,哪种猴子测试工具最好呢? 以下是您需要了解的几个方面。

 

1.ZAPTEST

 

ZAPTEST 是一款功能强大的
免费的企业软件测试自动化工具
它支持各种测试自动化技术,包括猴子测试。 ZAPTEST 有助于猴子测试的一些功能包括

 

  • 无代码脚本记录: 团队可以记录用户交互并将其转换为测试代码。
  • 输入生成ZAPTEST 方便了随机输入的生成,这是猴子测试的核心要素之一
  • 强大的报告功能: ZAPTEST 提供强大的报告功能,帮助您记录测试结果

 

当然,这些功能只是 ZAPTEST 广泛测试技术(包括猴子测试)功能的皮毛。 借助 WebDriver 集成、人工智能功能和 ZAPTEST CoPilot,团队可以在一个地方体验软件测试的未来。

此外,ZAPTEST 企业用户还可获得专职的 ZAP 专家和无限量的许可证,而且所有费用都是可预测的固定费用。

 

2.浏览器

Appium 是一款开源工具。 您可以在安卓和 iOS 系统中使用它。 它允许用户自动进行移动应用程序交互,并具有猴子测试功能。 开发人员可以模仿各种用户界面反应,如输入文本、点击、轻点和滚动。

虽然 Appium 是移动开发人员的好工具,但它缺乏桌面和网络测试功能。

 

3.猴子测试

Monkey Test It 是一个基于云的测试平台,具有包括猴子测试在内的一系列测试功能。 虽然 Monkey Test It 非常方便用户使用,但它的功能可能不如其他工具强大。

其他缺点是,它的外观可以更漂亮一些,文件也可以更完善一些。 此外,一些用户还抱怨测试结果不准确。 尽管如此,这只是一个价格低廉的简单程序,所以你不能对它寄予厚望。

 

4.MonkeyTestJS

MonkeyTestJS 是一款基于 JavaScript 的开源澳大利亚工具,仅适用于网络应用程序。 它相当简陋,但足以胜任工作。 该工具可让开发人员模拟用户与网络应用程序的交互,如点击、表单提交、键盘输入等。

显然,该工具的一个缺点是只能用于网络应用程序。 不过,它还是值得放在你的工具箱里。

 

什么是最好的专用 Android 猴子测试工具?

 

对于希望给 Android 应用测试带来一些混乱的开发人员来说,有几个不错的选择。 让我们来看两个。

 

1.安卓版用户界面/应用程序练习猴

UI/Application Exerciser Monkey for Android 是一款命令行工具,可让开发人员向 Android 设备和模拟设备发送伪随机输入或事件。 该工具在 Android Debug Bridge 外壳中运行。

 

2.安卓版 MonkeyRunner

MonkeyRunner for Android 是一款流行的 Android 猴子测试工具。 该软件是一个应用程序接口,可让开发人员编写模拟或控制安卓设备的程序。 对于功能测试和单元测试来说,它也是一个不错的选择。

这两种应用程序都是不错的选择。 不过,它们的技术性较强,并不适合所有团队。

 

猴子测试应该自动化吗?

自动化负载测试

手动猴子测试的最大问题之一就是非常耗时。 还有一点需要注意的是,几个测试人员很难真正模拟广大用户与特定应用程序的各种交互。

因此,三个直接的缺点跃然纸上。 手动猴子测试是:

  • 耗时的
  • 昂贵
  • 可能缺乏覆盖面

自动猴子测试工具可以解决所有这些问题。

 

ZAPTEST 是满足您的猴子测试需求的正确选择吗?

 

猴子测试是一种很好的测试技术,尤其是在设计复杂的应用程序时。 然而,购买专用的猴子测试软件价格昂贵。


ZAPTEST
是一款灵活而强大的
全栈测试自动化工具。
它可高度定制,允许开发人员和非技术团队构建和设计无穷无尽的软件测试技术,包括猴子测试。

如果辅以其他类型的测试,猴子测试是一个不错的选择。 ZAPTEST 在一个屋檐下提供所有服务,还包括 高质量的 RPA 工具。

 

最后的想法

Monkey 测试软件为开发人员提供了一种非传统的应用程序测试方法。 这种技术的优势在于它能够模拟用户使用软件时的无数种不可预知的方式。 简而言之,猴子测试提供了测试计划可能难以实现的覆盖范围。

Download post as PDF

Alex Zap Chernyak

Alex Zap Chernyak

Founder and CEO of ZAPTEST, with 20 years of experience in Software Automation for Testing + RPA processes, and application development. Read Alex Zap Chernyak's full executive profile on Forbes.

Get PDF-file of this post