App移动应用测试点总结

来源:互联网 发布:js倒计时功能 编辑:程序博客网 时间:2024/05/21 09:22


App移动应用测试点总结

 

 

 


1 app功能测试 4

2 app兼容性测试 7

3 app稳定性测试 7

4 app易用性测试 7

5 app性能测试 8

6 app的安装卸载测试 8

7 app的自动化测试 9

8 app安全测试 9

前言

本文档在于总结手机app测试的基本技术,提炼手机app测试的基本要点,以指导手机app(包括Androidios)的测试工作。文中主要从手机app测试的几大方面着手,总结测试要点,给出例子,服务于包括测试设计、测试用例编写、测试方案制定、测试执行等。文中以手机app测试的主要几大方面:功能、性能、兼容、稳定性、易用性、安装卸载升级等方面展开对手机APP测试的讨论总结。

移动互联网app测试时,要了解和熟悉app与服务器的交互、app与数据库的交互、及app和服务器产生的log,通过这些信息可以很好的判断app使用的各种状态及功能实现是否正确。

1 app功能测试

1、 启动:

-------启动入口:桌面正常启动,最近运行启动,所有程序列表中启动,锁屏快捷启动

-------其他入口:从其他程序开启应用,从外部以文件形式打开应用(如果有)

-------退回:从其他程序退回时回到被测应用,被测应用打开其他应用再从桌面图标启动

 以上需要交叉组合测试。

-------异常启动:崩溃后启动,写文件时被强制杀进程后启动,网络请求未收到回包强制杀进程后再启动,网络超时时启动(启动需要有超时机制)

2、 功能介绍,引导图,流量提示等:

------全新安装程序第一次启动,会有些初始化,或者弹框提示,功能介绍,当外部打开,比如第三方打开(一般不算做第一次启动)后,再启动程序,检查该有的动作是否都有。

3、 权限:

------当某些权限被安全软件或者系统禁止时,是否可以正常使用,需要注意的权限:麦克风/摄像头/定位/短信息等权限

------在做兼容性测试时,需要特别注意权限管理较严的Rom,比如魅族在摄像头等权限为默认关闭

------第三方安全软件弹框请求禁止权限时,选择后,是否会影响到被测应用的正常流程

4、 文件错误

-----使用错误的文件类型(但是有正确的后缀名),替代被测应用使用的文件

-----adb push pc上传到设备的文件如果有中文名,会生成一个错误的文件,被测应用需要适应这种错误情况

5、 屏幕旋转:

-----确认哪些界面是需要允许横屏或者禁止横屏的

-----将屏幕锁定为竖屏或者横屏,在几个界面跳转,界面是否正常

-----当适应横屏时,是否对横屏进行了适配

6、 缓存(/sdcard/data/com.your.package/cache/):

-----卸载后将删除缓存,其中是否存在不应该删除的文件(下载文件,用户资料)

-----缓存易被360手机卫士,猎豹清理大师等清理,需检查该文件夹是否放了适合的文件

7、 正常中断:

-----在所有界面执行锁屏操作,解锁后观察是否正常运行

-----在所有界面执行长时间锁屏操作,解锁后观察是否正常运行

-----在所有界面,和所有过程,按home键切后台,再切回时观察是否正常

-----在所有的loading过程中,按back

-----在所有的loading过程中,按home

-----界面切换动画时尝试多次按back

-----正常的点击动作,尝试快速按两次

-----后摄像头和前摄像头无法同时启动,后摄像头启动还包括打开闪光灯(与手电筒类应用的兼容性)

-----检查键盘展开和收起的时机,与homeback、锁屏组合测试

