快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

龙都国际游戏官方网站:基于Agere开发平台的GSM手机自动化测试解决方案



【择要】本文就杰尔系统( Agere system )平台根基上开拓的 GSM 手机自动化测试供给一些技巧先容,并结合实际例子解说一些利用履历,来阐明自动化测试在手机功能测试一级中所带来的效率。

【关键词】手机平台,杰尔系统, Trace , PTE 敕令,手机软件功能测试,自动化测试

•海内手机功能测试现状:

当前海内手机厂商和设计公司据统计已达到 300 多家,但至今所有的设计开拓都是基于国外技巧平台根基上的二次开拓,即平日所说的 MMI 开拓, 供给开拓的手机平台今朝主要有德州仪器( TI ),英特尔( Intel ),飞思卡特( freescale ),杰尔系统( Agere system ),英飞凌( infineon ),瑞萨科技( renesas ),菲利普半导体( philips ),意法半导体( ST ),美国博通( broadcom ),美国模拟器件( ADI ),微控科技( wavecom )。平日这些平台供应商的核心技巧都纰谬外开放,只为购买其开拓平台的用户供给一个可二次开拓的情况,比如本文所要先容的自动测试所基于的平台 ——Agere system , 它在其软件架构的上层为开拓用户做了一层 UI ( User Interface ) , 并做了最基础的 AL 开拓,平日规划供给后可以直接作为海内厂商用于 FTA 测试,这等于海内浩繁手机厂商和 design house 开拓和测试的母体。

曾听一位从事手机功能测试的同仁说 “ 做手机功能测试只要有手就可以了 ” ,确凿手机功能测试很轻易给人一种是简单而重复按键操作的感到。但手机功能浩繁,并且回归测试事情量大年夜,假如单个测试工程师靠手动按键来履行所有测试用例,花费的光阴少则几小时,多则必要几天的光阴,这样消费大年夜量测试光阴的同时也轻易让测试工程师孕育发生委顿以致是厌倦心里,很轻易造成测试的漏掉。手机测试中常碰着很多重复性高的事情,如发送数条 SMS 或者 MMS 以验证其收发成功率以及稳定性、继续进行多次呼叫、多次对文件系统进行添加删除操作、多义务多进程环境下的冲突测试以及极限测试等等,都是重复性高的事情,手动履行的话费时辛勤,假如能有一套自动履行的机制,将能大年夜大年夜前进测试的效率。

因为手机平台的特殊性,海内平日都没有自动化测试对象支持手机功能测试,纷纷繁杂的功能测试大年夜多只能经由过程文本化测试用例的指示,由广大年夜测试员手工来完成。手机这种板机的 MMI 功能测试不合于基于 PC 上的 MMI 测试,后者借助 PC 平台,今朝市场上已有异常多功能强大年夜且通用的自动测试对象支持其测试,如对照范例的有 Winrunner , Robot , Loadrunner 等等,但这些对象平日不能兼容到象手机这种嵌入式系统中来。当然平台供应商对他们底层 lay1 , lay2 , lay3 的测试都有自己开拓的测试对象来自动履行,但这些对象暂时都不供给给海内的开拓厂家。

为了办理上述手机测试事情中的艰苦,笔者所在的测试团队颠末赓续的总结实践,今朝已在基于杰尔系统( Agere system )平台上建立了一套实用的自动测试机制,经由过程该机制的建立,不只调动了测试工程师的事情积极性和热心,同时也大年夜大年夜前进了测试的效率。下面将环抱 Agere 平台上自动测试机制给大年夜家做个总体先容。在讲述该规划前,将先对 Agere 平台的窗体和消息,以及手机同 PC 的数据交互道理做个简单先容。

•手机中的窗体和消息:

功能测试时,在手机上每按下一按键,都是在特定的窗口下完成其功能,窗口处置惩罚函数接管到窗口所用键盘中定义的按键消息后履行响应的处置惩罚,完成指定的事情。这里所谈的窗口系统本色上是一个链表,主如果相应手机中常用的三类消息:用户的按键操作、 GSM 收集消息、以及计时器消息。

手机中窗体处置惩罚函数布局平日如下:

static UINT32 TestWindowProc( UIWINDOW * win, UINT16 cmd, UINT16 wParam, UINT32 lParam )

