关于智能设备的测试方法的研究

发布者:清晨微风最新更新时间:2011-10-29 关键字:嵌入式  智能设备 手机看文章 扫描二维码
随时随地手机看文章

前言

     智能软件Agent是能够为用户执行特定的任务、具有一定程度的智能、能够自主的执行部分任务并以一种合适的方式和环境相互作用的软件程序。Agent 有自主性、响应性、学习能力和社会性等特性。这使得它适合在高度动态的环境下做出及时的响应。

      嵌入式技术和新一代移动通讯网络的发展使得嵌入式智能设备大量的涌现。这些设备的大都具有嵌入式操作系统的支持, 并运行着越来越丰富的应用程序。如何对这些应用程序进行测试,就成为一个需要研究的课题。本文将Agent技术引入嵌入式智能设备的测试中,使用目标设备Agent, 测试控制Agent, 网络环境Agent分别模拟和处理测试设备,测试工程师和测试环境的复杂性,利用Agent自身具有的特点,提出了一种有效的自动化测试的方法。

2 相关的研究及本文的思路

      Agent 所具有的自主性、响应性、学习能力和社会性等特性,使得它很适合处理复杂测试系统中的问题。将Agent技术应用于测试领域已经有一些相关的研究,下面是具体的介绍。

      Jeongeun Choi 和 Byoungju Choi [1]提出了一个基于Agent技术的测试工具,它通过使用用户接口Agent来处理和测试者的交互,使用测试用例选择Agent来进行测试用例的选择,并使用回归测试Agent进行回归测试,从而很好的实现了自动化的软件测试。但是他们提出的测试用例选择技术仅能在大量已有的测试用例中选择最佳的用例,不能减少编写测试用例本身的复杂性。

      另外一些研究将Agent 技术应用到了某一领域的测试中。Yu Qi、 David Hung 和 Eric Wong [3] 提出了一个基于Agent 技术的Web 应用程序测试方法。他们使用Agent技术降低了网络应用测试的复杂性。他们的方法不仅仅适用于Web应用程序的测试,也适合于嵌入式智能设备的测试。

      在实际测试过程中,测试人员很大的一项任务仍然是编写各种测试用例,要真正的提高测试效率,就要提高测试脚本的通用性,减少测试脚本的变化[2] [4]。常见的嵌入式智能设备测试工具(比如TestQuest)使用图像比对来判断目标设备的状态, 这种方法虽然实现了非侵入性的测试,但是存在两个问题:

      图片的抓取和传送消耗了大量测试资源.不同手机的用户界面风格变化很大,这使得测试脚本在用来进行新设备的测试时需要对脚本进行维护.然而,实际的设备中,当重要的事件发生时,系统会产生敏感事件来激励相关模块进行处理.如果能够在测试过程中捕获这些敏感事件,就能更加高效的进行测试. 并且,只要操作系统相同,敏感事件的捕获方式也是一样,测试用例不会因为界面的变化而变化。本文用目标设备Agent抽象和捕获测试过程中的敏感事件,并将敏感事件发送给测试控制Agent。而测试控制Agent收到敏感事件后,根据自己的知识,采取相应的动作的机制(如异常处理,重新调度测试等)加以处理。这正好可以作为Agent的推理规则,用Agent的智能性来屏蔽测试过程的复杂性。此外,考虑到目标设备处于复杂的网络环境中,我们利用网络环境Agent来控制目标设备所处的网络信号,从而实现对设备所处网络环境的控制。

3基于Agent的测试系统

3.1总体结构

     测试系统的最终目标是实现一个移动数字终端的自动化测试平台,能够对移动数字终端上的系统软件和应用层软件建立模块化、可重用的测试脚本库,提高各种黑盒测试的效率,自动化测试结果的生成,并实现测试结果的回放。

                           

                                            图1. 测试系统的整体架构

      如图1所示,测试平台分为四层,包括用户接口层,测试控制层,通讯层和设备Agent层。 其中,过程监控模块,测试环境控制模块和设备Agent层采用Agent的思想进行设计,以更好的支持嵌入式设备的测试。

