Android测试框架

1.什么是Android
基于linux的开源操作系统

2.Android平台介绍
后视镜、车载系统、电视

3.Android发展历史
Android 4.1 Jelly Bean:20120628
Android 4.2 20121030
Android 4.3
Android 4.4 KitKat
Dalvik:耗电相对较快、占用内存大、卡顿
ART的缺点:会占用略高一些的存储空间,安装程序时要相比普通Dalvik模式时间要长
Android 5.0 性能可提升四倍
Android 6.0 续航时间提升30%
Android 7.0 分屏多任务

4.Android各个版本对自动化测试的支持
1.0 instrumentation (android.test)
2.2robotium
2.3 monkeyrunner
4.1 input text更新
4.4 uiautomator
6.0uiautomator2

5.几种操作系统的对比

Android
Android智能手机操作系统。基于Linux平台的开源手机操作系统。它包括操作系统、用户界面以及应用程序
优点:系统开放,甚至源代码是开放的;资源多,开发者多,应用资源也多;创新多,各Google、手机厂家和Rom开发者都不断推出新的UI,引入很多创新功能
缺点:由于系统的开放性,给了恶意程序攻击的机会,尽管底层也加强了安全控制,安全性不如IOS;效率比IOS低,对硬件要求高,由于应用的编译和运行机制限制,安卓系统一直存在越用越卡的情况,手机硬件不断提升,仍然存在不够用的情况。Google一直在努力消除安卓系统的这些缺点,使安卓系统不断得到优化。

IOS
IOS操作系统是苹果操作系统,用iPhone可以一键登录App Store,轻松下载到你需要的应用程序。
优点:系统优化好,效率高,运行流畅,操作体验好,对硬件的要求相对低一些;安全,由于所有应用均来自Apple Store,经过严格审查才能上架,一般不会出现恶意应用。
缺点:手机越来越贵,系统封闭,权限控制严格,用户受限制多,自定义程度不高,不能对系统进行深层次的改造。不适合喜欢钻研手机的发烧友。
Window Phone
Window Phone是微软发布的一款手机操作系统,他将微软旗下的游戏、音乐与独特的视频体验整合至手机中。
优点:流畅性稳定性好(相对安卓而言)
缺点:硬件配置高、耗电量大、电池续航时间短、硬件成本高,目前应用App、游戏都比较少。

6.Android系统架构
Android测试框架_第1张图片
Linux内核层(Linux Kernel)
硬件和其他软件之间的一个抽象隔离层
提供安全机制、内存管理、进程管理、网络协议堆栈、驱动程序等

中间件层(Android runtime)
核心库提供Android系统的特有函数功能和Java语言函数功能
Dalvik虚拟机实现基于Linux内核的线程管理和底层内存管理
由函数和Android runtime构成
函数库主要提供一组基于C/C++的函数库
-Surface Manager,支持显示子系统的访问,提供应用程序与2D、3D图像层的平滑连接
-Media Framework 实现音视频的播放和录制功能
-SQLite 轻量级的关系数据库引擎
-OpenGL ES 基于3D图像技术
-FreeType 位图与矢量字体渲染
-Webkit 浏览器引擎
-SGL 2D图像引擎
-SSL 数据加密与安全传输函数库
-libc 标准C运行库Linux系统中底层应用程序开发接口

应用程序框架(application framework)
-Resource Manager 允许应用程序使用非代码资源
-Location Manager 管理与地图相关的服务功能
-Notification Manager 允许应用程序在状态栏中显示提示信息
-Package Manager 管理应用程序安装包
-Window Manager 管理应用程序窗口

应用程序(application)
SDK自带的一些应用程序

7.Android对测试的最大挑战:适配
设备屏幕分辨率不同
厂商对API的实现不同
手机的性能差异化
底层功能潜在的问题

8.Android功能测试
1)启动和停止
首次启动:欢迎界面、启动时间、信息拉取
二次启动:启动时间、各种入口、再启动状态(是否保留登录态)、信息拉取、登录
退出应用:各种退出的方式(手动、被动)、收拾残局、再次启动

一点进来就闪退可能的原因:1)由于上次对出对数据的保存做的不好2)读写冲突 与另一个应用 或软件的检查 3)系统API调用的不对 4)手机对系统性能的要求
游戏类的对游戏类的数据的保存
启动时间、再次启动时间:用高清摄像头

2)UI界面:
–控件显示(位置、大小、特性)是否符合预期
–文字、图片、图标显示(位置、大小)
–触控操作(触摸、按键)
–控件焦点
–提示框、对话框的显示及操作
–整体排班及控件顺序
–界面回退机制
–L10N、I18N (软件本地化、软件国际化)

3)功能流程:(根据需求文档)
–应用本身之间的流程
–应用与应用之间的流程
–应用与系统之间的流程
–消息处理机制(终端优先级)
–音频焦点处理机制(响铃音、媒体音)

