(转自网络)

App测试与传统台式机测试相比有一定的复杂性。这些复杂性可以被分类为:
  环境(大量的设备,各种移动OSs,适应频繁OSs变化) 。
  设备(触摸式和非触摸式设备,有限的内存容量,电池耗电量) 。
  网络(不同的网络和运营商,在不好或无网络的情况下的App行为,离线支持) 。
  可用性(方向,触摸,多触摸,缩放,分页和导航的局限性,各种干扰,如来电,来电短信,闹钟,和低电量警报) 。

一、首先是测试资源确认及准备

1.1

产品需求文档、产品原型图、接口说明文档以及设计说明文档等应齐全;

1.2

测试设备及工具的准备:IOS和andriod不同版本的真机,以及相关测试工具的准备。

二、测试用例的设计与评审

(1)根据产品需求文档、产品原型图等文档,设计客户端的一般功能测试用例;

(2)测试用例评审、修改与完善,评审通过后着手进入正式测试阶段。

三、测试

(一)UI测试

(1)确保手头的原型图与效果图为当前最新版本,符合产品经理及用户要求;

(2)测试过程中一切以效果图为准,若有用户体验方面的建议,可以先以邮件的形式与产品经理确认,确认通过后,可以正式向开发提出用户体验方面的问题;

(3)由于测试环境中的数据为模拟数据,测试时必须预先考虑到正式环境中可能出现的数据类型。

(二)功能测试

(1)功能测试时主要依据编写的功能测试用例进行软件功能的遍历;

(2)涉及的测试主要包括基本功能测试,安装、卸载、运行测试,异常处理(包括网络突然断开或者网速过慢、机器内存不足等异常情况的处理)测试。

(三)中断测试

(1)软件运行过程中接电话、收短信、锁屏、闹铃、充电,收到通知提醒后再使用软件,软件应仍可正常运行使用;

(2)软件运行时,由前台切换到后台,再切回前台后,应仍可正常运行使用。

(四)兼容性及适配测试

(1)硬件的适配:不同手机厂商、硬件性能,不同屏幕大小的适配;

(2)OS版本的兼容:IOS6-9;Andriod3以上等,如果用了一些新的API在老的系统上不支持会导致crash;

(3)不同分辨率屏幕的适配:移动设备的分辨率多种多样,如果APP没有做比较合适的处理就可能会显示不好,甚至影响功能的操作。

(4)兼容性测试必须在一定数量的真机上进行,由于真机类型过多,尤其Android在做兼容性测试时,可以选取典型的几种运用较多的真机,进行兼容性测试;

(5)另外可以借助开源测试testin云测,进行更多机型的兼容性测试,testin云测提供基本的运行情况和一些截图,以及简单的测试报告,有助于扩大测试的范围。

(五)性能测试

(1)客户端性能测试重点关注:安装卸载时间、启动时间、页面加载时间、主要功能占用的CPU、内存、流量、耗电量等,以及与同类产品相比较是否有优势;

(2)其中页面加载时间可以利用Android调试工具DDMS获取到,在DDMS里面搜索Displayed关键字就可以看到页面加载时间;

(3)运行过程中主要功能占用的CPU、内存、流量等可以借助开源工具emmagee(适用于Android)获取到;

(4)至于服务器端的性能,主要利用接口对服务器施加压力,重点关注响应时间、吞吐量、并发数、事物通过率等,可以视同工具loadrunner、jmeter进行测试。

(六)稳定性测试

(1)安卓APP的稳定性常常使用monkey命令进行测试,通过随机事件流模拟人的操作,对检查程序的内存溢出、空指针有很大的作用。

(2)Monkey主要用来检测系统ANR及Crash等问题

(七)其他

(1)验证设备内存不足时App的表现

(2)用不同的支持语言验证App行为

(3)不同网络类型间的切换验证App的行为

四、测试分析及测试报告输出

  以上各项测试结束后,应该形成完整的分析及报告文档(包括buglist、性能及稳定性结果分析,版本上线风险分析等内容),输出给各项相关人员。

五、移动端测试用例的实践经验

