大数跨境
0
0

浅谈移动应用测试

浅谈移动应用测试 智业人
2016-02-25
2
导读:一、前言 移动App(Application),即针对智能手机而开发的应用服务程序。近两年,App开发成为各

一、前言

移动App(Application),即针对智能手机而开发的应用服务程序。近两年,App开发成为各大互联网巨头的新“行当”,在手机厂商和专业应用下载平台的夹击下,不但没有被挤成“夹心饼干”,反而成了可口的“驴肉火烧”。智业公司也同样紧跟互联网的步伐,开发了多款App移动应用,并引发了公司内员工对移动App测试的思考和总结。目前移动应用主要有Native App和Web App两种形式,Native App有“睿康App”等,而Web App有“美丽厦门·智慧健康”微信公众平台等。不管哪种形式的App,站在测试的角度来看,与传统行业的Web测试相比,有共性的地方,也有因其自身的特点,存在独特的测试需求点。

二、App和Web测试的异同点

1.相同点

不管是传统行业的Web测试,还是新兴的手机App测试,都离不开测试的基础理论知识,即不管是Web还是App测试,测试的原理依然会融入在这两者当中。

1)设计测试用例时,都需要依据边界值分析法、等价类划分等方法;

2)多数采用黑盒的测试方法来验证业务功能是否得到正确的应用;

3)需要检查界面的布局、风格和按钮等是否简洁美观、是否统一;

4)测试页面载入和翻页的速度、登录时长、内存是否溢出等;

5)测试应用系统的稳定性、易用性等。

2.不同点

相对于Web测试,手机App测试除了要考虑基本的功能测试、性能测试等,还要考虑手机本身固有的属性特征。对比Web测试和手机测试,手机App测试过程中还需要注意如下几个方面:

1)兼容测试:与本地及主流App是否兼容;检验在各种网络连接下,App的数据和运用是否正确、与各种设备是否兼容。

2)中断测试:App在前/后台运行状态时与来电、文件下载等关键运用交互情况测试;

3)易用性测试:手机方向、触摸、多触摸、缩放、分页和导航的局限性;

4)网络测试:需要考虑在不同网络和运营商的环境下,App是否可以正常使用;在网络不好或者无网路的情况下,App是否支持离线行为;

5)安装卸载:从上一个版本/上两个版本直接升级到最新版本。主要考虑全新安装新版本,新版本覆盖旧版本安装,卸载旧版本、安装新版本,卸载新版本、安装新版本这几种情况。

三、App测试的基本流程

1.测什么

测试人员接到测试任务以后,首先要对软件的业务需求和测试需求进行分析,提炼出测试目标和测试需求点。在理想情况下,测试人员应该掌握所测产品的所有细节资料。但在实际工作中,这很难做到,因此测试人员只能利用手上有限的资料整理相关测试需求点。碰到需求文档等资料不够详细,不能全面获取到测试需求点的情况下,测试人员就要自我提问:

● 该App的项目特性是什么?

● 该App的用户群体有哪些?

● 除了文档之外,还有哪些途径可以获取到测试需求点?比如项目会议?项目组团队成员?公司同类型App项目禅道上登记的Bug?

● 网上有无类似项目作为测试参考?

● 该App是在什么系统、平台和设备上进行运作和测试?

● 该App有整合外部应用(比如API和数据来源)吗?

● 有多少时间可用于测试?

● 测试重点和难点是什么?

● 测试的优先级和风险是什么?

● 如何发布和更新?

思考完毕,获取足够的信息以后,测试人员就可以制定测试计划,开始设计测试用例了。

2.怎么测

完成测试计划和测试用例的编写以后,要开始准备测试环境、测试数据以及模拟器或者手机设备。在拿到测试版本以后,测试工程师在测试App的时候,要带着问题进行:它究竟可以做什么呢?用户实际上会如何使用它的?不断地自我询问“如果……会怎么样”和“为什么”。