{

switch ( wParam )

{

case EV_KEYSEND: /*按发送键*/

CALL(MAOTelNumber);

return TRUE;

case EV_KEYEND: /*按挂机键*/

ENDCALL(MAOTelNumber);

return TRUE;

......

default:

break;

}

}

在窗体中除了对消息的实时处置惩罚外,还有经由过程详细的消息通报函数对本窗口中消息进行派发和定向流动,平日有 GSM 消息的流动和键盘消息的流动,派发 GSM 消息时,依据窗口建立的逆向顺序逐层往上流动,而键盘消息只向上通报一层,即子窗口向父窗口传送。 在系统功能测试历程中,窗口中的消息履行环境是看不到摸不着的器械,然则各个窗口中这三类消息的处置惩罚以及消息的派发流动都是测试所必须懂得和测试的重点,如何才能直不雅的看到,跟踪并懂得这些消息的履行环境呢?测试工程师可以经由过程在跟踪点加测试桩或者跟踪语句来实现追踪,使用杰尔系统的 trace 对象( optitrace )以文本的形式输出所必要懂得的信息,根据这些信息的输出流程和实际数据,以达到测试跟踪和阐发的目的,如上面这一简单例子中所枚举的两个事故 EV_KEYSEND 和 EV_KEYEND ,最简单的跟踪是经由过程在这两类事故触发前增添类似于 print 跟踪语句,判断 “ 发送键 ” 按下后是否在指定的窗口里履行到 EV_KEYSEND 事故并调用呼叫函数 CALL 履行呼叫哀求 , 实际运行时,根据 optitrace 对象所显示的 print 信息察见地度榜样的运行及消息的履行环境,跟踪的手段很多,在此就不具体枚举。下面先容 PC 如何经由过程 Optitrace 对象实现同手机板机的数据交互。

•手机与 PC 的数据交互

平日每个平台为软件开拓供给一系列的开拓套件,常用的有仿真软件、 Trace 跟踪阐发软件、 Download 目标代码的装载软件等等,经由过程这些软件实现手机同 PC 的数据交互,实现软件的开拓仿真,问题的跟踪阐发,以及法度榜样的灌写等。这些软件大年夜多采纳串口通讯的要领,经由过程特定的数据线连接手机串口通讯端与 PC 的串口或者 USB 端( USB 转串口)。下面将要先容的是杰尔系龙都国际游戏官方网站统( Agere system )的开拓套件之一 optitrace 。

该对象可以运行于 win9X/2000/NT 系统中,是 Agere 参考设计平台的帮助诊断对象,它为软硬件开拓职员供给 Protocol Stack and MMI 的跟踪阐发以及模拟用户硬件如串口显示和按键,为 field Test 职员供给 Trace Logs 和 Vital signs ,为产品测试工程师供给 Product Test environment ( PTE ) 窗口和脚本的定制以及播放。

该对象的运行界面如下:

以上运行界面中经由过程 optitrace 对象捕捉的用户按键消息,如 Key Code 4 ,表示用户在手机上按下数字键 4 , key code 后面的数字是按键所定义的编码值,手机中每个按键都有独一的按键编码值。从中可以看出,用户所有的按键动作都以 “AL got key AL_KeyDown event , key code X” 的形式被记录下来。这些按键信息的捕捉只是该对象 trace 信息的一部分,该对象供给异常多的 trace 选项,实际利用中,可以根据所要跟踪的信息来选择显示。

该对象一个最紧张的功能是可以在 PC 端经由过程 PTE 敕令模拟用户来操作数据线别的一真个手机,该对象本身定义了 11 类的 PTE 敕令,下面重点先容两个紧张的 PTE 敕令,

•模拟一个按键按下和开释

输进款式: Key

返 回: Key:DONE

用户可以在 optirace 的 PTE 敕令输入行中,经由过程输入精确的 Key龙都国际游戏官方网站 敕令,往手机端写入按键事故,手机端解析后履行响应的按键操作,如用户输入 key 8 回车后,手机端 LCD 显示 8 或者履行按键 8 所对应的操作,履行后返回 key : DONE 消息。同时 trace 中显示 AL got key AL_KeyDown event , key code 8 。

•定义按键事故的发送距离

输进款式: Wait

返 回: Key:DONE

举例:

wait 6000 // 等待 6000Ms ,即 1 分钟

经由过程该敕令,可以哀求一个 pause 。比如呼叫 1001 通话 1 分钟后挂断。 PTE 脚本编写如下:

Key 1

