TARS 系统 —— UI 自动化解决方案

本文介绍了去哪儿网的TARS系统,一个UI自动化测试解决方案,旨在解决APP自动化测试中的工作量大、回归频繁和兼容性问题。文章详细讨论了测试分类、UI自动化发展趋势,并提出了基于图像识别和元素查找的自动化框架。TARS系统采用C/S架构,支持多语言,结合Jenkins等持续集成工具,提高测试效率和质量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

邹德文

去哪儿网移动应用开发总监,负责机票售前与客户端的管理工作。2012年加入去哪儿,先后任职于攻略和机票事业部,擅长客户端和跨端技术栈RN,Flutter,对设备指纹有深入研究,主导了机票国内主流程RN迁移,TARS自动化测试系统的开发和推广。

崔宇

2018年加入去哪儿网,主要负责机票主流程、机票 iOS客户端、TARS UI自动化系统、iOS端指纹加固等方面的工作。


1. 立项背景

业务痛点

互联网 APP 测试在“快速迭代”的开发模式中进行的,每次迭代都会伴随着各种各样的测试,其中以功能集成测试为重要和主要的一个方面,又因版本迭代过程中需要进行的功能特性验证和已有功能回归,要求测试人员既能测试性功能的各种特性,又要保证原有功能不受影响。在频繁的迭代工程中,APP 的功能和结构越来越复杂,新代码的影响越来越广,回归范围越来越多而且 APP 端有各种机型和系统版本,这就造成了潜在的漏测风险和越来越多的重复劳动。以去哪儿网机票业务为例,冒烟 Case 测试点就有300+,月版回归 Case 测试点有1000+,每次月版回归相当耗费测试人员精力,测试的质量依赖于测试人员的质量,并且还有可能遗漏,每次月版回归都要至少10个 QA 集中测试一天,效率十分低下,并且还经常出现线上 bug 和故障。

为了解决其中工作量最大的每次都要进行的回归测试工作量问题,提升工作效率,降低潜在的遗漏风险,减少重复的工作,该项目希望能够通过一种所见即所得的方式完成脚本的录制,即使测试人员不会编程不懂脚本,也可以通过正常用户的点击拖拽等操作,自动完成脚本的录制,从而大幅度降低企业和项目的自动化维护成本。针对移动厂商跨多端的特点,需要开发一套 UI 自动化测试解决方案。支持 TestCase 的自动重复执行,在多种机型兼容性测试,后端响应数据可控,并对执行结果的请求数据、响应数据以及界面截图进行验证,断言执行结果的正确性。

2. 方案选型

2.1 测试分类

自动化测试是随软件开发技术一并发展的一种测试技术。软件测试包括白盒测试与黑盒测试,而自动化测试最早使用白盒测试中的单元测试。这种测试方式较为高效,易于实现。黑盒自动化测试兴起稍晚,但目前应用也非常广泛。黑盒自动化测试原理是用程序和脚本模拟用户的操作行为,通过智能方式验证软件的关键检查点。在桌面软件和 Web 技术兴盛时代,涌现出大量优秀的自动化测试工具如 QTP 和 webdriver,这些工具经过不断完善已经逐步成熟,能够较好地满足传统应用的自动化测试需求。

APP 的自动化测试包括以下这些:

1、按测试目的划分:

功能测试:对产品和模块的各个功能进行测试。

性能测试:对系统的各项性能指标进行测试。

压力测试:测试软件或系统的负载能力,挖掘隐患。

兼容性测试:对产品和软硬件之间的兼容性进行测试,比如软件在各种不同安卓机型上的兼容性。

安全性测试:通过不同方法发现软件的安全性问题,比如信息泄露、非法使用、恶意破坏等等。

其他专项测试:比如弱网络测试、耗电量测试、流畅度测试等等。

2、如果根据软件开发阶段来划分,每个阶段又可以做:

单元测试:对程序中的独立模块进行白盒测试,目的是检验软件基本组成单位的正确性。

集成测试:通过对单元模块进行组合测试,目的是验证单元模块之间的接口是否正确。

系统测试:对整个系统进行完整测试,验证整个系统的正确性与合规性。

回归测试:当软件发生变更的时候,对这次变更可能受影响的功能模块进行验证。

验收测试:测试的最后一个阶段,软件发布或者上线前确保软件质量。

3、其他常用测试概念:

冒烟测试:冒烟测试是对软件最基本的功能进行简单测试,低成本的判断软件是否可测。

冒烟测试来源于硬件的测试,当电路板做好后,首先会进行一次加电,如果没有冒烟才会开始进行接下来的测试,否则说明产品没有达到最基本的质量要求,需要重新制作。

探索性测试:探索性更多的依赖测试人员的个人经验或者特长,依靠的是测试人员的主观能动性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值