APP测试知识点
2020-11-10 09:50:26 1 举报
AI智能生成
APP测试知识点
作者其他创作
大纲/内容
移动端测试概述
手机组成
硬件+操作系统+软件
手机关注点
品牌(华为、vivo)
系统及系统版本(Android、iOS)
尺寸分辨率
市场占有率(受众人群高的、主流的)
手机选择
APP的功能、受众人群
系统
Android
Java语言编写
后缀:apk
iOS
object-c语言编写
后缀:ipa
Android手机架构
applications
应用程序框架(java)
系统运行库
Linux内核
APP分类
网页应用web APP
浏览器中的APP
原生应用 Native APP
基于手机系统而研发的APP
本地APP,系统自带的APP
混合模式移动应用 Hybrid APP
web APP+Native APP,如QQ浏览器
没有需求文档的该怎么做
经验:测试人员的经验,作为使用者的经验
产品各文档:产品说明书,使用手册,设计文档,流程图,原型图等
咨询:咨询相关人员,形成可读性文档
有迹可循,有效沟通,责任到人,有效学习
产品各文档:产品说明书,使用手册,设计文档,流程图,原型图等
咨询:咨询相关人员,形成可读性文档
有迹可循,有效沟通,责任到人,有效学习
安装测试
安装后是否能正常运行
安装后桌面图标、名称是否正常
重复安装
卸载后重新安装
WiFi下安装
4G网络下安装
后台安装
安装过程中断网
安装过程中来电、闹钟响
安装过程中是否可以取消
安装过程中关机,重启是否可以重新安装
内存不足时安装是否有提示
安装时是否有授权提示
安装向导的界面是否正确
不同操作系统中安装
低电量时安装
手机助手安装
adb命令安装
apk安装
应用商店下载安装
官网下载安装
扫码安装
卸载测试
桌面长按卸载
桌面拖拽卸载
应用管理卸载
adb命令卸载
手机助手卸载
卸载是否有提示
卸载后重新安装
不同系统中卸载
取消卸载
升级更新测试
有新版时是否提示更新
设置中检查更新:有新版本时是否有红色标记
不卸载旧版本直接更新
WiFi下自动更新
数据流量更新
免流量更新
更新后桌面图标、名称是否正常
更新后能否正常运行
下载速度是否合理
强制更新时,打开应用是否提示更新下载,是否下载成功
非强制更新时,取消更新后,应用是否可正常使用
升级后功能是否正常
前后台切换、锁屏
切换到后台再回到APP,检查是否停留在上一次的操作页面
页面出现必须处理的提示框时,切换到后台,再切回来,检查提示框是否还在
关掉app进程,再启动app,是否正常启动
对于有数据交换的页面都要进行前后台切换、锁屏测试
手机锁屏,解屏后页面是否正常
交叉事件测试
App运行时前/后台切换是否影响正常功能
App运行时拨打/接听电话
App运行时发送/接收信息
App运行时发送/收取邮件
App运行时切换网络(2G/3G/4G/wifi)
App运行时切换应用
App运行时使用蓝牙传送/接收数据
App运行时使用相机、计算器等手机自带设备
手势操作测试点
手机开锁屏对运行中的App的影响
切换网络对运行中的App的影响
运行中的App前后台切换的影响
多个运行中的App的切换
App运行时关机
App运行时重启系统
App运行时充电
用户体验测试
是否有空数据界面设计,引导用户去执行操作
菜单层次是否太深
一次是否载入太多数据
按钮可点击范围是否合适
是否有横屏模式
UI测试
菜单/按钮对话框/窗口/布局是否合理
页面是否美观
文字是否正确
字体/按钮颜色是否正确
页面标签风格是否统一
图片显示是否清晰
操作是否友好
功能测试
运行
安装后运行是否正常
APP打开速度是否可观
页面间的切换是否流畅,逻辑是否正确
注册
注册后是否与后台数据一致
用户名密码格式、长度
注销的账号能否再次注册
登录
使用合法用户登录
登录后数据库数据是否正确
用户名正确密码错误是否能登录
用户名错误密码正确是否能登录
使用数据库不存在的数据登录
使用禁用的账号登录是否有提示
登录是否有次数限制
登录超时处理
杀掉进程能否重新登录
登录后跳转页面是否正确
退出
退出后页面跳转是否正确
退出后再次登录
退出后验证数据库数据是否正确
未登录状态使用功能响应
免登录
无网络能否正常进入免登录状态
是否能自动登录成功
切换用户后,登录信息及数据是否正确
密码更换后,检查有数据交换时是否进行了身份校验
用户主动退出后,再次启动APP,应停留在登录页面
数据更新
自动更新
手动更新
实时更新
定时更新
消息通知
检查在免打扰时间段是否收到通知
在非免打扰时间段用户是否收到通知
关闭消息通知,检查是否收到通知
检查APP消息设置与系统消息之间的影响
检查消息是否按照指定的业务规则发送
定位、照相机服务
定位服务未开启时是否有允许设置定位的提示
当确定开启定位时能否自动跳转到定位设置界面
第一次访问照相机时是否有提示授权
兼容性测试CTS
目的:验证app在不同手机版本,平台上面运行是否稳定
一般是在有较大版本更新的时候进行兼容性测试
测试范围:操作系统版本、分辨率、网络类型
兼容性测试方法
人工
选择测试手机(购买或租)
测试数量:测试工程师能够达到三人,兼容性测试数量:50-60台,一人至少20台
测试用例
采用矩阵图的形式
或从功能测试用例中选择优先级高,正向测试用例
集中一段时间执行测试,一般2至7天
测试过程中发生bug后做以下工作
在其他手机上进行相同步骤验证,验证该bug是否是特定手机发生问题
云测
给第三方云测平台来做,如testin
优势
真机自动化,手机全,时间短,测试内容全面,报告完整,准确
劣势
发生问题后,开发不能和测试工程师沟通;成本高
弱网测试
什么是弱网
低于2G速率,一般WiFi不纳入弱网测试范围
为什么要做弱网测试
手机的网络环境复杂(2G/3G/4G/5G/WIFI)、网络不稳定,都会对用户使用APP造成一定影响
APP使用场景多变,如进地铁、上公交、进电梯等,网络信号会变弱,
如果APP没有对各种网络异常进行兼容处理,那么用户可能在日常生活中遇到APP闪退、ANR、数据丢失等问题。
如果APP没有对各种网络异常进行兼容处理,那么用户可能在日常生活中遇到APP闪退、ANR、数据丢失等问题。
一般iOS只做功能测试和兼容性测试,弱网测试只做Android的
弱网测试时主要精力还是在手机界面上,查看加载过程
弱网测试可能出现的问题
crash崩溃闪退
ANR超时无响应
界面加载缺失,图片文字加载不全
超长时间等待无提示
弱网测试方法
SIM卡数据流量测试
三大运营商都要测试
测试用例
采用矩阵图的形式
或选择功能用例中的正向,常用,优先级高的用例
执行测试
在不同网络模式下进行主要功能测试
在测试过程中,主要覆盖弱网和强网之间的切换(2G/WIFI,3G/wifi,4G/WIFI,5G/wifi)
提交bug
一定要注意提交信息中要有:网络情况描述,如哪个运营商,用的哪个网络
编写专项测试报告
使用限速工具测试
Charles
弱网原理
通过控制发送数据或接收数据的大小来限制网络的上传和下载
端口号
8888,使用netstat -ano | findstr "8888"查看端口号是否被占用,找到 LISTENING对应的pid号,到任务管理器中找到该进程查看
先安装JDK,配置环境变量;安装Charles破解;关闭防火墙;卸载杀毒软件
步骤
Charles抓取请求设置
HTTP请求设置
Proxy-->Access Control Settings-->add-->填写0.0.0.0/0(抓取所有的ip地址)
Proxy-->Proxy Settings-->勾选Enable transparent HTTP proxying-->Windows-->勾选Enable Windows proxy
HTTPS请求设置
开启HTTPS:Proxy-->SSL Proxying Settings-->勾选Enable SSL Proxying-->添加Inclube(*:443)
安装证书:Help-->SSL Proxying-->install Charles Root Certificate
手机代理设置
手机与电脑在同一局域网
主机名填电脑IP,端口号填8888
下载证书
抓取HTTPS需下载证书,手机浏览器输入:chls.pro/ssl,另外,iOS安装证书后需要设置信任
弱网设置
Proxy-->Throttle Settings-->勾选Enable Throttling-->Add Location-->选择网络模式
写用例
测试用例用矩阵图记录或挑选功能测试的主要功能、优先级高的用例
执行测试
进行功能测试,观察软件页面加载状态,查看Overview-->Timing-->Duration(总耗时)
提交bug
一定要注意提交信息中要有网络情况描述,如哪个运营商,用的哪个网络
fiddler
弱网原理
通过控制发送数据或接收数据的时间来限制网络的上传和下载
端口号
8888,使用netstat -ano | findstr "8888"查看端口号是否被占用
步骤
HTTPS请求设置
菜单tools-->options-->HTTPS页签:勾选左边复选框
-->Actions-->选择Trust Root Certificate:会弹出证书安装使用框,点YES,确认按键 直到证书安装完整,-->重启fiddler
-->Actions-->选择Trust Root Certificate:会弹出证书安装使用框,点YES,确认按键 直到证书安装完整,-->重启fiddler
手机代理设置
手机与电脑在同一局域网
主机名填电脑IP,端口号填8888
下载证书
抓取HTTPS需下载证书,手机浏览器输入:http://电脑IP:8888,另外,iOS安装证书后需要设置信任
弱网设置
Rules-->Customize rules-->进入ScriptEditor-->找到m_simulateModem-->修改上传和下载时间
Rules-->Performance-->勾选Simulate Modem Speeds(每修改一次时间就要勾选一次)
写用例
测试用例用矩阵图记录或挑选功能测试的主要功能、优先级高的用例
执行测试
进行功能测试,观察软件页面加载状态,查看Statistics-->Overall Elapsed(总耗时)
提交bug
一定要注意提交信息中要有网络情况描述,如哪个运营商,用的哪个网络
性能测试
GT工具
GT介绍
随身调测平台,属于腾讯旗下,GT已经不更新版本
针对于移动客户端进行性能测试,实际工作中很少进行客户端性能测试
手机需要root权限
使用场景
1.功能测试中遇到页面加载慢,手机温度过高的情况,可以考虑是性能问题,可以用该工具获取响应的数据作为提交bug的证据
2.提交bug后,协助开发做对比测试(根据bug的情况,增加一个对比测试),获取响应数据,来进行分析竞品
3.测试计划中安排的客户端性能测试.要么就提供性能指标,要么根据竞品做对比测试
操作步骤
安装GT的apk到手机端或模拟器(iOS需要把GT嵌入APP中)
打开GT
选择要测试的app,勾选要采集的数据名称,点击启动按键
出参-->点击编辑按键,拖拽需要关注的参数-->完成-->清除数据-->点击录制按键
回到app进行关键步骤操作,形成数据
停止录制,查看数据,保存,把数据导出到电脑进行分析
数据提取
用adb命令把数据拿到电脑端
adb pull 手机文件目录(/sdcard/GT/GW...) 电脑目录
adb命令详解
adb介绍
adb,即Android Debug Bridge,是Android下面一个通用的调试工具
熟练掌握adb可以管理设备的状态,还可以进行操作,如:安装、卸载软件,系统升级,运行shell命令
adb.exe在安装的android的SDK开发包platform-tools目录下
adb端口:5037
环境配置
①安装JDK,配置环境变量,检查版本java -version
②安装SDK,配置环境变量(platform-tools安装目录),检查版本adb version
设备设置
真机连接adb
数据线连接
①手机-->设置-->关于本机-->点击版本号(厂商品牌版本号),进入开发者模式
-->回到设置中找到"开发者选项"-->打开USB调试及USB相关的功能(手机在长时间不操作的情况,可能会自动关闭USB调试)
-->回到设置中找到"开发者选项"-->打开USB调试及USB相关的功能(手机在长时间不操作的情况,可能会自动关闭USB调试)
②在CMD窗口输入adb devices识别设备
WiFi连接
①手机-->设置-->关于本机-->点击版本号(厂商品牌版本号),进入开发者模式
-->回到设置中找到"开发者选项"-->打开USB调试及USB相关的功能(手机在长时间不操作的情况,可能会自动关闭USB调试)
-->回到设置中找到"开发者选项"-->打开USB调试及USB相关的功能(手机在长时间不操作的情况,可能会自动关闭USB调试)
②手机与电脑在同一局域网,
开启5555端口,这里需要连接USB线:adb tcpip 5555
开启5555端口,这里需要连接USB线:adb tcpip 5555
③CDM窗口输入adb connect 手机WiFiIP:5555
④输入adb devices识别设备
模拟器连接adb
①设置-->关于平板-->点击版本号(连续点击5-7),直到显示:"您已经处于开发者模式"
-->返回到前一个界面,找到开发者选项-->打开USB调试
-->返回到前一个界面,找到开发者选项-->打开USB调试
②在CMD窗口输入adb connect 127.0.0.1:port, port是对应模拟器的端口号,逍遥模拟器端口21503
③在CMD窗口输入adb devices识别设备
连接状态说明
device
offline
插拔USB
adb kill-server:结束adb 服务进程,adb start-server:开启服务,adb devices
unauthorized
在第一次连接的时候出现在手机端,在手机端有弹框提示,点击复选框,点击确定即可
no devices
List of devices attached 只有这句话时
检查设备的设置开发者模式/USB调试
检查驱动,驱动没有安装,可以考虑安装豌豆荚之类的工具自动安装驱动,
使用后卸载,否则有占用端口可能性
使用后卸载,否则有占用端口可能性
基本命令
adb version 查看adb版本
adb tcpip 5555 打开tcp模式端口
adb connect IP:port 通过网络方式连接手机或者模拟器
adb devices 识别连接的设备
adb reboot 重启设备
adb kill-server 终止adb服务进程
adb start-server 重启adb服务进程
adb install apk绝对路径 安装apk(可拖拽进来窗口)
adb uninstall 包名 卸载APP (包名是APP在手机中唯一标识,通过包名可以找对应的应用)
adb shell 进入手机底层目录(#表示已root,$表示未root,exit退出shell)
adb -s 序列号 shell 指定设备用-s
adb root 切换到root权限
adb shell pm list packages 列出手机中所有APP的包名
adb shell pm list packages -s 列出手机中自带的APP包名
adb shell pm list packages -3 列出手机中所有用户安装的第三方APP的包名
adb shell dumpsys activity | find "mFocusedActivity" 列出当前界面的APP包名
adb push 电脑文件目录 手机目录 文件从电脑拷贝到手机
adb pull 手机文件目录 电脑目录 文件从手机拷贝到电脑
adb shell cd 文件夹 进入目录文件夹
adb shell ls 列出目录下所有文件和文件夹
Monkey稳定性测试
什么是Monkey
Monkey是Android系统自带的一个命令行工具
它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试
Monkey测试目的
进行压力测试,然后开发人员结合Monkey打印的日志和logcat系统日志发现测试中出现的问题
基本命令格式
adb shell monkey -p 程序包 -v 事件次数
adb shell monkey -p com.songqin.sqcs -v -v -s 777 --throttle 450
--ignore-crashes --ignore-timeouts --ignore-security-exceptions 800 > D:\monkeylog.txt (保存至D盘)
--ignore-crashes --ignore-timeouts --ignore-security-exceptions 800 > D:\monkeylog.txt (保存至D盘)
Monkey参数
-p 程序包
指定一个或多个包名,不指定包名会随机启动APP
-v
日志的详细程度,总共分3个级别,-v -v -v
-s SEED
序列值,用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同,前提是APP初始状态尽量一样
使用相同的值便于验证和复现bug
--throttle MILLISEC
用于指定用户操作(即事件)间的延迟时间,模拟用户操作,单位是毫秒,一般300-450ms
--ignore-crashes
忽略崩溃crash(Force& Close错误)
--ignore-timeouts
忽略ANR无响应(Application No Responding)错误
--ignore-security-exceptions
忽略许可错误(如证书许可,网络许可等)
--kill-process-after-error
发生错误时应用程序停止运行并保持当前状态,系统并不会结束该应用程序的进程
--monitor-native-crashes
监视并报告Android系统本地代码的崩溃事件
--ignore-native-crashes
忽略本地崩溃事件
--pct-事件类别-百分比
该类事件数目占总事件数目的百分比
Monkey执行
执行阶段
是在功能基本稳定之后
执行时间
每天晚上下班时执行命令,第二天早上查看结果、定位问题
参考数据
执行时长:8-10小时(控制事件数和throttle)
--throttle:450左右
count事件数:350000-360000
SEED:任意
执行准备
电脑端
安装JDK、SDK,配置环境变量
用命令查出APP的包名
准备Monkey测试命令和logcat命令
手机端
打开USB调试,数据线连电脑,连接adb,adb devices识别设备
取消锁屏,保持常亮,关掉运行程序,手机电量保持在90%以上,插入耳机,连接wifi 和数据流量
准备测试数据,APP登录账号
执行方式
一是开两个CMD窗口,一个执行命令adb logcat -v time,一个执行Monkey测试命令,尽量同时执行
二是批处理执行
把命令写在TXT文件中,保存为.bat格式,要执行时双击打开即可
结果分析
首先查看手机状态:分为关机,正常,重启
// Monkey finished
Monkey日志末尾出现,表示测试通过
CRASH问题
在Monkey日志中搜索关键字“CRASH”://CRASH:
在logcat日志中搜索"FATAL":FATAL EXCEPTION: main或Fatal signal
ANR问题
在Monkey日志中搜索// NOT RESPONDING或“ANR”:ANR in .....
在logcat日志之中搜索"ANR":ANR in.....
搜索关键字“Exception”,看有无其他异常事件。(如果出现空指针, NullPointerException,需格外重视)
Monkey异常停止
**monkey aborted due to error
手机关机
在logcat日志中搜索temperature温度、batterylevel电池电量,温度过高可能会自动关机,要验证是不是APP造成的
手机重启
导致logcat停止,要复现验证,看是在monkey测试中停止还是monkey测试完成后停止的
关机:shutdown/shut;重启:reboot; logcat命令断开;tombstone,tcdump
提交bug
相同的包名,相同的错误(crash/anr)是一个bug,不同包名,相同的错误,是两个bug
标题:在执行monkey测试时发现"ANR in edu.yjyx.student"
发现某某现象(写上时间点),详细查看日志,请查看附件
期望结果:执行monkey测试不发生错误
如果发生ANR问题除了提交Monkey日志和logcat日志外,有root权限的话还要提交ANR日志文件:手机目录/data/anr下的traces.txt文件
测试报告
以表格形式,字段有:人员、日期、包名、crash、ANR、shutdown、reboot、other、time、bugID,填写logcat日志中出现问题的次数
Logcat
Logcat是Android中的一个命令行工具,记录系统所有程序操作时间和事件,logcat不会自动停止,需要Ctrl+C
shell模式下使用logcat,PC端使用adb logcat
命令:adb logcat -v time
adb logcat 命令除非手动停止,或者连接断开,否则一致保持连接,通过logtcat界面可以观察是否有重启
日常测试
在日常测试中要学会使用adb logcat截取日志
把手机和电脑保持连接状态,避免一些偶现bug发生
如果没有发生问题,可以停止后重新执行命令
小程序测试
微信小程序的框架包含两部分,View视图层、App Service逻辑层
小程序兼容性测试不仅要考虑手机的系统和版本,还需要考虑主app的版本
特点
基于微信跨平台
有离线能力
类web,非HTML5
即用即走,随手可得
测试点
功能测试
1)输入
2)输出
3)边界值
4)页面交互---微信小程序里面界面交互
5)系统问题方面测试---低电,来电话,数据线插拔,充电状态,重启等情况
2)输出
3)边界值
4)页面交互---微信小程序里面界面交互
5)系统问题方面测试---低电,来电话,数据线插拔,充电状态,重启等情况
UI测试
1)设计是否美观
2)是否符合需求说明
3)尺寸是否合理
4)对于横竖屏切换使用和不同手机分辨率和尺寸的要求是否符合
2)是否符合需求说明
3)尺寸是否合理
4)对于横竖屏切换使用和不同手机分辨率和尺寸的要求是否符合
兼容性测试
1)操作系统 ---IOS、Android
2)微信版本---小程序的api(接口)库
3)其他微信小程序
4)屏幕大小和分辨率因素
5)不同网络状态下的测试---2G/3G/4G/wifi
2)微信版本---小程序的api(接口)库
3)其他微信小程序
4)屏幕大小和分辨率因素
5)不同网络状态下的测试---2G/3G/4G/wifi
与微信功能的交互测试
1)入口---下拉框、发现模块搜索
2)交易---微信钱包、微信卡包
3)与微信其他功能的切换---抢红包、文字聊天、语音聊天、视频通话
2)交易---微信钱包、微信卡包
3)与微信其他功能的切换---抢红包、文字聊天、语音聊天、视频通话
性能测试
1)页面响应时间
2)资源占用
3)渲染时间
4)耗电量
5)白屏时间
6)帧率
2)资源占用
3)渲染时间
4)耗电量
5)白屏时间
6)帧率
安全性测试
1)接口测试---传递的数据的安全性
2)微信账号授权
3)与小程序的app账号关联
2)微信账号授权
3)与小程序的app账号关联
易用性测试
1)是否方便使用
2)提示信息是否完整
3)各个功能是否可用
4)是否方便查找
5)是否可以离线使用
6)进入小程序过程是否简单易操作
2)提示信息是否完整
3)各个功能是否可用
4)是否方便查找
5)是否可以离线使用
6)进入小程序过程是否简单易操作
其他
1)小程序升级更新---一般为强制升级和更新
2)小程序目前不支持分享至朋友圈,但是可以用图片的方式分享至朋友圈
3)小程序的添加和删除
4)微信端取消授权登录
2)小程序目前不支持分享至朋友圈,但是可以用图片的方式分享至朋友圈
3)小程序的添加和删除
4)微信端取消授权登录
安全测试
是否支持反编译
是否防二次打包
数据安全
登录时adb logcat是否可以获取用户名和密码
密码是否是明文显示
修改密码是否需要确认
账号登录
能否在不同设备上同时登录
密码错误是否有登录次数限制
验证码
是否单次有效、验证有效时长
键盘安全
是否用自定义软键盘
自定义软键盘是否随机变化布局
SQL注入、XSS
H5测试
不同手机浏览器兼容性测试
验证H5的连接有效性
如果H5支持分享,要验证分享功能
要横竖屏切换,验证屏幕适应性
0 条评论
下一页