3.2系统基本执行流程

    测试过程是对真实用户使用手机时“输入-反馈”模型的一个模拟。

     系统的基本的使用用例如下,首先用户通过脚本编辑器或者虚拟手机创建测试脚本并进行基本的配置,然后过程监控模块调度脚本开始执行,当脚本解释器解释执行脚本语句时,脚本解释器通常使用通讯模块向手机发送模拟按键,然脚本解释器进入等待状态,目标设备Agent从通讯模块得到按键,执行按键动作,截取屏幕并返回给测试控制Agent,或者如果手机有敏感世事件的发生(如来电,短信,异常等)也会反馈给测试控制Agent,测试控制Agent接到数据,再次激励脚本运行,并同时将测试结果输入存入测试资源库。脚本继续运行下面的语句,直到运行结束。

3.3目标设备Agent
 
      目标设备Agent驻留在被测试的智能设备中,实现对目标设备的建模。本系统中它接收从PC机中接收到的控制命令,然后在智能设备中进行相应的操作,包括模拟键盘事件,截取屏幕并返回给PC,以及根据知识库中的配置的测试目标,通过推理,有所选择的将必需的状态信息主动通知测试宿主机。

3.3.1设备Agent 依赖的决策规则

      系统事件报告决策规则(SERD-RULE) 这个决策规则决定设备Agent在获取到状态信息时,是否将状态信息反馈给上层系统。异常处理规则(EM-RULE)这个决策规则决定了当Agent发现测试中出现异常,要采取的处理方式。
    
3.3.2Agent 属性目标设备Agent具有下面的属性。

      自主性目标设备Agent使得测试用户无需关注设备的细节,它是设备功能和状态的一个很好的抽象,通过目标代理Agent,上层测试框架只需要执行相应的虚拟操作,则目标设备Agent会自动将这些虚拟操作映射为对手机的实际操作,并且手机的响应和其它状态也能够自动的反馈给客户,这使得上层测试和底层的设备具体操作无关。

      智能性当目标设备Agent获取到一个变化的被测系统状态或信息时,它会根据推理规则,仅仅把和本次目标相关的信息发送给测试控制Agent。目标设备Agent还能够根据异常处理规则,合理的处理测试中出现的异常。

3.4 测试控制 Agent测试控制Agent 实现了对测试过程的建模。它主要实现三个目标:
 
      在测试过程中,对测试人员感兴趣的事件进行捕获,当这些敏感事件发生后,系统立刻执行预定义的动作,并为测试提供准确和详尽的日志。

      通过和脚本解释器交互,实现异步的事件通知和交互测试用例的执行。

      处理测试过程中的异常,使得测试过程可以自我修复,进而多个脚本能够按照预先的调度正常运行。

3.4.1测试控制Agent的决策规则

      事件-条件-行动规则(ECA-RULE)这是测试控制Agent所依据的核心规则,它定义了某个测试所关心的事件,并根据比对条件,采取相应的动作。异常处理规则(EM-RULE)测试控制Agent也遵守异常处理规则,它能够检测测试过程中发生的异常事件,并执行相应的解决方案,使得测试能够顺利的进行。
 
3.4.2测试控制Agent 的属性

<1>自主性:自主性使得测试人员无需过分关注测试的细节,测试人员仅仅需要选择测试目标,测试控制Agent就能根据知识库中的信息,自动生成ECA规则表,并在脚本运行时,按照ECA规则,捕捉敏感的事件并执行相应的操作。

<2>智能性:测试控制Agent能够根据用户选择的测试目标,自动生成ECA规则表,并根据ECA规则,进行推理并采取相应的动作。测试控制Agent还能根据异常处理规则来处理测试过程中发身的异常,保障测试过程的自动,平稳进行。 

3.5网络环境Agent

      网络环境Agent 实现了对网络环境的模拟和控制。为了测试手机的射频性能,通常使用基站模拟系统来提供设备所处的无线网络环境,并且利用编程接口,通过软件对设备的环境进行控制,使得复杂网络环境下对目标设备的测试成为可能。

