一、APP类型概述
手机APP根据其开发方式和运行环境,可以分为以下三类:外部APP(Web APP)、本地APP(Native APP)、混合型APP(Hybrid APP)。以下是每种类型的特点及优缺点:
1. 外部APP(Web APP)
定义:所有元素和组件以及数据都通过网络从服务器和数据库获取,客户端只是一个简单的框架。
优点:
开发成本低,只需具备Web端开发技术。
用户体验升级体验好,内容始终最新。
可移植性高,跨平台访问只需通过浏览器。
发布无需通过第三方平台。
缺点:
不支持无网络访问。
页面响应时间较慢,依赖网络环境。
不支持调用本地权限(如相册、通讯录、GPS等)。
欢迎使用Web APP
所有数据从服务器获取。
2. 本地APP(Native APP)
定义:大部分元素和组件通过客户端安装到移动设备上,只有部分数据通过网络从服务器数据库获取。
优点:
支持无网络访问。
页面响应时间快。
支持调用本地权限。
缺点:
开发成本高,需考虑多种手机型号、系统版本和屏幕分辨率。
用户体验升级体验差,需手动更新客户端。
可移植性差,无法跨平台使用。
发布需通过第三方平台(如App Store、Google Play)。
// 示例:本地APP调用GPS权限
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
3. 混合型APP(Hybrid APP)
定义:结合Web APP和Native APP的特点,分为单视图混合型和多视图混合型。
单视图混合型:同一视图中不会同时存在Web和本地两种视图,本地视图为主。
多视图混合型:同一视图中同时存在Web和本地两种视图,本地视图为主。
// 示例:混合型APP中调用本地权限
document.addEventListener("deviceready", function() {
navigator.geolocation.getCurrentPosition(function(position) {
console.log("Latitude: " + position.coords.latitude);
console.log("Longitude: " + position.coords.longitude);
});
}, false);
二、APP专项测试点
1. 安装测试
界面性引导安装:检查安装是否到指定目录(如/system/etc)。
存储空间不足:测试安装时存储空间不足的情况。
无网络环境:测试无网络环境下是否能正常安装。
安装成功后检查:
是否出现闪退。
基础UI是否符合需求。
本地功能是否正常运行。
组件目录结构是否完整。
主流系统上的兼容性测试(如Android、iOS)。
再次安装时是否替换原有版本。
是否设置设备隐私授权。
2. 卸载测试
卸载提示信息:检查卸载时是否有提示信息。
终止卸载:测试终止卸载后本地文件是否还原或删除。
卸载权限:检查卸载后权限是否被删除。
隐私数据删除提示:测试删除用户隐私数据时是否有提示。
卸载后检查:
修改的权限是否被恢复。
是否有残留文件。
3. 升级测试
普通升级:
升级成功后APP是否正常运行。
原有功能是否受影响。
数据是否受影响。
强制升级:
检查升级时是否有推送消息。
多次进入程序时是否弹出强制更新提示。
退出后台后是否更新成功。
断网时是否有提示信息。
提示框是否可关闭。
滑动页面时是否可关闭提示窗口。
底部功能是否可点击。
升级成功后版本是否被替换。
# 示例:检查APP版本号
adb shell dumpsys package
三、功能测试
1. 免登录测试
Token机制:检查登录后生成的Token是否有效,是否在失效后提示重新登录。
有效期测试:
跨年、跨月、跨周的有效期测试。
新设备登录后旧设备是否退出登录状态。
修改密码后免登录是否失效。
切换账号后数据是否更新为新用户数据。
2. 消息推送(Push)测试
推送范围:测试全部用户、部分用户、特定用户推送。
接收推送场景:
APP在前台运行时。
锁屏、亮屏、黑屏时。
APP在后台运行时。
推送内容测试:
是否按指定时间推送。
点击推送是否进入内容位置。
关闭推送后是否不再推送。
网络中断或关机后是否能收到推送。
# 示例:模拟推送测试
import requests
url = "https://api.push.example.com/send"
data = {
"title": "测试推送",
"message": "这是一条测试消息",
"target": "all"
}
response = requests.post(url, json=data)
print(response.text)
四、兼容性测试
测试点:
不同系统版本、分辨率、手机型号下的安装测试。
核心功能和主要流程是否正常。
是否与其他主流APP有冲突。
是否可以正常使用本地权限。
测试方法:
人工测试:使用常用机型(如华为、小米、OPPO、Vivo、苹果)。
云测平台:如Testin、腾讯质量开放平台。
确定测试覆盖范围:系统版本、分辨率、手机型号。
五、安全性测试
测试点:
输入的有效性。
数据传输是否加密。
用户重要信息(如密码、身份证号、银行卡号)是否加密。
交叉事件测试:
APP运行时接听拨打电话。
APP运行时接收发送短信。
APP运行时网络切换(如从5G到4G、从Wi-Fi到5G)。
APP运行时通过蓝牙接收或发送文件。
APP运行时前后台切换。
六、FAQ(常见问题及答案)
问题 答案
什么是Web APP? Web APP是通过浏览器访问的APP,所有元素和数据都从服务器获取。
本地APP和混合型APP有什么区别? 本地APP完全依赖客户端,混合型APP结合了Web和本地视图。
安装测试中需要检查哪些内容? 检查安装到指定目录、存储空间不足、无网络环境等。
消息推送测试中需要测试哪些场景? 测试APP在前台、后台、锁屏、亮屏、黑屏等场景下的推送接收。
兼容性测试有哪些方法? 人工测试、云测平台、确定测试覆盖范围等。
以上内容全面解析了手机APP专项测试的核心要点,帮助测试人员掌握测试方法与技巧。