移动App常见测试范围

目录

一、功能测试

二、兼容适配测试

三、UI测试

四、用户体验测试

五、安装卸载

六、APP更新

七、中断测试

八、稳定性测试

九、性能测试

十、安全性测试

十一、APP测试相关工具

1、Emmagee

2、Monkey

3、Monkey参数大全

4、Monkey调试参数介绍

5、Monkey运行APP实例

6、Monkey日志分析


一、功能测试

功能测试主要根据软件需求说明书或用户需求等资料,编写测试用例,以验证各个功能点的实现情况,具体实施过程参考如下:

  1. 根据被测试模块的功能点,设计相应的测试用例进行覆盖,例如涉及到用户输入的地方要考虑到边界,用户使用场景类要考虑到正常和异常的场景,业务相关联的模块需要联合测试等;
  2. 随时关注跟踪需求的变化和理解需求,对需求理解有误时及时更改相关测试用例;
  3. 丰富完善测试用例对功能模块的覆盖点,更多的从用户使用方式出发,模拟更多的异常操作场景。   

二、兼容适配测试

兼容性及是适配测试主要包括以下几点:

  1. 硬件的适配:不同手机平板厂商、不同分辨率屏幕等;
  2. 系统OS版本的兼容性:主要是当前主流系统版本的兼容性,例如iOS 9-12,Android 5.0以上等;
  3. 不同的屏幕尺寸和分辨率,例如4寸、4.7寸、5寸、5.5寸、7.9寸、10.5寸,分辨率1280*720、1334*750、1920*1080等。

三、UI测试

UI界面样式参照一下标准进行测试验证:

  1. 获取最新的移动APP原型图,检查APP的主要风格样式,是否与原型图一致,确保UI样式符合产品经理和用户要求;
  2. 检查页面样式是否符合公司或业界标准,主要为友好性、人性化、易操作性等,例如APP界面颜色协调一致、字体大小颜色、线框对齐、排版合理性等。

四、用户体验测试

用户体验测试一般都是以普通使用用户的角度的感知产品的使用感觉,带有明显的个人主观意识色彩,故用户体验测试一般均需多人进行体验感受,提出设计不合理的地方进行汇总,确定折中最佳修改方案,以满足大部分人的使用习惯体验,不应该以一个人或少数人的主观感受体验为主,避免以偏概全。用户体验可参考从以下几个方面:

  1. 是否滥用用户引导,例如APP首次安装时的用户使用引导、APP内部新手使用教程等,不应该页面设置过多、引导时间过久,避免用户产生反感厌恶情绪;
  2. 菜单层次是否设计的过深,尽量使用户在三级菜单内就能查看到需要的信息,超过4、5层菜单则用户体验十分糟糕,用户需要反复点击回退按钮才能返回主页面;
  3. 一次加载数据量是否过多,在需要大批数据量展示时,可进行分页加载处理,每次只加载请求当前页数据,上滑滚动翻页时再另行请求数据;
  4. 是否做好了不可操作处理,当某些情况下不允许操作时,按钮置灰或者隐藏处理;
  5. 操作按钮范围是否设计的适中合理,避免按钮设计过小或者范围,难以点中;
  6. 交互流程是否分支过多
  7. 是否有自动横屏设计,对于部分需要横屏展示的,例如曲线图查看、视频播放、游戏运行等,可自动或强制横屏翻转。

五、安装卸载

  1. 安装的过程中,UI界面是否涉及的合理;
  2. 安装是否可以中途取消;
  3. 当磁盘存储空间不足时,安装时是否进行提示;
  4. 安装后没有生成多余的目录结构和文件
  5. 测试卸载APP时,是否有提示;
  6. 卸载取消是否可用;
  7. 卸载后,是否删除整个安装目录文件夹。
  8. 卸载过程中出现的意外情况的测试(如死机、断电、重启)。

六、APP更新

  1. 当APP有新版本时,打开APP后,应给出新版本提示;
  2. 当版本为非强制升级时,取消更新,旧版本APP依然可用;
  3. 当版本为强制升级时,则必须进行升级才可用,取消升级客户端自动退出,下次启动依旧弹窗提示用户版本过旧需要升级;

