加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 移动互联 > 应用 > 正文

Android自动化测试01-移动应用测试

发布时间:2022-10-15 08:31:04 所属栏目:应用 来源:互联网
导读: 今天开始说长篇的移动端自动化测试,为了方便大家学习和观看,我回把文章拆解几部分,希望大家每天学习一点~每天进步一点~转发请注明出处~谢谢~
Android自动化测试01
移动应用测试
本章

今天开始说长篇的移动端自动化测试,为了方便大家学习和观看,我回把文章拆解几部分,希望大家每天学习一点~每天进步一点~转发请注明出处~谢谢~

Android自动化测试01

移动应用测试

本章重点

随着移动互联网行业的飞速发展,敏捷开发模式的流行,自动化测试越来越重要。移动端自动化测试框架Appium被很多公司引入,熟悉Appium测试框架的相关的知识,了解测试工具的运行原理已经成为测试开发工程师必备技能之一。

本章通过简洁的表述,介绍移动应用的测试设计和技术难点,并介绍主流测试工具和测试框架特点,为测试开发工程师后续在今后的测试工作中选择合适的工具打下基础。

学习目标

了解移动应用程序类型了解移动用应用测试类型了解移动应用测试自动化工具理解移动自动化测试脚本开发内容

移动应用测试现状与挑战

2017年8月中国互联网络信息中心(CNNIC)在京发布第40次《中国互联网络发展状况统计报告》。《报告》显示,截至2017年6月,中国网民规模达到7.51亿,相当于欧洲人口总量,占全球网民总数的五分之一移动应用平台,互联网普及率为54.3%,超过全球平均水平4.6个百分点。庞大的用户数量吸引着越来越多的IT企业涉足移动应用领域,市场上投放的移动应用总量不断增长,用户选择范围的扩大。并且同时移动应用不仅存在智能手机或平板电脑中,甚至已经扩展到汽车,可穿戴设备和家用电器,家用家具中。

这里不得不提到安卓(Android)平台,它的诞生为手机智能化的普及立下汗马功劳,但其碎片化严重的缺点越来越明显:设备繁多、品牌众多、版本各异,芯片、摄像头、分辨率不统一等等,给移动应用带来了严重的兼容适配问题。而随着苹果发布新机的节奏在加快,以及iOS版本不断更新,iOS上的兼容适配问题也开始增多。为了满足用户需求,适应市场竞争,移动应用开发迭代速度非常快,一般一个月一个大版本,两周一个小版本,由于开发周期短,基本上都是临近发布才提供可测试的版本,留给测试的时间极其有限,这导致测试人员无法对移动应用进行充分的测试,测试时间不足加上测试人员可能没有能力在所有机型上验证移动应用是否可以正常运行,多数情况只能挑典型机型做简单的验证测试,就发布上线,结果在最终用户手机上出现各种意想不到的适配问题。很多APP的质量并不过关、运行不流畅、响应速度慢,甚至于经常崩溃闪退,让用户体验大打折扣。种种问题的出现使开发人员对于移动应用的测试给予了越来越多的重视,而移动应用测试和传统测试相比,无论是技术层面还是理论层面都面临着很多挑战:

据统计自至2015年底,已有超过7亿台Android设备问世,从2007年以来iOS设备也超过了2.6亿台,这些移动设备包括手机、平板、可穿戴设备等,谷歌统计仅安卓手机类型在市场上投放就超过18000款。由于移动移动应用会被部署到各种不同设备上,造成测试矩阵更加复杂。一个标准的移动应用测试的测试集可能是一个包含成千上万的位置、设备型号、尺寸和操作系统组合的多维矩阵。

由于每种移动应用实现方式存在差异,所以不同实现类型移动应用的测试方式也是不同的。另外从安装到功能每个移动应用的行为有差异,也可以理解它们的测试覆盖率会存在差异。

由于每天竞争对手都会在市场上发布最新版本的应用,快速迭代的移动应用开发模式导致测试团队不可能有足够的时间开展测试工作。这让开发运维团队陷入两难的境地,如果测试充分,就会面临晚于竞争对手发布产品,有可能导致公司被市场淘汰。

现在不管是互联网产品还是移动互联网产品都依赖后台提供接口服务,业务逻辑基本上都放在后台处理,所以测试验证这部分逻辑是非常重要的,但是移动互联网产品后台系统越来越庞大,平台越来越复杂,所需要测试的接口数量也呈几何级增长。

网络状态对移动应用影响非常大,而且网络状态还非常多。从网络数据接入点来划分可以分为:WiFi和移动数据网络。从网速来区分可以分为:弱网络和强网络。在不同网络情况状态下,程序会采用不同的网络策略。特别是在弱网络状态下如果处理不好,会直接影响到用户感受,容易丢失用户。

移动应用开发人员,完全没有办法控制用户什么时候打开应用,是横屏还是竖屏使用。更没有办法知道,在应用正在被使用时,用户是否需要接听一个电话呼入或浏览一下短消息;更不会了解到用户这时是悠闲地开启了移动应用还是很急切地打开应用需求帮助。在以上这些复杂的场景中,保证用户正常使用是非常大的挑战。

移动应用测试类型

在测试过程中需要充分了解移动应用程序类型才能选择合适的测试方法,从技术上移动应用程序类型从主要分三种:原生应用,WebApp应用,混合应用。下面来详细了解每一种类型:

