经历过几个App项目之后,结合之前做过的web项目,总觉得有些东西需要理一理,从测试的角度来看,Web端与App测试有哪些不一样?测试人员需要从哪些方面进行验证?应该怎样去设计和开展测试工作?这里是我的一点点心得:
1 系统结构方面 -
Web项目 - 主要是基于B/S架构来部署的,用户需要从浏览器来进行操作,在Web的测试过程中,客户端会随服务器端同步更新,测试的重点主要放在服务器端。
App项目 - 是基于C/S架构的,客户端多半是移动手持设备,在App测试过程中,只要修改了服务端,那么客户端用户所有核心版本都需要进行回归测试。
2 系统性能方面
Web项目 - 通常需要监控系统的响应时间、CPU Utility、Memory Utility,Temperature, Through out/put rate, Concurrent thread/user etc. 通过这些参数找出系统的临界点,并给于相应的建议。
App项目 - 通常将重点放在测响应时间、流量、电量、场景等方面
3 系统兼容方面
Web项目 - 通常从操作系统和浏览器等方面来考量,如是否兼容系统(Windows7、Windows10、Linux等)是否兼容浏览器 IE6、IE8、Firefox、Chrome等)
App项目 - 则侧重于不同的设备和系统,如Andriod系统是否兼容各主流厂商设备,IOS系统是否兼容各apple主流设备如iPhone,iPAD,iWatch等
4 测试工具方面
Web测试 - 自动化工具通常使用Selenium,QTP, RFT, WinRunner 等等,性能测试工具通常使用LoadRunner / JMeter (参看下面的截图)
App测试 - 自动化工具通常使用Appium / AutomatorUI / SeeTest 等 ,性能测试工具通常使用JMeter
5 特征测试方面
Web特征测试主要包括:
链接测试 - 主要是保证链接的可用性和正确性,考虑链接的页面是否存在?是否按指示链接到了相应链接的页面?是否存在空白页面等
图形测试 - 确保图形有明确用途,图片或动画不要过于紧凑,以免浪费传输时间;其次,验证文字回绕是否正确
打印机测试 - 考虑网页打印是否正常(显示的图片和文本的对齐方式可能与打印出来的东西不一样,是否完整打印)
App特征测试主要包括:
1. 安装、更新、卸载
安装:需考虑安装时的中断、弱网以及安装后删除安装文件等情况
更新:分强制更新、非强制更新、增量包更新、断点续传、弱网状态下更新等几种情况
卸载:需考虑卸载后App相关文件是否删除干净
2. 权限测试
设置某个App是否可以获取该权限,比如是否可访问短信、读取联系人、相册、照相机、位置信息等
安全测试
安装包是否可反编译代码、安装包是否签名、权限设置
3. 边界测试
可用存储空间少、飞行模式、系统时间有误、第三方登录(QQ、微信、微博登录)以及没有SD卡/双SD卡等
界面操作
关于手机端测试,需注意横竖屏切换、多点触控、手势、事件触发区、前后台的切换(从后台回到App,检查是否停留在上次操作界面、功能和应用状态是否一样)等
4. 干扰测试
电话响应(接通、呼叫挂断、呼叫保持)、收发短信、中断(插拔数据线、手机锁屏、闹钟、蓝牙等)、电量不足、关机、重启、死机等
5. 网络测试
首先,弱网络测试(模拟2G、3G、4G、WiFi网络状态以及丢包情况,重点要考虑回退和刷新是否会造成二次提交);其次,网络切换测试(网络断开后重连、3G切换到4G/WiFi等)
6. 中断测试
在使用App的过程中,网络中断或者设备故障的场景也是时有发生的,这类测试在交易类的App中尤为重要,模拟中断或故障场景,看交易是否停留在上次操作界面
7. 多点登陆测试
同时登录多台设备,看App是否能记录登录节点,并确保只有一台设备工作正常
8. 其他
用户验证,密码找回,权限设置等也是App类测试常常要考虑的覆盖面。
9. 闭环测试
主要用于业务场景的流程验证,用来检验业务的逻辑性和可靠性。这在报表统计,业务数据展示,确保前后台数据一致性方面尤为重要。
附图 -
————————————————
未完待续 。。。