每种测试方法其实都有一个最佳测试时间,如在版本测试阶段,我们应当要先做基本功能测试,边界分析测试和中断,交互功能测试,快速发现bug提单给开发去快速修复,保证主体功能可以尽快得到保证,而不是一开始就先纠结与性能,压力和兼容测试。一方面这类测试往往所消耗的时间会很长,降低了发现bug的速度,另一方面先做这部分测试后,再去发现主体功能的bug,那么在开发人员动了大量代码之后,还是要再执行一遍性能,压力和兼容测试的相关用例,不仅劳命伤财,效果还事倍功半。

所以在实际项目测试中,当前我们的项目将测试内容分为功能测试,兼容性测试,性能测试,稳定性测试四项,分别在不同的测试阶段进行(具体排期在测试计划时确定):

(1)功能测试 —— 版本测试阶段

  (2)兼容性测试 —— 回归测试阶段前期

  (3)性能测试 —— 回归测试阶段,版本功能稳定后执行

  (4)稳定性测试 —— 贯穿整个测试阶段,每晚执行monkey

总结

APP页面类型功能的测试点,大致如下:

  1. UE体验

  (1)布局与交互图保持一致

  (2)真机效果与UE图没有视觉上的严重偏差,如字号,字体大小,加粗,字体颜色,行高,行间距,按钮摆放位置,间隔,尺寸等。

  (3)资源图正确使用,没有不必要的拉伸,压缩或其他效果。

  (4)各种提示,文字通顺不产生歧义,展示符合用户使用习惯。

  (5)动画效果不卡顿,正常展现。

  2. 页面操作

  (1)是否有防重复点击,即连续快速点击不会出现多个页面或弹窗

  (2)单指滑动,单指单击,单指双击,单指长按,单指缩放,多指点击

  (3)摇一摇,横竖屏切换,前后台切换

  (4)长时间使用,长时间放在后台

  3. 不同场景下的页面操作

  (1)不同网络,弱网下的页面跳转,点击响应的展现效果

  (2)修改本地参数后的页面操作展现效果,如修改日期,时间,时区,语言,键盘等

  (3)修改系统权限后的页面操作展现效果,如打开关闭定位,摄像,照片,通讯录等的授权等

  (4)页面操作过程中有系统打断,如来电,短信,闹钟提醒,日历提醒,蓝牙提醒,插拔数据线,插拔耳机,待机,锁屏,低电量提醒等

  (5)页面操作过程中进行前后台切换,如当页面数据交换时,有弹窗,提示框的时机进行切换容易发现问题。

  (6)针对非主线程调用的接口,前端要对异常及无网络情况做异步处理,不提示异常且不影响主线程操作。

  4. 页面数据获取和展现

  (1)页面是否有缓存,缓存机制是怎样的,缓存的内容有哪些

  (2)在提交页面数据失败后是否有重试机制,重试的接口参数是否保持不变

  (3)在页面操作过程中,异步接口返回的内容,是否对用户透明(客户端兼容忽略请求返回msg)

  (4)在页面操作过程中,对于接口返回的异常数据,客户端需兼容,保证程序不crash。

