移动应用自动化兼容性测试方法研究

2023-04-05 02:10敬宗儒
科海故事博览 2023年6期
关键词:测试方法安卓软件

敬宗儒

(德勤勤跃数字科技(上海)有限公司,上海 200120)

随着移动互联网的高速发展,人们对于移动应用软件的需求呈现爆发式增长。近几年来,我国的移动应用软件开发能力大大提高,层出不穷的各类移动应用软件在各行业领域都得到了广泛的应用。移动应用软件市场的成熟在创造机遇的同时也对应用软件质量以及用户使用体验提出了更高的要求。面对应用软件同质化严重问题,市场亟须通过提升应用及服务质量来形成差异化竞争,提高生存能力。根据相关数据显示,2015 年,我国的移动应用软件的市场规模突破了200亿美元;2017 年,移动应用下载量达到了1600 亿次。依据移动应用市场报告统计与预测数据显示,2021 年,全球移动应用市场规模达到7893.29 亿元(人民币)。在2021-2027 预测期间内,预计全球移动应用市场将以8.63%的复合年增长率增长,并预测至2027 年全球移动应用市场总规模将会达到12970.5 亿元。开发移动应用所面临主要问题是开发成本、开发周期及工作量,利用自动化测试技术可以大大缩短移动应用软件开发周期,加快版本的更新速度。本文将从手机应用测试的类型、兼容性测试面临的挑战以及两种自动化测试方法三方面展开阐述。

1 手机应用测试的类型

手机应用软件测试大致包括以下几类测试:功能测试;兼容性测试;交叉事件测试,PUSH 推送测试;稳定性测试;性能测试等,下面将列举几种进行说明。

1.应用软件功能测试,即对移动应用的各项功能进行全面测试,以确定其能否通过验证。软件功能测试应当依据开发设计文档,并结合产品需求来开展相关工作。例如:测试微博发布功能,应当考虑是否添加话题、图片、文字长度等;发布操作的用户体验是否达到预期要求,图片选择等操作是否合理等;另外,发布微博必须与服务器发生交互,所以网络因素也是要考虑的。

2.移动应用软件的兼容性,即为系统内部发生改变、不同的环境下是否可以正常运行。例如:安卓应用程序的兼容性能细分为两个部分,一个是向前兼容,另一个是向后兼容[1]。若出现兼容性问题,会引起运行异常、功能失效、程序崩溃或卡顿等,导致程序无法正常的运行。所以,移动应用软件测试需要考虑手机分辨率、系统版本和手机型号等因素,另外还要考虑到不同网络制式、手机硬件(手机按钮及耳机蓝牙设备)和手机软件(定位、地图APP 等)的兼容性。

3.APP 稳定性测试。因为APP 是在手机操作系统中安装使用,为确保软件可以稳定地、无差错地运行,必须要开展稳定性测试,这里一般都会用到Monkey 软件,该软件是在命令的基础上运行,利用这项工具进行长时间的运行APP,以此来检测APP 会不会出现假死(ANR)或者崩溃的问题。此外,还需进行弱网测试,也就是在运行软件在网络不佳的情况下,通过这种方式验证软件是否发出异常信号、闪退等,通常会模拟各种弱网环境开展测试工作,目前模拟弱网环境所用到的工具主要有fiddler、charles 等。

2 目前移动应用兼容性测试面临的挑战

在移动APP 的各项测试中,兼容性测试尤其重要。兼容性测试,即不同应用程序、硬件产品、操作系统、网络环境中,测试移动应用软件的运行情况。开展兼容性测试的目的是为确保开发出的应用软件能够正常的运行,同时确保其安装和卸载的顺利。兼容性测试主要分为两大方面:硬件和软件。简单来说,在硬件方面,主要测试应用软件与目标硬件之间的兼容性;软件方面,主要测试应用软件与主流操作版本之间的兼容性。硬件平台是软件运行的基础,无论是计算机还是嵌入式产品,都需要硬件平台支持。但即使是同一类硬件(如显卡),也有不同的生产厂商,因此在软件设计的时候必须考虑如何兼容不同生产厂商的产品。软件兼容是指待发布软件与常用软件在同一环境下使用时,相互之间的影响。计算机中常用的软件有下载类软件、即时通信类软件、压缩解压类软件、文档编辑类软件、位图图像处理类软件、矢量图图像制作类软件、动画制作类软件、杀毒类软件、光盘刻录类软件、系统镜像类软件、多媒体播放软件等其他类软件。在移动应用软件的安装与卸载测试完成之后,软件将开始测试其各个运行环节,运用UI 适配方式对应用截面与初始设计的一致性展开测试。利用图像与文字识别技术,将预估条件提前设置,可以获得精准的测试结果,由此能够更加精细地、准确地定位和分析存在的问题。

