自动遍历测试方法与常用工具推荐

简介: 自动遍历测试方法与常用工具推荐

背景


首先让我们举几个业务上的常见问题,比如:


1、由于每次功能回归都不太可能把所有的用例都执行完,所以一般团队倾向于优先执行新功能的测试用例,老功能的用例如果没时间就不会执行,哪怕是有专门的人力写UI自动化脚本,也不太会覆盖所有的老功能回归用例,所以偶尔会发生由于某次变更导致APP某个不常使用的老页面发生崩溃或者UI展示有异常的问题;


2、由于用户的设备环境复杂多样,所以APP某个页面在不同机型上的表现很有可能发生不一致的现象,或者是在不同的网络环境下会发生非预期崩溃等异常问题;


问题


传统的例维护方式的自动化测试手段已经无法满足产品快速迭代下的质量保障需求,一方面是因为大部分团队中熟练掌握自动化框架的测试开发工程师太少,导致用例的维护成本太高、稳定性太差,很难达到提效的目的。


另外一方面是因为业务中需要测试的内容和场景实在是太多了,手工测试根本无法充分覆盖,比如:内存泄漏、稳定性测试、兼容性测试、弱网测试等等,其实很多页面本身并不复杂,但是如果要靠手工或者编写自动化用例的方式去覆盖,同一个入口的不同路径又太多,实现成本非常高,如果不去做的话,又很容易发生漏测。


思考及改进


基于以上问题,我们需要进行合理的分层测试设计,比如:


1、UI自动化测试覆盖核心业务场景和流程,而且主要专注于UI和功能跳转是否正常的验证,接口的验证交给接口自动化测试去做;


2、手工测试主要覆盖新功能的测试、探索性的测试以及各种专项测试;


3、自动遍历测试主要覆盖那些人工无法覆盖或者覆盖起来成本非常高的场景,比如内存泄漏检测、基础功能回归、兼容性测试、弱网测试等;


常用的自动化遍历工具


目前市面上开源或者半开源的自动化遍历工具也有比较多的选择,比如:


Google 原生Monkey

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

Google的App Crawler

Android:https://developer.android.com/training/testing/crawler

阿里 Macaca的NoSmoke

双端:https://macacajs.github.io/NoSmoke/zh/

zhangzhao的Maxim

Android:https://github.com/zhangzhao4444/Maxim

zhangzhao的Fastmonkey

iOS:https://github.com/zhangzhao4444/Fastmonkey

字节的Fastbot

Android:https://github.com/bytedance/Fastbot_AndroidiOS:
https://github.com/bytedance/Fastbot_iOS

SwiftMonkey