4)易用性(体验)
–提示性文字、图片、图标易于理解
–操作流程常规化,符合通用标准、简单明了
–各种操作控制符合人体工学设计
–整体视觉效果

5)程序release需求:
–埋点:
埋点正常上报,参数与值都正常
埋点:简单理解——在代码里打印一些日志,然后再把日志上传回来
–debug与后门:
debug的日志要关闭,无各种后门开关
如:点击哪好多下 弹出什么界面

6)权限安全:
用户信息安全、数据存储可靠
–需要用户确认的权限没有授权,权限默认关闭
–联网权限被管家、系统安全类软件限制情况下的联网操作
–权限敏感度,如通讯录等为系统的绝密权限谨慎获取
–使用安全软件进行安全漏洞、病毒扫描、看被测APP是否会被这些安全软件提示有问题而影响用户的对被测APP的使用或者印象。

7)文件存储:
–APP使用过程中产生的临时文件存储路径,命名方式等
–APP中涉及的下载操作产生的文件存储方式
–存储的文件被锁、占用
–有外置SD、内置SD卡都要考察APP产生的文件是否正确
–APP被安装在SD卡或者手机存储空间
–磁盘空间不足、磁盘无权限(如读、写操作)

8)网络与流量:
–网络提示
–网络信号,尤其是弱网环境下应用的表现(锡纸袋、防辐射服)
–不同运营商网络:电信、联通、移动,2G/3G/4G
–网络中断、网络恢复场景的逻辑处理(如重试)
–首次启动应用的流量是否符合预期
–统计、异常上报对流量的影响
–APP中图片大小、尺寸是否有考虑对网络流量的影响
–基于流量安全的特殊业务,如仅WiFi联网

9)接口容错:
–请求网络层错误:http response 返回非200的状态
–请求业务层错误:接口返回内容为空、超长、字段类型不匹配

10)收费相关
–计费点(歌曲版权,是否出现计费提示)
–会员制(开了会员,会员的权益是否都正确,多设备端是否同步)
–设备切换,计费内容同步

11)中断测试
–锁屏中断:停留在程序操作界面进行锁屏,恢复后检查操作是否正常
–前后台切换:停留在程序操作界面,通过Home键,进行程序的前后台切换
–加载中断:页面接口请求、界面框架加载时,通过Home键、返回键、快速切换操作进行中断
–系统异常中断:如关机、断电、来电
–插拔中断(耳机)
–系统中断(闹钟、事务提醒)
–网络占用、内存占用中断

12)机型适配
–分辨率适配
UI结构、对话框基于分辨率、屏幕大小进行适配
–OS版本适配
涉及API调用如获取SIM卡信息、外置SD卡设置等等
–CPU硬件配置
X86机型、V5、V6、V7、V8

13)系统配置
–进程管理:省电管理、后台进程进驻留管理
–显示管理:字体大小、字体类型
–语言环境:语言环境

–横竖屏配置:是否支持横竖屏自适应处理

14)升级与覆盖安装
–逐步升级:用户数据、设置、状态的保留、特别注意新版本已去掉的状态或设置(考虑用户的原始数据是不是保存还有新特性是否正常)
–跳级:即隔开版本覆盖安装
–降级:覆盖安装更低版本(是否有提示,能否正常使用或者要不要升级到高版本)
–卸载安装:卸载安装,安装目录清理,SD卡存储数据是否不被清理
–省流量升级:有些助手提供省流量升级的方式
–在没有更新或者网络时,需要给与用户正确的信息表达
–强制升级
–不升级无法使用

15)设备相关
–SIM卡(单卡/双卡)
–有线耳机(线控情况)
–蓝牙设备(耳机及其他蓝牙设备,操作电话以及其他设备)
–其他配件
–数据传输及第三方同步软件(重要数据的保护,如全民K歌的演唱)

16)性能测试(功能测试中的性能测试,用户感官)
–性能:核心操作的性能指标:如CPU/内存、响应时长、电量、流量
–稳定性:选择某些场景做持续反复操作
Monkey稳定性操作,持续多个小时
–流畅度:列表滑动、返回进入、快速点击

17)极限测试
–字符串过长
–文件过大或过多
–空间中信息量过大
–边界性操作(音量过大/过小,文件太大/太小)
–反复操作及界面切换
–长时间运行(整体、单场景)
–网络信号强弱(弱网;电梯、地铁、隧道)

18)兼容性测试
与系统本身的兼容
与系统中其他软件兼容
–通用软件,例如输入法
–安全软件;例如各种管家
–竞品软件、同类软件,是否出现冲突

测试方法:
–手工测试
–半自动化测试(借助测试辅助工具、测试脚本;弹出对话框,通过脚本模拟)
–自动化测试

你可能感兴趣的:(Android)