智能手机系统的MTBF自动测试分析与研究★
2011-03-16袁建国顾盛刘冠琼
袁建国 ,顾盛 ,刘冠琼
(1 重庆邮电大学光纤通信技术重点实验室,重庆400065; 2 西安科技大学通信与信息工程学院,西安710054)
0 引言
手机系统稳定性测试需通过长时间循环运行多个测试用例来考察终端设备的稳定性,以稳定性测试指标值MTBF(Mean Time between Failures)值为衡量可靠性测试的指标之一[1-3]。MTBF自动测试不仅是影响产品可靠性的关键因素,而且这种自动测试方案可以大大减少测试开销,增加在有限时间内的测试,能准确有效地快速定位软件错误,可以较好地验证手机软件的功能和可靠性,提高了测试的效率和覆盖率[4]。近年来手机系统的智能化提高,手机软件测试在手机生产周期中所占的比重越来越大,在手机软件传统的测试中,手动人工测试占很大比重,但是手工测试在资源冲突测试方面精确度有限,对于常规的压力测试,存在人力消耗过大等弊端。而手机自动化测试系统在批量的压力测试任务上具有较大优势,对于反复性的模块回归测试,自动化测试的优势尤为明显,而且对测试的结果可以做出较准确的记录。因而进行智能手机系统的MTBF自动测试研究在国内外都是一个热点课题[2-4]。本文就着眼于智能手机系统的MTBF自动测试方案的研究。
1 可靠性指标
对产品而言,可靠性越高就越好。可靠性高的产品,可以长时间正常工作,同时,产品的可靠性越高,产品可以无故障工作的时间就越长。衡量产品可靠性水平有好几种标准,有定量的,也有定性的,有时要用几种标准去度量一种产品的可靠性,但最基本最常用的有以下几种标准[1]:
(a)可靠度R(t);它是产品在规定条件和规定时间内完成规定功能的概率。一批产品的数量为N,从t = 0时开始使用,随着时间的推移,失效的产品件数逐渐增加,而正常工作的产品件数n(t)逐渐减少,用R(t)表示产品在任意时刻t的可靠度。
(b)可靠寿命[CR(tr)];它与一般理解的寿命有不同含义,概念也不同,设产品的可靠度为R(t),使可靠度等于规定值r时的时间tr的标准值,即被定义为可靠寿命。
(c)失效率(故障率)λ(t);它是指某产品(零部件)工作到时间t之后,在单位时间△t内发生失效的概率。
(d)有效寿命与平均寿命;有效寿命一般是指产品投入使用后直至达到某规定失效率水平之前的一段工作时间。而平均寿命MTTF(mean time to failure,平均失效前时间)对于不可修复产品,指从开始使用直到发生失效这一段工作时间的平均值;对于可修复的产品,是指在整个使用阶段和除维修时间之后的各段有效工作时间的平均值。
(e)平均无故障工作时间MTBF(Mean Time Between Fail);是指相邻两次故障之间的平均工作时间,也称为平均故障间隔。它仅适用于可维修产品。同时也规定产品在总的使用阶段累计工作时间与故障次数的比值为MTBF。
可以用以下理想测试来精确测试一批产品的MTBF;即将该批产品投入使用,当该批产品全部出现故障以后(假如第1个产品的故障时间为t1,第2个产品的故障时间为t2,第n个产品的故障时间为tn),计算发生故障的平均时间,则:
由上式可以看出,理想测试就是用全部的时间和全部的故障数来算出精确的MTBF。
2 MTBF的设计目标值
为了使产品满足客户要求,应该在设计阶段就开始考虑这个可靠性指标的要求;很显然,如果要求产品在使用时MTBF为200h,那产品在设计的MTBF就应该比200h大,即设计需要有冗余,才有把握保证产品的MTBF满足客户的要求。使用时MTBF与设计时MTBF一般情况下满足如下关系:
可靠性定量指标MTBF(θ)有诸多参数,它们之间关系如图1所示。
图1 MTBF设计指标关系图
图中,θT:MTBF门限值,根据用户需求或使用要求而定;θMAV:最低可接收值,一般θMAV/θT=1.25,它是考核指标;θ1:MTBF检验下限值,在统计测试方案中,当产品MTBF真值接近或等于θ1时,以高概率拒收该产品,一般θ1/θMAV=1.25。θ0:MTBF检验上限值,在统计测试方案中,当产品MTBF真值接近或等于θ1时,以高概率接收该产品,一般θ0/θ1=D0;按GJB899测试方案Ⅲ[1],α=β=0.1,D0=D=2;θp:MTBF设计值,又称规模值,通常是研制中规定和期望达到的指标;按GJB299[1]预计θp/θo=1.25。所以θp/θT=3.9;也就是说,设计目标值最小应该在实现使用要求值的4倍;一般情况下设计值为实现使用要求值的5~10倍。
3 MTBF自动测试方案
为了测得产品的MTBF,需要拿出一定的测试样品,做较长时间的运行测试,找出每个样品的失效时间,根据上文介绍的公式(1)计算出MTBF,并且随着测试样品数量的增加,测试结果的准确度也不断提高[5-6]。但是,这样的理想测试实际上是不可能的,因为对这种常规测试而言,要等到最后一个样品出现故障,需要的测试时间长得无法想象,要所有样品都出现故障——需要的成本也高得无法想象。
为了测试可靠性,本文引入加速自动测试,使缺陷迅速显现;经过大量专家、长时间的统计,找到了一些加速自动测试的方法,转化成一些测试的项目。如果产品经过这些项目的测试,依然没有明显的缺陷,就说明产品的可靠性至少可以达到某一水平,经过换算可以计算出MTBF值。
本文研究设计的自动测试方案如图2所示,通过用Python编写一些预先设置好的测试用例步骤,再通过android 系统中的Monkey工具产生随机压力测试,来实现手机测试的智能自动化,对整个系统平台手机软件进行系统全面的功能测试,提高手机软件测试效率,缩短手机软件的研发周期和降低研发成本。
图2 测试方案设计结构
4 Monkey工具分析
基于Android系统的Monkey工具是指在模拟器或设备上运行的一个程序,它的思想来源于平均分布的随机测试,每一个操作发生的概率相等,能自动生成一组伪随机序列,根据此序列伪随机地模拟用户进行点击和触摸等操作,就类似于其他大部分系统事件一样[7-8]。
Monkey的shell脚本存在于android手机系统的/ system/bin目录下。Monkey架构如图3所示。
图3 Monkey工具架构图
这里使用了SocketServer,可在PC端通过USB的连接到ADB(Android Debug Bridge)模式发送命令给终端设备即各个手机。
如上文所述要进行稳定性自动测试需要使用ADB命令实现android手机与PC的Socket通信,ADB是一个客户端-服务器端程序, 其中客户端是你用来操作的电脑,服务器端是android设备。如图4所示,使用这个工具可以直接操作管理android模拟器或者真实的Android移动设备。
图4 MTBF测试环境实例图
5 MTBF测试结果分析
因为MTBF是一个统计值,通过取样、测试、计算后得到的值与真实值有一定的差异;而且具体到每个产品时,其失效间隔时间与MTBF又有一定的差异,又有置信度的概念,这样,如果计算值与客户的要求高出一些(如多出1个数量级),就可以接受。
例如客户要求产品的MTTF为20年,而计算出来为100年,是可以接受的,如果计算出来刚好是20年,反而让人觉得是不是用不到20年。本文使用实际测试中得到的一组测试数据(图5),对测试结果进行置信度分析,用来验证该测试方案的可行性。
第一步:找到计算公式;本文使用Bellcore(BellLab Communication Research) 推荐的计算公式:MTBF=Ttot/( N*r);N为失效数(当没有产品失效时N取1);r为对应的系数(取值与失效数与置信度有关);Ttot为总运行时间。
第二步:可靠性测试的数据;引用产品测试结果:5个样品在559.59小时的测试中发生了29次错误。
第三步:r取0.92(对应60%的置信度)或2.30(对应90%的置信度)。
第四步:加速倍数为120(测试用例超过日常使用频率次数的估值)。
计算结果:在60%的置信度下,MTBF=Ttot/(N*r)=(5*559.59*120)/(29*0.92),结果为12584.48小时即约为524.35天;
图5 产品MTBF自动测试结果
90%的 置 信 度 下,MTBF= Ttot/(N*r)=(5*559.59*120)/(29*2.30),结果即为5033.79小时即约为209.74天。
从上面的计算可以看出,此计算结果表明在90%置信度下的该产品稳定性能参考指标为209.74天,如果客户或者厂商要求的门限指标为200天,那么这个测试结果刚好能被大多数客户或厂商所认可,但是如果按照设计目标值作为参考,则该产品还应该进行改进,提高其稳定性能,让产品能有更好的质量和稳定功能。
6 结论
本文对产品稳定性衡量指标之一的MTBF指标值进行了深入分析与设计研究,提出了一种新型的基于python脚本和Monkey工具的智能手机系统自动测试方案,并且对测试结果进行了置信度分析。结果显示该自动测试方案可以方便的运用到智能手机系统产品的自测和达标测试过程。因而相信在智能手机系统日新月异发展的时代,该测试方案能够更加方便快捷和准确的帮助研发人员衡量产品开发过程中系统的稳定性能,同时也帮助厂商和客户在衡量产品稳定性方面能有更好的测试方案。
[1] 刘品,刘岚岚. 可靠性工程基础[M].3版. 北京:中国计量出版社,2008.
[2] 孙昌爱,刘超.实时嵌入式软件的测试技术[J].小型微型计算机系统,2000,21(9):920-922.
[3] 徐进. 自动化软件测试的分析[J]. 信息技术,2010(03):152-155.
[4] Chu-Ti Lin, Chin-Yu Huang. Enhancing and measuring the predictive capabilities of testingeffort dependent software reliability models[J]. Journal of Systems and Software,2008,81(6):1025-1038.
[5] 陈计喜,姜丽红. 自动化功能测试的方法与实现[J].计算机工程,2004,30(12):168-169.
[6] Huang C.Y.,Kuo S.Y.,Lyu M.R. Optimal software release policy based on cost, reliability and testing efficiency[C]:Proceedings of the 23rd IEEE Annual International Computer Software and Applications Conference,Phoenix, Arizona,USA,1999,468–473.
[7] 盖索琳. Google Android开发入门指南[M]. 北京:人民邮电出版社,2009.
[8] 孙莉. 软件可靠性增长测试时间的有效分配[J]. 盐城工学院学报:自然科学版,2006,19(1):19-22.