iOS:https://github.com/zalando/SwiftMonkey
相关文章
|
15天前
|
芯片
LDO的原理及测试方法
一、基本结构 这是LM317芯片的核心,这个电路单元称为Bandgap Reference带隙基准源。属于模拟集成电路中的经典电路结构。 LDO拓扑结构图 常见的基本结构 利用VBE的负温度系数,而VT是正温度系数,正负温度系数抵消就的得到稳定的基准参考电压了(三极管的方程VBE=VT*In(lC/IS))。 二、测试意义 了解集成电路的内部结构对测试有意义么? 1、了解内部结构,才能更好的理解测试原理或者设计测试方案2、可以学习提升对电路结构的理解能力。 针对LM317,了解了内部简单原理,可以知道1、内部结构设计针对的是温度系数,因此可能受温度的影响,实际也是会受到温度的影
157 88
|
8天前
|
测试技术
测试用例设计方法之基本路径测试法
基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法,设计出的测试用例要保证在测试中程序的语句覆盖100%,条件覆盖100%
20 7
测试用例设计方法之基本路径测试法
|
8天前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
53 7
Jmeter实现WebSocket协议的接口测试方法
|
8天前
|
敏捷开发 数据可视化 Devops
敏捷测试价值观、方法和实践读书笔记(4)
本章节探讨了敏捷测试执行的关键概念与实践。首先介绍了用户故事及其重要性,强调其在敏捷开发中的角色,并阐述了用户故事的 INVEST 原则。接着分析了用户故事生命周期中的测试关注点,包括定义、处理、完成及验收阶段的测试活动。此外,还对比了不同测试术语的差异,并提供了敏捷测试计划的策略与过程。通过看板等工具实现任务管理与跟踪,确保测试活动高效进行。最后,介绍了敏捷测试中的度量指标,帮助团队评估测试效果。
17 5
敏捷测试价值观、方法和实践读书笔记(4)
|
8天前
|
监控 架构师 Devops
敏捷测试价值观、方法和实践读书笔记(3)
本章节介绍敏捷测试转型框架,涵盖模型概览、实施难度与顺序、文化转变、角色技能需求及测试流程。敏捷测试转型模型包括文化、组织、流程与实践等关键要素,并针对各层面提出具体实施建议与障碍解决方案。此外,详细阐述了不同敏捷测试角色的技能需求与职责,以及从Sprint内至跨Sprint的测试流程与交付物。
16 5
敏捷测试价值观、方法和实践读书笔记(3)
|
8天前
|
开发框架 数据可视化 项目管理
敏捷测试价值观、方法和实践读书笔记(1)
敏捷软件开发宣言在身体力行的同时也帮助我们一直在实践中探寻更好的软件开发方法。由此,我们建立了如下价值观:个体和互动 高于 流程和工具工作的软件,高于 详尽的文档客户合作, 高于 合同谈判响应变化,高于 遵循计划。也就是说,尽管右项有其价值,但我们更重视左项的价值。
29 4
敏捷测试价值观、方法和实践读书笔记(1)
|
8天前
|
JavaScript 前端开发 Java
敏捷测试价值观、方法和实践读书笔记(5)
本章节介绍了敏捷功能测试的原则与实践,包括单元测试的概念及其编写步骤,测试驱动开发(TDD)的流程,以及如何通过模拟对象进行测试。详细讲解了单元测试的编写方法,如初始化对象、执行操作及验证结果,并探讨了 TDD 的五个步骤。通过具体案例展示了如何逐步完善储蓄账户的功能测试,包括存款、取款及异常处理。此外,还讨论了代码覆盖率的重要性及其局限性,强调了测试充分性比单纯追求代码覆盖率更为关键。
14 3
敏捷测试价值观、方法和实践读书笔记(5)
|
1天前
|
测试技术
基于LangChain手工测试用例转App自动化测试生成工具
在传统App自动化测试中,测试工程师需手动将功能测试用例转化为自动化用例。市面上多数产品通过录制操作生成测试用例,但可维护性差。本文探讨了利用大模型直接生成自动化测试用例的可能性,介绍了如何使用LangChain将功能测试用例转换为App自动化测试用例,大幅节省人力与资源。通过封装App底层工具并与大模型结合,记录执行步骤并生成自动化测试代码,最终实现高效自动化的测试流程。
11 4
|
8天前
|
机器人 测试技术
敏捷测试价值观、方法和实践读书笔记(6)
验收测试驱动开发(ATDD)强调在开发前定义验收标准,并通过自动化测试确保用户价值得到满足。验收测试关注用户需求是否实现,而非代码细节。ATDD涉及用户、产品负责人、开发人员及测试人员,通过讨论、开发和交付三个阶段,确保产品符合预期。此方法有助于团队更好地理解和实现用户需求。
17 5
|
8天前
|
敏捷开发 测试技术
敏捷测试价值观、方法和实践读书笔记(2)
本章节介绍敏捷测试在快速变化的软件开发环境中的重要性。传统测试方法在敏捷环境中面临时间紧迫、文档不足、频繁变更及资源短缺等挑战。敏捷测试遵循敏捷开发原则,强调测试与开发的紧密融合、团队协作及业务价值交付。其特点包括更强的协作、更短的周期、更灵活的计划及高效的自动化。相较于传统测试,敏捷测试具有加快产品上市时间、提升整体质量及简化流程降低成本的优势。
14 3