啄木鸟软件测试培训网:www.3testing.com浏览器
手机做为专用的消费类电子产品须要进行如下测试:可靠性测试(对于硬件则是RQT;对于软件则是field trial);标准符合性测试(FTA);互操做性测试(IOT);[color=rgb(68, 68, 68) !important]安全性测试(安规测试);强度测试等。
其中,有些种类的测试,例如FTA,有严格的标准(GSM、3GPP等)来明确被测的功能点,测试人员所要作的是在测试用例的编写中体现出这些功能点,而且尽可能营造这些测试用例所需的运行环境来完成测试,并反馈测试结果。可是对于[color=rgb(68, 68, 68) !important]性能测试,就没有这样的规范供测试人员来参考,所以性能测试须要进行哪些用例以及用例经过的指标的高低都有很大弹性,在很大程度上受限于测试人员的经验和项目的资源和进度压力。如何在资源、进度和质量之间找到平衡点是产品负责人须要考虑的问题,测试人员能够左右的是划定性能测试的范围、明确与性能测试相关的设计需求(提升产品的可测试性)以及经过[color=rgb(68, 68, 68) !important]自动化测试[color=rgb(68, 68, 68) !important]工具等手段来进行更加有效的性能测试,提升产品的质量。
1、手机性能测试的范围
性能测试强调长时间、重复或者高强度的进行某些操做,来验证产品在各类极限条件下的表现。性能测试隶属于[color=rgb(68, 68, 68) !important]软件测试中的系统测试,它对软件在集成系统中运行的性能行为进行测试,旨在及早肯定和消除软件中与构架有关的性能瓶颈。经过对测试数据和log的分析,还可能找出被测系统隐藏的缺陷。终端做为移动通信类电子产品,其性能测试又主要和其实现的功能相关,大体可分为如下几类:
1. 时间相关。
时间相关的性能测试可分为长时间保持测试和限定时间反应测试。
长时间保持测试主要是测试终端长时间稳定进行某项功能的能力。主要包括长时间待机能力、长时间CS域业务保持能力、长时间PS域业务保持能力、长时间组合业务保持能力等。长时间待机测试,就是根据手机电池的能力连续不间断待机必定时间(例如4天),以后验证手机是否还可以发起主叫和被叫业务,可以发起主叫,表示终端在长时间待机后自身还处于正常状态,可以发起被叫,说明终端在睡眠模式下能够正常接收寻呼。长时间CS域业务保持测试,就是根据手机电池的能力连续不间断进行语音通话或者[color=rgb(68, 68, 68) !important]视频通话必定时间(例如2小时),测试通话期间图象声音是否连续、清晰,是否有单通现象出现,是否会有手机板子过热现象。长时间PS域业务保持测试,主要是经过持续进行WWW业务、ftp业务或者流媒体业务必定时间(例如2小时),测试进行数据业务期间上下行数据传输率是否稳定,[color=rgb(68, 68, 68) !important]网页显示是否流畅,流媒体播放是否连续等。长时间组合业务保持测试,就是同时保持CS和PS域业务一段时间,以验证终端长时间进行组合业务的能力。
限定时间反应测试主要是测试终端在规定时间内对用户的操做做出反应,给出操做结果的能力。主要包括开机驻留时延、关机时延、CS域业务接入时延、PS域业务接入时延、本地应用的操做时延等。开机驻留时延,是指从用户按下开机键(终端上电、系统引导、启动任务、搜索网络、完成位置更新)到终端进入待机界面,提示用户能够进行正常服务的总时间。关机时延,是指从用户按下关机键(终端完成网络detach、将RAM中修改过的数据写回flash)到终端彻底下电所需的总时间。CS域业务接入时延,是指在进行语音或视频电话时从按下拨号键到听到对方回铃声所需总时间,因为该过程须要在网络侧分配资源,因此测试结果可能会受到当前网络资源可用程度的影响,例如在网络负荷高的时候申请CS 64k业务时,网络侧须要从新组织或合并没有线资源来知足业务要求,所需时间相对会长一些。PS域业务接入时延,是指在进行数据业务时从开始链接到能正常进行数据业务所需总时间。本地应用的操做时延,是指完成某些本地操做维护功能所需的时间,例如打开电话薄,在电话薄里查找联系人,存储新建的联系人,存储短信,存储多媒体文件,打开浏览器,播放多媒体文件等所需时延,这些时延若是过长,也会极大地下降用户体验的满意度。
2. 次数相关。
次数相关的性能测试是测试终端重复稳定地进行某项功能的能力。包括开关机成功率、小区初搜成功率、小区重选成功率、CS域业务成功率、PS域业务成功率、组合业务成功率、切换成功率、本地应用的成功率等。这种重复操做包括不少对象被屡次建立和释放,所以可能会发现潜在的内存泄漏等问题。开关机成功率测试,主要是检验屡次开机是否会有物理层不能正确收到初搜命令的状况,关机不彻底也可能会致使下一次开机失败,以及在某些状况下系统死机后只能经过插拔电池板来从新开机。CS域业务成功率的测试,是指经过进行必定次数的主叫或者被叫,统计失败的次数,对失败缘由进行归类,分析是否可以找到和终端相关的失败缘由。 PS域业务成功率、组合业务成功率、切换成功率的测试方法也相似。本地应用的成功率包括屡次存储再删除文件、联系人、短信等操做,以及屡次打开某个应用或执行某类操做来对该应用的稳定性进行测试,找出瓶颈。
3. 并发业务。
并发测试主要是测试终端同时进行多项业务时表现出的处理能力。例如同时进行CS域语音业务和PS域下载业务,或者在MP3播放的同时进行WWW上网业务,以测试协议栈、操做系统和处理器对并发业务的支持能力。
4. 负载测试。
负载测试主要是验证系统的负载工做能力。系统配置不变的条件下,在必定时间内,终端在高负载状况下的性能行为表现。例如同时进行多个ftp下载,使下行传输率接近极限值,观察终端是否能够正常工做。
2、手机性能测试的方法
手机性能测试的方法按照自动化程度不一样可分为手工测试和[color=rgb(68, 68, 68) !important]自动测试。
手工测试主要是经过测试人员手动操做,并借助某些监测仪器和工具,来验证手机性能。但因为手机功能众多,而且性能测试工做量大,若是单个测试工程师靠手动按键来执行全部测试用例,花费的时间少则几小时,多则须要几天的时间,这样耗费大量测试时间的同时也容易让测试工程师产生疲倦甚至是厌倦心理,很容易形成测试的遗漏。手机测试中常碰到不少重复性高的工做,如发送数条 SMS 或者 MMS 以验证其收发成功率以及稳定性、连续进行屡次呼叫、屡次对文件系统进行添加删除操做、多任务多进程状况下的冲突测试以及极限测试等等,都是重复性高的工做,手动执行的话费时费力,若是能有一套自动执行的机制,将能大大提升测试的效率。
由此产生了对手机自动化测试工具的需求。手机这种板机的MMI功能测试不一样于基于PC上的MMI测试,后者借助PC平台,目前市场上已有很是多功能强大且通用的自动测试工具支持其测试,如比较典型的有Winrunner, Robot, [color=rgb(68, 68, 68) !important]LoadRunner等等,但这些工具一般不能兼容到象手机这种嵌入式系统中来。这就要求测试人员可以基于当前平台进行二次[color=rgb(68, 68, 68) !important]开发,来知足自动化测试的需求。
手机的自动化性能测试通常分为如下几个步骤进行:
1. 系统分析
将系统的性能指标转化为性能测试的具体目标。一般在这一步骤里,要分析被测系统结构,结合性能指标,制定具体的性能测试实施方案。这要求测试人员对被测系统结构和实施业务的全面掌握。
2. 创建虚拟用户脚本
将业务流程转化为测试脚本,一般指的是虚拟用户脚本或虚拟用户。虚拟用户经过驱动一个真正的客户程序来模拟真实用户。在这一步骤里,要将各种被测业务流程从头到尾进行确认和记录,弄清这些过程能够帮助分析到每步操做的细节和时间,并能精确地转化为脚本。此过程相似制造一个可以模仿人的行为和动做的机器人过程。这个步骤很是重要,在这里将现实世界中的单个用户行为比较精确地转化为计算机程序语言。若是对现实世界的行为模仿失真,不能反映真实世界,性能测试的有效性和必要性也就失去了意义。
3. 根据用户性能指标建立测试场景
根据真实业务场景,对生成的测试脚本进行复制和控制,转化为知足性能测试指标的测试用例集。在这个步骤里,对脚本的执行制定规则和约束关系。具体涉及到对业务类型,并发时序等参数的设置。这比如是指挥脚本运行的司令部。这个步骤十分关键,每每须要结合用户性能指标进行细致地分析。
4. 运行测试场景,同步监测应用性能
在性能测试运行中,实时监测能让测试人员在测试过程当中的任什么时候刻均可以了解应用程序的性能优劣。系统的每一部件都须要监测:协议栈,MMI应用程序,内存占用状况,驱动程序运行状态等。实时监测能够在测试执行中及早发现性能瓶颈。
5. 性能测试的结果分析和性能评价
结合测试结果数据,分析出系统性能行为表现的规律,并准肯定位系统的性能瓶颈所在。在这个步骤里,能够利用数学手段对大批量数据进行计算和统计,使结果更加具备客观性。在性能测试中,须要注意的是,可以执行的性能测试方案并不必定是成功的,成败的关键在于其是否精确地对真实世界进行了模拟。
在整个性能测试过程当中,自动化测试工具的选择只能影响性能测试执行的复杂程度,简便一些或繁杂一些;但人的分析和思考却会直接致使性能测试的成败。因此这里着重于对性能测试思路的整理。测试工具的介绍能够参看有关自动化测试工具的资料。安全
顾翔凡言:微信
测试工具的确不是银弹,优秀的测算工程师是咱们急需的。网络
啄木鸟软件测试培训中心,主打五门课:并发
初级:
1,你也想成为软件测试工程师吗~软件测试基础教程
中级:
2,软件测试工程师必须掌握的技能~软件测试设计方法实战。
高级:
3,让你的程序跑得更快~软件性能测试
4,让你找出更多的bug~探索式软件测试
5,让用户迷上你的产品~用户体验式测试工具
本文分享自微信公众号 - 软件测试培训(iTestTrain)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。性能