4系统评估

      为了评价本系统的有效性,我们设计了一个比较实验。试验在信息产业部泰尔实验室真实的测试项目中进行。我们将测试工程师分为两组,第一组使用本文的系统MobileTest进行测试,第二组使用业界著名的TestQuest Pro 进行测试。测试的依据是中国通讯行业标准的数字移动台测试部分。测试的内容是根据这两个系统各自已经建立好的回归测试用例对新的智能手机进行回归测试,从而比较这两个测试工具的测试效率和脚本的可维护性。

      自动化的测试用例
      的比例 TestQuest MobileTest 
      功能测试 71% 61%
      压力测试 42% 47%
     多状态测试 38% 68%
     多任务测试 25% 35%
     临界测试 29% 61%
     自动化比例总计 38% 52%
     测试时间(日) 18 15

      实验度量了两个工具在测试不同种类的测试用例时,自动化执行的用例所占的百分比。从表中可见,虽然TestQuest 在功能测试上有更高的自动化率,在压力测试,多状态测试,多任务测试,临界测试和总计中,MobileTest有更好的测试覆盖率。这是因为在后四种测试中,测试用例需要不断追踪系统的状态,使用图片比对机制的TestQuest 很难完成这些工作,而MobileTest 却能使用Agent返回的敏感事件来进行处理。此外,MobileTest 完成测试任务的时间时15天,比TestQuest 的测试效率要高。

5结论

      本文提出了一个基于Agent技术的嵌入式智能设备的测试方法,它用Agent技术对嵌入式智能设备测试过程中的被测试设备,测试者和网络环境进行模拟和控制,很好的屏蔽了嵌入式智能设备的复杂性,提高了测试的效率和脚本的可重用性。将来的研究工作中,我们会进一步拓展整个测试系统,使之能够支持整个测试的生命周期。

      本文作者的创新点:本文将软件Agent技术引入到嵌入式智能设备的自动化测试中,利用Agent的特性,很好的屏蔽了嵌入式智能设备测试中,测试者,待测设备,网络环境的复杂性,提高了自动化测试的效率。

关键字:嵌入式  智能设备 引用地址:关于智能设备的测试方法的研究

上一篇:散射方法测量嵌入式SiGe间隔结构
下一篇:用高压I2C电流和电压监视器进行测量

推荐阅读最新更新时间:2024-03-30 22:20

CPLD在嵌入式系统与CAN总线网络通信中的应用
   1.引言   可编程逻辑器件PLD(Programmable logic Device)就是由用户进行编程实现所需逻辑功能的数字专用集成电路ASIC。可编程逻辑器件在现代电子工程设计中得到了广泛应用。它是在PAL,GAL等逻辑器件的基础上发展起来的,具有高密度,高速度,低功耗体系结构和逻辑单元,灵活以及运用范围宽等特点,同时还具有设计周期短,制造成本低,开发工具先进,标准产品无需测试,质量稳定及可实时布线检验等优点。   现场总线技术广泛应用于工业和军用测控局域网中,它可以实现较远距离、较快速度的信息传输,而且只需要双绞线作为传输媒介,简单可靠。但是,在该技术应用中总线控制器与微机之间的接口电路一般采用单片机来实现。采
[嵌入式]
CPLD在<font color='red'>嵌入式</font>系统与CAN总线网络通信中的应用
基于嵌入式的故障诊断专家系统驱动程序设计
电子设备的故障诊断系统大多采用由传感器、工业PC、工业以太网、远程专家组成的诊断模式。现有诊断现场仪器众多、连接复杂,使得系统可靠性和稳定性难以得到保证。另一方面,要求诊断人员具备专业知识,其中包括各类传感器的固定、连接与信号处理,难以实现“现场无人,远程诊断”目标。因此有必要从现有的硬件和软件组成模式的角度出发,探索一种新的诊断系统组成模式。本文设计了基于嵌入式的故障诊断专家系统,使得对电子设备的检测及维修变得更为方便有效。   本文根据实际需要选取Windows CE.Net作为本系统的操作系统平台。在Windows CE嵌入式系统的平台开发中,设备驱动程序的开发是其很重要的一部分,它们用于驱动嵌入式系统硬件平台上的各
[安防电子]
基于<font color='red'>嵌入式</font>的故障诊断专家系统驱动程序设计
ARM仿真器与嵌入式系统设计讲解
  嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是是由单个程序实现整个控制逻辑。   所谓ARM仿真器,即用于调试基于ARM内核芯片的一个硬件模块。ARM内核包括ARM7,ARM9,ARM11,Cortex-A,Cortex-M,Cortex-R等系列,而基于这些内核的芯片则更多了。那么这些仿真器选择有一个原则,用于低端嵌入式微控制器的话,用ULINK2,ULINKPpro即可,可以调试Cortex-M,Cortex-R芯