NativeApp(原生应用):仅使用某一个移动平台(比如iOS或安卓)支持的开发工具和语言(比如iOS平台支持Xcode和Objective-C,安卓平台支持Eclipse和Java),通过平台特有的标准SDK编写的应用,用户将这种应用安装到移动设备上之后,无需连接到互联网就能使用。原生应用可以通过应用商店(如Google Play商店或Apple的App Store)进行安装使用。该模式通常是由“云服务器数据+APP应用客户端”两部份构成,移动应用所有的UI元素、数据内容、逻辑框架均安装在手机终端上。

WepApp(Web应用):是指通过移动设备上浏览器访问的应用叫做WebApp。这类应用是通过网络技术如HTML,JQuery和JavaScript开发,不需要下载安装,类似于现在的轻应用,可以说是触屏版的网页应用。WebApp开发是一种框架型APP开发模式,该开发具有跨平台的优势,该模式通常由“HTML5云网站+APP应用客户端”两部份构成,APP应用客户端只需安装应用的框架部份,而应用的数据则是每次打开APP的时候,去云端取数据呈现给手机用户。

缺点:

Hybrid App(混合应用):是指把WebApp和NativeApp结合起来的应用,这类应用WebApp是被内嵌到原生应用中,用户界面像原生应用,内容却需要WebApp加载,需要下载安装。技术上就是把基于一个WebView实现的所有功能包装成一个应用,WebView是一个可以和网页各种元素交互的原生控件(因为所有的移动平台都会有浏览器,所以基于浏览器封装起来的应用就可以轻易做到跨平台了)。

在了解移动应用程序类型基础上,结合移动端的特点,根据经验笔者把移动应用测试分为以下类型:

功能测试

是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。移动互联网领域,移动应用一般采用开发模型为敏捷模型,敏捷开发的最大特点是高度迭代,有周期性,并且能够及时、持续地响应客户的频繁反馈。基于开发模型的选择,测试采用敏捷测试方式,即是不断修正质量指标,正确建立测试策略,确认客户的有效需求能得以圆满实现和确保整个生产的过程安全的、及时的发布最终产品。测试过程分为冒烟测试,探测性测试,回归测试;首先对每个提交的功能模块快速进行冒烟测试,到可组合成完整功能模块时,进行探索性测试,当所有功能模块完成之后,进行相应的系统测试。

终端适配测试

是为了让一款移动应用在各种终端设备上运行正常,达到最佳用户体验而进行的一种测试。它涵盖了安装,功能,界面,人机交互,程序稳定性等方面。常见的适配问题有不能安装,解析包时出现问题;程序崩溃(启动崩溃,运行崩溃,意外停止,无响应,退出崩溃);UI错位/失配;启动时间长/运行不稳定/与其它应用冲突等。

易用性测试

是指在指定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力。它有三个特性分别是①易见性:单单凭观察,用户就应知道设备的状态,该设备供选择可以采取的行动;②易学性:不通过帮助文件或通过简单的帮助文件,用户就能对一个陌生的产品有清晰的认识;③易用性:用户不翻阅手册就能使用软件。移动应用易用性的核心特征是移动应用整体的简单性,工作流效率和同步化,端到端的用户满意度。

性能测试

性能是系统实现其功能的能力。例如,响应时间、吞吐能力、事务处理数。性能测试是指在特定负载情况下,确定系统的响应速度和稳定性的表现。它也可以研究、测量、验证系统的其他特征,比如可扩展性、可靠性和资源使用率。通俗的讲:通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生成性能要求,即在特定的运行条件下验证系统的能力状况。按App构成特点将性能测试分为客户端性能、服务器性能两大块。App客户端性能的关键指标有CPU占用率、内存占用率、流量耗用量、FPS(每秒传输帧数);服务器端性能的关键指标有:响应时间、并发用户数、吞吐量等;如果是游戏或动画性能监控包括FPS、CPU、内存、流量 等基础性能数据,Drawcall、三角形数量等渲染数据;Unity资源:展示纹理、网格、动画、音频资等源;MONO内存分配、内存泄漏等。

接口测试

是用来检查各个组件的接口的测试,它主要检查外部系统与系统之间以及各个子系统之间的交互点,测试的重点在数据的传递上。接口测试是一种特殊的单元测试,覆盖率没有做到所谓的单元测试的百分之百,但是要求覆盖面向用户的所有功能点。为了节约时间成本同时提高了效率接口测试一般采用自动化+持续集成的方式。

网络测试

移动应用是在2g/3g(td-cdma、cdma2000、wcdma)/edge(从发展趋势来说edge算是2.75G,是GSM网络的增强。edge是介于第二代移动网络与第三代移动网络之间的过渡技术,因此也有人称它为“二代半”技术)/4g/wifi等各种网络状态,不同的协议,不同的制式,不同的速率下测试(包括飞行模式)。需要测试移动应用在断网、网速较差及正常网络之间切换时页面是否正常显示等。

安全测试

是在移动应用产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程 。安全性测试主要是测试用户的安全性,包括用户登录、权限分配,以验证用户权限的正确性;测试数据备份与恢复的安全性,主要验证数据库数据的正确性与完整性;测试操作日志的安全性,主要验证操作日志数据的正确性;测试网络通讯检查敏感信息在网络传输中是否做了加密处理,重要数据要采用TLS或者SSL;测试运行时解释保护对于嵌有解释器的软件,检查是否存在XSS、SQL注入漏洞,对于使用webiew的移动应用,检查是否存在URL欺骗漏洞;测试Android组件权限保护;测试升级包的完整性、合法性进行了校验,避免升级包被劫持;测试第三方库需要跟进第三方库的更新。

(编辑:晋中站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!