【摘要】 本文介绍了移动多端自动化测试平台的建设思路,该平台实现了对国内移动政务服务应用的自动化真机在线测试和智能化测试结果在线分析,替代传统人工测试。提供给各级政府在政务服务APP、H5、支付宝小程序、微信小程序等移动渠道研发、上线、运维过程中,对功能、性能、兼容性、稳定性、安全性等全维度测试的能力,并提高软件质量和市场竞争力。文章对自动化测试平台进行概述,分析了自动化平台结构设计理念,阐述了自动化平台设计和实现思路。
【关键词】 自动化 在线测试 软件质量 市场竞争力
一、测试平台需要解决的问题
目前市场上有部分移动政务APP应用在安装、启动、卸载时存在耗时较长,使用过程中出现闪退、卡死等常见的问题;同时,一些软件病毒、恶意插件、漏洞和敏感数据也在严重影响用户信息安全。因此用户对移动政务服务应用在兼容性、性能、稳定性、安全性上面提出了更高的要求。自动化云测平台可以协助人工提供这方面的测试能力,很好的弥补了当前测试阶段存在几个典型的痛点:
1.人工测试为主,效率低下:目前政务服务App质量团队的测试手段依然以手工测试为主,人工成本较高。
2.缺乏安全渗透测试技术:政务服务领域内研发团队主要以面向政务业务为主,缺乏自动化安全测试的专业技术。
3.适配机型复杂:传统测试方式下,无法覆盖市面上众多的手机型号。
二、测试平台功能矩阵
为了解决移动政务服务应用在“性能”、“安全性”、“稳定性”、“兼容性”以及功能上的问题,规范建设者们在移动政务应用建设前、中、后期的专项测试标准,让不同技术实力的开发者所开发的移动政务应用均按统一标准进行测试,为全国移动政务应用开发领域的健康发展提供规范化、自动化的品控服务。测试平台主要功能矩阵如下:
2.1性能测试
在APP的安装启动卸载过程中,检测APP的安装卸载时长,启动时长;在APP运行过程中,实时检测APP的前端性能数据,例如:FPS,流量,电量,内存,CPU,上行流量,下行流量等性能。测试人员拿到获取到的性能可以实时的分析此款APP在测试过程中可能会存在的哪些问题,例如:内存泄漏,加载时长过长,流畅度较差,加载图片过大等一系列问题。移动终端应用,不管是Native还是WebView的应用,对性能要求都非常高,主要是卡顿、耗电、速度这几个常见关键性的指标,而这类测试重复性强,指标路径固定,自动化测试可以更快捷地完成性能测试任务。
2.2兼容性测试
不同的业务可能会有不同的适配要求,一般情况下平台能提供几百甚至上千台机器进行测试,包括在不同操作系统(android、ios、鸿蒙,每个还包含多个版本)、不同厂家手机(华为、小米和苹果等)、不同屏幕尺寸和不同带宽等方面的测试。
2.3稳定性测试
APP的稳定性一般通过闪退率、卡顿等可用性指标来衡量。需要通过一定时间内的持续使用或暴力测试来发现问题。
提到稳定性测试大家都会想到用系统自带的Monkey工具进行测试,此工具既易上手也实用,但运用起来有非常多的讲究和技巧,简单的Monkey工具不一定能完成使命,不能完全测试出应用的稳定性情况。很多时候,需要测试开发人员按照一定规則自定义智能探索脚本,最大限度覆盖APP的功能,保证稳定性测试的全面性。
2.4功能测试
功能测试一般会通过运行自动测试用例来检测功能是否符合预期。往往测试结果是和业务紧密相关的。
关于功能测试的争议比较多,因为产品都需要快速迭代,而脚本的稳定性、实现时间等成本开销大,真正发挥作用也需要不断地打磨,并且还有很多后期维护成本,所以比较折中的办法是做一些BVT测试和持续集成配合,在开发编译新的build后直接运行这些核心的BVT用例,以免出现严重的Regression/Block问题,日常的工作中选定较小范围的用例及适合的框架一般就可以解决问题。
2.5安全测试
随着互联网的发展,手机移动端的普及,移动APP风险漏洞也逐渐暴露出来。
所谓的风险漏洞一般来说是应用代码编写过程中出现的安全漏洞、编码隐患、甚至业务逻辑上的缺陷。APP风险漏洞往往带来很多危害,诸如应用内信息泄露、本地拒绝服务等多种安全问题,严重的可能影响应用正常运行,更为严重的是用户信息泄漏、业务数据被篡改等。
针对以上可能存在的安全问题,APP客户端内部进行了一系列的安全处理机制,用于保障APP的安全使用,保护用户的个人信息,保证业务委托的安全可靠。
自动化测试平台对APP进行基础信息、数据、代码、组件四个维度的安全测试,可多纬度发现APP的安全问题。
2.6线上监控测试
线上监控测试通过对全网渠道的各类APP进行盗版仿冒、恶意违规等唯独的监测,分析采集的数据,精确识别出有问题的应用。
这块测试方向不应该直接归属于传统的自动化测试范畴,因为它不需要常规情况下提到的自动化测试框架支持,也不需要开发测试用例脚本,这里主要是对线上测试数据的监控,并且利用大数据分析进行“自动化”测试,在互联网产品中极为适用而且能非常直接地体现产品的质量。举个简单的例子,通过浏览器的网页浏览功能,可以监控用户在浏览网页时有多少个404的页面;出现浏览失败的网站的地域/DNS是什么等。如此层层过滤,缩小问题排查范围,提高安全防范效率。
三、系统架构
移动多端自动化测试平台系统架构由以下几部分组成:
1.机柜层:为平台提供必要的硬件支撑,由若干PC主机连接多台手机设备组成。
2.环境配置层:手机和物理主机使用USB接口进行连接,通信过程中依赖 JDK环境和SDK环境,完成对手机的调试工作。
3.框架工具层:Appium是一个移动端自动化测试底层框架,可以测试原生应用以及移动端web项目,该框架是跨平台的,可以运行在osx、windows以及linux桌面系统上。
4.基础服务层:基于Pycharm脚本语言封装了一系列的基础服务组件,如“服务日志”、“文件储存”、“数据储存”等基础服务,为上层应用提供能力支撑。
5.能力框架层:该层统一管理自动化测试用户脚本,实现了多机并行操作,并监控手机的空闲状态,通过智能遍历脚本运行获取过程指标,然后经过实时计算输出业务层需要的结果数据。
6.业务能力层:業务能力层包括性能测试、兼容性测试、功能测试、安全测试、稳定性测试、线上监控测试,另外该层向上提供相关能力的openAPI,自动生成详细的可视化测试报告。
四、应用场景
移动多端自动化测试平台被应用的场景有很多,覆盖政企、金融、教育、电商等多个行业。其中自动化成为大家共性的需求,安全性测试视安全等级要求而定,一般金融行业要求比较高,会涉及到要求人为渗透测试,并借助三方的一些加固工具进行加固。
可以预见未来移动多端自动化测试平台应用的场景通常解决用户的需求包括:
4.1用户挑战
· 手工测试无法完成量级庞大的测试内容;
· 缺乏有效的测试管理流程以及测试效果的把控;
· 缺乏实用易读的测试报告以及图形化的管理工具;
· 每次发布要执行的回归案例量巨大,投入成本高;
· 手机设备没有有效的管理;
· 客户需要一套移动端自动化测试用例体系。
4.2用户收益
· 通过客户端自动化测试工具,提升测试效率,增加测试覆盖率;
· 降低大量重复的人力,将有限的精力放在重要的功能测试上;
· 持续的本地化服务,使得服务质量提升;
· 随着测试需求的复杂度的提升及测试范围的扩大,可快速完成完整的功能性测试执行。
五、结束语
综上,本文对移动多端自动化测试平台的建设背景、相关的功能矩阵及系统架构做了简要的介绍。随着互联网的快速发展,移动化的普及,以及各种应用场景的诉求提出,自动化测试平台的建设将在用户不断的摸索和实践过程中得到不断的优化和提升,最终发挥重要的作用。
参 考 文 献
[1] 《软件自动化测试开发》,2017年1月电子工业出版社出版;作者邹辉
[2] 《高效自动化测试平台:设计与开发实战》,2020年6月电子工业出版社出版;作者徐德晨,茹炳晟
[3] 《Python自动化测试实战》,2019年电子工业出版社出版;作者无涯
[4] 《全栈自动化测试实战――基于TestNG、HttpClient、Selenium和Appium》,2020年4月电子工业出版社出版;作者卢家涛
[5] 《软件性能测试、分析与调优实践之路》,2020年7月1日清华大学出版社出版;作者张永清
王知明(1975.06),男,汉族,江苏盐城,大学本科,研究方向:自然语音处理,数据挖掘,深度学习;自动化测试技术。