移动app测试经验分享

1、app安装、升级、卸载的测试点

1)安装成功的情况(检查版本号是否正确)和安装失败的各种情况
2)重复安装的情况(会不会报错)
2)升级成功的情况(检查版本号是否正确)和升级失败的各种情况
3)升级成功后,聊天记录,浏览记录等本地数据不会被删除,个人设置不会被还原
4)卸载成功的情况和卸载失败的各种情况

【参考】app测试的安装、卸载、更新所用到的测试点
https://blog.csdn.net/luck_yyf/article/details/78481785

2、app功能测试点

界面上的菜单(链接):
1)能否正常打开并且结果正确
2)是否存在菜单项遗漏问题(导致用户无法使用一些功能)

各种手势(划屏事件):
1)上划的情况(加载下一屏的数据)
2)下划的情况(刷新数据)
3)左划的情况
4)右划的情况
5)按住不放的情况
6)横竖屏切换的情况

干扰测试:
1)收到电话的情况(比如:玩游戏的时候有电话打过来)
2)收到短信的情况
3)收到通知栏消息的情况
4)无电提示框弹出的情况
5)第三方安全软件告警弹出的情况
6)网络发生切换(从wifi切换到4G)的情况(比如:玩游戏的时候,wifi断掉了,自动切换到4G的情况)

前台后台之间的切换以及锁屏的情况:
1)从app里面切出来(切换到手机桌面),再切换到app里面的情况
2)进入到app里面,自动锁屏,解锁后,app是否会崩溃

第3方功能的调用:
1)能否发起呼叫
2)能否调用发送短信
3)能否打开摄像头(成功的情况和失败的各种情况,比如:没有权限使用摄像头)
*4)能否调用扫一扫
5)能否访问相册(成功的情况和失败的各种情况,比如:没有访问相册的权限)
6)能否访问通讯录
7)能否使用定位
8)能否调用支付宝(成功的情况和失败的各种情况,比如:手机上没有安装支付宝)
9)能否调用微信支付(成功的情况和失败的各种情况,比如:手机上没有安装微信)
10)能否使用蓝牙

移动支付测试的两个方案:
1)使用虚拟的支付平台进行支付测试,比如:支付宝沙箱环境、微信支付沙箱环境
2)使用真实的支付平台进行小额支付测试(建议先到测试的数据库里面修改商品的单价,确保订单的支付金额比较低)

【参考】关于支付、关于安全的一些总结
https://testerhome.com/topics/9356
【参考】支付功能怎么测试
https://www.jianshu.com/p/4ebb1988ca00

免登录特性:
1)很多app提供免登录功能,把app关掉,重新打开app时自动以上一次登录的用户身份来使用app
2)用户主动退出登录后,下次启动APP,需要重新输入账号和密码

文本输入框的测试点:
1)必填的字段输入为空的情况
2)输入的内容过长的情况
3)输入的内容包含特殊字符(比如单引号,双引号等)
4)输入的内容包含中文的情况
5)如果是单行文本框,输入的内容包含换行符的情况
6)输入的内容是空格的情况
7)检查不允许编辑的字段能否被修改
8)数值类型的输入框,数值过大的情况
9)数值类型的输入框,数值过小的情况
*10)数值类型的输入框,输入非数值的情况
11)检查字段的默认值是否正确
12)能否被脚本注入
*13)是否会被屏幕键盘遮挡

下拉列表框的测试点:
1)检查默认值是否正确
2)检查选项列表是否正确(是否有遗漏,是否出现重复)
3)如果要求单选,检查下能同时选择多个
4)如果选项很多的话,应支持搜索

日期控件的测试点:
1)检查默认值是否正确
2)如果是必填项,输入为空的情况
3)日期的格式不正确的情况
4)日期过大的情况
5)日期过小的情况

上传控件的测试点:
*1)文件类型不符合要求的情况
2)上传的文件过大
3)上传文件的名字过长的情况
4)上传文件的名字包含中文的情况
*5)上传图片完成后,到详情页面检查下图片能否正常显示
*6)上传图片完成后,打开编辑页面检查下图片是否正常显示
*7)到编辑页面重新上传图片,检查显示出来的图片是否是最新的
8)压缩格式的附件下载下来后,可以正常打开,并且里面的内容是正确
9)如果上传的是视频的话,要检查能否正常播放或预览
10)如果支持批量上传的话,批量上传的文件过多的情况
11)上传的文件是空文件(比如:空的记事本文件)
12)上传脚本或者程序文件的情况(exe文件)
13)服务器上面硬盘空间不够的情况

提交(保存)按钮的测试点:
1)提交成功后,检查显示出来的数据是否与之前输入的数据一致(是否显示出来的还是原来的)
2)输入中文内容,提交成功后,是否会出现中文乱码
3)记录修改成功后,使用更新后的值作为查询条件,看下这条记录能不能被搜索出来
4)重复提交的情况(连续点击两次提交按钮)
*5)提交失败的各种情况,提示信息是否正确
*6)同时(并发)提交的情况
7)网络发生异常的情况

删除按钮的测试点:
1)点击删除按钮的时候,是否会弹出确认对话框
2)单个删除成功的情况
*3)单个删除失败的各种情况,提示信息是否正确
*4)批量删除的情况
*5)重复删除的情况
6)网络发生异常的情况