不同型号、不同品牌的平板电脑、智能手机,其无论是驱动程序,还是硬件及操作系统均存在一定的区别,为此一些移动应用可能在某一品牌或某一型号智能手机上能够正常运行,但无法在另一品牌或型号的设备上运行[2]。所以,为保障移动应用能够稳定地运行,则需要全面测试移动应用在各个移动设备上的兼容性。现阶段,我国市场的智能手机超过1.3 万种,因为测试时间、测试成本等诸多因素的制约,无法测试全部的移动设备。所以,目前移动应用兼容性测试需要面对的难题和挑战就是如何兼顾测试成本、测试周期的同时,确保测试的质量和测试的全面性。

现阶段,移动应用兼容性所面临的难题如下所述:

1.操作系统碎片化严重。终端设备、系统版本的更新与升级,加之各自的差异化,导致碎片化的问题尤为突出,难以确保移动应用的兼容性,开发者在开发应用程序过程中很难发现一些潜在的兼容性问题,这就导致问题识别、确定和修复面临着诸多困难。

2.手工测试具有一定的局限性。开发移动应用过程中,需要在不同的设备上测试开发出的程序,整个过程需要耗费大量的时间和人力成本,且极易出现疏漏。当移动应用程序正式投入应用,若出现问题开发者要及时地进行修复,这也为开发者的工作带来了较大挑战。

3.第三方库的应用存在诸多不确定性。一般情况下,需要通过第三方库来实现移动应用的经济价值,例如广告、GooglePaly 服务等。但是,第三方库与这些应用程序的功能演化往往是不同步的,为此第三方库在升级新版本时,就需要测试这些应用功能的兼容性,以确保软件的各项功能可以正常使用。大量应用第三方库,导致应用程序发生兼容性的问题尤为常见[3]。一旦出现兼容性的问题,会导致程序运行异常,甚至会出现系统崩溃的情况。上述的这些问题在实践中较为常见。为提高用户体验,确保移动应用功能的正常运行,必须要解决移动应用兼容性问题;采取传统的测试方法,需要耗费大量的人力和时间成本,而采用基于云端的自动化测试方法将会大大提高测试效率,降低测试成本。

3 传统的和基于云端的兼容性测试方法

3.1 传统兼容性测试方法

传统兼容性测试手段,即为测试人员会初步确定测试的范围,主要依据用户的特征进行定向选择,首先会采购一些主流型号的手机,然后搭建测试的环境,采取人工的方式进行测试,兼容性测试包括两个维度,一个是系统版本,另一个是移动设备;若需要对市面上的主流硬件设备和系统进行兼容性测试,就需要购买大量的硬件,若需要全面测试这两个维度,就需要耗费大量的人力、物力和财力,因此都是在部分主流设备上进行全量测试,对其主要功能的用例做到全面覆盖,主要功能用例测试则会扩大测试的范围,并对各个功能点的兼容性测试结果进行手动记录,这里可以看出人的主观因素对测试的结果会产生较大的影响,其缘由是人的主观意识对测试结果的影响较大,未采取专业化的方式展现最终结果,那么必定会影响到开发人员对程序的修改和调整。

3.2 基于云端的自动化兼容性测试方法

传统兼容性测试方法,通常会用到一些工具,且需要耗费一定的时间。该测试手段对设备的类型要求较高,需要详细的记录各个维度的日志,截取保存对应图像,因此测试的工作量较大,采用基于云端的自动化兼容测试方法,可以有效避免人工开展大量的重复性劳动,有效提高测试的效率和准确性,控制整个开发的成本,缩短开发周期。基于云端的自动化兼容测试系统主要由构建层、管理层、资源池层与物理资源层四个层级所组成。第一层级属于应用服务层,面向服务的对象为用户,在Web 平台上可以直接访问底层资源,其主要起到封装底层架构与资源的作用,为此资源分配以及功能实现等问题无需用户考虑。第二层是管理层,其主要用于管理资源、任务、用户和安全;其可以保障任务的顺利运行、资源配置的合理、权限及环境稳定等。第三层能够实现抽象与管理整个平台的物理资源,整个物理资源均封装在资源池内,资源类型主要包括存储、计算和设备资源。第四层为物理资源层,如存储器、物理主机、模拟器和终端设备,属于云端自动化兼容测试的实体层。

