测试手机硬件软件是什么问题(什么软件可以测试手机硬件问题)

说起APP测试,大部分人都感觉简单的很,手机上装个APP,然后点点点就行了。其实这只是APP的功能测试,在移动互联网飞快发展的今天,仅仅测试APP的功能是远远不够的。

图片

你在使用APP时,有没有遇到以下问题呢?

流量使用过多

耗电量多

某些设备终端机型上出现闪退,运行时突然崩溃,数据丢失等问题

弱网环境下无法使用

CPU消耗过高,发热严重

程序出现卡顿、无响应

后台自动运行等各种各样的问题

其实这都属于APP的专项测试,随着用户群体的增多,市场竞争的压力,专项测试越来越受重视。但是苦于APP专项测试的专业性和复杂性,很多同学想学习根本无从下手。

今天就来说下移动端专项测试到底怎么做?文末附测试移动端测试用例


专项测试测什么?

资源类性能测试

CPU占用

内存占用/内存泄漏

低资源环境表现

弱网络测试


速度类性能测试

FPS测试

端到端业务延时

速度分析:客户端+网络+服务器


稳定性测试

MTTF

Monkey test


兼容性测试

Android版本

分辨率

硬件配置


应用定制测试项

协议测试、数据冗余比、成功率


专项测试怎么做?



1.需求评审阶段

网络风险

断网重连,断点续传逻辑

是否会产生大流量,流量合理性(流量消耗和发送的文件大小是否近似)

请求-响应来回次数较多,是否会增加失败率

协议必须有压缩策略

有没有缓存机制


UI风险

存在IO操作,例如保存,导入,导出,发送,上传,当遇到大数据时是否有加载过程

元素或动态/可变元素过多过复杂,是否会造成界面卡顿和CPU长期偏高(如LISTVIEW复杂格式或有动态图)

元素加载时机(如滑动列表时,头像加载的时机)


电量/CPU风险

地理位置相关逻辑,检测逻辑(如人脸识别、贴耳检测),

后台服务(如tcp心跳逻辑),

音视频相关


OOM风险

缓存策略,加载大数据策略(如拉取查看大图bitmap)

GC策略


兼容性风险

较新的系统特性

通过系统API/系统数据库获取数据

硬件相关(摄像头,屏幕触碰效果,声音大小,gps)


2.新功能阶段

原则:发现问题为先,兼顾数据沉淀

事前能做的:

可对比的历史场景数据(注意再测试的设备/环境一致性)

缺乏对比的历史数据先补充,沉淀现有数据

用MonkeyRunner简单的自动化脚本,可以让资源监控的曲线的趋势更加明显

测试环境准备:如测试号码,手机选型,测试数据预先构造等等

流量指标可以先测

发现专项问题,请直接先提单

功能稳定后,再关注FPS,内存,CPU等

关注FPS:动画效果

例如,列表滚动,展示内容的滚动

关注内存,CPU,线程:可重复执行的动作

例如,切换帐号,界面打开关闭

关注流量,耗时,成功率:网络相关操作

例如,发送消息,发送图片,下载数据

关注电量/CPU:持续的动作和用户高频率的操作

例如,放置后台,发送心跳包

关注速度:界面切换,内容加载

例如,启动速度

资源类测试

主要测试场景:

测试场景是和用户密切相关的:要包含用户实际的使用场景、特性;高资源消耗场景:加载大数据、重复性高的操作;产品的关键路径:更多的考虑产品的特性,制定明确的关键路径;需要尝试/探索测试的点:专项测试中的资源类和速度类测试包括发现相关问题以及性能的优化两方面;

测试工具:

1) CPU、内存、流量:AndroidResMonitor(python脚本工具);

2) 电量消耗:PowerMonitor(硬件设备检测),手机管理软件,如android助手等

http://www.infoq.com/cn/articles/how-subject-test-works


Android

痛点工具名推荐原因工具类别落地优先级落地成本


卡顿

Chrome for android开源性能测试工具(surface_stats.py)里面已经涵盖了FPS和janky采集的方法,用python写的命令行,简单直接地跟自动化测试结合。发现P0低


