Android平台介绍

一、Android平台介绍

什么是智能手机

具有独立的操作系统,独立的运行空间,可以由用户自行安装软件、游戏、导航等第三方应用程序,并可以通过移动通讯网络来实现无线网络接入的手机类型总称。

智能手机操作系统

Android、IOS、Windows Phone、BlackBerry、Symbian

什么是Android

Android是一种基于Linux的开源操作系统,主要使用于移动设备,例如智能手机、平板电脑、智能手表、智能电视等等。由Google公司和开放手机联盟领导及开发。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资,逐渐扩展到平板电脑及其他领域上。

Android发展历史

Android 4.1Jelly Bean(果冻豆):2012年6月28日

新特性:更快、更流畅、更灵敏;特效动画的帧速提高至60fps,增加了三倍缓冲;增强通知栏;全新搜索;搜索带来全新的UI、智能语音搜索和Google Now三项新功能;桌面插件自动调整大小;加强无障碍操作;语言和输入法扩展。

Android 4.2Jelly Bean(果冻豆):2012年10月30日

Photo Sphere全景拍照功能;键盘手势输入功能;改进锁屏功能,包括锁屏状态下支持桌面挂件和直接打开照相功能等;可扩展通知,允许用户直接打开应用;Gmail邮件可缩放显示;Daydream屏幕保护程序;用户连点三次可放大整个显示频,还可用两根手指进行旋转和缩放显示,以及专为盲人用户设计的语音输出和手势模式导航功能等;支持Miracast无线显示共享功能

Android 4.3 Jelly Bean

提升了性能,更加流畅,提升反应速度。新增脱机语音输入、更多的平板优化(主要针对小尺寸平板)、强化Voice Search语音搜索。大幅改变用户界面设计。增强恶意软件的保护措施。

Android 4.4 KitKat“奇巧”

在阅读电子书、玩游戏、看电影时支持全屏模式。优化存储器使用,在多任务处理时有更佳工作的表现。支持Google Cloud Print服务,让用户可以利用户中或办公室中连接至Cloud Print的打印机,打印文件。全新的原生计步器。全新的NFC付费集成

全新的非Java虚拟机运行环境ART(Android Runtime)

什么是Dalvik:

Dalvik是Google公司自己设计用于Android平台的Java虚拟机。dex格式是专为Dalvik应用设计的一种压缩格式,适合于内存和处理器速度有限的系统。Dalvik允许同时运行多个虚拟机的实例,并且每一个应用作为独立的Linux进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。

什么是ART:

在Dalvik下,应用每次运行都需要通过即时编译器(JIT)将字节码转换为机器码,即每次都要编译加运行,这一机制并不高效,但让应用安装比较快,而且更容易在不同硬件和架构上运行。

ART完全改变了这种做法,在应用安装时就预编译字节码到机器语言,在移除解释代码这一过程后,应用程序执行将更有效率,启动更快。

Dalvik与ART的区别

1. 在Dalvik下,应用每次运行都需要通过即时编译器(JIT)将字节码转换为机器码,即每次都要编译加运行,这虽然会使安装过程比较快,但是会拖慢应用以后每次启动的效率。而在ART 环境中,应用在第一次安装的时候,字节码就会预编译(AOT)成机器码,这样的话,虽然设备和应用的首次启动(安装慢了)会变慢,但是以后每次启动执行的时候,都可以直接运行,因此运行效率会提高。

2. ART占用空间比Dalvik大(字节码变为机器码之后,可能会增加10%-20%),这也是著名的“空间换时间大法"。

3. 预编译也可以明显改善电池续航,因为应用程序每次运行时不用重复编译了,从而减少了 CPU 的使用频率,降低了能耗。

Android 5.0 Lollipop

采用全新Material Design界面。支持64位处理器。全面由Dalvik转用ART(Android Runtime)编译,性能可提升四倍。预载省电及充电预测功能。新增自动内容加密功能。新增多人设备分享功能,可在其他设备登录自己账号,并获取用户的联系人、日历等Google云数据。强化网络及传输连接性,包括Wi-Fi、蓝牙及NFC。强化多媒体功能,例如支持RAW格式拍摄。提供低视力的设置,以协助色弱人士。

