第六章 移动栈测试技术
一. 移动端测试技术
什么移动端
-
移动端操作系统
- IOS
- Android
- Windows Phone
- Symbian
- Windows Mobile
- Blackberry
-
手机测试的分类
- 传统手机测试 : 是指测试手机本身,如抗压、抗摔、抗疲劳、抗低温高温等,也包括手机本身的功能、性能等测试
- 手机应用软件测试 : 手机应用软件是基于手机操作系统之上开发出来的软件,做这样的测试,就叫做手机应用软件测试
-
移动端测试 :
- 移动端软件测试就是符合多种网络,不同系统m,不同分辨率,不同硬件配置下发现软件缺陷,并保证提高软件质量的过程
-
移动端与PC端软件测试的区别
比较点 | 移动应用 | PC应用 |
---|---|---|
应用类型 | Native App和WebApp以及混合型 | Client和Web |
操作方式 | 多点触控 | 鼠标和键盘 |
界面布局 | 操作界面少,流程简单 | 操作界面复杂且流程复杂 |
设备尺寸 | 移动设备屏幕小,手机和平板的屏幕尺寸相差巨大,且各自屏幕大小种类繁多 | PC显示屏幕大且其他软件应用不受屏幕限制 |
功能 | 强调主要功能以及用户常用功能 | 支持全部功能 |
设备网络连接方式 | 主要2G/3G/4G/WIFI | 有线方式/WIFI |
应用设备限制 | 存储空间小,连接不稳定,带宽较小,流量费用限制,移动互联网上的风险等 | 储存空间大,带宽相对大,连接一般比较稳定,各种安全软件安装齐全 |
用户使用习惯 | 移动用户随时随地会使用移动软件应用,强调移动性 | 用户一般在固定的地点使用PC应用 |
移动端测试流程
-
移动端测试要点 ***
-
安装、卸载测试
- 安装测试 :
- 从不同的渠道获取安装程序是否正常安装
- 软件在不同操作系统下安装是否正常
- 软件安装后是否能够正常运存,安装后的文件夹及文件是否写到了指定的目录中
- 软件安装过程是否可以取消安装,点击取消后,写入的文件是否如概要设计说明的进行处理
- 软件安装过程意外情况的处理是否符合需求 (如死机,重启,断电等)
- 安装控件不足时是否有相应提示
- 安装后没有生成多余的目录结构和文件
- 对于需要通过网络验证之类的安装,在断网情况下尝试安装
- 需要对安装手册进行测试,依照安装手册是否能顺利安装
- 卸载测试
- 直接删除安装文件夹卸载是否有提示信息
- 测试系统直接卸载程序是否有提示信息
- 测试卸载文件后是否全面删除所有的安装文件夹
- 卸载是否支持取消功能,单击取消后软件卸载的情况
- 系统直接卸载UI测试,是否有卸载状态进度条提示
- 安装测试 :
-
UI测试
- 导航测试 :
- 按钮、对话框、列表和窗口等;或在不同的连接页面之间需要导航
- 是否易于导航.导航是否直观
- 是和否需要搜索引擎
- 导航帮助是否准确直观导航与页面结构菜单\拦截页面的风格是否一致
- 图形测试 :
- 横向比较,各控件操作方式统一
- 自适应界面设计,内容根据窗口大小自适应
- 页面标签风格是否统一
- 页面的图片应有其实际意义而要求整体有序美观
- 图片质量要高且图片尺寸在设计符合要求的情况下应尽量小
- 界面整体使用的颜色不宜过多
- 内容测试 :
- 输入框说明文字的内容与系统功能是否一致
- 文字长度是否加以限制
- 是否有错别字
- 信息是否为中文显示
- 是否有敏感性词汇、关键词
- 是否有敏感性图片,如: 设计版权、专利、隐私等图片
- 导航测试 :
-
功能测试 :
- 运行app
- 应用的前后台切换
- 免登陆
- 数据更新
- 离线浏览
- APP更新
- 定位、照相机服务
- 时间测试
- PUSH测试
-
性能测试 :
- 极限测试 : 在各种边界压力情况下,如电池、储存、网速等,验证App是否能正确相应
- 内存满时安装app
- 运行app时手机断电
- 运行App时断掉网络
- 响应能力测试 : 测试App中的各类操作是否满足用户响应时间要求
- App安装、卸载的响应时间
- App各类功能性能操作的影响时间
- 压力测试 : 反复长期操作、系统资源是否占用异常
- App反复进行安装、卸载,查看系统资源是否正常
- 其他功能进行反复操作,查看西戎资源是否正常
- 性能评估 : 评估典型用户应用场景下,系统资源的使用情况
- 基线测试 : 与竞争产品的Benchmarking,产品演化对比测试等
- 极限测试 : 在各种边界压力情况下,如电池、储存、网速等,验证App是否能正确相应
-
交叉事件测试 :
-
交叉测试又叫事件或冲突测试,是指一个功能正在执行过程中,同时另一个事件或操作对该过程进行干扰的测试
-
测试要点 :
- 多个App同时运行是否影响正常功能
- App运行时前/后切换是否影响正常功能
- App运行时拨打/接听电话
- App运行时发送/接收消息
- App运行时发送/接收邮件
- App运行时切换网络(2G/3G/4G/WIFI)
- App运行时刘侃网络
- App运行时使用蓝牙传送/接收数据
- App运行时使用相机、计算器等手机自带功能
-
-
兼容性测试 :
- 不同网络兼容
- 与本地及主流App兼容
- 不同操作系统兼容
- 不同手机品牌兼容
- 不同屏幕分辨率兼容
-
升级、更新测试 :
- 更新版发布后,配合不同网络环境的自动更新提示及下载、安装、更新、启动、运行的验证测试
-
用户体验测试 :
- 是否有空数据界面设计,引导用户去执行操作
- 是否滥用用户引导
- 是否有不可点击的效果
- 菜单层次是否太深
- 交互流程分支是否太多
- 相关的选项是否离的很远
- 一次是否载入太多的数据
- 界面中按钮可点击范围是否适中
- 标签页是否跟内容没有从属关系,当切换标签时,内容是否跟着切换
- 操作应该有主次从属关系
- 是否定义Back的逻辑.涉及软硬件交互时,Back键应具有定义
- 是否有横屏模式的设计,应用议案需要支持横屏模式,即自适应设计
-
硬件环境测试 :
- 手势操作测试 :
- 手机开锁屏对运行中的app的影响
- 切换网络对运行中的app的影响
- 运行中的app前后台切换的影响
- 多个运行中的app的切换
- App运行时关机
- App运行时重启
- App运行时充电
- App运行时kill掉进程再打开
- 网络环境测试
- 无网络时,执行需要网络的操作,给与友好提示,确保程序不出现崩溃
- 内网测试时,要注意选择到外网操作时的异常情况处理
- 在网络信号不好时,检查功能状态是否正常,确保不因提交数据失败而造成崩溃
- 在网络信号不好时,检查数据是否会一直处于提交中的状态,有无超时限制,如遇到数据狡猾失败时给予提示
- 在网络信号不好时,执行操作后,在回调没有完成的情况下,退出本页面或者执行其他操作的情况,有无异常
- 后台服务牵涉到DNS、空间服务商的情况下会影响其他稳定性
- 手势操作测试 :
-
客户端数据库测试 :
- 增删改查
- 当表不存在时是否自动创建,当数据库表被删除后能否再创建,数据是否还能自动从服务器中获取回来并保存
- 在业务需要从服务器端取回数据保存到客服端的时候,客户端能否将数据保存到本地
- 当业务需要从客服端取数据时,检查客户端数据存在时,App数据是否能自动从客户端数据中取出,还是仍然会从服务器端获取?检查客户端数据不存在时,app数据能否自定兄服务器端获取并保存到客服端
- 当业务对数据进行了修改、删除后,客户端和服务器端是否会有相应的更新
-
安全测试 :
- 软件权限安全性
- 人机接口安全性
- 通讯安全性
- 数据安全性
- 安装与卸载安全性
-
二. Android测试及ADB命令
-
Android 操作系统简介
- 应用程序层
- 应用程序框架层
- 函数库
- Linux内核
-
Android测试常用术语 :
-
系统碎片化 : 通俗的讲就是指整个安卓平台的差异化越来越大
-
屏幕尺寸
-
分辨率 :
- px :像素
- dip或dp :设备独立像素
- sp : 比例像素
-
像素
-
网络制式 :
-
手机网络制式主要包括GSM、CDMA、3G、4G四种
-
-
-
Android用用的构成
- Android的四大组件
- Activity - 活动 :
- activity指与用户交互的界面,从你打开的Android应用所见到的第一个页面就是一个Activity
- Service - 服务 :
- Android下的服务是在后台运行,没有界面,一旦启动就会一直在后台运行,直至关机
- Service承担着大部分的数据处理工作
- BroadcastReceiver - 内容提供者 :
- Android平台提供了Content Provider使一个程序的指定数据集提供给其他应用程序
- ContentProvider - 广播接收器 :
- 主要用于接收系统或app发送的广播事件
- Activity - 活动 :
- Android的四大组件
-
Android Q测试环境搭建 :
- 真机测试环境
- 第三方模拟器测试
- Android自带的模拟器测试
- Android开发环境搭建 :
- 安装和配置JDK环境
-
ADB简介:
-
ADB简介 :adb工具即Android Debug Bridge ( 安卓调试桥) tooks.它就是一个命令行窗口,用于通过电脑端与模拟器或者真实设备交互.包括三大内容
- 电脑上运行的客户端
- 在用于开发的机器上作为后台进程运行的服务器
- 一个以后台进程的形式运行于模拟器或设备上的守护程序(daemon)
-
ADB常用命令 :
-
关闭和启动adb服务 :
- 关闭adb服务 :
adb kill-server
- 启动adb服务 :
adb start-server
- 关闭adb服务 :
-
查看设备连接情况 :
adb devices
查看当前连接的设备,连接到计算机的android设备或者模拟器将会列表显示
-
安装和卸载APK :
adb install 安装包路径
adb uninstall 软件包名
adb uninstall -k 软件包名
卸载程序但保留其配置和缓存文件
-
指定设备进行操作
-
当有多核设备连接时,可以用下面的命令直接选择执行命令的设备
adb [-d|-e|-s <serial Number>] <command>
- -d : 真机(多个设备中只有一个是真机时适用)
- -e : 模拟器 (多个设备中只有一个模拟器时适用)
- -s : 序列号
- 例如 :
adb -d install QQ.apk
adb -s emulator-5556 install QQ.apk
-
-
上传和下载文件 :
adb push <本地路径> <远程路径>
adb push 1.txt /sdcard/1.txt
adb pull <远程路径> <本地路径>
adb pull system/app D:apps
-
日志Logcat的操作 :
adb logcat
: 在命令行中显示调试信息adb logcat > 文件名
: 将logcat信息保存在文件中
-
其他命令 :
android
: 启动SDK管理器adb bugreport
: 查看bug报告adb get-serialno
: 获取设备的序列号adb root
: 获得root权限adb remount
: 将system分区兄只读变成可读可写 (需要root权限)android list targets
: 显示细条绒内所有的android平台android list avd
: 显示系统中所有模拟器ddms
: 启动ddmsadb reboot
: 重启dmesg
: 打印内核的调试信息
-
-
三. Appium技术
-
一. Appium的简介和原理 :
- Appium是一个自动化测试开源工具,支持iOS平台和Android平台的原生应用,web应用和混合应用
- “移动原生应用” 是指那些用iOS或者Android SDK写的应用(Application简称app)
- "移动web应用"是指使用移动浏览器访问的应用(appium支持iOS上的Safari和安卓上的Chrome)
- “混合应用” 是指原生代码封装网页视图 – 原生代码和web内容交互
- Appium与Selenium
- appium类库封装了标准Selenium客户端类库,为用户提供所有常见的JSON格式Selenium命令以及额外的移动设备控制相关的命令,如多点触控手势和屏幕朝向
- Appium是一个自动化测试开源工具,支持iOS平台和Android平台的原生应用,web应用和混合应用
-
二. Appium测试环境搭建
- JDK安装和配置
- Node下载和安装
- Appium下载和安装
- Eclipse下载和安装
- 安卓模拟器的下载和安装
-
三. 元素识别和操作
-
四. Appium的脚本编写
m支持iOS上的Safari和安卓上的Chrome)
- “混合应用” 是指原生代码封装网页视图 – 原生代码和web内容交互
-
Appium与Selenium
- appium类库封装了标准Selenium客户端类库,为用户提供所有常见的JSON格式Selenium命令以及额外的移动设备控制相关的命令,如多点触控手势和屏幕朝向
-
二. Appium测试环境搭建
- JDK安装和配置
- Node下载和安装
- Appium下载和安装
- Eclipse下载和安装
- 安卓模拟器的下载和安装
-
三. 元素识别和操作
-
四. Appium的脚本编写
-
五. 实例分析