七、中断测试

  1. 软件运行过程中,用户接打电话、接发短信、锁屏、闹钟铃响、查看推送通知后,返回APP,查看APP是否正常;
  2. 软件运行时,由前台切换到后台,再返回前台时,应仍然可以正常运行;
  3. APP在网络出现短暂故障后,再进行网络重连时,应该可以正常进行重连后台服务器操作,例如可以将WIFI关闭或者蜂窝移动网络关闭后,再重新连接,查看APP是否能自动连接后台服务器。

八、稳定性测试

稳定性测试主要目的为检测APP在频繁操作、长时间运行等情况下,程序是否会出现崩溃、闪退、卡死卡顿等现象,稳定性测试主要从两个方面入手:

  1. 在进行功能测试阶段,进行用例覆盖时,需注意程序是否可能会出现闪退、崩溃现象,特别是在执行异常场景的测试用例时,往往能发现程序的不稳定性。
  2. 使用第三方辅助工具,自动模拟用户行为以检测程序是否出现异常,例如Android操作系统可使用Monkey工具来检测ANR(Application Not Responding程序无响应)及Crash(崩溃)现象。

九、性能测试

客户端类的APP软件,性能指标主要有:安装卸载时间、启动APP时间、页面加载时间、APP占用CPU、内存、耗电量等。

Android的APP占用CPU和内存,可以借助开源工具emmagee获取,或者第三方的手机管理工具如腾讯手机管家、360手机卫士等,部分品牌的手机自带程序管理或任务器管理工具可查看程序资源消耗。

耗电量指标:Android系统可下载第三方带有电池管理工具的APP进行统计分析,iOS苹果手机可使用操作系统自带的电池使用分析工具即可

Android:

iOS:设置--电池

十、安全性测试

APP安全测试,主要包括软件权限、数据安全等

软件权限安全包括如下:

  1. 隐私泄露风险:如APP访问通讯录、编辑删除通讯录、获取位置信息等,应该可以在APP中进行设置或者在手机操作系统中可进行允许或不允许访问权限设置;
  2. 允许/不允许APP访问互联网权限等,例如可限制APP访问蜂窝移动数据网络;
  3. 允许/不允许APP访问相机拍照、录音;
  4. 允许/不允许APP推送通知消息,例如iOS手机,可设置APP是否允许推送通知;
  5. 允许/不允许APP后台应用刷新,后台应用刷新将会消耗更多的电量和移动数据网络,对不需要实时刷新的APP,可关闭后台应用刷新。

数据安全性包括如下:

  1. 涉及到密码的区域应以密文输入,对于可以明文查看的地方,应有操作按钮控制密码明文还是密文展示;
  2. 密码、信用卡、账户明细等数据不存储在设备当中;
  3. 密码复杂程度有一定要求:最低位数、字母数字混合等;
  4. 敏感数据文件不能存储在SDCard中;
  5. 正式版本软件应该关闭Debug调试或测试日志调试记录功能;
  6. SQLite数据库安全性,例如Android手机APP如使用SQLite轻型数据库,当手机被Root后,可进入/data/data//databases目录下面,查看数据库的文件内容信息,如果数据库中记录了重要的敏感信息,则可能存在安全隐患。

十一、APP测试相关工具

1、Emmagee

Emmagee主要用于监控单个App的CPU,内存,流量,启动耗时,电量,电流等性能状态的变化,且用户可自定义配置监控的频率以及性能的实时显示,并最终生成一份性能统计文件。Emmagee是网易杭州研究院QA团队开发的一个简单易上手的Android性能监测小工具。

Emmagee功能介绍

1.检测应用从启动开始到当前时间消耗的流量数;

2.检测当前时间被测应用占用的CPU使用率以及总体CPU使用量;

3.检测当前时间被测应用占用的内存量,以及占用的总体内存百分比,剩余内存量

4.测试数据写入到CSV文件中,同时存储在手机中;

