abdstime 2020-02-03
Android APP功能测试包含APP的安装卸载测试,界面测试,业务功能测试,APP特性测试,交叉事件测试,兼容性测试,升级更新测试,消息通知测试,功能键测试,手势测试等
1-APP的安装和卸载
1.1安装
软件在不同操作系统(Android 5.0/Android 6.0/Android 7.0/Android8.0及其他小迭代系统版本)上是否正常安装
软件在不同的品牌手机(华为/三星/OPPO/VIVO等其他品牌手机)上是否正常安装
软件在不同屏幕分辨率/屏幕大小的手机上是否正常安装
第三方平台直接安装(豌豆荚/应用商店/手机助手等),是否正常安装
安装过程中,是否可以取消,点击取消后,写入的文件是否如需求说明处理
安装过程中,提示信息中不能出现代码、符号、乱码等。
安装过程中,意外情况(如死机,重启,断电)的处理是否符合需求
安装时,是否识别有SD卡(存储卡),是否默认安装到sd卡中
安装空间不足(内存或者磁盘空间不足)时是否有相应提示
安装若需要网络验证,弱网或者断网情况下安装是否正常
安装若有具体的安装手册,依照手册安装是否正常安装
安装完成后,是否生成多余的目录结构和文件
首次安装完成后,是否正常启动APP
版本覆盖安装后,是否正常启动APP
1.2卸载
直接删除安装文件夹卸载是否有提示信息,是否正常卸载
直接卸载APP应用程序是否有提示信息,是否正常卸载
卸载过程中,出现的意外情况(如死机、断电、重启)的处理是否符合需求说明
卸载过程中,是否支持取消功能,点击取消后,APP应用程序的卸载是否停止,APP应用程序是否恢复到卸载前状态
卸载过程中,是否有卸载状态进度条提示,进度条显示的进度是否正常
卸载完成后,是否全部删除所有的安装文件夹
第三方卸载,检查是否卸载完全
2-APP的界面测试
用户界面测试英文名为User interface testing,简称UI测试,测试用户界面的功能模块的布局是否合理,整体风格是否一致和各个控件的放置位置是否符合客户使用习惯,更重要的是要符合操作便捷,导航简单易懂,界面中文字是否正确,命名是否统一,页面是否美观,文字、图片组合是否完美等等。
UI测试的内容:包括导航测试、图形测试、内容测试、表格测试、H5界面测试、整体界面测试等
导航测试:导航描述了用户在一个页面内操作的方式,在不同的用户接口控制之间,导航的方式主要有:按钮、目录、菜单、弹框、列表等;
按钮:按钮的可点击的条件,按钮按下的效果,按钮的的跳转引导等,如‘登录’按钮,输入账号和密码才会高亮显示为可点击状态
目录:很多APP会在主页的右侧显示软件内容的目录结构供用户便捷有目的的浏览,也有的软件会放在顶部区域或底部区域,测试显示布局的正确性和跳转的正确性等
菜单:右上角的‘···’一般是隐形的菜单,需要查看这些菜单是可配置的,还是固定的,已经显示文字的长短是否正常,跳转是否正确
弹框:APP包含消息弹框/确认框/信息提示框/表单提交框等等,很多类型的弹框都会引导用户去其他页面,查看弹框中信息显示是否完整,点击不同按钮,是否如需求说明一样正确跳转
列表:APP的列表分页其实不明显,一般不会明确的标示是第几页,但是在服务端是存在分页,查看是否存复用的问题
图形测试:图形包括图片、动画、边框、颜色、字体、背景、按钮等;
横向比较。各控件操作方式是否统一,页面标签风格是否统一
自适应界面设计(屏幕尺寸,屏幕分辨率),图形根据窗口大小自适应
横屏/竖屏测试:游戏/图片/视频均有横竖屏自动切换,很多手机网站也做了横竖屏自适应,观察横屏或者竖屏页面的显示效果
图片、动画、边框、颜色、字体、背景、按钮等动画效果是否符合需求设计
图片或者动画的收起效果是否符合需求设计
图片来源是用户自己上传/本地的/服务端配置的,查看图片在APP端的显示效果
内容测试:内容测试用来检验APP应用程序提供信息的正确性、准确性和相关性。信息的正确性是指信息时可靠的还是误传的。信息的相关性是指是否在当前页面可以找到与当前浏览信息相关的信息列表或入口;
页面显示文案:文案是否表意不明,是否有错别字,是否有敏感性词汇,是否布局和设计一致,是否不同的屏幕尺寸/屏幕分辨率的手机上显示完整,文案来源是本地的还是后台可以配置的,文案的长短是否有限制等
文本输入框:输入框的默认文案是否清楚正确,文字长度是否限制,输入的文字是否有敏感性词汇限制,达到最大长度是否允许继续输入,删除输入的内容是否再显示默认文案,输入过程光标是否一直显示在字的末尾等
按钮上的文案:文案是否在边框内,文案的颜色是否正常,文案在点击效果下是否正常显示,文案在不同的屏幕尺寸/屏幕分辨率的手机上显示是否正常,文案表明意思和实际的操作是否相匹配等
链接上的文案:一般的协议文案的内容和连接的协议一致,链接文案的颜色是否显示正确
图形上的文案:文案是否表意不明,是否有错别字,是否有敏感性词汇,是否布局和设计一致,是否不同的屏幕尺寸/屏幕分辨率的手机上显示完整,文案来源是本地的还是后台可以配置的,文案的长短是否有限制,文案是否在图形边框内等
确认信息文案:显示的文案是否和用户所填的信息保持一致,是否布局和设计一致,是否不同的屏幕尺寸/屏幕分辨率的手机上显示完整等
提示信息文案:包含消息通知框,操作提示框,引导框等,一般这些提示信息框都包含了很多逻辑,测试对应逻辑下提示的信息是否正确
表格测试:表格通常用于批量显示数据,一般有标题行、标题列为固定的行列。
标题行:有无标题行,标题行是否居中显示,标题行的单元格是否禁止编辑
标题列:有无标题列(不一定),标题列是否居左显示(不一定),标题列中的单元格是否禁止编辑
非标题行/列:非标题行/列中的单元格是否允许编辑(不一定),非标题行/列中的单元格允许编辑时,参考文本框控件进行测试;
同一数据类型:所在行/列的单元格是否有统一的居左、居中、居右显示方式;
日期型数据:所在行/列单元格的内容显示格式是否一致;
时间型数据:所在行/列单元格内容显示格式是否一致;
货币型数据:所在行/列单元格的内容显示格式是否一致;
小数型数据:所在行/列单元格的内容显示格式是否一致;
当前所在的单元格:是否提供突出显示功能,前景/背景色、字体、字号是否正确;换行、换列时,所在单元格和非所在的显示是否正确;
当前选中的单元格:是否提供突出显示功能,前景/背景色、字体、字号是否正确;换行、换列时,选中单元格和非选中的显示是否正确;
当前所在行/列:是否提供突出显示功能,前景/背景色、字体、字号是否正确。换行、换页时,突出显示的行显示是否正确;
排序功能:某列是否具有自动排序功能(不一定)。比如日期型列提供有这样的功能:点击一次为从小到大排序,再点击为从大到小排序,查看点击后的执行效果是否正确;
翻页功能:是否有默认数据条数,每页是否显示正常,是否有复用情况
图片功能:是否存在图片,图片显示是否正常;是否可点击,点击后跳转是否正常
滑动功能:上下多次连续是否会有显示正常,数据展示完全,页面底部是否有提示
H5页面界面测试:现在大部分的APP中都有H5页面,H5页面可以实现快速迭代,现在通用比较广
兼容性:H5页面在不同的手机操作系统/不同手机品牌/屏幕尺寸/屏幕分辨率的手机上显示是否正常
整体界面测试:整体界面是指整个APP应用程序的页面结构设计,是给用户一格整体感
测试界面设计是否合理、简洁、美观,操作是否方便;功能键、数据项信息是否齐全
确认系统中同一功能的名称是否统一;同一个功能按钮,不同模块相同的错误提示信息是否统一
不同模块相同字段值的输入方式是否统一
所有弹出窗口显示位置是否统一
设计样式、风格(查询条件样式;输入风格(点选/手输入))是否与系统其它模块统一
确认页面内所有字段名称显示风格是否统一(居中、左对齐、右对齐,一般采用居中显示风格)
添加/修改保存后,添加/修改界面是否自动关闭要求统一(建议修改保存后,修改界面一般是自动关闭)
3-APP的业务功能测试
3.1 APP的常规性业务功能测试
功能测试的内容归为:界面、数据、操作、逻辑、接口
界面测试:指测试系统界面整体布局的合理性,以及是否清晰/美观,包括颜色搭配/字体/文字是否对齐/图片大小与位置/弹出窗口的位置是否合适。其次还会测试用户是否可以调整布局/是否自定义界面(包括文字/图片/颜色等)。
数据测试:指接受正确的数据输入,并对一次数据的输入有提示和容错处理。
操作测试:指用户操作菜单/按钮/链接/滑动/输入等对APP应用程序的操作,是否符合操作习惯,是否有正确的提示等等。
逻辑测试:指某个操作需要多个步骤实现,应有清楚的提示,或者向导来帮助用户完成,某项功能,从不同的入口进入有不同的操作路径,但是逻辑上应该是一致,系统的各种状态要按照业务流程变化保持稳定。
接口测试:指让接口配合多种硬件或者内部接口/外部接口,应保持其规范性/一致性/完备性,接口还需要是可定义或者可配置的,应具有良好的兼容性和扩充性。
3.2 APP功能测试的特殊性
APP业务功能测试的特殊性:包括应用的前后台切换、免登录、数据更新、离线浏览、系统权限等
应用的前后台切换测试:
APP切换到后台,再打开APP,检查是否停留在上一次操作界面,检查功能是否正常、程序是否崩溃、数据是否更新
手机锁屏解锁后进入APP,检查是否停留在上一次操作界面,检查功能是否正常、程序是否崩溃、数据是否更新
APP使用过程中被电话中断,再回到APP,检查是否停留在上一次操作界面,检查功能是否正常、数据是否更新
Kill掉APP后,再打开APP,检查功能是否正常、数据是否更新、用户登录状态是否正常
存在必须处理的提示框,切换到后台,再切换到前台,检查提示框是否存在
APP使用过程中,出现断电/意外关机重启等异常情况,再次打开APP,检查APP功能是否正常
免登录测试:
token的概念:token的意思是“令牌”,是服务端生成的一串字符串,作为客户端进行请求的一个标识。当用户第一次登录后,服务器生成一个token并将此token返回给客户端,以后客户端只需带上这个token前来请求数据即可,无需再次带上用户名和密码。
简单token的组成;uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,token的前几位以哈希算法压缩成的一定长度的十六进制字符串。为防止token泄露)。
APP利用token机制进行身份认证的加密解密步骤(RSA非对称加密算法):
客户端向服务器第一次发起登录请求(不传输用户名和密码)。
服务器利用RSA算法产生一对公钥和私钥。并保留私钥, 将公钥发送给客户端。
客户端收到公钥后, 加密用户密码,向服务器发送用户名和加密后的用户密码; 同时另外产生一对公钥和私钥,自己保留私钥, 向服务器发送公钥; 于是第二次登录请求传输了用户名和加密后的密码以及客户端生成的公钥。
服务器利用保留的私钥对密文进行解密,得到真正的密码。 经过判断, 确定用户可以登录后,生成sessionId和token, 同时利用客户端发送的公钥,对token进行加密。最后将sessionId和加密后的token返还给客户端。
客户端利用自己生成的私钥对token密文解密, 得到真正的token。
非银行/金融等大部分APP都有免登录功能,打开APP,检查登录状态是否是最近一次登录的用户
APP切换到后台,再打开APP,检查登录状态是否是最近一次登录的用户
Kill APP,再打开APP,检查登录状态是否是最近一次登录的用户
无网络情况,打开APP,检查登录状态是否是最近一次登录的用户
手机重启,打开APP,检查登录状态是否是最近一次登录的用户
切换账号登录,检查APP内的登录用户是否是当前登录账号,数据信息和当前账号是否保持一致
用户登出APP后,再打开APP,检查APP的登录状态是否为未登录状态
同一账号登录到多台设备(需求允许),检查多台设备的免登录状态是否正常
用户更换密码后,有数据交互时,检查是否会再次进行身份的验证
存在免登录日期限制的,检查在限制的日期外的登录状态是否为未登录
数据更新:手动更新和自动更新
根据应用的业务规则,以及数据更新量的情况,来确定最优的数据更新方案。
手动更新:上拉/下拉/上滑/下滑更新数据,检查更新的数据是否正确,更新的列表是否存在头像或者数据复用的问题
手动更新:更新过程中的动画效果是否符合符合需求设计
自动实时更新:自动更新的频率/自动更新的数据量是否符合需求设计
自动实时更新:自动更新过程中,考虑用户是否让用户感知,是静默更新还是通知更新?
自动定时更新:根据设定的时间,检查更新的数据是否正确(如:报表/抢购等)
筛选数据:筛选的数据请求很多都是从本地取值,检查无网络能否正常筛选
前后台切换:有数据更新后,再次打开APP,APP显示正常
离线浏览:无网络状态浏览APP的内容,即客户端会缓存一部分数据供用户查看
无网络情况:根据APP的特性,是否允许查看存放在本地的部分内容(如某些小说类APP,本地游戏类APP,学习软件类APP等)
无网络情况:APP切换到后台,再切换到前台,能否正常浏览部分内容(如缓存好的视频/音乐等)
无网络情况:Kill掉APP,再打开APP,能否正常浏览部分内容(如缓存好的视频/音乐等)
无网络情况:手机锁屏解锁后进入APP,能否正常浏览部分内容(如缓存好的视频/音乐等)
无网络情况:浏览需要请求服务端的内容时候,检查是否给予了无网络的提示
无网络情况:提交表单时,对于后台提交的请求,检查在连网后是否请求成功
系统权限:一般APP会询问用户定位权限、网络权限、相册权限、相机权限、通知权限
定位权限:定位权限关闭,打开APP,检查APP中涉及定位权限的功能是否正常
网络权限:网络权限关闭,打开APP,检查APP中涉及网络请求的功能是否正常
相册权限:相册权限关闭,打开APP,检查APP中涉及相册权限的功能是否正常
相机权限:相机权限关闭,打开APP,检查APP中涉及相机权限的功能是否正常
通知权限:通知权限关闭,打开APP,检查APP中涉及通知权限的功能是否正常
4-APP的交叉事件测试
交叉事件测试是针对智能终端应用的服务等级划分方式及实时特性所提出的测试方法。
交叉事件测试又叫事件冲突测试,是指一个功能正在执行过程中,同时另外一个事件或操作对该过程进行干扰的测试。如;App在前/后台运行状态时与来电、文件下载、音乐收听等关键运用的交互情况测试等。
同一手机设备上,多个APP同时运行,检查是否影响APP应用程序正常功能使用
APP使用过程中,前/后台切换,检查是否影响正常功能使用
APP使用过程中,拨打/接听电话,检查是否影响正常功能使用
APP使用过程中,发送/接收信息,检查是否影响正常功能使用
APP使用过程中,发送/收取邮件,检查是否影响正常功能使用
APP使用过程中,切换网络(4G、wifi),检查是否影响正常功能使用
APP使用过程中,使用蓝牙传送/接收数据,检查是否影响正常功能使用
APP使用过程中,使用使用相机、计算器等手机自带的应用功能,检查是否影响正常功能使用
APP使用过程中,正在使用其他APP收听音乐,检查APP的声音功能是否正常
APP使用过程中,APP有声音调大调小功能,检查APP的声音调节功能是否和手机的声音大小调节功能一致
APP使用过程中,通过通知栏通知打开其他应用APP,再回到APP中,检查是否影响正常功能使用
5-APP的兼容性测试
APP的兼容性一般包括版本兼容性、第三方兼容性、手机操作系统兼容性、屏幕分辨率兼容性、网络兼容性等
APP的版本兼容性:主要指服务端对客户端历史版本的兼容性
APP服务端兼容客户端的历史版本,检查新功能的服务端逻辑是否对旧版本有影响
第三方兼容性:主要指第三方接口或者SDK的兼容性
第三方接口:APP中有调用登录或者支付等的第三方API接口(如在APP用微信或者QQ登录,用微信或者支付宝付款等),检查接口是否正常请求和返回
第三方SDK(SDK 就是 Software Development Kit 的缩写,中文意思就是“软件开发工具包”):APP的第三方SDK的使用,检查在不同操作系统或者不同的品牌手机上涉及的功能是否正常
手机操作系统兼容性:
Android的操作系统版本:Android 4.0/Android 5.0/Android 6.0/Android 7.0/Android 8.0还包括很多子版本号
不同品牌的Android手机对Android系统进行了定制,如小米/华为/OPPO/VIVO等,它们对应的手机系统检查APP功能是否正常
屏幕分辨率兼容性:
分辨率主要是指显示器所能显示的像素的多少,可以从显示分辨率与图像分辨率两个方向来分类。显示分辨率(屏幕分辨率)是屏幕图像的精密度,是指显示器所能显示的像素的多少。由于屏幕上的点、线和面都是由像素组成的,显示器可显示的像素越多,画面就越精细,同样的屏幕区域内能显示的信息也越多,所以分辨率是个非常重要的性能指标之一。可以把整个图像想象成是一个大型的棋盘,而分辨率的表示方式就是所有经线和纬线交叉点的数目。显示分辨率一定的情况下,显示屏越小图像越清晰,反之,显示屏大小固定时,显示分辨率越高图像越清晰。
同一分辨率,不同手机屏幕尺寸,检查APP的UI和功能使用是否正常
同一手机屏幕尺寸,不同分辨率,检查APP的UI和功能使用是否正常
网络兼容性:
在WIFI/4G/弱网下,查看APP的UI和功能使用是否正常
6-APP的升级更新测试
APP的更新分为:强制更新和非强制更新
强制更新:
后台配置了强制更新,打开APP后,检查是否有强制更新提示,强制更新提示框是否可以关闭,强制更新是否有进度条显示
强制更新过程中出现意外(如死机、断电、重启),再次打开APP,检查APP是否再次提示更新
强制更新成功,打开APP,检查老账号的数据是否正常,老账号是否可以正常使用APP的功能
强制更新成功,打开APP,检查已经剁掉的功能或者隐藏的功能,检查新增的功能是否按业务需求设计流程操作
强制更新成功,打开APP,检查APP的版本号是否显示正确
在不同的操作系统中,检查强制更新是否可以正常更新APP
非强制更新:
后台配置了非强制更新,打开APP后,检查是否有非强制更新的提示,是否可以关闭提示
关闭了更新提示,检查历史版本用户是否可以正常使用
关闭了更新提示,再次打开APP,检查非强制更新的提示是否再弹(一般可以设置提示的频率)
更新过程中出现意外(如死机、断电、重启),再次打开APP,检查APP是否再次提示更新,是否还能正常使用
更新成功,打开APP,检查老账号的数据是否正常,老账号是否可以正常使用APP的功能
更新成功,打开APP,检查已经剁掉的功能或者隐藏的功能,检查新增的功能是否按业务需求设计流程操作
更新成功,打开APP,检查APP的版本号是否显示正确
更新成功,检查新版本用户和老版本用户的交互是否正常(如互发消息/新版本的消息通知会不会发送到老版本上/新版本注册的用户登录到老版本上是否正常等)
在不同的操作系统中,检查非强制更新是否可以正常更新APP
7-APP的消息通知测试
Android的APP消息提醒的类型一般分为:声音、Alert、标记、Toast、通知栏
声音 :声音提示是iOS的一种通知方式,可以自定义音效,可以与其他通知类型搭配使用
声音显示的及时性,检查是否和需求设计一致
提示的声音音效,检查是否和需求设计一致
Alert:强打断型提醒,在APP应用内,用户必须做出选择,否则强制提醒弹框不会关闭(如比赛邀请,APP版本强制更新等)
APP打开,在APP应用中操作或者浏览,检查Alert提醒弹框是否正常弹出,是否强制用户做出选择,是否做出选择后弹框关闭
切换APP到后台,检查Alert提醒弹框是否会弹出
APP从后台切换到前台,检查Alert提醒弹框是否会正常弹出
Kill APP,再打开APP,检查Alert提醒弹框是否会弹出
消息推送对象,检查消息推送的对象是否正确
消息推送时间,检查消息推送的时间是否和需求一致
同一手机,切换账号,打开APP,检查Alert提醒弹框是否会弹出
同一账号,切换手机,打开APP,检查Alert提醒弹框是否会弹出
标记:一种不紧急的提醒方式,APP应用内的消息标记,部分用户有强迫清零的习惯
消息标记的数字(一般是计算的是未读消息),检查计数的正确性,计数最多显示多少条,超过后显示的合理性
在APP应用内,收到新消息,检查计数的及时性和正确性
在APP应用外,收到新消息,再打开APP,检查计数的正确性
消息列表的未读已读消息,检查是否有明确的标识
消息列表的更新机制,检查有新消息提醒,消息列表是否会自动更新
消息已读后,检查未读消息的计数是否相应的减少
消息列表新增了消息类别,检查未读计数中是否加入了该消息类别
消息推送对象,检查消息推送的对象是否正确
消息推送时间,检查消息推送的时间是否和需求一致
同一手机,切换账号,打开APP,检查消息的计数是否和当前账号相对应
同一账号,切换手机,打开APP,检查消息的计数是否和当前账号相对应
Toast:纯告知,不需要处理,一般是针对正在操作的反馈(一般显示在页面的顶部)
操作完成后,检查Toast消息是否及时弹出,检查Toast消息的文案是否正确
Toast消息弹出后,检查Toast消息是否在几秒后自动消失
通知栏:Notification支持文字内容显示、震动、三色灯、铃声等多种提示形式,在默认情况下,Notification仅显示消息标题、消息内容、送达时间这3项内容
通知栏消息提醒,检查消息提醒的频率是否和需求设计一致
通知栏消息提醒,检查消息显示的标题/内容/时间等是否和需求一致
点击通知栏消息提醒,检查跳转的目标位置是否和需求一致,标记消息列表该消息是否显示为已读
消息推送对象,检查消息推送的对象是否正确
消息推送时间,检查消息推送的时间是否和需求一致
系统通知权限,检查系统通知权限的设置是否和实际情况一
9-Android的功能键测试
Android APP应用内涉及最多的功能键为:返回键,Home键,音量键,锁屏键,关机键等
返回键:
打开APP,点击物理返回键,检查是否会返回到上一步
打开APP,若物理返回键禁用,检查点击物理返回键是否有效
Home键:
打开APP,点击Home键,检查APP是否切换到后台运行,检查APP后台运行的相关功能是否正常(如音乐播放)
音量键:
打开APP,打开声音相关功能,物理调节音量键,检查声音是否会随物理调节变大变小
打开APP,打开声音相关功能,系统声音设为静音,检查声音是否为静音
锁屏键:
打开APP,锁屏,检查APP后台运行的相关功能是否正常(如音乐播放)
打开APP,锁屏,解锁,检查APP运行是否正常
关机键:
打开APP,关机,再开机,再打开APP,检查APP功能是否正常(特别是关机前正在付款等操作)
10-Android的手势测试
从屏幕左侧边缘向右滑动
在屏幕上向左滑动
从屏幕顶部向下滑动
从屏幕底部向上滑动
按住屏幕向下滑动
在图片上双击
按住图片下滑
2根手指头分开和聚拢
2根手指头按住屏幕旋转
3根手指上滑
4根手指上下/左右滑动
5根手指上下左右滑动
摇动手机
长按屏幕