卡上报(AnimationPerfMon.java)在空间落地卡上报,跟处理crash一样,通过堆栈快速定位解决问题, 补充ANR的缺失发现+定位P0中


听云/OneAPM基于UIThread/主线程的监控,都有不错的卡顿的发现能力。但是因为没有获取堆栈,而只有简单的方法名和activity,所以对于复杂的软件定位稍微困难。发现+定位(弱)P1低


Fresco通过内存缓存的优化达到流畅的图片及列表展示性能解决P1低


Realm通过更优秀的I/O性能,降低APP对持久化数据读写的损耗,从而提升交互性能。可替代sqlite。解决P1中


闪退

LeakCanary高效率发现大部分内存泄漏导致的OOM。发现+定位P0低


Bugly/听云/OneAPM/TestinCRASH监控的能力大同小异,都能对数据上报的统计分析,清晰现网情况,用户痛点。但我会推荐腾讯的BUGLY, 因为ANR, CRASH都能提供比较足够的信息定位问题,另外,因为是腾讯的。发现+定位+反馈上报P0低


Testin兼容性/稳定性测试利器,关键是机器的量够!发现+定位P0低


待机时间短


Chkbugreport从用户手机中提取BUGREPORT。通过这个工具是可以分析简单的耗电问题,如sensor或摄像头没有关闭,wakelock的问题。发现+定位P0中


IOS

痛点指标工具名推荐原因工具类别落地优先级落地成本


卡顿

FastImage通过节省decode的耗时等方法,提升图片及图片列表的展示性能解决P1低


Realm通过更优秀的I/O性能,降低APP对持久化数据读写的损耗,从而提升交互性能。可替代coredata,userdefault,sqlite。解决P1中


MGWatchdog实现类似ANR的机制,主要是要跟上报结合发现+定位P0低


闪退

Infer解决因内存泄漏导致的内存耗尽导致的闪退。能扫描简单的循环引用导致的内存泄漏。发现+定位P0低


Bugly/听云/OneAPM/TestinCRASH监控的能力大同小异,都能对数据上报的统计分析,清晰现网情况,用户痛点。但我会推荐腾讯的BUGLY, 因为ANR, CRASH都能提供比较足够的信息定位问题,另外,因为是腾讯的。发现+定位+反馈上报P0低


待机时间短


iOSDiagnostics可以获取一些耗电的模块的信息,如果可以融合到数据上报中的话就更好了。发现+定位P0中


通用

痛点指标工具名推荐原因工具类别落地优先级落地成本


流量大/速度慢

BPG(android,类似webp)


BPG(ios)

BPG是H265帧内压缩做图片压缩,webp是利用VP8帧内压缩做图片压缩。图片压缩对于图片应用来说,除了能提升用户下载显示图片的速度,还能为企业节约带宽成本。解决P1中


Pngquant利用PNG8压缩PNG图片,颜色单一的图片,效果会非常明显。解决P0低


Wireshark实用的流量分析工具,包括export http object, I/O graph等等发现+定位P1中


EmmageeAndroid的性能测试组件,里面涵盖很多性能数据获取的方法,可参考使用。发现P1低


HAR + PageSpeed利用tcpdump在手机上获取的PCAP, 利用HAR转换PCAP,然后给pagespeed组件分析。定位P1低


弱网兼容性差(ios通用)ATCFacebook弱网络模拟工具。好处是模拟丢包,抖动的时候比较稳定,而且还有HTTP API可以调用, 方便和自动化配合。发现P0中


SPDY/QUIC特别是QUIC, 就是为了网络抖动而设计的。解决P2中


OKHTTP推荐的HTTP组件。性能好,弱网兼容也不错。解决P1低


APP的下载,安装,卸载。

   能否正常下载

   安装是否正常(有网,无网是否都正常),路径是否正确,文件或者占用手机内存大小等(如果需要)

   是否没有得到用户允许就自启动

   特殊情况下,比如内容不足情况下的安装。不要导致系统死机,重启,断电等严重问题。要提示用户内存不足,然后取消安装。重新安装没有问题。

   卸载是否正常,是否将全部必要文件删除(如果需求需要,有的APP是要保留部分文件的,尤其是用户使用产生的文件)

   直接删除文件导致不能使用,是否有提示