界面的测试点:
主要是检查界面的样式是否跟原型图一致,涉及到的界面主要包括:
1)导航层,菜单栏
2)列表页面(删除按钮和确认对话框,编辑按钮,添加按钮)
3)详情页面
4)添加记录(表单)
5)编辑记录(表单)
6)保存成功和失败的信息提示框
7)删除成功和删除失败的信息提示框

2、app稳定性测试

monkey工具:
测试安卓app的稳定性(是否出现异常和无响应)
Exception: 异常
ANR: 无响应

monkey命令(工具)seed选项的作用:
通俗一点说monkey测试都是一些随机操作,如果一次操作中出现了bug,如果要复现bug是比较难的,就在每次操作的时候加上一个seed值,现在操作只要seed值是一样的,就能帮助我们复现操作。
monkey命令(工具)throttle选项的作用:
有时候monkey的事件执行的很快,肉眼根本看不清点击事件,加上throttle参数就可以控制每个事件之间的间隔时间,使执行动作慢下来,方便我们查看。

使用monkey工具对安卓app进行测试

monkey工具参考资料:
https://blog.csdn.net/sunny_7777/article/details/80704025
monkey使用教程:
https://www.jianshu.com/p/c2aca7019ddf
https://www.jianshu.com/p/b462d6defb36

3、app安全性测试的思路

app安装包的安全性(了解):
1)开发人员打包的时候有没有对安装包进行签名
2)app程序能否被反编译(窃取源代码)

数据安全:
1)App本地存储的数据和网络请求数据中有没有涉及到用户的隐私数据。
2)检查敏感数据是否被加密

组件安全(了解):
APP安全测试的会涉及的组件包括WebView,和android四大组件Activity、Service、Broadcast Receiver、Content Provider。对于组件测试可以借用工具或第三方平台(爱内测)进行测试。

SQL注入漏洞(了解):
SQL注入安全同样借用第三方平台(阿里云测)进行测试。

参考资料:
https://blog.csdn.net/xia_xia0919/article/details/50502224
https://www.jianshu.com/p/d79a30a7ed94

登录的测试思路:
1)根据MTOP的现有规则,一个帐户只允许登录一台机器。所以,需要检查一个帐户登录多台手机的情况。原手机里的用户需要被踢出,给出友好提示。
2)软键盘劫持(金融类APP登录页面的用户名密码输入框)
3)登录失败的错误提示消息不应该明确告知是用户名不存在还是密码错误,避免客户端使用暴力破解方式。
4)对于必须要登录成功后才能访问的数据,如果没有登录就直接通过接口地址进行访问的情况。
5)密码需要使用密码强度策略,比如必须包含大写字母,小写字母和特殊字符,长度必须大于 8 位。
6)登录失败后的限制策略,比如连接 5 次登录失败,应该暂停用户登录,并将该信息发送给系统管理员,并告知客户端的 IP 地址。
7)登录时应该使用图片验证码,包括后续的一些表单提交的动作,都要使用图片验证码。 避免使用工具发送数据包,目前图片验证码是被证明最可靠的防攻击手段之一。

授权的测试思路:
1)一般用户对自己的隐私问题十分敏感,因此,我们需要对APP申请某些特定权限的必要性进行检查,如访问通讯录等。对于没有必要的权限,一般都建议开发直接移除。
2)使用不同角色的用户登录系统,检查用户的权限范围是否正确。
3)测试是否可以通过直接输入接口地址的方式进行越权调用。
4)权限的控制只能由系统管理员来维护,非管理员用户不能做任何修改。
5)权限控制要细,最好细到增删查改这种功能上,并且不同模块有不同的权限。
6)权限最好细化到数据的查看范围

4、app性能测试的思路

app的性能分为服务器端(后台)的性能和手机端的性能。
服务器端的性能,可以用LoadRunner或Jmeter工具进行测试。

以Jmeter工具为例子说一下App项目服务器端的性能测试的思路:
1)确定app的性能测试功能点,比如,查询,提交数据,登陆这些用户常用的功能,一般会被选来做性能测试;
2)然后,根据该功能点的接口测试需求,或使用fiddler抓包分析请求地址和参数;
3)在jmeter上构造向服务器发送的请求数据;
4)使用jmeter工具开启多个线程(模拟很多手机设备)发送业务请求给后台;
5)做好服务器的监控。

App项目手机端(客户端)的性能测试思路:
1)我们会使用监控工具进行监控
2)运行监控工具,连接自己的手机
3)设定好运行时长,监控内容(一般监控cpu、内存、流量,电量等)
4)待运行结束后,我们根据监控图,检查CPU,内存,流量,电量是否符合性能指标。如果不符合,就把不符合指标的报表和对应的logcat发给开发定位。
5)响应速度(app请求的响应时间):使用fiddler工具

5、app兼容性测试的思路

1)兼容主流的操作系统,比如:安卓8, 安卓9, 安卓10, iOS10, iOS11
2)兼容各种分辨率
【参考】如何保证APP兼容性覆盖测试
https://www.jianshu.com/p/c3ba4e3b2f0a

你可能感兴趣的:(移动app测试经验分享)