Android 6.0 Marshmallow(棉花糖)

新系统的整体设计风格依然保持扁平化的MeterialDesign。Android6.0在对软件体验与运行性能上进行了大幅度的优化。Doze电量管理,Android6.0可使设备续航时间提升30%。锁屏下语音搜索、指纹识别、更完整的应用权限管理、Now on Tap功能、Android Pay进一步强化移动支付。

Android 7.0 Nougat(牛轧糖)

分屏多任务,全新下拉快捷开关页,通知消息快捷回复,通知消息归拢,夜间模式,流量保护模式,全新设置样式,改进的Doze休眠机制,系统级电话黑名单功能,菜单键快速应用切换

Android各个版本对自动化测试的支持

1.0 instrumentation (android.test)

2.2 robotium

2.3 monkeyrunner

4.1 input text 更新

4.4 uiautomator

几种操作系统的对比

Android智能手机操作系统。基于Linux平台的开源手机操作系统。它包括操作系统、用户界面以及应用程序

优点:目前大部分软件及游戏不花钱,系统可以自定义,自由度较高。开发可扩展性非常好。

缺点:硬件使用效率不高,优化的不够。游戏软件质量没有IOS高,安全性稍差。

IOS操作系统是苹果操作系统,用iPhone可以一键登录App Store,轻松下载到你需要的应用程序。

优点:IOS优化好,很流畅,兼容性好,人性化,上手简单,易于操作,安全性相对来说较高。

缺点:比较封闭,自定义程度不高,不能对系统进行深层次的改造。

Window Phone是微软发布的一款手机操作系统,他将微软旗下的游戏、音乐与独特的视频体验整合至手机中。

优点:流畅性稳定性好(相对安卓而言)

缺点:硬件配置高、耗电量大、电池续航时间短、硬件成本高,目前应用App、游戏都比较少。

Android平台优势

比Symbian更先进

全新开源系统,系统发展更具前景

快速增长的海量第三方免费软件

无“证书”限制,安装软件更自由

比IOS更开放

风格更自由,简洁

开源系统,更多第三方免费软件

软件安装卸载更方便,无需第三方平台软件

Android系统的结构

Linux内核层

硬件和其他软件之间的一个抽象隔离层

提供安全机制、内存管理、进程管理、网络协议堆栈、驱动程序等

中间件层

由函数和Android runtime构成

函数库主要提供一组基于C/C++的函数库

Surface Manager,支持显示子系统的访问,提供应用程序与2D、3D图像层的平滑连接

Media Framework 实现音视频的播放和录制功能

SQLite 轻量级的关系数据库引擎

OpenGL ES 基于3D图像技术

FreeType位图与矢量字体渲染

Webkit浏览器引擎

SGL 2D图像引擎

SSL 数据加密与安全传输函数库

libc标准C运行库 Linux系统中底层应用程序开发接口

Android runtime

核心库提供Android系统的特有函数功能和Java语言函数功能

Dalvik虚拟机实现基于Linux内核的线程管理和底层内存管理

应用程序框架

Resource Manager 允许应用程序使用非代码资源

Location Manager 管理与地图相关的服务功能

Notification Manager 允许应用程序在状态栏中显示提示信息

Package Manager 管理应用程序安装包

Window Manager 管理应用程序窗口

应用程序

系统出厂自带的一些应用程序

Android 对测试的挑战

混乱的Android

2013年的某统计数据

开发者95万

机型3500种

用户4亿

应用150万

设备屏幕分辨率不同

厂商对API的实现不同

手机的性能差异化

底层功能潜在的问题

1.同一API的不同体现----crash、ANR(55.8%)

2.严重的功能性问题,如联网、短信、蓝牙等(20.7%)

3.设备屏幕分辨率(18.9%)

4.其他问题(4.6%)

结语:了解每一个操作系统新版本的新功能,根据新版本的特性更新测试用例以及测试侧重点。

二、Android功能测试

需求

以产品需求为导向和前提开展测试工作

启动和停止

首次启动:

欢迎界面、启动时间、信息拉取

二次启动:

启动时间、各种入口、再启动状态、信息拉取、登录

退出应用:

各种退出的方式(手动、被动)、收拾残局、再次启动

程序功能模块

文本输入:

正常输入、非正常输入、边界值,特殊字符

事件触发:

满足需求、尝试点击非点击区域、检查debug后门

权限安全

需要用户确认的权限没有授权,权限默认关闭

联网权限被管家、系统安全类软件限制情况下的联网操作

权限敏感度,如通讯录等为系统的绝密权限谨慎获取

使用安全软件进行安全漏洞、病毒扫描,看被测APP是否会被这些安全软件提示有问题而影响用户的对被测APP的使用或者印象

文件存储

APP使用过程中产生的临时文件存储路径、命名方式等

APP中涉及的下载操作产生的文件存储方式

存储的文件被锁、占用

有外置SD、内置SD卡都要考察APP产生的文件是否正确

APP被安装在SD卡或者手机存储空间

磁盘空间不足、磁盘无权限(如读、写操作)

网络与流量

网络提示

网络信号,尤其是弱网络环境下应用的表现

不同运营商网络:电信、联通、移动,2G/3G/4G

网络中断、网络恢复场景的逻辑处理(如重试)

首次启动应用的流量是否符合预期

统计、异常上报对流量的影响

基于流量安全的特殊业务,如仅wifi联网

接口容错

前端测试后台接口测试覆盖不到的内容

请求网络层错误:http response返回非200的状态

请求业务层错误:接口返回内容为空、超长、字段类型不匹配

中断测试

锁屏中断:停留在程序操作界面进行锁屏,恢复后检查操作是否正常

前后台切换:停留在程序操作界面,通过Home键,进行程序的前后台切换

加载中断:页面接口请求、界面框架加载时,通过Home键、返回键、快速切换操作进行中断

系统异常中断:如关机、断电、来电

声源占用:比如导航正在规划完路线在导航,这时插入了U盘,程序将播放u盘里的歌曲声源优先级设置为最高,当拔掉u盘,导航的声源占用优先级应恢复。

机型适配

分辨率适配:UI结构、对话框基于分辨率、屏幕大小进行适配

OS版本适配:涉及API调用如获取SIM卡信息、外置SD卡设置等等

CPU硬件配置:X86机型、V5、V6、V7、V8

系统配置

进程管理:省电管理、后台进程驻留管理

显示管理:字体大小、字体类型

语言环境:语言环境

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

升级覆盖安装

逐步升级:用户数据、设置、状态的保留,特别注意新版本已去掉的状态或设置

跳级:即隔开版本覆盖安装(容易出现问题)

降级:覆盖安装更低版本

卸载安装: 卸载安装,安装目录清理,SD卡存储数据不被清理

省流量升级:有些助手提供省流量升级的方式

在没有更新或者网络时,需要给予用户正确的信息表达

强制升级

不升级无法使用

性能测试

性能: 核心操作的性能指标:如CPU/内存、响应时长、电量、流量

稳定性: 选择某些场景做持续反复操作:Monkey稳定性操作,持续多个小时

流畅度: 列表滑动、返回进入、快速点击

兼容性测试

通用软件:例如输入法

安全软件:例如各种管家

竞品软件、同类软件,是否出现冲突

三、Android专项测试

专项测试

根据测试过程中凸显的问题,可以成立专项测试。通常专项测试有:内存、CPU、FPS、弱网络、电量、流量、流畅度、加载速度、成功率、内存、响应速度、稳定性、规划时间、内容推荐精准度、声源验证、竞品对比测试、支持视频格式

工具:GT

GT:在Android平台上,可以下载GT的APK、安装后直接使用,GT的APK提供了GT的绝大部分基础功能;例如,基础性能测试、日志查看、网络数据包抓取等等。

GT SDK:在Android平台上,如果希望使用GT的高级功能,如“插桩”等,就必须将GT的SDK嵌入到被调测的应用的工程里,再配合安装好的GT使用。

adb常用命令

adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以在Eclipse中方便通过DDMS来调试Android程序,说白了就是debug工具。

adb install xxxx.apk安装一个apk到电脑连接的默认手机

adb uninstall xxxx.apk卸载

adb devices 当前电脑连接了几台手机

adb kill –server杀掉服务

adb start –server启动服务

adb reboot 重启手机

adb shell 进入手机系统

am

pm

pm clear 清理app相关的信息恢复到刚安装的状态

service list 当前系统中运行的系统级的服务

dumpsys

input text

内存测试

命令:dumpsys meminfo [package name]

CPU

命令: dumpsys cpuinfo | grep<packagename>

流量

方法:从文件中获取

/proc/uid_stat/<uid>/tcp_snd

/proc/uid_stat/<uid>/tcp_rcv

流量(抓包)

方法:

tcpdump–p –s 0 –vv–w filename

-s 0: 按包长,截取数据

-vv输出详细的报文信息

FPS

命令:

service call SurfaceFlinger 1013

adb shell dumpsysSurfaceFlinger --latency <window_activity>

SurfaceFlinger是一个系统服务,管理Android帧缓冲区

note: 需要root

电量

命令:/sys/class/power_supply/battery/uevent

电量(5.0系统之后手机)

命令:

adb shell dumpsysbatterystats> xxx.txt 

adb shell dumpsysbatterystats> com.package.name > xxx.txt

结果分析:

python historian.py xxx.txt > xxx.html

稳定性测试

Monkey Test

运行在模拟器或设备上的一个工具,模拟用户按键输入,触摸屏输入,手势输入等。看手机多长时间会出异常

Android Monkey Test?

  • 对软件进行漫无目的,随机的,非常理的胡乱操作,以测试软件的稳定性和健壮性
  • 应用程序开发者验证自己应用的健壮性
  • 设备制造商对自己设备施行压力测试,看设备能坚持多久
  • 集成adb shell里面的一个命令,命令参数包括:

l  基本配置选项,如设置尝试的事件数

l  运行约束选项,如设置只对单独的一个包进行测试

l  事件类型和频率,调试选项

弱网络

所谓弱网环境简单来说就是网络质量较差导致丢包和延迟等现象

工具:fiddler等限速工具

四、bug根因分析

界面适配

问题:

1、手机分辨率为1920x1080的高分辨率手机,在调整手机字体大小时,会导致页面显示出现变形;

2、因用户设置的特殊字体导致列表的字母条不显示;

3、某些 banner 图片在部分机型只能显示一半。

预防方法:

1、文字或者图片需要适配不同分辨率的机型时,建议使用dp方式进行开发,即使是使用dp,也需要考虑特殊分辨率的机型显示;

2、适应宽度/适应高度/高宽均适应的;

3、针对程序需求,设定合适的适配机制。

系统适配

问题:

调用高版本API,导致某些机型进入主页显示空白页面。

预防方法:

调用高版本API,需要考虑兼容性,开发团队需要制定程序API调用规范。

交互适配(1)

问题:

1、在输入框操作时,调出系统输入法软键盘后,没有有效启用键盘上的“下一项”、“确定”、“搜索”等按键;

2、系统软键盘,在关闭当前页面时没有及时收起软键盘。

预防方法:

1、需求设计过程中需要考虑输入法操作键的使用细节,确保所有软键盘的输入键可使用;

2、设计规范:程序/页面设计针对输入法操作键的使用制定规范。

交互适配(2)

问题:

APP界面的“返回”操作与手机系统的“返回”按键操作效果不一致;或界面未提供“返回”,在无系统“返回”按键的手机上,无法返回。

预防方法:

设计规范:程序设计针对手机返回键制定使用规范;在设计中要综合界面需求设定是否提供“返回”操作。

界面风格

问题:

1、对话框标点、英文字符出现全角、半角的不统一;

2、对话框、提示浮动框提示语风格不同,显示位置均不同,产品友好度下降;

3、字体和字号要在app中是不同的风格。

预防方法:

建立统一的界面风格/语言文字提示规范(可参考微软的标准)

全角字符和半角字符都要使用一个空格分开

英文和数字之间要有空格分开

汉字和英文、数字要有空格分开

带有汉字的话要使用全角字符

语言中不要混用全角和半角标点

字体和字号要保持统一的风格

性能优化(1)

问题:

1、进入一些列表,若数量较多则会出现卡死;

2、界面显示对象数量较多,某些会导致页面操作卡顿,用户体验很差;

3、处理大量数据时,用户等待时间过长,无进度条提示进度。

预防方法:

1、程序对耗时较多的操作逻辑、判断逻辑,不放入UI主线程;

2、对数据库记录较多的操作,可以改成数据库批量操作,或者调用批量接口;

3、程序在后台处理用户的输入,则提供进度条或对话框。

性能优化(2)

问题:

1、后台播放内存泄露;

2、程序后台运行的时候,手机一直处于占用CPU的运行状态;

3、页面中的动态效果(如:马灯滚动)次数无限制,导致界面不断刷新消耗资源。

预防方法:

1、使用静态分析工具或代码检查方式检查内容的分配和释放;

2、WakeLock机制是防回收技术,当没有播放、下载等操作时,应该主动关闭后台的唤醒锁,减少耗电。当再次需要使用播放、下载功能时才去开启唤醒;

3、对刷新消耗资源类操作,要有次数限制。

多服务、多进程

问题:

1、某些功能操作后,app 无法连接网络;

2、进程被杀死后重启,通知栏中显示的信息不正确,没有显示正确的信息;

3、app未启动,通过其他第三方app的调用入口调用app ,无法正常使用某些功能;

4、服务停止后,无法被启动;

5、程序被手动退出后,进程仍然在后台存在。

预防方法:

1、重新初始化时获取值时读取到空值,因此赋予一个默认值;

2、服务重启被回收重启时,初始化对象时要判断当前是否已存在,若存在则复用并更新内容;

3、任务独立,需要创建不同的服务,生命周期不会互相影响,服务独立可以避免某个服务结束会影响到其他功能的正常使用;

总体,对有启用多服务、多进程的程序,有需要做好服务、进程的一致性管理。

外部调用

问题:

1、某些机型启动app之后一直在调用某些外部服务(通过后台服务可以看到其他服务进程,退出app后,有些服务进程消失);

2、某些功能模块被扫描成存在木马病毒;

3、安全管家告警程序获取绝密权限(通讯录权限)。

预防方法:

调用第三方功能作为统计或者监控作用时,需要考虑该sdk是否会一直唤醒app导致耗电或者程序无法真正关闭问题,调用外部第三方SDK,要考虑被安全工具(上次有广告被扫描到病毒)扫描的设计需求、及时关闭不需要的服务进程,在能满足需求的情况下,尽量减少使用敏感的系统权限。

网络机制(1)

问题:

1、网络重试操作机制不统一,导致页面超时体验风格不统一;

2、某些应用页面,访问响应慢。

预防方法:

1、对底层网络重试机制做统一封装后,供上层调用;

2、固定好每次重试间隔(建议10s重试)和重试总次数(建议3次);

3、为使页面提示可以区分网络层与业务解析层不同错误,需对不同错误类型做分类的异常处理,并提示用户原因或让用户重试;

4、对多个网络请求的界面,网络接口并行请求有利于提高响应速度。

网络机制(2)

问题:

1、未加载完图片时切换到相似tab,切回不再加载图片;

2、进入一个tab,该页面已经加载完成,选择点击某个详细信息页面返回时,页面会闪一下。

预防方法:

1、一个页面有多个tab页时,用户切换tab可不轻易取消线程,取而代之使用暂停线程,退出页面时才回收清除;

2、启动负载分摊机制的请求,可先保存请求地址,供返回时判断避免重复加载。

网络机制(3)

问题:

1、iOS弱网络下获取不到配置,导致启动卡死;

2、sim卡未激活,无移动网络,某些功能卡死;

3、断网下启动,登录状态丢失,某些功能信息未正确显示。

预防方法:

1、启动逻辑中的网络类请求不能阻塞UI主线程,即网络请求数据可不即时响应(可在下次启动时生效);

2、按钮的点击事件不跟接口关联,做成异步处理不管是否有返回,都可以正常进行点击操作;

3、离线操作类,不因与当前网络状态有影响。

下载空间有效性判断

问题:

1、空间不足时,无法保存信息时,没有提示和提前判断;

2、本地存储空间不足时,保存文件时没有相应提示;

3、空间不足时,文件下载不成功,导致重复不停下载,浪费用户流量。

预防方法:

1、对磁盘剩余空间的判断和自动清理逻辑可以做统一封装,提供各不同下载业务使用;

2、可结合系统硬件配置的10%作为有效剩余空间阀值;

3、针对手机内外置SDCard,可以在空间不足情况下做分区切换机制。  

下载文件完整性判断

问题:

1、换肤图片未下载完,就触发换肤操作,导致换肤效果错误;

2、图片无法下载完全,导致图片展示不完整;

3、文件下载完成后,由于网络错误与源文件不符,导致下载后无法播放;

4、上传文件功能,目标物理文件不存在(界面缺显示存在),导致传送文件页面一直处于等待中。

预防方法:

1、通过判断下载前后文件的size或者文件内容签名,确保下载文件完整后再触发文件使用相关的逻辑;

2、文件传输时检查文件是否存在,若不存在则视为传输失败,不阻塞后续传输。

阻断连续操作

问题:

1、连续快速切换界面,或者频繁触发某些功能操作,导致程序卡死;

2、连续多次点击同一张图片,导致该图片下载错误。

预防方法:

使用间隔响应、延迟响应的方式,达到多次相同操作只的触发一次有效逻辑,

操作一次后,可将按钮等元素设定为禁用状态,防止用户多次点击和请求。

有效统计逻辑

问题:

操作页面某些元素,也会导致发送页面使用的统计信息。    

预防方法:

为确保统计数据上传的有效性,只针对真正展示的界面做上报统计,对于展示不完整、非针对性展示不做统计上报。

程序健壮性判断(1)

问题:

1、分享到新浪微博(手机未装新浪微博客户端),app崩溃;

2、后台接口变更(返回值和类型发生变化),客户端不兼容新格式判断,抛出崩溃异常;

3、搜索默认操作崩溃;

4、使用外部第三方数据,出现空数据或者非标准格式,则app崩溃;

5、输入框没有限制字符长度,保存时导致溢出崩溃。

预防方法:

1、客户端针对接口返回需做容错处理,如返回为空、返回数据类型不一致;

2、任何文本框类型的需要限制输入长度。

程序健壮性判断(2)

问题:

1、某些功能的初始化逻辑没有加入启动逻辑,导致功能使用失败;

2、退出重启app,无法自动登录。

预防方法:

1、制定启动加载逻辑规范;

2、对于重要的业务建议加入启动逻辑,并在业务实际使用时再根据状态多一层判断和加载;

3、产品人员需要考虑是否需要保存自动登录功能,并明确告之开发和测试人员。

安全机制

安全考虑:

1、在URL中不要带有明文的用户信息写代码的时候,不要把密码等敏感的用户信息明文的显示在url中;

2、即使要传递密码参数也不要使用pwd、passpord这样的参数名称来进行传递,防止被截获;

3、要在传递参数的操作中使用NoCache参数,防止将url参数进行缓存。

预防方法:

建立标准的数据传输和命名规范,并制作一些网页开发模板或者规范供参考。

日志调试管理

问题:

上线以后,调试日志没有关闭,影响程序性能。

预防方法:

1、日志统一开关,编译正式包需要关闭;

