小程序是微信开发不需要下载安装就可以使用的一种应用,它的架构包含View视图层(使用WebView渲染页面结构)、AppService逻辑层(使用JSCore运行,逻辑处理、数据请求、接口调用),View视图层和AppService逻辑层这2个层在不同的线程中运行,通过系统层的JSBridage进行通信,逻辑层将数据变化发送给视图层,触发视图层页面更新,而视图层将触发的事件回应逻辑层进行业务处理。
本次梳理后,大体上有11个方面的测试:权限测试、功能测试、接口测试、性能测试、兼容性测试、易用性测试、UI测试、网络测试、版本配置测试以及缓存测试等。
由于小程序的版本类型,我们一般会准备3个测试环境:发版访问测试环境、体验版访问预发布环境、正式版访问生产环境。
1 权限测试
开发版、体验版不需要微信审核,只需要给测试微信号赋予权限,通过扫描小程序二维码就可访问;正式版需要微信审核,审核后如需登录,需微信号赋予登录权限即可。
1.1未授权微信登录小程序
(1)未授权时,一般使用一些业务功能的时候,都会弹出提醒:先授权再操作对应功能;(2)在提交数据到后台时,会提示补充相关身份信息才能提交成功;
1.2已授权微信登录小程序
(1)授权微信访问小程序,意味着自己的微信账号可被小程序管理方所获取;(2)自动以微信的身份形式操作权限,比如:支付、数据查询等;
1.3重新授权
更换微信登录设备后再登录小程序,需要对小程序重新授权
1.4其他权限
(1)所能查看的数据和操作的权限都应该同步一直;(2)同一微信在不同手机端登录授权查看数据的权限;
2 功能测试
2.1按功能模块测试
模块设计好的各个大类功能模块划分,然后在逐级细分,覆盖到每个功能尽可能全面的测试点
2.2按业务流程测试
(1)小程序的业务,比如:播放、支付(支付时注意支付状态:单次授权?免密?);(2)把各个功能点串联起来形成完整的业务流程来检查;(3)同一业务员,有不同的路径来实现,每个路径都需要覆盖检查。
2.3按数据流向测试
(1)根据数据从某一端操作输入和输出流向,设计基于数据流的测试用例,输出的数据也可能成为另外一端的输入;(2)检查输入的数据是否按照代码逻辑执行正确的输出;(3)是否数据发生异常,无法输入、有输入却无任何输出、输出不正确、多余的输出其他信息等;
2.4同一功能不同入口有效性检查测试
(1)小程序在首页、列表页、详细页、其他的业务功能相关页面,都有可能存在同一个功能的入口;(2)每一个入口路径都需要覆盖检查;
2.5交互性检查测试
(1)一般而言,产生数据和功能交互变化的情况主要有这几个分类:前台与前台之间、前台与后台之间、后台与后台之间;(2)前台从F1页面提交的数据,可能需要再前台F2页面查看到,也会在对应后台的B页面查到记录;(3)后台B1页面修改或者添加的数据,对应到前台的F页面产生交互变化,后台本身的不同页面间也可能存在同一个数据的输出值;
2.6支付测试
(1)支付时的支付状态:单次授权、免密;(2)解除免密授权是否能进行支付;(3)支付时有金额、无金额、支付顺序等情况是如何处理的;(4)对于未支付的订单是如何处理的;(5)小程序没有授权支付,小程序是如何处理的;
3 接口测试
Charles抓包同现有APP抓包
4 UI测试
(1)页面交互;(2)页面展示元素:检查小程序的界面美观度、字体大小、字体格式、按钮布局等
5 易用性测试
5.1导航
(1)定位到页面某个模块所在位置;(2)回到顶部或者底部;(3)导航条的收展;(4)导航标签的文字是否容易理解;(5)页面最多跳转超过限定次数后是否失败(小程序原生页面存在10层限制问题,超过10层便无法打开新页面,而业务流程或者访问形成闭环时很容易陷入10层问题)
5.2功能入口
(1)重复且常用业务的功能入口;(2)是否在比较显眼的位置;(3)业务操作是否便于大多数用户使用和查看;
5.3上下层进入与返回
(1)首页与列表页之间;(2)列表页与详细页之间;(3)首页与详细页之间;(4)不同层级之间的进入和返回实现是否有相应按键易操作;
5.4字体、图片、动态交互效果
(1)字体:标签、标题、内容、动态播放字体;(2)图片:背景图、轮播图、触屏产生的交互图;
5.5操作是否过于繁琐
6 网络测试
6.1网络切换测试
(1)WIFI切至2G/3G/4G/5G;(2)WIFI切至无网;(3)2G/3G/4G/5G切至WIFI;(4)2G/3G/4G/5G切至无网;(5)无网切至2G/3G/4G/5G;(6)无网切至WIFI;
6.2验证各种网络情况下是否正常
7 兼容性测试
(1)操作系统兼容性(Android版/iOS版);(2)屏幕兼容性测试(屏幕分辨率影响页面的布局);(3)微信版本兼容性测试;(4)二维码兼容(分享给朋友或者朋友圈的二维码图片是否能二维码正确扫描)
8 版本配置测试
针对不同的模板,在前端程序代码中修改相应的配置参数,做到版本与版本之间的切换。
8.1非公用部分
不同版本直接的切换,需要保证彼此的功能模块和数据独立性不受干扰,也就是不同版本的管理后台添加的数据只应该调用到各个对应模板的前台小程序中,不同的版本小程序从前台提交的数据也只会提交到各自管理后台。
8.2公用部分
切换不同的版本,都会显示相同的功能模块和公共数据信息。
9 性能测试
(1)页面的白屏时间;(2)首屏时间;(3)资源占用;(4)页面渲染时间
10 缓存测试
用户本地缓存(小程序文件、授权数据、登录数据等)不能超过10MB,缓存的作用是提高程序的流程、减少网络请求、节省服务器资源,其缓存测试点:清除缓存时是否强制退出、后台清理以及关机等情况,每次提交或退出时,是否清除了本次表单的缓存
11 小程序埋点测试
埋点测试与端内测试流程基本一致,关注相关参数。
注意:小程序测试过程中经常遇到的坑:层级页面跳转、兼容性、缓存