-----从第三方启动后,home键回到桌面,再从桌面打开被测应用,显示是否正确(应确定是显示第三方启动界面,还是显示程序正常启动界面,前者如微信,后者如QQ

 

8、 异常中断:

-----断电后重启

-----当界面被意外崩溃,是否可以重启界面,并且恢复到崩溃之前的状态

-----来电结束后,返回被测应用界面

-----在某些特殊情况下,来电后,移动网络会被切断

9、 多语言:

-----其他语言的语言习惯(如繁体)

-----英文注意复数

-----多语言下,需要特别检查以图片形式展示的文案(如果功能引导,启动引导图)

-----一致性。(一方面是代指的一致性,一方面如果有系列应用共用功能的文案也需要保持一致)

-----如果在简体下载了一个文件or创建了一个快捷方式or进行了一笔购买,马上切换语言去做一次同样的动作

-----检查英文语言下的切断、断行是否正确

-----当文字长度不一致时,UI界面是否能正常适配

 

10、 列表:

1. 列表中的文字长度超过限制

2. 点击列表项返回后的列表项的状态变化(尤其在有多个进度条存在时,需要注意状态)

3. 上下滑动时,是否可接受卡顿(帧率)

 

11、 双卡双待:

1. 当手机为双卡双待时,影响到的功能有:需要获取手机号码的功能,如支付;自动读取短信息

 

12、 网络:

1. 是否以较好的体验从网络问题导致的数据问题中恢复界面展示数据

2. 是否每个需要网络请求的操作,都有做超时处理,并且测试出他的超时时间

3. 检查每一个需要网路请求的动作在网络延迟,服务器发生错误时,界面的响应

4. 设备离线时应用功能是否正常

5. 设备离线又从新恢复连线后应用是否正常使用

6. 2G3G4G网络和WiFi网络下应用使用是否正常

 

13、 程序功能是否已经实现(需要确认实际的实际效果,而不是配置成功就当做是通过,需要测试实际的实现是否符合,或者通过其他客户端、服务器上进行交互的验证)----------如测试登陆功能:测试需要输入用户名密码后,进行登陆,查看客户端登陆是否成功,是否可以正常进入主页面,同时还需要查看服务器是否对登陆的设备、账户密码进行验证,是否有相关的用户登陆的log输出,log的内容是否正确等。

---------如测试客户端应用黑名单功能:测试勾选该应用黑名单框后,除了查看该应用是否会移到应用黑名单外,还要进入服务器数据库等查看应用是否真的移到对应的记录表格,同时查看操作的log记录是否正确,还要使用被限制的客户端登录后进行查看验证,查看该使用是否被禁用,无法进行正常的安装和使用等

14、 业务流程是否正确(主要测试对应功能点操作的处理流程是否正常,每个流程节点的输入级输出是否正确)

----------如测试客户端登陆流程:需要测试在输入账号完成后查看系统是否立即做账户合法性检查,在输入密码完成后是否检查密码的合法性,点击登陆后系统是否检查设备的合法性,是否检查账户密码是否正确,检查设备是否和对应的账户密码绑定,测试时需要查看类似的一些流程的处理过程,通过检测每个节点的输入输出及生成的log信息判断,登陆的流程是否正确,在那个节点出错。

15、 数据正确性(主要测试客户端各个操作的实现后的数据是否正确,每个输入输出、与服务器交互数据等都要正确)

----------如测试客户端消息通知数据正确性:首先查看客户端发布的通知消息内容是否正确,同时还要查看服务器发送新的消息后客户端收到的数据是否正确,并查看生成的log信息是否正确

16、 页面功能(主要测试客户端模块切换跳转、模块显示等功能是否正常)

----------如测试不同模块的跳转:测试点击模块后跳转是否正常、进入下一个模块、返回上一层摸等是否正常

17、 边界值和异常值(主要测试每个操作和输入框对内容边界值及一些特殊字符是否有做相关的处理,是否会出现未知的异常等)

-----------如测试密码框的输入(限定612位字母和数字组合):需要测试密码为561213位时的情况,需要测试输入空格、tab键、@#%¥等特殊字符、?|}{等符号的输入、非字母数字组合、中文等情况时,系统处理是否正常

18、 交互性测试(主要测试软件运行时,与手机硬件和软件进行交互时,是否和出现异常)

-----------交互测试主要分为以下几类1、硬件交互测试(USB插拔、电池没电及插拔、充电、锁屏、横竖屏切换、截屏、耳机插拔)2、软件交互测试(电话来电、短信、相机、闹铃等后台运行的软件,软件后台运行、强制清除进程)3、网络影响(主要是wifi2G/3G/4G

19、 异常操作(简单来说就是做不允许做的操作,查看系统反应是否正常)

---------登陆异常操作:如在用户登陆验证时,端口网络,检查系统处理是否正常,查看输出的log是否正常

没有内存空间时,APP能否正确响应 

反复操作某个功能,不断点击,刷新时,是否会闪退

多个APP运行时

不断切换前台和后台,是否影响应用正常功能 

2 app兼容性测试

App的兼容性测试主要考虑的有:

1、 系统的版本(依据系统的版本进行在不同版本上验证测试,如支持Android4.0.0以上的所有版本,可以依据实际情况选择4.14.24.34.4等不同版本的Android系统进行测试)

2、 分辨率(主要依据系统支持的分辨率及市场使用的情况进行兼容性测试,可以考虑如1080p720p480p320p等分辨率的手机进行兼容测试)

3、 品牌(依据市场反馈的情况,可以选择不同的手机主流品牌进行测试)

4、 对应是否root的手机的兼容测试

3 app稳定性测试

目前考虑主要通过工具盒自己编写脚本进行测试。

Android:目前使用monkey通过随机事件流模拟用户的各项操作,可以测试系统的内存溢出等稳定性

Ios待补充

4 app易用性测试

1、 易用性测试(主要测试系统实现是否符号操作习惯,是否简单易用,简单实用的操作是最好的的设计,给用户的提示信息是否简单、易于理解,且符合当前事件)

2、 系统特性:根据AndroidiOS系统本身的特性验证应用是否有做很好的适配

3、 用户体验:

1. 以最挑剔最无理的用户角度来使用应用的主打功能

2. 是否每个动作都有反馈

3. 每个按钮都有按下的状态

4. 当界面有返回按钮时,back将执行同样的操作

5. 当图片需要网络拉取,或者无图片时,是否有默认图片替代

6. 开启开发者选项,勾选显示布局边界,检查每一个按钮的可点击范围是否合理

5 app性能测试

客户端性能测试:主要业务功能占用的CPU、内存、耗电量、流量等,与同类产品相比较是否有优势

android推荐工具:GT\emmagee

ios推荐工具:GT

具体操作:参考对应的工具文档

流量:

1 首次启动应用的流量是否符合预期

2 在主界面有很多图片时,是否已经达到图片文件大小与显示效果的平衡

3 当需要使用较大的网络流量时(加载大图片,视频播放缓冲,下载更新包),显示出当前网速或者进度,对用户来说更友善

性能测试:

1. cpu占用,内存,流量,耗时等数据,必须有标准和参考值(可以是市场上同类应用的类似操作的表现,或者同应用的不同版本测试)

2 特定操作(一般为主打功能)的压力测试,一般长时间大批量执行某个动作或者组合,尤其为该动作是通过JNI实现,或者使用了其他第三方sdk。一般写脚本或者录制脚本。

6 app的安装卸载测试

1、 安装:

a) 使用短信连接安装

b) 使用web网址安装

