目录

一、功能测试

二、兼容适配测试

三、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 <percent>

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

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

--pct-motion <percent>

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

--pct-trackball <percent>

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

--pct-nav<percent>

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

--pct-syskeys<percent>

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

--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常见测试范围相关推荐

  1. Android APP常见的5类内存泄露及解决方法

    Android APP常见的5类内存泄露及解决方法 参考文章: (1)Android APP常见的5类内存泄露及解决方法 (2)https://www.cnblogs.com/genggeng/p/7 ...

  2. 【技术分享】Android App常见安全问题演练分析系统-DIVA-Part1

    只有我看到DIVA的时候想到的是D.VA嘛?!滑稽脸 I. 什么是DIVA DIVA(Damn insecure and vulnerable App)是一个故意设计的存在很多漏洞的Android a ...

  3. 软件测试app crash是什么意思,APP常见崩溃原因和测试方法整理

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 ----->>>本文由领测之路轩轩老师整理完成,技术交流:315223951 测试过APP的人都应该发现,app崩溃是一类非常常见的问题 ...

  4. android app crash测试,APP常见崩溃原因和测试方法整理

    测试过APP的人都应该发现,app崩溃是一类非常常见的问题,很多时候还是致命性的,这就要求我们测试人员要尽最大可能去找出软件当中的缺陷,减少app崩溃出现的概率,这里我将收集到的关于针对APP崩溃测试 ...

  5. App常见bug解析

    App常见bug解析 更多技术文章 功能Bug 内容显示错误 前端页面展示的内容有误. 这种错误的产生有两种可能 1.前端代码写的文案错误 2.接口返回值错误 功能错误 功能错误是在测试过程中最常见的 ...

  6. app 常见网络性能

    常见的网络性能问题有如下几种:   问题一:DNS问题 DNS出问题的概率其实比大家感觉的要大,首先是DNS被劫持或者失效,2015年初业内比较知名的就有Apple内部DNS问题导致App Store ...

  7. 【Android 进阶】开发APP常见的错误

    科技日益发展,现在创建一款移动App的时间远远的低于以前,这并不稀奇:因为目前超过一半的网络流量都是来源于移动设备.当用户不在电脑旁时,可以通过专用应用程序无缝开始移动体验.令人惋惜的是,许多缺乏经验 ...

  8. app常见的专项测试以及面试题

    1.为什么进行专项测试? 手工测试之后,自动化测试之后,接口测试,性能测试之后,线下环境.预发布环境都没有问题了,测试工作看似完整,但是到了用户生产环境,安装使用过程中还是有很多之前没有预料的问题被反 ...

  9. app常见专项测试点

    常见的apk专项测试,主要有几类(主要指项目中经常用到的) 1.稳定性 2.安全性 3.兼容性 4.版本升级 5.流量测试 6.实际测试总结(对整个项目团队是如何进行测试以及测试的内容) 一.稳定性测 ...

最新文章

  1. php execute 更新不变,php – Doctrine executeUpdate数组参数
  2. 嵌入式笔录(6)单管收音机电路分析
  3. Django从理论到实战(part46)--View类
  4. LeetCode344——Reverse String(将字符串反转)
  5. android 快传 源码_最新安卓仿茄子快传APP源码包括服务端源码Android开发快传类项目源码全套...
  6. 有序列表ol与无序列表ul用法
  7. [数据结构]P2.1 二叉搜索树
  8. geoda权重矩阵导入matlab,geoda 导入空间权重矩阵怎么做
  9. 黑盒测试方法用例设计详解
  10. 2020新定额及配套招投标评审办法宣贯会成功举办
  11. linux qt qrc文件中 xxx.png图片无法加载的问题
  12. 劫持无处不在,如何应对镜像劫持?三大手段应对重定向
  13. rar压缩包加密以及rar密码破解的教程
  14. VS 下环境覆盖率测试
  15. SAI绘制滑雪者教程
  16. 吉林大学超星MOOC学习通高级语言程序设计 C++ 实验04 数组及其在程序设计中的应用(2021级)(2)
  17. 调整和删除Win7休眠文件Hiberfil.sys释放C盘
  18. 蓝牙耳机哪个品牌性价比高?高性价比真无线蓝牙耳机
  19. LFM雷达实现及USRP验证【章节3:连续雷达测距测速】
  20. flash火焰燃烧的文字效果

热门文章

  1. Windows系统使用注册表卸载软件
  2. 将docker应用并发布到远程服务器
  3. 解决sed替换文本,里面含有“/“、“#”等特殊字符的问题
  4. 为什么NBA2kol2显示游戏服务器,nba2kol2多大
  5. KOL营销是什么?开拓海外市场做海外KOL营销有什么好处?
  6. Java推箱子小游戏
  7. Nginx一次肉鸡攻击记录
  8. 江苏计算机类公务员考试分数,江苏公务员考试分数
  9. 软考高级系统架构设计师:胖客户端和瘦客户端的区别
  10. 目前最新的CPU是什么?