权限的验证

   获取的权限是否得到用户的许可,尤其是部分重要的权限,如使用网络,使用摄像头,读取通讯录,短信,通讯记录等。

   使用发送短信,打电话前要提示用户。

   没有网络时,要提示用户。这里包含各页面时的提示,尤其是注册登录时,也可以放在功能模块的测试中。

   如果得到短信权限,可能得到短信关键内容。例如接收短信验证码。

   上面这些,其实也属于安全测试,但因为较简单,也可以当作功能测试。 至于是否存在用户数据泄漏,属于更专业的安全测试。

UI界面的验证

  各界面是否需要需求,以需求文档和用户习惯为准。

各功能模块的验证

   一般的功能模块包含:注册,登录,个人中心,各相应功能

注册登录的通用的重要测试点:

   没有网络时的提示

   登录后,直接进入个人中心,或者是首页

   密码的验证,密码的保存(是否加密保存在手机中),密码的长度,错误的提示,找回密码,密码最多错误次数的限制及后续处理逻辑(多久后或者怎么操作后可以重新登录)。

   是否允许多设备的登陆,台式机和手机的同时登录,多台手机的同时登录

登录后,系统是否正确处理(个人信息是否正确,用户权限是否正确)

  登录超时的处理

   一般现在没有注销功能,若有,注销后是否能重新注册,且信息是否处理正确(新用户不受原用户信息的影响)

运行APP的重要点有:

   应用前后台的切换,是否崩溃,是否能正常使用(时间短,正常使用;时间长了,相当于重新打开应用),是否能正常接收新数据

   锁屏解屏对应用的影响,是否能正常接收新数据。

   有电话进来后,再使用APP,功能是否正常。

   关闭APP后再打开APP,是否正常

   对于有数据交换的页面,每个页面都要进行前后台切换,锁屏触屏,电话接入等测试,因为这种页面最易出问题。

免登录功能

   关闭APP后,再重新打开,是否免登录

   切换登录用户,用户信息是否更新

   修改密码后,是下次登录或者开户时校验新密码,还是本次登录要马上退出重新登录?

数据更新

   哪些页面的数据是自动更新,哪些手动更新

   前后台切换时,数据是否更新

   哪些数据是实时从服务端请求,哪些缓存到本地

离线浏览

   是否支持离线浏览?

   支持离线时,前后台切换或者锁屏触屏后,是否都能浏览本地信息?

   手动刷新时,是否有对连接网络的提示?

APP更新

   打开老版本时,是否有新版本的更新提示

   是否强制升级

   不删除老版本情况下,直接更新,是否正常,更新后,是否能正常使用

相机使用

   专门提到相机,是因为相机使用频繁。而照相质量,用户也很在意。所以当APP调用相机时,功能是否正常,质量是否可靠,也要多次测试。

** 消息推送**

   用户接受消息推送时,是否能正常接收各类消息?

   不打开应用时,能否接收消息

  打开应用时,能否接收消息

   登录与不登录情况下,接收消息是否有区别(其实这些需求中都要明确,才能针对性展开测试)

   精确推送,是否只推送给指定用户

兼容性测试

   兼容性测试,严格来说不是功能测试。但这里功能测试,只是与性能测试,专业的安全测试区分后,笼统地称其它测试全为功能测试。

   包括设备的兼容性测试,及网络的兼容性测试。

  设备包括,不同品牌,不同系统(miui等)的手机,不同版本的android, ios, 不同屏幕大小的手机。

  网络包括,WIFI,各种制式的3G, 各种制式的4G

  对http和https分别适应,这点是以前没考虑到的。在星巴克等场所,需要输入用户名和密码才能上网,这样的网络通常是https。

希望本文对你有所帮助~~如果对软件测试、接口测试、自动化测试、面试经验交流感兴趣可以私聊我。免费领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!技术大牛解惑答疑,同行一起交流。