APP移动测试的更多相关文章

  1. Android APP压力测试(三)之Monkey日志自动分析脚本

    Android APP压力测试(三) 之Monkey日志自动分析脚本 前言 上次说要分享Monkey日志的分析脚本,这次贴出来分享一下,废话不多说,请看正文. [目录] 1.Monkey日志分析脚本 ...

  2. Android APP压力测试(二)之Monkey信息自动收集脚本

      Android APP压力测试(二) 之Monkey信息自动收集脚本 前言: 上一篇Monkey介绍基本搬抄官方介绍,主要是为了自己查阅方便.本文重点介绍我在进行Monkey时如何自动收集相关信息 ...

  3. 初识App安全性测试

    目前手机App测试还是以发现bug为主,主要测试流程就是服务器接口测试,客户端功能性覆盖,以及自动化配合的性能,适配,压测等,对于App安全性测试貌似没有系统全面统一的标准和流程,其实安全性bug也可 ...

  4. Android APP压力测试(一)之Monkey工具介绍

    Android APP压力测试(一) 之Monkey工具介绍 前言 本文主要介绍Monkey工具.Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕.滑动. ...

  5. 移动app安全测试

    安全方面逐渐转向app安全,服务端app安全测试基本上跟常规的web方面挖掘差不多,只是增加了一个反编译或抓包的过程. 参考文献: http://drops.wooyun.org/tips/749 h ...

  6. 深圳尚学堂:Android APP的测试流程

    每一个新开发的软件都避免不了测试,我在这里总结了一些Android系统的移动端APP测试的一些测试流程,希望可以给大家一些帮助. 1. UI 测试App主要核ui与实际设计的效果图是否一致:交互方面的 ...

  7. app专项测试自动化测试方法思路与实现

    秉着个人意愿打算把python+rf接口自动进行彻底结束再做些其它方面的输出~但事与愿违,但领导目前注重先把专项测试方面完成,借此,先暂停python+rf(主要是与Jenkins集成+导入DB+微信 ...

  8. 移动应用/APP的测试流程及方法

    1. APP测试基本流程 1.1流程图 1.2测试周期 测试周期可按项目的开发周期来确定测试时间,一般测试时间为两三周(即15个工作日),根据项目情况以及版本质量可适当缩短或延长测试时间.正式测试前先 ...

  9. 移动APP云测试平台测评分析

    随着智能手机的普及率和渗透率越来越高,App开发软件也越来越多.有专家预测,2017年的App应用下载量将会突破2500亿,整个移动科技市场规模将会达到770亿美元.身处在这个"移动&quo ...

  10. Android App 压力测试 monkeyrunner

    Android App 压力测试 第一部分 背景 1. 为什么要开展压力测试? 2. 什么时候开展压力测试?第二部分 理论 1. 手工测试场景 2. 自动测试创建 3. Monkey工具 4. ADB ...

随机推荐

  1. Java工程师学习指南第6部分:深入理解JVM虚拟机

    本文整理了微信公众号[Java技术江湖]发表和转载过的JVM虚拟机相关优质文章,想看到更多Java技术文章,就赶紧关注本公众号吧吧. JVM原理分析,看了都说好 JVM 深入学习:Java 解析 Cl ...

  2. 动态中位数-POJ 3784

    题目: 依次读入一个整数序列,每当已经读入的整数个数为奇数时,输出已读入的整数构成的序列的中位数. 输入格式 第一行输入一个整数P,代表后面数据集的个数,接下来若干行输入各个数据集. 每个数据集的第一 ...

  3. CF1190D Tokitsukaze and Strange Rectangle

    思路: 线段树 + 扫描线. 实现: #include <bits/stdc++.h> using namespace std; typedef long long ll; ; int n ...

  4. cent7虚拟机切换root时出现"ABRT has detected ..."问题

      今早打开虚拟机,在sudo -i的时候,发现出了这个问题: 于是我按照提示,执行abrt-cli list --since 1563382095后,结果如下: 大意就是内核出现了某CPU软死锁的问 ...

  5. POJ 1789 Truck History【最小生成树模板题Kruscal】

    题目链接:http://poj.org/problem?id=1789 大意: 不同字符串相同位置上不同字符的数目和是它们之间的差距.求衍生出全部字符串的最小差距. #include<stdio ...

  6. 输出重定向之python2和python3的区别

    python语句支持输出重定向到文件里,与shell类似使用“>>”来重定向输出. python2: logfile = open('mylog.txt', 'a') print > ...

  7. HDU 3642 求体积交集

    Get The Treasury 题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=3642 Problem Description Jack knows ...

  8. HDU 4417-Super Mario-线段树+离线

    Description Mario is world-famous plumber. His "burly" figure and amazing jumping ability ...

  9. ide的debug

    webstom 新建立一个配置项 找到webpack.config.js,最后一行加上 devtool: "source-map" 然后点击debug

  10. 怎样设置cookie生效的域名和路径

    Domain 属性指定浏览器发出HTTP请求时, 哪些域名需要附带这个Cookie. 比如 Domain 设置为 example.com, 那 abc.example.com 也会在发起请求时附带这个 ...