Wait 500 // 按键间等待 0.5 秒

Key 10

Wait 500

Key 10

Wait 500

Key 1

Wait 500

Key 11 // 按呼叫键

Wait 3000 // 等待呼叫, 3 秒

Wait 60000 //1001 接通后等待 1 分钟

Key 12 // 按挂机键,停止通话

Wait 500

•自动测试规划及框架体系 :

下面先容本公司实践的一套自动化功能测试规划架构,如下图 :

•规划简述 :

自动测试主要事情流程分以下几个主要阶段:

•测试用例的设计和筹备 , 形成一套自动测试用例脚本库

自动测试用例的筹备,假如贵公司在需求定义的同时有各功能具体详细的 menu tree 架构,那即可在此根基上手动编写 PTE 敕令脚本。

如一菜单布局如下:

假设一手机的关机功能菜单位于主菜单中第 5 项菜单 “ 话机设置 ” 的第一子菜单中,可以用以下脚本要领实现手机履行关机。

Key 15 // 在待机下按左键进主菜单

Wait 500

Key 5 // 按 5 进入住菜单的第 5 个子菜单 “ 话机设置 ”

Wait 500

Keyhold 1 , 2000 // 长按 1 键关机

Wait 500

从中可以看出只要定义了 menu tree ,理解菜单的排列顺序,以及实际的功能操作步骤,即可以用脚原先模拟所有按键和履行步骤来定义测试的 PTE 脚本。

另一种脚本编写要领可以经由过程录制加转换的要领实现,使用 optitrace 对象录制实际操作时的按键动作,存为 txt 文件,然后将该 txt 文本转换为 PTE 脚本文件。实际测试中经由过程在集成测试或者系统测试低级阶段录制脚本,这样不会因软件大年夜的变化导致测试用例掉效,或者必要大年夜规模掩护,低落了风险指数。这些脚本在日后的回归测试中将发挥伟大年夜的感化。

按键录制时测试工程师针对某一功能或者依照某一组测试用例履行一次完备继续的手工测试,经由过程 optitrace 捕捉本次测试历程中所有的按键事故,天生一份对应的 >.TXT ( optitrace 只能天生文本文档),然后对应将所有按键事故转换为 > 。

•代码桩或者跟踪语句

测试时根据实际环境可能必要在各检测点编写用户查验的代码桩或者跟踪语句,代码测试桩有利于龙都国际游戏官方网站对本自动测试体系中软件问题作出较正确的定位和阐发,同时也有利于对测试结果的快速判断与自动天生测试申报。这些代码测试桩对应按键事故所对应的法度榜样履行路径和逻辑,主要经由过程白盒测试措施跟踪代码履行的路径、逻辑覆盖、信息流,数据流和节制流等。在测试履行时,测试桩将履行结果相应并经由过程 Trace 跟踪语句显示在 optitrace 对象中。编写该测试桩必要测试工程师具备较强的编程能力,同时对手机系统要对照认识和懂得。各功能完备的代码测试桩的编写事情量异常大年夜,前期可以只针对部分功能的部分特点做考试测验。同时测试桩插入在响应的代码中,为了避免纷乱,设置设置设备摆设摆设时必须将测试代码同法度榜样代码分开,只在测试履行时打开对应的编译开关获得对龙都国际游戏官方网站应的编译版本。

•天生一份预期的测试申报

运行预先录制的 PTE 脚本和对应的测试桩,经由过程 optitrace 对象天生一份预期的测试结果申报 ( 实际便是 optitrace 天生的一份按键事故和测试桩跟踪输出信息 ) 。这份预期的测试申报日后同实际结果对照,作为实际测试结果与预期结果是否同等的判断。

•天生自动测试用例库

终极由 > 、 > 、代码测试桩、 > 组成一份自动测试用例。所有的自动测试用例按照必然的布局组织起来形成自动测试用例库。

•测试用例的提取并履行

在回归以及后期的验证测试历程中,测试工程师或者法度榜样员对应提取由 > 和测试桩组成的测试用例,履行后天生一份 > ,保存该信息,从而测试履行停止。

•测试结果阐发,天生测试申报

测试结果的阐发可以自动和手动履行,手动履行可以经由过程 Beyond Compare 对象对照 > 和 > ,即可以得出一份测试的履行申报。