2、再程序界面有入口可以检查是否关闭,方便及时校验;

3、方便定位问题,可以做日志动态开启的隐藏开关;

4、方便收集问题,可以对问题类型做上报处理(典型如崩溃日志上报)。

Bug预防总结

分析问题à找到具体原因à解决问题à总结问题à建立预防方法à规范流程和制度à监督执行

五、课堂练习用例汇总

序号 测试类型 测试项 测试点
1 功能测试 启动和停止 首次启动打开一个聊天窗口,再次启动保留聊天窗口
2 退出从新登录,聊天窗口是否保留
3 进程被杀掉后重新开启程序聊天窗口是否保留
4 功能 内容(文本、语音、图片、视频、表情、位置、红包、转账、卡券、名片、收藏)测试(正常输入、非正常、边界值、特殊字符)
5 聊天记录的保留机制是否符合预期
6 消息撤回机制是否符合预期
7 语音转文字是否符合预期
8 语音听筒模式与扬声器模式互相转换是否符合预期
9 免打扰功能是否符合预期
10 同账号不同设备信息同步是否符合预期
11 账号异地登录的处理符合预期
12 更换设备后登录原账号,聊天窗口是否保留,聊天记录是否可以从服务端获取
13 同一账号先后登录处理机制是否符合预期
14 编辑完信息未发送,信息的草稿保存机制是否符合预期
15 复制粘贴是否符合预期
16 UI 界面、输入框、易用性、流畅性、用户体验
17 权限安全 拍照、读取相册、位置、存储等功能是否申请权限
18 无权限时使用相关功能是否符合预期
19 无权限时应有友好提示并引导用户如何授权
20 文件存储 存储空间不足给予有好提示,并引导清理文件
21 保存文件(图片、语音、视频等)
22 存储空间不足或无读写权限聊天功能是否符合预期
23 网络与流量 流量消耗是否符合预期
24 断网时(友好提示)、网络恢复时是否符合预期
25 wifi/非wifi(全网通 2g/3g/4g)是否符合预期
26 弱网表现是否符合预期
27 非wifi环境下是否有“是否允许4g使用”开关
28 发送文件时是否对不同的网络情况作了不同处理
29 因网络问题发送失败的消息重新发送是否符合预期
30 接口容错 接口返回错误时,反馈给用户的信息是否符合预期
31 中断测试 来电、闹钟、提醒、其他推送造成的系统中断表现是否符合预期
32 锁屏、解锁后表现是否符合预期
33 前后台切换表现是否符合预期
34 断电、通电、关机、开机表现是否符合预期
35 造成发送中断后重新发送是否符合预期
36 机型适配 指定品牌型号适配
37 指定分辨率适配
38 指定os版本适配
39 系统配置 修改系统的字体、字号设置后表现是否符合预期
40 改变系统语言环境后表现是否符合预期
41 横竖屏切换是否符合预期
42 修改当前系统时间为错误时间,表现是否符合预期
43 升级安装 逐步升级后表现是否符合预期
44 跳级后表现是否符合预期
45 降级后表现是否符合预期
46 卸载重新安装表现是否符合预期
47 性能测试 cpu/内存、响应时间、电量等是否符合预期指标
48 典型场景长时间操作稳定性是否符合预期指标
49 整体操作的流畅度是否符合预期
50 兼容性 不同os交叉使用、不同os版本交叉使用是否符合预期
51 对常用输入法的兼容
52 对常用安全软件的兼容
53 对竞品软件的兼容
54 信息安全 敏感词机制是否符合预期
55 用户重要信息加密是否符合预期
56 数据库加密是否符合预期
57 专项测试 随机应变 根据测试过程中凸显的问题,判断是否需要成立专项测试。
58 测试项 内存、CPU、FPS、弱网络、电量、流量、流畅度、加载速度、成功率、内存、响应速度、稳定性、规划时间、内容推荐精准度、声源验证、竞品对比测试、支持视频格式

原文地址:https://www.cnblogs.com/zqq521/p/7472615.html