5.在浮窗中可以快速启动或者关闭手机的wifi网络;

6.可以选择开启浮窗功能,浮窗中实时显示被测应用占用性能数据信息。

Emmagee使用方法

启动Emmagee后,程序将自动检测已安装的APP软件,选择需要测试的软件,点击【开始测试】按钮,程序将启动需要测试的APP,被测试APP启动后,进行一系列模拟操作后,可看到APP上有Emmagee悬浮窗,记录实时的CPU和内存消耗等,点击停止测试后,Emmagee将统计记录数据到CSV格式文件中,文件存储在安卓手机SDCard目录下Emmagee文件夹下,文件名类似20190709134651_comXXX.csv。

 

2、Monkey

Monkey是Android SDK提供的一个命令行工具,可以简单,方便地运行在任何版本的Android模拟器和实体设备上。Monke会发送伪随机的用户事件流,实现对正在开发的应用程序进行压力测试和稳定性测试等。

Monkey环境搭建

下载SDK和安装SDK

打开http://tools.android-studio.org/index.php/sd,选择windows版本SDK进行下载;

下载完成exe安装包后开始安装Android SDK,安装过程会检测你是否安装过java jdk,安装完成后双击根目录下SDK Manager.exe,在弹窗,更新和下载插件(默认勾选项就好

配置Android SDK环境变量

方法类似与配置JDK环境变量,以本人个人电脑为例,需要配置如下三个环境变量

新建ANDROID_HOME,值为D:\Program Files\Android\sdk(以实际个人安装路径为准),

Path变量中尾部,添加android-sdk目录下的tools和platform-tools路径,即添加值为:

;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools(注意前方的英文分号)

验证ADB命令是否成功

安卓手机用usb数据线连接到电脑,开启开发者模式,允许USB调试。电脑打开cmd命令,输入adb,出现如下页面,就代表基本配置成功了

注:每个品牌手机开启开发者模式略有不同,可自行百度

 

输入命令adb devices,如果出现如下界面信息,说明手机连接电脑调试模式开启成功,(此处使用的的是MuMu模拟器,真机一般会出现810EBN655XHE device等字样),否则请检查是否正确开启手机开发者模式。

查找APP的pkg名称

(1)使用Monkey需要知道APP的pkg名字,输入命令adb shell pm list packages查看你的手机所有的安装包

(2)adb shell pm list packages -3: 查看手机上所有的第三方安装包

3、Monkey参数大全

Monkey命令基本参数介绍

基本语法如下:

$ adb shell monkey [options]

如果不指定options,Monkey将以无反馈模式启动,并把事件任意发送到安装在目标环境中的全部包。

下面是一个更为典型的命令行示例,它启动指定的应用程序,并向其发送500个伪随机事件:

$ adb shell monkey -p your.package.name -v 500

-p <允许的包名列表>         

用此参数指定一个或多个包。指定包之后,monkey将只允许系统启动指定的app。如果指定包, monkey将允许系统启动设备中的所有app。  

指定一个包:adb shell monkey -p com.shjt.map 100   

指定多个包:adb shell monkey -p fishjoy.control.menu  -p com.shjt.map  100 

-v  用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,

分别对应的参数如下所示: 

Level 0:  adb shell monkey -p com.shjt.map –v 100             

缺省值,仅提供启动提示、测试完成和最终结果等少量信息   

Level 1:  adb shell monkey -p com.shjt.map -v -v 100         

提供较为详细的日志,包括每个发送到Activity的事件信息

Level 2:  adb shell monkey -p com.shjt.map -v -v -v 100    

最详细的日志,包括了测试中选中/未选中的Activity信息

-s(随机数种子)            

指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。 

示例:

monkey测试1:adb shell monkey -p com.shjt.map -s 10 100                

monkey测试2:adb shell monkey -p com.shjt.map -s 10 100  

--throttle <毫秒>            

指定用户操作(即事件)间的时延,单位是毫秒;如果指定这个参数,monkey会尽可能快的生成和发送消息

例:adb shell monkey -p com.shjt.map --throttle 3000 100   

Monkey事件类型参数介绍

--pct-touch

设定触屏事件生成的百分比。触屏事件是一个有手指按下,抬起事件的手势,即在屏幕某处按下并抬起的操作。

比如一个应用80%的操作都是触摸,那就可以将此参数的百分比设置成相应较高的百分比。如触摸返回、触摸签到等

--pct-motion 

设定滑动事件生成的百分比。滑动事件是一个先在某一个位置手指按下,滑动一段距离后再抬起手指的手势。

--pct-trackball

设定轨迹球事件生成的百分比。轨迹球事件是包含一系列随机移动和单击事件的事件。如不规则滑动解锁

--pct-nav

设定基本导航事件生成的百分比。基本导航事件是模拟方向性在设备上输入向上、向下、向左、向右的事件

--pct-syskeys

设定按键消息的百分比,主页、后退、音量增减

--pct-anyevent

  1. 设置其他事件百分比

当没有指定该参数时,系统自动分配

Event percentages(事件百分比):

0:触摸事件百分比,参数--pct-touch

1:滑动事件百分比,参数--pct-motion

2:缩放事件百分比,参数--pct-pinchzoom

3:轨迹球事件百分比,参数--pct-trackball

4:屏幕旋转事件百分比,参数--pct-rotation

5:暂时不知道这个是什么

6:基本导航事件百分比,参数--pct-nav

7:主要导航事件百分比,参数--pct-majornav

8:系统事件百分比,参数--pct-syskeys

9:Activity启动事件百分比,参数--pct-appswitch

10:键盘翻转事件百分比,参数--pct-flip

11:其他事件百分比,参数--pct-anyevent

4、Monkey调试参数介绍

--ignore-timeouts

通常情况下,当应用程序发生任何超时错误(application  not  responding)时,monkey将停止运行。若指定了该参数,则monkey将会在产生错误信息后,继续向系统发送事件,直到指定事件全部运行完毕

 --ignore-crashes

通常情况下,monkey会在测试应用程序崩溃或者发生异常后停止运行,若指定了该参数,则monkey将会在产生异常后,继续向系统发送事件,直到指定事件全部运行完毕。

--hprof  

指定了该参数,Monkey会在发送事件序列的前、后,生成性能分析报告。

--ignore-security-exceptions   

 通常情况下,指定应用程序发生许可错误时(如证书许可,网络许可等),monkey将停止运行。若指定了该参数,即使应用程序发生许可错误,monkey会继续向系统发送事件,直到指定事件全部运行完毕。

--kill-process-after-error

错误发生时杀进程

--monitor-native-crashes

监视崩溃时的本地代码

 

5、Monkey运行APP实例

以Monkey运行测试手机监控某APP为例;

注意:Monkey无法自动登录,使用前请手动输入用户名密码登录,再运行Monkey命令

adb shell monkey -p com.app.package --throttle 100  --pct-touch 50 --pct-motion 50 -v -v 1000>D:\monkey.log

命令解析:

-p com.app.package:启动运行app程序

--throttle 100:操作时间延迟100ms

--pct-touch 50:触摸事件百分比为50%

--pct-motion 50:滑动事件百分比为50%

–v -v:日志级别为Level 1,提供较为详细的日志

1000:表示Monkey模拟1000个伪用户行为事件

>D:\monkey.log:运行日志记录输出到指定目录下的文件中

6、Monkey日志分析

正常情况如果Monkey测试顺利执行完成,在log的最后,会打印出当前执行事件的次数和所花费的时间。 // Monkey finished 代表执行完成.

异常情况:

Monkey 测试出现错误后,一般的分析步骤
看Monkey的日志 (注意第一个swith以及异常信息等)
1. 程序无响应的问题: 在日志中搜索 “ANR”
2. 崩溃问题:在日志中搜索 “Exception”   (如果出现空指针, NullPointerException)  肯定是有bug

Monkey 执行中断,在log最后也能看到当前执行次数

你可能感兴趣的:(APP测试,移动APP测试)