智能遍历测试在回归测试与健壮性测试的应用

简介: 智能遍历测试在回归测试与健壮性测试的应用

首先来看业界用的较早也是经常听过的一款工具—— Monkey。这是 Android 官方提供的一个工具。谷歌原本设计这款工具是为了对 App 进行压力测试的。谷歌早期在设计 Android 的时候,Android 需要响应滑动、输入、音量、电话等事件,早期 activity 设计不完善的时候,谷歌希望测试 activity 的性能,把所有的数据批量化的输出给 activity,看 activity 一秒钟可以处理多少数据。所以早期 Monkey 是用来做 Android 的一个压力测试的工具。

由于 Monkey 在测试过程中的“随机”性,恰巧可以被用来做自动遍历测试,但是 monkey 的缺点很明显,不支持业务行为定制,无法灵活的控制,经常会点到外部的 App 无法回归原测试 App;或者点击到注销和退出,造成无法继续后面的测试;因此 monkey 在经过调研了解后没有成为我们做自动遍历测试的首选。

Monkey 官方链接:

https://developer.android.com/studio/test/monkey

Maxim 也是一款自动遍历工具,由国内的 zhangzhao 同学开发,官方给出的定义是:

我们来看看这款工具的优缺点:

优点:

  • 基于Monkey二次开发,运行速度非常快
  • 提供了多种遍历算法以提高覆盖度
  • 提供了定制化功能,可以实现流程控制
    缺点:
  • 因为是基于 Monkey,所以不具备跨平台性,只能测试 Android,不能测试 iOS,Web 等;
    这是一款很优秀的工具,可在一定程度上进行定制,如果只测试 Android 系统的话,可以考虑选用 Maxim 做自动遍历。

官方 GitHub 地址:

GitHub

GitHub - zhangzhao4444/Maxim: 高速uiautomator控件解析算法的Android Monkey,...

高速uiautomator控件解析算法的Android Monkey, 每秒10-15个Action Event。实现快速DFS算法的Android Monkey , 每秒 5个Action Event。 - GitHub - zhangzhao4444/Maxim: 高速uiautomator控件解析算法的Android Monkey, 每秒10-15个Action Event。实现快速D...

Fastbot是字节跳动的Quality Lab团队开发的一款融合了机器学习与强化学习的基于模型测试的工具。

中文介绍

英文介绍

Fastbot可以理解为MaxIM的升级版,为了增强覆盖,融合了多种机器学习、强化学习等相关的算法。他的执行速度很快,并显著提升了测试覆盖度。应用的效果也是非常不错的。

这是来自于作者团队的效果介绍

官方 GitHub 地址:

https://github.com/bytedance/Fastbot_Android 1

AppCrawler 是由霍格沃兹测试开发学社第一任校长思寒开源的一个项目,官方 GitHub 上对这款工具的解释是:

这里顺便提一下的是谷歌也发布了一款自动遍历的工具,名字几乎一样,叫做 App Crawler (差了一个空格),设计的思想也一致。思寒开源的的工具比谷歌早了两年时间。

下面来看看 AppCrawler 的作用和价值。看看它为何满足我们的测试需求,它的优缺点又在哪里。

优点:

  • 跨平台性:AppCrawler 是基于 Appium 开发的,所以支持 Android、iOS、Web以及GUI
  • 灵活定制:对遍历的页面、控件、事件、深度等都可自由控制

缺点:

  • 运行速度较慢:AppCrawler 是基于 Appium 开发具备了跨平台的优点,但是也因为这层封装造成了运行速度相对较慢,再加上运行过程中加入了截图(可以在配置中取消,但是取消后不利于结果的查看),运行起来自然就慢了;
  • 使用门槛高:正因为使用灵活性的问题,也造成了使用门槛的提高,主要基于 YAML 文件中使用 Appium 的相关技术知识进行配置,这就对使用者有了一定的技术要求;

给大家介绍了常见的几款遍历工具,相信大家已经对自动遍历已经有所了解。那么如何把这套有趣又有用的技术落地到自己的工作中以保证好回归测试、健壮性测试效果哪?


[更多技术文章](https://qrcode.ceba.ceshiren.com/link?name=article&project_id=qrcode&from=bjhao&timestamp=1650525227)

相关文章
|
25天前
|
SQL 安全 测试技术
【软件设计师备考 专题 】测试要求说明书的编写和应用
【软件设计师备考 专题 】测试要求说明书的编写和应用
55 0
|
29天前
|
安全 测试技术
现代软件测试中的自动化技术应用及挑战
在当今数字化时代,软件测试的重要性日益凸显。本文探讨了现代软件测试中自动化技术的应用现状和挑战,分析了自动化测试在提高效率、降低成本、增强可靠性等方面的优势,同时也提出了自动化测试所面临的挑战和解决方案。
|
20天前
|
Web App开发 Java 测试技术
深入理解与应用软件自动化测试工具Selenium
随着软件开发的快速发展,软件测试在保证产品质量方面发挥着越来越重要的作用。其中,自动化测试以其效率高、成本低的特点受到了广大开发者的欢迎。本文主要介绍了自动化测试工具Selenium的基本概念、原理以及在实际开发中的应用,旨在帮助读者更好地理解和使用Selenium进行高效的自动化测试。
22 4
|
25天前
|
机器学习/深度学习 算法 安全
新时代软件测试:智能化趋势与挑战
随着人工智能技术的不断发展,软件测试领域也面临着前所未有的变革和挑战。本文将探讨智能化在软件测试中的应用现状、发展趋势以及相关挑战,带领读者深入了解新时代软件测试的发展方向。
18 1
|
26天前
|
设计模式 敏捷开发 监控
深入理解与应用软件自动化测试框架
在快速迭代的软件开发过程中,自动化测试已成为确保产品质量和加快交付速度的关键因素。本文将详细探讨自动化测试框架的核心原理、设计模式及其在实际项目中的应用。我们将分析几种流行的自动化测试工具,如Selenium、Appium和JUnit,并讨论它们如何集成以形成强大的测试解决方案。文章还将展示通过自定义框架来满足特定测试需求的实例,以及如何通过持续集成和持续部署(CI/CD)流程优化测试实践。
|
29天前
|
缓存 运维 Serverless
应用研发平台EMAS产品常见问题之测试检查更新没有反应如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
|
29天前
|
敏捷开发 供应链 测试技术
深入理解与应用软件测试中的Mock技术
【2月更文挑战第30天】 在现代软件开发过程中,单元测试是保证代码质量的重要手段。然而,对于高度依赖外部系统或服务的应用来说,传统的单元测试方法往往难以实施。Mock技术应运而生,它通过模拟外部依赖的响应,使开发者可以在隔离的环境中测试目标代码。本文将探讨Mock技术的概念、应用场景以及如何在软件测试中有效地使用Mock对象,以增强测试的灵活性和可靠性。
|
10天前
|
测试技术 C语言
网站压力测试工具Siege图文详解
网站压力测试工具Siege图文详解
19 0
|
1月前
|
JavaScript jenkins 测试技术
这10款性能测试工具,收藏起来,测试人的工具箱!
这10款性能测试工具,收藏起来,测试人的工具箱!
|
1月前
|
人工智能 监控 测试技术
利用AI辅助工具提升软件测试效率
【2月更文挑战第17天】 随着科技的不断发展,人工智能(AI)在各个领域的应用越来越广泛。在软件测试领域,AI技术也发挥着重要作用。本文将探讨如何利用AI辅助工具提升软件测试效率,包括自动化测试、智能缺陷识别和预测等方面。通过引入AI技术,软件测试过程将变得更加高效、准确和可靠。
164 1