写点什么

软件测试 / 测试开发丨智能遍历测试在回归测试与健壮性测试的应用

作者:测试人
  • 2023-03-23
    北京
  • 本文字数:2190 字

    阅读完需:约 7 分钟

公众号搜索:TestingStudio 霍格沃兹测试开发的干货都很硬核

随着移动互联网的发展,App 的功能变得越来越多,功能也越来越复杂。App 的回归测试、稳定性与健壮性也变得更加重要。更好的用户体验能让 App 在激烈的竞争市场中脱颖而出,从而为公司带来巨大的收益。因此针对 App 的自动化回归测试、非功能测试等相关的测试技术正成为软件工程和智能化测试的热门研究方向。


行业里比较流行的测试手段主要包括手工测试与自动化测试。在 App 的复杂性前提下,手工测试善于解决新 feature 的测试,但是很难及时有效的完成回归测试、兼容性测试等工作。自动化测试虽然可以做到及时反馈,但是要覆盖充分的功能,又会面临维护成本问题。那么有没有一种方法是可以很好的针对性的解决上述问题的呢?这就是我们今天给大家介绍的智能遍历测试技术。


遍历技术可以通过智能分析 app ui 模型与业务路径,实现自动化测试。它相对于手工测试,可以更快更全的覆盖功能点,相对于自动化测试又可以大大降低维护成本,所以智能遍历/自动遍历测试技术就成了最近几年各家名企都在大力去投资的一项测试技术。


接下来我们就带大家了解下行业里非常热门的几款智能遍历测试工具。

4 款常见自动遍历工具对比

Monkey app 压力测试工具

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


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


Monkey 官方链接:developer.android.com/studio/test…

Maxim 自动遍历工具

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

An efficient Android Monkey Tester, available for emulators and real devices 基于遍历规则的高性能 Android Monkey,适用于真机/模拟器的 APP UI 压力测试。

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


优点:

  • 基于 Monkey 二次开发,运行速度非常快

  • 提供了多种遍历算法以提高覆盖度

  • 提供了定制化功能,可以实现流程控制


缺点:

  • 因为是基于 Monkey,所以不具备跨平台性,只能测试 Android,不能测试 iOS,Web 等;

这是一款很优秀的工具,可在一定程度上进行定制,如果只测试 Android 系统的话,可以考虑选用 Maxim 做自动遍历。


官方 GitHub 地址:https://developer.android.com/studio/test/monkey%C2%A0

字节跳动 Fastbot 健壮性测试工具

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

中文介绍


基于 model-based testing 结合机器学习、强化学习的 APP 稳定性测试工具


英文介绍

Fastbot is a model-based testing tool for modeling GUI transitions to discover app stability problems. It combines machine learning and reinforcement learning techniques to assist discovery in a more intelligent way.



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


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

目前,Fastbot 已广泛应用于字节客户端类产品的稳定性测试与兼容性测试。每日启动任务数超过 300 次,每日平均发现 5000 个以上的崩溃,并有超过 100 个新捕获的崩溃。借助 Fastbot 的能力,我们在发版前就可以修复大部分的 crash,确保线上用户的使用体验。同时,Fastbot 在整个 DevOps 流程扮演重要的基础服务角色。我们相信,越来越多的智能化测试工具,将极大的改善国内传统测试行业。


官方 GitHub 地址:https://github.com/zhangzhao4444/Maxim

AppCrawler 优缺点

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

一个基于自动遍历的 App 爬虫工具。支持 Android 和 iOS,支持真机和模拟器。最大的特点是灵活性,可通过配置来设定遍历的规则。


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


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


优点

  • 跨平台性:AppCrawler 是基于 Appium 开发的,所以支持 Android、iOS、Web以及GUI

  • 灵活定制:对遍历的页面、控件、事件、深度等都可自由控制


缺点

  • 运行速度较慢:AppCrawler 是基于 Appium 开发具备了跨平台的优点,但是也因为这层封装造成了运行速度相对较慢,再加上运行过程中加入了截图(可以在配置中取消,但是取消后不利于结果的查看),运行起来自然就慢了;

  • 使用门槛高:正因为使用灵活性的问题,也造成了使用门槛的提高,主要基于 YAML 文件中使用 Appium 的相关技术知识进行配置,这就对使用者有了一定的技术要求;

发布于: 刚刚阅读数: 6
用户头像

测试人

关注

专注于软件测试开发 2022-08-29 加入

霍格沃兹测试开发学社,测试人社区:https://ceshiren.com/t/topic/22284

评论

发布
暂无评论
软件测试/测试开发丨智能遍历测试在回归测试与健壮性测试的应用_软件测试_测试人_InfoQ写作社区