很多问题是可以提前设定或者假设的。测试移动端App时,可以尝试问以下问题:

● 是否按需求文档和设计文档进行开发?

● 功能是否都完成了?

● 业务逻辑是否正确?

● 基本流程是否走得通?

● 是否符合兼容性需求?

● 是否存在数据泄漏、SQL注入等安全性问题?

● 是否符合性能需求?如果处于一直被使用或者超负荷情况下,情况会怎么样?会反应迟钝吗?会崩溃吗?有反馈吗?

● 运行到极限时会发生什么状况?

● 用户可能有哪些创造性的、逻辑性的或是消极的导航方式?

● 切换网络、或者断网情况下会有什么反应呢?

● 界面操作性如何?

3.测试结果

严格执行测试用例以后,需要根据用例的执行结果,以及禅道上的bug分析该软件的质量情况:用例是否都执行通过了?严重bug多吗?是否都被解决了?未解决的bug会影响软件的使用和发布吗?分析完成以后,附上测试结论和建议,形成测试报告,发邮件给相关人员。

四、总结

市面上的手机有很多,特别是安卓手机,品牌多、手机型号多、安卓版本多,对于App的全面测试造成了很大的困难。面对这样的一个问题,我有如下一些看法:

1.制定测试手机的基准

根据手机统计分析平台选取市面上一些主流的机型来测试,比如“友盟指数”http://www.umindex.com/,可以查阅手机设备手机品牌使用趋势、操作系统使用趋势、分辨率使用趋势等指标,从而抽样选择占比较高的主流手机来进行测试。如右图所示,通过这种方法就可以了解到安卓手机中4.4版本和4.2版本占了50%以上。因而我们在选择手机版本的时候,就可以以这些占比较高的手机为主,IOS的操作系统同理。当然这只能作为一个参考,具体情况还与软件的实际用户群体有关。

2.解决手机兼容性测试的平台 - 云测平台

如果App对于手机的兼容性要求达到市面主流手机的百分之八、九十以上,靠人工测试是比较困难的,一是没有那么多的手机设备,二是没有那么多的人力和时间资源。但现在有很多比较成熟的云测平台,可以帮助我们解决这个问题。比如Testin云测平台,百度MTC云测平台等等,在这些云平台上可以实现兼容性测试、崩溃分析测试等类型的测试。测试人员可以权衡项目需求以及对测试的成本投入,最终决定是否使用云测平台。

3.制定合理的测试方案 

1)在初期使用模拟器进行测试,使用真机进行验证测试。由于模拟机不完全等同于真机,因此有些模拟器重现不了的问题,真机却会出现。建议在项目测试初期,可以先利用模拟器进行测试,在完成第一轮测试以后,要用真机进行验证测试。

2)手工测试保证App的业务逻辑和基本功能,结合使用云测平台做兼容性测试。如果项目工作比较短,在人力资源、时间资源比较紧张、以及对手机兼容性要求比较高的情况下,可以考虑使用云测平台进行兼容性测试。

3)原生态的手机App崩溃的几率比较大,但有些问题不是很好定位,这时候可以使用Testin的崩溃分析进行测试,可以详细定位到代码行。

4)在保证基本功能没问题以后,要对App进行一些bug探索性测试,提高用户体验测试。

以上就是个人在App测试过程中一些思考和总结,时代在进步,互联网也是瞬间万变的,测试的原理不变,但测试的方法和工具我们需要根据App的发展灵活应变。


【声明】内容源于网络
0
0
智业人
智业软件最主要的发声筒和讨论平台。在这里,您可以看到智业人在聊行业、谈技术、说产品、看趋势,以智发声,碰撞观点,一齐在医疗信息化道路上摸索前进。
内容 932
粉丝 0
智业人 智业软件最主要的发声筒和讨论平台。在这里,您可以看到智业人在聊行业、谈技术、说产品、看趋势,以智发声,碰撞观点,一齐在医疗信息化道路上摸索前进。
总阅读855
粉丝0
内容932