[单片机]
ARM仿真器与<font color='red'>嵌入式</font>系统设计讲解
STM32嵌入式开发学习笔记(一)
本文中,笔者将介绍使用嵌入式开发工具Keil uVision5,使用C语言,对微处理器STM32F103C8进行嵌入式开发。 开发使用C语言,首先需要新建一个C语言文件,将其设为主函数的入口,因此,将此文件命名为main.c 配置好软硬件依赖环境后,在此文件中键入如下内容,尝试编译,如果能够编译成功说明环境配置成功。 stm32f10x.h库的功能是提供对于stm32f10x系列开发板的所有功能的定义与实现,因此在头文件中要加一句。 #include stdio.h #include stm32f10x.h int main(){ return 0; } 实验1:让小灯常亮 查阅STM32技术手册,
[单片机]
健康监测提速可穿戴智能设备元年的到来
业内曾有一种观点,认为正如智能手机毁灭了翻盖手机,平板电脑毁灭了传统个人电脑,穿戴式智能设备的崛起将毁灭智能手机和电脑。对此我们不敢妄下断语,但是穿戴式智能设备的确正在引领着下一场科技革命。   穿戴式智能设备借着移动互联网的东风来势汹涌,谷歌眼镜、三星Galaxy Gear智能手表是目前穿戴式设备最被广为讨论的例子,还有Pebble科技推出的Pebble智能手表,索尼推出的SmartWatch,高通也将在2013年第四季度发布Toq智能手表。不可遗漏的还有苹果,尽管传言已久的智能手表iWatch尚未问世,但是苹果正借力搭载M7运动感应芯片的新版iPhone5s 欲重新定义可穿戴智能设备市场,或将使健康监测和健身应用程序达到新的
[模拟电子]
健康监测提速可穿戴<font color='red'>智能设备</font>元年的到来
加快设计流程的嵌入式系统开发方案
在日益信息化的现代社会中,计算机和网络的应用已经全面渗透到日常生活中,各种应用嵌入式系统的电子产品也随处可见,计算机的应用经过桌面PC系统的空前之后,嵌入式系统的应用正风起云涌,广泛进入到工业、军事、通信、环保、电力、铁路、金融等众多领域。作为两大类型计算机之一的专用计算机系统、即嵌入式系统在应用数量上已经远远超过传统的通用计算机系统,嵌入式微控制器技术的出现给现代工业控制领域带来了一次新的技术革命。 嵌入式微控制器组成的系统可嵌入到任何需要控制的设备中,并且在工控领域的应用已经越来越广泛。嵌入式系统按形态可分为设备级(工控机)、板级(单板、模块)、芯片级(MCU、SoC)。当前使用的单片机与工控机是一种典型的嵌入式系统应用。随着I
[单片机]
加快设计流程的<font color='red'>嵌入式</font>系统开发方案
嵌入式Linux平台的GPS数据采集研究
随着GPS(全球定位系统)和便携移动设备的飞速发展,各种各样以GPS为基础的便携式定位系统相继出现.嵌入式Linux以其开放性、安全性、健壮性和 稳定性越来越成为各种便携设备的主要开发平台,因此GPS模块与嵌入式Linux平台之间的通信成了实现定位系统的基础. GPS模块与嵌入式Linux平台之间进行数据传送,大多采用异步串行传送方式,GPS作为终端设备(DTE)与嵌入式平台之间通过RS-232C串行通 信接口进行数据交换.因此,与GPS的数据通信在实现上即是LinuX下的串口编程,对于两者之间的通信协议,可选的协议有很多种,而NMEA0183是 目前普遍采用的一种。 1 NMEA0183通信协议 NMEA0183是G
[测试测量]
捷通华声推出嵌入式语音合成产品ejTTSv5.0
北京捷通华声语音技术有限公司近日宣布,公司即将面向市场推出新一代捷通华声嵌入式语音合成产品ejTTSv5.0。 捷通华声嵌入式语音合成产品ejTTS v5.0在原有参数合成算法上进行了更深入的研究,在系统资源占用、语音合成效果、系统移植性等几个关键点上取得突破性的进展。嵌入式语音合成ejTTS v5.0产品合成的声音更加清晰、更接近真人发声,韵律更为协调,朗读更加自然、流畅,音色更加纯正、甜美。同时,ejTTS v5.0采用全新架构设计,系统预处理性能、运行效率、稳定性、兼容性、适应性全面提升。在嵌入式领域适应范围更加广泛,除支持原有旧版本的所有平台,还增加支持了目前国内主流的多种嵌入式系统平台的。 捷通华声嵌入
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved