一、APP测试类型
-
APP手工测试
-
手动操作APP进行测试(手点)。
-
-
APP UI自动化测试
-
使用代码或工具(如Python + Appium)代替手工测试。
-
-
APP接口测试
-
与Web接口测试类似,测试APP与服务器之间的接口。
-
-
APP性能测试
-
使用工具(如Monkey)进行性能测试。
-
二、APP测试流程
-
需求分析
-
查看需求文档,分析测试需求。
-
-
编写用例
-
编写测试用例,包括自动化脚本。
-
-
环境搭建
-
部署APP自动化测试环境。
-
-
测试执行
-
通过Jenkins打包生成最新APK包,安装到模拟器或手机中。
-
-
问题反馈与修复
-
测试发现问题后,开发修复bug,重新提交版本。
-
-
测试报告输出
-
输出测试报告,总结测试结果。
-
三、Web测试与APP测试的区别
-
功能测试
-
从功能测试层面看,Web和APP测试流程和内容基本一致。
-
-
架构与更新
-
Web项目:B/S架构,基于浏览器,更新只需服务器端同步。
-
APP项目:C/S架构,客户端必须更新,服务端修改后需全面回归测试。
-
-
性能测试
-
Web项目:关注响应时间、CPU等。
-
APP项目:除响应时间、CPU外,还需考虑流量和电量。
-
-
兼容性测试
-
Web项目:兼容不同浏览器(如火狐、谷歌、IE)和操作系统(Windows、Linux等)。
-
APP项目:兼容不同设备(如iOS、Android)、分辨率、系统版本等。
-
四、APP专项测试
-
干扰测试
-
测试中断(如来电、短信、关机、重启等)对APP的影响。
-
-
网络测试
-
弱网络测试:模拟2G、3G、4G、WiFi等网络状态及丢包情况。
-
网络切换测试:测试网络断开重连、3G切换到4G/WiFi等。
-
-
安装、更新、卸载测试
-
安装:测试安装中断、弱网、安装后删除安装文件等。
-
卸载:测试卸载后是否删除相关文件。
-
更新:测试强制更新、非强制更新、增量包更新、弱网状态下更新。
-
-
界面操作测试
-
测试手势、横竖屏切换、多点触控、前后台切换等。
-
-
安全测试
-
检查安装包是否可反编译、是否签名、权限设置等。
-
-
边界测试
-
测试存储空间不足、无SD卡、飞行模式、系统时间错误等。
-
-
权限测试
-
测试APP是否获取必要权限(如通讯录、相册、照相机等)。
-
五、APP系统分类
-
安卓端与iOS端
-
iOS端:需要MacOS系统、企业级证书,自动化测试较少。
-
安卓端:开发人员常用模拟器(模拟多种手机,连接稳定)。
-
-
iOS与安卓的区别
-
运行机制:iOS采用沙盒机制,安卓采用虚拟机机制。
-
后台制度:iOS不允许第三方程序后台运行,安卓允许。
-
UI权限:iOS中UI指令权限高,安卓中数据处理指令权限高。
-
流畅性:iOS系统更流畅,安卓系统易卡顿。
-
编程语言:iOS使用Objective-C,安卓使用Java。
-
界面:iOS界面单一,安卓界面多样化。
-
省电性:iOS更省电,安卓较费电。
-
六、APP测试包
-
生产包
-
已上线的APP包(后缀名:APK或IPA)。
-
-
灰度包/测试包
-
开发提交代码后,通过Jenkins构建生成测试包。
-
下载方式:通过URL或二维码。
-
七、ADB命令
-
常用命令
-
查看连接设备:
adb devices
-
进入Shell:
adb shell
-
查看日志:
adb logcat
-
安装APK:
adb install xxx.apk
-
卸载APP:
adb uninstall +包名
-
查看包名:
aapt d badging +包路径
-
传递文件到SDCard:
adb push 文件名 手机路径
-
从手机下载文件:
adb pull +文件
-
查看所有包名:
adb shell pm list packages
-
启动Activity:
adb shell am start 包名/路径
-
屏幕截图:
adb shell screencap
-
启动/停止ADB服务:
adb start-server
/adb kill-server
-
查看ADB版本:
adb version
-
八、APP测试中常见问题
-
ANR(无响应)
-
原因:主线程执行耗时操作,其他进程占用CPU。
-
细分原因:网络访问、数据读写、数据库操作、硬件操作等。
-
-
Crash(崩溃)
-
原因:内存管理错误、程序逻辑错误、设备兼容问题、网络因素等。
-
-
闪退
-
软件问题:版本不兼容、未更新、第三方下载、网络差、分辨率不兼容等。
-
系统问题:内存不足、越狱、缓存垃圾多、安装路径错误等。
-
-
白屏现象
-
原因:手机使用过长、质量问题、内存不足、软件与设备不兼容等。
-
九、APP测试面试题
-
APP与Web端的区别。
-
Appium的原理。
-
APP的搭建流程。
-
常用的ADB命令。
-
APP测试的关注点(专项测试)。
-
APP自动化测试中遇到的问题及解决方法。
-
APP自动化测试流程。
-
APP日志如何抓取。
-
测试过程中遇到Crash或ANR的处理方法。
-
Android与iOS系统的区别。