c) 使用一些应用市场安装

d) 直接拷贝安装包安装

e) 使用电脑连接进行安装

f) 远程控制安装

2、 卸载:

a) 直接手动卸载

b) 强制后台卸载

c) 通过应用管理软件卸载

d) 直接删除安装文件卸载

e) 通过电脑卸载

f) 远程卸载

3、 升级:

a) 通过客户本身升级功能升级

b) 直接安装覆盖升级

c) 远程安装升级(要注意升级前后系统的功能、数据是否有变化)

4、 升级要点:

1. 是否有完整的升级策略(强制升级,灰度发布)

2. 下载升级包过程中是否可以取消

3. 升级包下载是否可以续传

4. 升级过程是否可以中断(取消按钮,back键)

5. Android系统第一次安装非官方市场应用,需要手动取消限制,此过程是否会影响到apk包安装(正对预装应用的测试)

6. 在没有更新或者网络时,需要给予用户正确的信息表达

7. 如果升级有忽略本次版本升级,那么当有新的升级版本时,是否还有提示升级

8. 收到升级提示后,下载了apk并未安装,同名替换该apk,下次再收到升级提示后,是否正常升级

5、 应用外部升级:

1 应用如果是跳网页下载安装包升级,需要在文件名加版本号或者标识,防止浏览器下载时有缓存,而无法安装最新版本

2 交由系统下载升级安装包,尝试进行两次版本升级

7 app的自动化测试

目前比较流行的有Monkeyrunnerrobotiumappium用来冒烟测试是绰绰有余,另外还有网站集成的比如:Itestin、百度云等,可以测试适配和全面兼容性,做功能自动化还不完善。

具体实现:appium

 

8 app安全测试

1、 软件权限安全:

1)扣费风险:包括发送短信、拨打电话、连接网络等  

2)隐私泄露风险:包括访问手机信息、访问联系人信息等  

3)对App的输入有效性校验、认证、授权、敏感数据存储、数据加密等方面进行检测

