关于如何来测一款app的思考

最近工作当中需要整体测一遍app,需要全方面思考并且尽可能覆盖所有待测点,因为整理总结了这篇关于app测试的总体大纲

一、功能测试

1.1界面测试

1.1.1导航测试

---是否易于导航、导航是否直观
---不同页面之间的连接需要导航
---是否需要搜索引擎
---菜单、列表、窗口、对话框、按钮等等

1.1.2图形测试

---根据窗口大小自适应
---页面标签风格是否统一
---页面的图片要求整体美观有序

1.1.3内容测试

---文字内容与系统功能是否一致
---文字是否有错别字
---文字长度是否加以限制
---是否有敏感词汇、关键词、隐私等图片

1.2基础功能测试

1.2.1安装

---直接从App Store下载,检查是否支持正常安装、启动、运行、退出
---同样的应用安装到不同版本的手机上,覆盖主流的IOS系统,检查应用是否正常
---从Android应用市场直接下载,检查是否支持正常安装、启动、运行、退出
---从第三方网址下载的安装包,检查是否支持正常安装、启动、运行、退出
---同样的应用安装在不同的Android设备上,覆盖主流的Android机型(华米OV)
---同样的应用安装在不同的Android系统上,覆盖主流的Android系统
---安装过程中,是否可以取消安装
---安装过程中,手机存储空间不足,是否安装成功还是给出提示
---安装过程中,手机本身的意外情况如:死机、断电、关机、重启
---安装过程中,外部的意外情况如:断网,弱网,网络中断后又恢复

1.2.2卸载

---手动长按删除,检查是否有卸载确认信息弹出
---卸载过程中,是否支持取消卸载
---卸载过程中,手机本身的意外情况如:死机、断电、关机、重启
---卸载过程中,外部的意外情况如:断网,弱网,网络中断后又恢复

1.2.3升级更新

---当APP有新版本更新时,会出现更新提示,以提醒用户
---当版本为非强制升级时,用户可以取消更新,老版本能正常使用。用户下次启动app时,仍能出现更新提示
---当版本为强制升级时,当给出强制更新后用户没有更新完成就退出app,下次启动app时,仍让出现强制升级提示
---当版本更新后,检查功能是否正常
---更新升级过程中的意外情况,如死机、断电、重启

1.2.4登录

---系统是否允许多次非法的登陆,是否有次数限制
---使用已经登陆的账号登陆系统是否正确处理,一号一机,互斥原则
---使用禁用的账号登陆系统是否正确处理
---登录账号和密码的错误排列组合
---原用户已不存在,再次登录
---登录超时的处理
---防止爬虫,登录时是否有图形验证码校验

1.2.5注销

---注销是否有二次提示弹窗口
---用户注销后,是否自动退出
---注销原用户,新用户系统能否正确处理
---使用错误的账号、密码、无权限的被禁用的账号进行注销

1.2.6 push

---检查push消息是否按照指定的业务规则发送
---检查不接收推送消息后,用户不会再接收到push
---检查在设置免打扰的时间段内,用户不会再接收到push;非免打扰时间段,用户可以正常接收
---push消息只针对登录用户的情况,支只对app上最后一个登录用户进行消息推送
---测试push时,需要采用真机测试

1.3各项业务测试

---每个页面的功能,与需求文档一致
---页面与页面之间的关联,数据联动
---用户界面、后台管理界面,数据库校验的一致性
---特殊操作测试:手势操作是否正常,长按、拖拽、滑动、放大

二、交叉事件测试

2.1交互测试

备注说明:该app与其他的应用交互是否正常
---调用系统相机,检查是否能够正常打开相机,并且正常拍照
---调用系统相册,检查是否能够正常打开相册,并且上传照片或视频
---调用通讯录,检查是否能够正常打开通讯录、插入记录

2.2交叉事件测试

备注说明:在app运行过程中,其他事件或者应用,中断了当前app应用的执行。跟手机固有的功能模块,进行交互使用,像音量的调节,锁屏,旋转,返回键,主菜单键,截图,闹钟,待机,插拔数据线,耳机,wifi/3G/4G/5G、蓝牙,电话,短信,相机、通讯录、低电量
---在app运行时,接听/拨打电话
---在app运行时,发送/接收短信
---在app运行时,发生网络切换等等

2.3前后台的切换

---APP切换到后台,再回到APP,检查是否停留在上一次操作页面
---APP切换到后台,再回到APP,检查功能及应用状态是否正常,尤其是从后台切回前台数据有自动更新时
---APP切换到后台,再回到APP,注意软件是否崩溃,自动退出
---杀掉APP进程后,再开启APP,检查APP是否能正常启动
---出现必须处理的提示框后,切换到后台,再切回来,检查提示框是否还存在,有时会出现应用自动跳过提示框的缺陷
---对于有数据更新数据交换的页面,每一个页面都必须进行前后台切换、锁屏的测试,这种页面最容易出现崩溃

三、弱网测试

3.1弱网功能测试

①使用较弱的wifi、2G、3G、4G、5G
②切换网络测试 :
wifi--->2G/3G/4G/5G
2G/3G/4G/5G--->wifi
wifi--->无网
2G/3G/4G/5G--->无网
强wifi--->弱wifi
无网--->wifi
无网--->2G/3G/4G/5G
弱wifi--->强wifi

3.2无网测试

①直接断网
②断网重连

3.3弱网用户体验测试

页面显示
---初始化从零加载应显示异常提示
---页面加载部分数据后断网,已加载数据是否正常展示,未加载部分是否符合设计
---已加载所有数据后,断网重连刷新页面是否正常显示还是覆盖已有数据
---友好加载提示:进度条
---超时机制
---重连机制