因为基于云端的兼容性测试平台可以提供大量的真机与终端模拟器,所以用户采取远程调用的手段,在调交测试项目、测试脚本的过程中用到浏览器,测试云就可以汇总和统计全部的资源,并获得完整的兼容调度,将测试任务分配至运动,最终获得执行结果的报告。

4 国内移动应用自动化测试的主要供应商

目前,我国常用的云测试平台主要有:Testin 云测、testbird、百度MTC 等,具体如下所述:

Testin 共计部署的安卓和苹果系统终端分别达到了六百部和八十部,软件开发人员将设计的应用提交给平台,并确定测试的机型和网络,那么就能完成自动化测试,整个过程不需要人工操作,包含错误、报警等各种测试的日志和标准测试报告会自动形成,其内容涵盖了中央处理器、启动时间、截图、内存及日志等。目前,Testin 主要支持的系统:Robotium、JUnit、Athrun 以及Testin SDK,不单单支持安卓系统,还支持苹果系统的自动化测试框架的只有Testin SDK。

TestBird 可以应用在目前大部分的安卓设备、全系列所有型号的ios 终端设备上,且可以在Web 应用、H5、Hybird 混合上运行,能够统计、对比和分析数据,还能够自动形成包含错误、报警等各种测试日志及标准测试报告,为此在错误定位方面可以给开发人员带来极大的便利。

百度移动云测试中心(MTC)部署了30 部苹果系统终端,以及300 余部安卓系统终端,但是其对自身除外的测试脚本不予支持,这就导致百度移动云测试中心(MTC)的应用范围具有一定的局限性。

腾讯优测(Utest)仅能用于测试安卓终端设备的兼容性,且基本满足市面上绝大多数安卓设备的兼容性测试需求,在H5 混合应用、游戏及应用领域得到了广泛应用,利用远程链接测试设备就可以开展兼容性测试,然而其不支持测试。

阿里 MQC 共计部署的安卓和苹果系统终端分别达到了一百多部和十部,支持脚本测试,但不支持人工测试,主要在阿里自主操作系统YunOS 中开展测试。于支持Robotium 和增强后的APPium,即为自动化测试框架,后者支持安卓和苹果设备[4]。

5 结语

随着移动应用市场的快速发展,应用程序开发日益增多,其兼容性问题也会变得更加突出,有效解决兼容性问题,能够确保开发移动应用的顺利运行,避免影响到用户体验,其中使用合适的兼容性测试软件,可以提高员工的工作效率,给到客户更有竞争力的产品优势及体验感,同时也能通过更有效的操作减少运营成本。本文主要深入探讨了兼容性测试的各项问题,同时对我国现有的自动化兼容性测试平台进行了逐一介绍,并指出各种的优劣势。随着移动设备的种类日益增多,碎片化问题会变得越来越严重,为了满足日渐增长的移动应用测试的需求,开展移动应用的兼容性测试工作迫在眉睫,且具有挑战性的任务。在不久的将来,自动化测试技术不断发展,相关的测试手段更加的成熟,自动化测试可以运用到各种移动应用软件的测试场景中,并且测试的成本会大大降低,测试精准度也会变得越来越高。笔者坚信随着技术的不断发展,移动应用兼容性测试技术可以为移动应用市场的健康发展保驾护航。

猜你喜欢
测试方法安卓软件
基于泊松对相关的伪随机数发生器的统计测试方法
iPhone不卡的秘密曝光:安卓也能享受
禅宗软件
基于云计算的软件自动化测试方法
文物表情包
DLD-100C型雷达测试方法和应用
软件对对碰
一种基于安卓系统的手机侧抓包分析方法
对改良的三种最小抑菌浓度测试方法的探讨
即时通讯软件WhatsApp