4)限制/允许使用手机功能接人互联网

5)限制/允许使用手机发送接受信息功能

6)限制/允许应用程序来注册自动启动应用程序

7)限制或使用本地连接

8)限制/允许使用手机拍照或录音

9)限制/允许使用手机读取用户数据

10) 限制/允许使用手机写人用户数据

11) 检测App的用户授权级别、数据泄漏、非法授权访问等

2、 安装和卸载安全:

1)应用程序应能正确安装到设备驱动程序上

2)能够在安装设备驱动程序上找到应用程序的相应图标

3)是否包含数字签名信息

4JAD文件和JAR包中包含的所有托管属性及其值必需是正确的

5JAD文件显示的资料内容与应用程序显示的资料内容应一致

6)安装路径应能指定

7)没有用户的允许,应用程序不能预先设定自动启动

8)卸载是否安全,其安装进去的文件是否全部卸载

9)卸载用户使用过程中产生的文件是否有提示

10)其修改的配置信息是否复原

11)卸载是否影响其他软件的功能

12)卸载应该移除所有的文件

3、 数据安全性:

1)当将密码或其他的敏感数据输人到应用程序时,其不会被储存在设备中,同时密码也不会被解码

2)输人的密码将不以明文形式进行显示

3)密码,信用卡明细,或其他的敏感数据将不被储存在它们预输人的位置上

4)不同的应用程序的个人身份证或密码长度必需至少在48个数字长度之间

5)当应用程序处理信用卡明细,或其他的敏感数据时,不以明文形式将数据写到其它单独的文件或者临时文件中。

6)防止应用程序异常终止而又没有侧除它的临时文件,文件可能遭受人侵者的袭击,然后读取这些数据信息。

7)当将敏感数据输人到应用程序时,其不会被储存在设备中

8)备份应该加密,恢复数据应考虑恢复过程的异常通讯中断等,数据恢复后再使用前应该经过校验

9)应用程序应考虑系统或者虚拟机器产生的用户提示信息或安全替告

10)应用程序不能忽略系统或者虚拟机器产生的用户提示信息或安全警告,更不能在安全警告显示前,,利用显示误导信息欺骗用户,应用程序不应该模拟进行安全警告误导用户

11)在数据删除之前,应用程序应当通知用户或者应用程序提供一个“取消”命令的操作

12)“ 取消” 命令操作能够按照设计要求实现其功能

13)应用程序应当能够处理当不允许应用软件连接到个人信息管理的情况

14)当进行读或写用户信息操作时,应用程序将会向用户发送一个操作错误的提示信息

15)在没有用户明确许可的前提下不损坏侧除个人信息管理应用程序中的任何内容Μ

16)应用程序读和写数据正确。

17)应用程序应当有异常保护。

18)如果数据库中重要的数据正要被重写,应及时告知用户

19)能合理地处理出现的错误

20)意外情况下应提示用户

4、通信安全:

1)在运行其软件过程中,如果有来电、SMSEMSMMS、蓝牙、红外等通讯或充电时,是否能暂停程序,优先处理通信,并在处理完毕后能正常恢复软件,继续其原来的功能

2)当创立连接时,应用程序能够处理因为网络连接中断,进而告诉用户连接中断的情况3)应能处理通讯延时或中断

4)应用程序将保持工作到通讯超时,进而发送给用户一个错误信息指示有连接错误

5)应能处理网络异常和及时将异常情况通报用户

6)应用程序关闭或网络连接不再使用时应及时关闭)断开

7) HTTPHTTPS覆盖测试

--App和后台服务一般都是通过HTTP来交互的,验证HTTP环境下是否正常;

--公共免费网络环境中(如:麦当劳、星巴克等)都要输入用户名和密码,通过SSL认证来访问网络,需要对使用HTTP Clientlibrary异常作捕获处理。

5、人机接口安全性:

1)返回菜单总保持可用

2)命令有优先权顺序

3)声音的设置不影响应用程序的功能

4)应用程序必需利用目标设备适用的全屏尺寸来显示上述内容

5)应用程序必需能够处理不可预知的用户操作,例如错误的操作和同时按下多个键

6、病毒检测:

1. apk文件在PC上检测(http://virscan.org/

2. 手机杀毒软件检测(http://www.3533.com/news/14/201403/99325/其中Avast为静态扫描dex对比特征值,易误杀)

原创粉丝点击