3.4常用模拟弱网测试工具

charles、
Fiddler、
IOS自带开发者工具:Network Link Conditioner、
Facebook开源的Augmented Traffic Control (ATC)工具

四、权限测试

备注说明:设置某个 App 是否可以获取该权限,例如是否可访问通讯录、相册、照相机等

4.1主要权限

主要包括以下权限:
---存储空间权限
---照片相机权限
---获取设备识别码权限
---通知权限
---位置权限
---麦克风权限
---通讯录权限
---网络权限
---短信读取权限

4.2权限设置

---永不
---读取、写入
---权限开、权限关、使用时主动询问、使用时被动触发授权

五、性能测试

5.1响应时间

---app启动:首次安装启动、冷启动、暖启动、热启动
---app交互:事件响应、内部加载速度、首屏渲染、过度渲染、帧率fps、CPU占用率、流量、耗电量
---接口性能:DNS加载时间、https的请求次数、download时间
---H5性能:cache、资源加载时间

5.2启动性能

重点是要查看启动时间
---首次安装启动:首次安装会耗费较多的时间初始化
---冷启动:进程不存在
---暖启动:进程存在,界面不存在
---首屏启动:第一屏加载完整

5.3接口性能

单个接口的数据返回时间,请参照接口文档来逐一测试,全覆盖

5.4测试工具

---IOS:通过XCODE工具查看内存消耗、CPU、GPU
---Android:android studio工具的DDMS查看

六、安全测试

6.1授权验证

---扣费风险:发送短信、拨打电话、自动续费
---隐私泄露风险:访问手机信息、访问联系人信息
---对App的输入有效性校验、认证、授权、敏感数据存储、数据加密等方面进行检测
---检测App的用户授权级别、数据泄漏、非法授权访问等

6.2数据传输

---将密码或其他的敏感数据输人到app时, 其不会被储存在设备中, 同时密码也不会被解码
---输人的密码将不以明文形式进行显示
---密码, 信用卡明细, 或其他的敏感数据将不被储存在它们预输入的位置上
---不同的app的个人身份证或密码长度必需至少在4一8 个数字长度之间
---备份应该加密, 恢复数据应考虑恢复过程的异常通讯中断等, 数据恢复后再使用前应该经过校验
---app不应该模拟进行安全警告误导用户,利用显示误导信息欺骗用户
---在数据删除之前,app应当通知用户或者app提供一个"取消"命令的操作
---app应当有异常保护 ---如果数据库中重要的数据正要被重写, 应及时告知用户

6.3通讯安全

---在运行其软件过程中, 如果有来电、SMS、EMS、MMS、蓝牙、红外等通讯或充电时, 是否能暂停程序,优先处理通信, 并在处理完毕后能正常恢复软件, 继续其原来的功能
---当创立连接时, app能够处理因为网络连接中断, 进而告诉用户连接中断的情况
---app将保持工作到通讯超时, 进而发送给用户一个错误信息指示有连接错误
---应能处理通讯延时或中断,网络异常和及时将异常情况通报用户
---App和后台服务一般都是通过HTTP来交互的,验证HTTP环境下是否正常;
---公共免费网络环境中(如:麦当劳、星巴克等)都要输入用户名和密码,通过SSL认证来访问网络,需要对使用HTTP Client的library异常作捕获处理。

七、兼容性测试

---兼容不同的操作系统:IOS、Andriod、HarmonyOS
---兼容不同的机型:iphone、华米VO、三星
---兼容不同的屏幕分辨率:各类手机的尺寸大小
---兼容不同的APP:与市场上主流的100款软件同时安装在一个手机上,是否会被其他app误认为病毒软件
---兼容不同的语言:同一操作系统中,不同语言设置的兼容性
---兼容不同的网络:保证wifi、3G、4G、5G、GPRS等不同网络的可连接性

八、稳定性测试

8.1测试方案

使用monkey测试app的稳定性:运行1000次,大概八小时,查看日志文件,检查是否出现crash、anr、exception、dump等单词

8.2影响app稳定性

①内存问题
---app所需内存超过设备限制,导致app崩溃闪退
---app内存泄漏,耗尽设备全部内存导致整个系统崩溃
---app内存越界,使用了非授权的内存位置导致app崩溃
②程序逻辑错误
---数组越界,如负数索引、超过数组长度的索引
---堆栈溢出,如堆栈区缓冲区被填满,堆栈空时取数据等等
---并发操作,如并发时调用了一个已释放的指针
---逻辑错误,如0除作为除数等等
③交互逻辑
---app界面交换操作滑动导致app崩溃
---未处理中断或异常,如切后台,接电话,断网等用户的非预期操作
④网络因素
---网络不佳、弱网环境,无法达到app所需的快速响应时间,导致app崩溃
---不同网络的切换

九、其他测试场景

9.1流量测试

备注说明:为什么要做流量测试?如果一款app运行过程中,使用的流量过多,那么大概率不会受到用户的欢迎
---app安装完成后,首次启动时耗用的流量
---app安装包本身的空间大小,下载耗用的流量
---app升级更新时耗用的流量 ---app执行业务操作引起的流量
---app在后台运行时消耗的流量

9.2耗电量测试

备注说明:为什么要做耗电量测试?如果在功能类似的情况下,app特别耗电造成设备发热严重,那么用户大概率会卸载这款应用改用其他app软件
---app运行但没有执行业务操作时的耗电量
---app运行且密集执行业务操作时的耗电量
---app在后台运行时的耗电量