自动天生测试申报对照繁杂,必要在 pc 顶用高档说话建立一个测试治理中间,该治理中间龙都国际游戏官方网站可用 VC 或者 C++ 等高档说话编写,在该治理中间中,用户可以选择必要履行的 PTE 脚本或者多个脚本串成的一组脚本,该测试治理中间可以指定测试用例的自动履行,自动提取对应的结果做自动对照阐发,从而天生一份对应的测试申报,假如无差异,输出文件中只显示 OK ,否则输出差异信息文件。

•实际利用 :

下面以待机下呼叫 1001 共 100 次来测试呼叫成功率的例子来阐明上述规划的利用。下面是该例的录制,脚本编写,及实际运行的例子。

•录制按键事故 .

首先运行 optitrace.exe 法度榜样

设置 trace 选项 , 只选择 application layer 中的 ALTraceUHMess 如图所示:

最背工机开机,跑动 trace ,测试工程师针对某一功能或者某一组测试用例履行一次完备继续的测试,获得以下按键信息,如图所示。

着末测试履行停止后,保存该按键 trace 信息,做好版本记录信息。天生对应事故的按键列表《呼叫 1001 共 100 次 .TXT 》文档, 该 TXT 文档内容完全同上图所示内容,在次不再重复。

•天生 PTE 脚本:

因实际 optitrace 只录制按键消息,必要将这些按键消息转换为 PTE 敕令并天生工 optitrace 对象运行的 *.PTE 脚本。而平日按键事故浩繁,手动一一天生 PTE 脚本异常麻烦,是以必要做一个文件转换对象,逐行提取按键消息转换成 PTE 敕令,并做一些响应的注释。

将以上按键列表转换为 PTE 敕令列表,天生《呼叫 1001 共 100 次 .PTE 》文件,转换后的 PTE 脚本如图所示:

•编写测试桩:

编写测试代码对必要检测的路径、逻辑覆盖、信息流、数据流和节制流等做测试跟踪,在检测点输出有效的 trace 信息。

该测试用例对照简单,在此只枚举该测试义务中必要关注的呼叫是否成功,记录实际呼叫成功的次数,详细呼叫函数、以及逻辑覆盖因篇幅有限不枚举,设计一计数器( NumOfCallSuccess ),假如呼叫成功,该计数器累加 1 ,并且每次呼叫后用 printf 语句在 optitrace 对象上输出该计数器的实际值。

在呼叫窗口的处置惩罚函数中,对收集返回的 GSM 消息进行统一处置惩罚,在返回的回铃音处置惩罚消息中检测呼叫成功即可,如下所示:

case GSMAlerting: // 成功接管回铃消息

if(NumOfCallSuccess < 100) GSMprintf("\n====NumOfCallSuccess=%d======\n",

++ NumOfCallSuccess); // 呼叫成功

else

{

NumOfCallSuccess =0;

GSMprintf("\n====== NumOfCallSuccess = %d======\n", NumOfCallSuccess);

}

break;

•结合以上测试桩,运行《呼叫 1001 共 100 次 .PTE 》,天生预期的测试结果申报,《呼叫 1001 共 100 次 trace.TXT 》的 trace 跟踪记录文件,作为实际测试运行结果对照的依据。

Trace 信息去除无用信息及文件转换后如下所示:

•自动运行《呼叫 1001 共 100 次 .PTE 》,测试停止后目录下共有以下文件:

《呼叫 1001 共 100 次 .PTE 》:测试运行的脚本

《呼叫 1001 共 100 次 trace.TXT 》:预期的测试结果文本, Txt 款式。

《呼叫 1001 共 100 次 trace2.TXT 》:实际运行的 trace log 结果,被治理对象转换后的 TXT 文本。

《呼叫 1001 共 100 次 .Txt 》:测试后天生的测试申报文件, TXT 款式。

•总结:

本文结合杰尔系统( Agere system )中开拓套件 optitrace 对象的应用,从 PTE 脚本的制作,到回归测试中脚本的测试运行,先容了一个测试团队在手机功能级测试中采纳的自动化规划,本团队在实际的应用中感想熏染了该自动化测试规划所带来的乐趣和效率,在此著资源文供大年夜家一路探究,着末谢谢本文的所有读者,假如您能从中汲取一点有用的营养,获得一些赞助,那我将认为无限的欣慰,这也是我收拾这篇手机自动测试资料的初衷。

因为光阴仓匆匆水平有限,差错之处在所难免,敬请广大年夜读者品评斧正。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: