APP的测试类型有
• 安装卸载测试:确认系统能正常安装应用及使用,不需要时卸载及数据清除,
• 安全测试:防范隐私泄露、密码加密及传输安全、权限的合理开放、数据库安全、通信安全以及安装包反编译;
• 接口测试:前后端数据一致校验、接口异常状态及前端展示、数据的加密传输、业务功能覆盖;
• 交互与异常测试:同级/上下级页面的页面交互及数据加载、网络异常、数据异常前后端展示及状态;
• 性能测试、耗电量&流量测试:内存、CPU、流量消耗、耗电量、冷热启动速度、图片资源大小;
• 界面易用性测试:符合用户习惯;
• UI测试:页面颜色搭配、控件摆放位置及兼容性;
• 功能测试:需求文档已有及隐含的需求功能可正常使用;
• 兼容性测试:网络、机型、系统、分辨率、硬件、同类软件、新旧数据;
此外还有,Web和移动端的同步情况,用户在Web端的操作,在移动端是否可以正常的进行同步、显示;在移动端的操作,用户登录web账号,信息是否同步等。
与web测试的异同
界面测试方面,移动端测试需注意手势,横竖屏切换,多点触控,事件触发区域等。
兼容性测试方面,web是基于浏览器的,所以更倾向于浏览器和电脑硬件,电脑系统的方向的兼容,不过一般还是以浏览器的为主。而浏览器的兼容则是一般是选择不同的浏览器内核进行测试(IE、chrome、Firefox)。app的测试则必须依赖phone或者是pad,不仅要看分辨率,屏幕尺寸,还要看设备系统-系统总的来说也就分为Android和iOS。web端的测试一般都是主要使用一种浏览器,待系统基本稳定的时候,再去专门测试浏览器的兼容性。移动端主要分为安卓和IOS,而这两端出现的问题一般是不一致的,一致的问题主要是数据问题,这时候是需要后台处理的,所以我们测试的时候需要两端都重点测试,而不会出现先着重测试某一端的问题。
性能方面,web项目需监测响应时间、CPU、Memory,app项目除了监测响应时间、CPU、Memory外,还需监测流量、电量等。
安全测试方面,安装包是否可反编译代码、安装包是否签名、权限设置,例如访问通讯录、相册、照相机等等,登录后长时间无操作情况
专项测试方面,相对于 Wed 项目,APP有如下专项测试项
1. 干扰测试:中断,来电,短信,关机,重启等
2. 弱网络测试(模拟2g、3g、4g,wifi网络状态以及丢包情况);网络切换测试(网络断开后重连、3g切换到4g/5g/wifi 等)
3. 安装、更新、卸载。安装需考虑安装时的中断、弱网、安装后删除安装文件等情况;卸载需考虑 卸载后是否删除app相关的文件;更新,分强制更新、非强制更新、增量包更新、断点续传、弱网状态下更新
4、接口测试
5、边界测试:可用存储空间少、没有SD卡/双SD卡、飞行模式、系统时间有误、第三方依赖(QQ、微信登录)等
6、不同app版本的业务功能测试
测试工具方面,自动化测试工具:APP 一般使用 Appium;Web 一般使用 Selenium,性能测试工具:APP 一般使用 JMeter; Web 一般使用loadrunner、JMeter。
H5测试
我们很容易将H5与HTML5混淆,H5是一个产品名词,作为一种解决方案,而HTML5则是一个技术名词,是下一代文本标记语言标准。
H5页面,入口的位置可以在浏览器打开或是APP的某个入口,可以理解成是适用于移动设备上展示网页的一种新形式。APP中主要是通过Webview控件来加载URL来展示H5的。这种方式打开的H5页面一般没有刷新按钮,页面顶端也看不到URL。
H5的测试点
在接入客户端测试之前,我们可以先使用chrome自带的开发者工具(视图-开发者-开发者工具)来进行测试,效果是一样的,将H5链接放到浏览器中,打开开发者工具,我们就能看到所有接口和页面的显示。这个工具还可以用来做兼容性的测试,在页面左上角可调出,可以选择手机、分辨率等,内置的设备还有很多可以编辑,这一点上降低了我们手工去测试兼容性关于机型的测试。
H5页面的测试点一般有
基本业务功能测试,包括登录、刷新、回退、前进、翻页和业务逻辑。其中,登录方面,客户端已登录,那么进入H5后仍是登录状态;若客户端未登录,进入H5,点击对应链接,如果需要登录则需要拉起native登录。下拉刷新是否仍然处于当前页面 ;用户主动点击刷新按钮是否仍然处于当前页面 ;点击返回与back键,回退页面是否是期望页面 ;翻页加载情况;进入后台后,重新调出
性能方面,和操作体验相关的测试,包括流量、页面加载时间、弱网络环境和服务端的压测。流量测试方面,对于某些资源是否要做缓存或压缩;弱网络下,数据加载较慢,是否有对应的loading提示;刷新页面或者加载新内容时页面是否有抖动
安全方面,包括恶意攻击、权限认证、脱敏处理和直接url打开等
接口测试方面,包括功能、安全、性能
兼容性方面,包括浏览器兼容、系统版本兼容、分辨率兼容等方面
一个APP中既使用原生UI,又使用H5,是为了满足不同的需求及用户体验。使用原生UI可以应对流畅性体验要求较高的场景和UI样式相对固定,不会频繁变化的页面。使用H5页面可以满足较强的动态运营需求,UI样式频繁变化,满足多平台复用。
测试点有
1、App与HTML5对接部分需要加密传输;
2、App头部的点击后返回的是前一个页面还是退回app主界面,需要注意;
3、从App各个入口进入HTML5界面都是免登录,各入口登录、登出正常;
4、在各个机型中,屏幕较小和较大的机器会出现不能全部显示或者部分空白的情况。
5、长时间不操作HTML5或者App,需要重新登录,或者需要重新输入密码;
6、屏幕较小手机提交参数的确认页面,由于字数较多会出现换行的情况,需要做适配。
小程序测试
微信小程序,简称小程序,英文名Mini Program,是一种不需要下载安装即可使用的应用。
它的测试点有
功能测试方面,要覆盖各功能模块;在业务和数据流程上,把各个功能点串联起来形成完整的业务流程来检查;功能模块间的交互性检查。同一个业务,可能有不能的操作路径来实现,每个路径都需要覆盖检查;同一功能的不同入口检查;
易用性测试,包括,导航、功能入口,上下层级进入&返回、其他人机交互体验等
兼容性方面,主要指操作系统和屏幕分辨率方面,操作系统主要是指android系统和iOS系统。小程序运行在微信中,看起来是跟操作系统没关系,实际上还是有关系的,因为底层调用依赖于具体的操作系统。按照官方文档在微信小程序在ios上是运行在JavaScriptCore中但在Android上是通过X5JSCore来解析的。如果有条件,不仅要覆盖android和iOS,包括主流的Android品牌也要覆盖;分辨率方面,普通的手机APP会有屏幕兼容性的问题,小程序同样有这样的问题,只不过相对少了些。微信小程序定义了一个新的尺寸单位rpx(responsive pixel)可以适配不同尺寸的屏幕,在页面上定义对象的单位是rpx就可以在不同的屏幕上适配。
安全方面,小程序是内嵌到微信的,因此客户端的安全性毋庸置疑。只需关注小程序本身与后端接口传递数据的安全性即可。此外,还要注意权限方面的要求。
接口测试,对接口进行测试,和平时的接口测试是一样的,没有特别之处。但是我们需要了解的就是,微信小程序SDK提供的接口是websocket。WebSocket是 HTML 5的一个主要特性,它是建立在TCP上的一种全双工协议,也就是说客户端可以向服务器发信息,服务器也可以向客户端推送消息。WebSocket 在首次建立连接时,使用普通 HTTP和服务器通信,同时告诉服务器后面的交互用WebSocket的方式。在WebSocket连接建立后,往来的消息都可以通过这条管道发送,同时客户端与服务器也会不断地用ping-pong的方式保持心跳,防止连接异常断开。
性能测试,小程序的性能不是测试小程序的重点,优先级也比较低。小程序的性能和WEB的性能测试非常类似,性能的常用指标也大致相同。包括页面的白屏时间,首屏时间,资源占用,页面渲染时间,帧率等等。