CN103793323A - 嵌入式软件的自动测试装置及其自动测试方法 - Google Patents
嵌入式软件的自动测试装置及其自动测试方法 Download PDFInfo
- Publication number
- CN103793323A CN103793323A CN201310502738.3A CN201310502738A CN103793323A CN 103793323 A CN103793323 A CN 103793323A CN 201310502738 A CN201310502738 A CN 201310502738A CN 103793323 A CN103793323 A CN 103793323A
- Authority
- CN
- China
- Prior art keywords
- control command
- sight
- embedded
- test
- embedded software
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 144
- 239000000284 extract Substances 0.000 claims abstract description 17
- 238000013459 approach Methods 0.000 claims description 16
- 238000000034 method Methods 0.000 claims description 12
- 230000002123 temporal effect Effects 0.000 claims description 12
- 230000015572 biosynthetic process Effects 0.000 claims description 2
- 230000005540 biological transmission Effects 0.000 abstract description 4
- 230000003993 interaction Effects 0.000 abstract 1
- 238000004891 communication Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- NJPPVKZQTLUDBO-UHFFFAOYSA-N novaluron Chemical compound C1=C(Cl)C(OC(F)(F)C(OC(F)(F)F)F)=CC=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F NJPPVKZQTLUDBO-UHFFFAOYSA-N 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012812 general test Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000010223 real-time analysis Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N17/00—Diagnosis, testing or measuring for television systems or their details
- H04N17/004—Diagnosis, testing or measuring for television systems or their details for digital television systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
- H04N21/4424—Monitoring of the internal components or processes of the client device, e.g. CPU or memory load, processing speed, timer, counter or percentage of the hard disk space used
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/436—Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
- H04N21/4363—Adapting the video stream to a specific local network, e.g. a Bluetooth® network
- H04N21/43632—Adapting the video stream to a specific local network, e.g. a Bluetooth® network involving a wired protocol, e.g. IEEE 1394
- H04N21/43635—HDMI
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种嵌入式软件的自动测试装置及其自动测试方法,所述嵌入式软件的自动测试装置包括:输出检测器,根据来自分别加载有第一和第二嵌入式软件的第一和第二电子设备中的至少一个的数据发送/接收以及其间的数据交换,收集接口状态信息,并从所收集的接口状态信息中提取关键字;情景构成器,使用关于第一和第二嵌入式软件的识别信息和所提取的关键字,并且构成与预定事件状态相对应的情景;以及控制命令产生器,基于所构成的情景产生用于再现事件状态的控制命令。因此,能够预先检测在多个嵌入式软件的交互中、发送和接收数据的交互操作中等会发生的不可预见问题和可预见问题,并对其进行再现。
Description
技术领域
根据示例性实施例的装置和方法涉及一种嵌入式软件的自动测试装置及其自动测试方法,更具体地,涉及一种使安装在电子设备中的嵌入式软件的操作测试自动化的装置和方法。
背景技术
随着电视(TV)、移动电话或等多种电子设备(例如,数字设备)的出现,安装在这种设备中的嵌入式软件变得多种多样。多种设备为在各个设备中安装的嵌入式软件提供多种执行环境,但是会产生错误。因此,考虑到可能在执行该嵌入式软件中出现的错误,可以提前对嵌入式软件进行测试。
在与对应于真实环境的目标环境端口连接之前的主机环境下,根据基于许多情况的多种用户情景来测试嵌入式软件。在主机环境下展开的情景可以在目标环境下再现。
由于可以将嵌入式软件与具有多种硬件特性和软件环境的目标环境端口连接,并进行操作,所以在完成嵌入式软件的开发之前,嵌入式软件可能相对于多种情景经历详细且深入的测试。作为这样的测试方法中,存在一种传统的测试方法,使用商业化的自动测试工具,以便向嵌入式软件单向发送命令。
单独加载嵌入式软件的多个电子设备(例如,数字设备)在通过通信接口发送和接收数据的同时执行每个嵌入式软件。各个嵌入式软件的特性相互不同(例如,不同操作系统(OS)),因此问题可能不仅由一个嵌入式软件引起而且也由多个嵌入式软件之间的交互引起。在后者的情况下,在执行各个嵌入式软件的时间差、嵌入式软件在接口上的效果等可以引起多种不期望的问题。
因此,基于针对单个嵌入式软件的单向命令发送的传统测试难以再现特性相互不同的多个嵌入式软件之间的交互中、发送和接收数据的交互操作等中发生的多种问题。此外,对在终端用户的条件下可以发生的多种交互情景而言,传统测试不是灵活的,因此确保与多种情况相对应的情景的成本较高。因此,浪费了时间和劳动力,难以精确测试。
发明内容
其它方面和/或优点部分地将在以下描述中阐述,且部分地将通过以下描述而变得清楚明白,或者可以通过本发明的实践来获知。
一个或多个示例性实施例可以提供嵌入式软件的自动测试装置,包括:输出检测器,根据来自分别加载有第一和第二嵌入式软件的第一和第二电子设备中的至少一个的数据发送/接收及其间的数据交换,来收集接口状态信息,并从所收集的接口状态信息中提取关键字;情景构成器,使用关于第一和第二嵌入式软件的识别信息和所提取的关键字,并构成与预定事件状态相对应的情景;以及控制命令产生器,基于所构成的情景产生用于控制第一和第二嵌入式软件之一再现事件状态的控制命令。
控制命令可以包括关于第一和第二嵌入式软件之一的识别信息,并且可以被发送到加载有与该识别信息相对应的嵌入式软件的电子设备。
控制命令可以包括嵌入式软件的执行命令,以及关于执行命令的时间信息。
时间信息可以根据第一和第二电子设备的数据发送/接收,反映执行第一和第二嵌入式软件的时间差。
情景构成器可以使用关键字作为条件,并构成与满足条件的事件状态相对应的情景。
所构成的情景可以包括预定形式的编程语言,所述编程语言使用控制命令中包括的至少一个指令作为用于执行嵌入式软件的指令。
自动测试装置还可以包括存储所构成的情景的存储单元。
自动测试装置还可以包括:第一和第二测试处理器,在控制命令下控制第一和第二嵌入式软件分别执行再现事件状态的测试。
控制命令产生器可以将再现结果与先前构成的情景进行比较,以便确定是否发生了错误。
控制命令产生器可以产生用于按照预设顺序或随机地再现与多个先前存储的情景相对应的事件状态的控制命令。
输出检测器、情景构成器和控制命令产生器可以设置在主机装置中,所述主机装置连接到第一和第二电子设备中的至少一个。
一个或多个示例性实施例可以提供嵌入式软件的自动测试方法,包括:根据来自分别加载有第一和第二嵌入式软件的第一和第二电子设备中的至少一个的数据发送/接收以及其间的数据交换,接收接口状态信息;从所接收的接口状态信息中提取关键字;通过使用关于第一和第二嵌入式软件的识别信息和所提取的关键字,构成与预定事件状态相对应的情景;并且基于所构成的情景产生用于控制第一和第二嵌入式软件之一再现事件状态的控制命令。
控制命令可以包括关于第一和第二嵌入式软件之一的识别信息,所述方法还可以包括:向加载有与所述识别信息相对应的嵌入式软件的电子设备发送该控制命令。
控制命令可以包括嵌入式软件的执行命令和关于执行命令的时间信息。
时间信息可以根据第一和第二电子设备的数据发送/接收,反映执行第一和第二嵌入式软件的时间差。
构成情景可以包括:使用关键字作为条件并构成与满足条件的事件状态相对应的情景。
所构成的情景可以包括预定形式的编程语言,所述编程语言使用控制命令中包括的至少一个指令作为用于执行嵌入式软件的指令。
自动测试方法还可以包括:存储所构成的情景。
自动测试方法还可以包括:在控制命令下控制第一和第二嵌入式软件中的至少一个执行再现事件状态的测试。
自动测试方法还可以包括:通过将再现结果与先前构成的情景进行比较,来确定是否发生了错误。
所述产生控制命令可以包括:产生用于按照预设顺序或随机地再现与多个先前存储的情景相对应的事件状态的控制命令。
附图说明
结合附图,根据以下示例性实施例的描述,以上和/或其它方面将变得清楚并且更容易理解,在附图中:
图1是示出了根据示例性实施例的自动测试装置的配置的框图;
图2是示出了根据示例性实施例的接收接口状态信息的示例的视图;
图3是示出了根据示例性实施例的嵌入式软件的自动测试方法的流程图;以及
图4是示出了根据示例性实施例的嵌入式软件的测试情景构成方法的流程图。
具体实施方式
现在详细参考实施例,在附图中示意了实施例的示例,其中贯穿附图,类似的附图标号用于表示类似组件。以下参照附图描述实施例,以便对本公开进行说明。
图1是示出了根据示例性实施例的自动测试装置的配置的框图。
如图1所示,根据示例性实施例的自动测试装置10包括多个测试代理130、230和测试指挥(test director)330。
测试代理130、230分别安装在要进行测试的第一和第二电子设备100、200中,测试指挥330安装在控制整体测试处理的主机装置300中。主机装置300可以是计算设备,例如,个人计算机(PC)或服务器。
第一和第二电子设备100、200通过第一和第二代理接口120、220执行相互之间的数据通信。数据通信可以包括有线通信和无线通信。例如,第一和第二电子设备100、200可以是PC和诸如监控器等图像处理设备、诸如TV等图像处理设备和音频基座(dock)(音频输出设备)、诸如TV等图像处理设备和遥控器、等等。第一和第二代理接口120、220可以包括,例如串行、以太网、高清多媒体接口(HDMI)等标准输入/输出(I/O)接口,以及蓝牙、射频(RF)等无线通信接口。
例如,如果对分别安装在诸如TV等图像处理设备和音频基座中的嵌入式软件进行测试,则TV和音频基座可以连接到PC以便执行该测试。此时,TV和音频基座可以与第一和第二电子设备100、200相对应,PC可以与主机装置300相对应。此外,第一和第二电子设备100、200成为作为其中最终安装和运行嵌入式软件的真实环境的目标。
在实施例中的第一和第二电子环境100、200可以是多种电子设备,例如,移动电话、诸如MP3播放器等便携式终端。如果每个电子设备100、200都是图像处理装置,则它可以包括用于在预设图像处理下处理从外部图像供应源接收的图像信号的图像处理器。
如图1所示,主机装置300还可以包括:存储单元340,存储非限制的数据/信息;以及用户输入单元,允许用户输入他的/她的命令。
例如,存储单元340可以是非易失性存储介质,例如,闪存、硬盘驱动器等,并可以设置在主机装置300的内部或外部。如果存储单元340设置在外部,则可以提供连接器(未示出)以便与存储单元340进行连接。通过测试指挥330来访问存储单元340,并通过执行例如读取/记录/修改/删除/更新/等的作来访问存储单元340中的数据。在实施例中,存储单元340可以存储并读取关键字列表341和多个情景342。
例如,用户输入单元350可以是键盘、鼠标、图形用户界面(GUI)、触摸屏等。在实施例中,测试指挥330可以基于通过用户输入单元350输入的用户命令来测试嵌入式软件110、210。该测试可以包括针对第一和第二电子设备100、200发送并接收数据的同时产生的事件的测试。
根据示例性实施例,存储单元340和用户输入单元350可以包括在自动测试装置中。
在实施例中,主机装置300以及第一和第二电子设备100、200相互之间执行数据通信,并自动测试第一和第二嵌入式软件110、210。数据通信可以包括有线通信和无线通信。例如,主机接口320可以包括串行、以太网、高清多媒体接口(HDMI)等标准输入/输出(I/O)接口,以及蓝牙、射频(RF)等无线通信接口,连接到第一和第二代理接口120、220。
设置在第一和第二电子设备100、200中的测试代理130、230提供在第一和第二电子设备100、200中实现测试的环境。例如,在每个测试场景下,安装在第一和第二电子设备100、200中的第一和第二嵌入式软件110、210可以分别由测试代理130、230实现。测试代理130、230可以是处理单元,例如,控制处理单元(CPU)、微控制单元(MCU)等,从而控制第一和第二电子设备100、200的功能,或提供用户界面(UI)。
在实施例中,测试代理130、230可以包括:测试处理器131、231,基于由测试指挥330产生的指令列表,处理嵌入式软件110、210以便再现预定事件状态。
测试指挥330是测试管理引擎,控制测试代理130、230执行测试,使得嵌入式软件110、210可以再现预定事件。测试指挥330发送例如开始、停止、完成等命令,使得测试代理130、230可以开始、停止、完成测试等,因此测试代理130、230响应于所接收的命令,通过再现对应事件状态来执行每个测试。
例如,在实施例中的测试指挥330可以是CPU、MCU等,并控制主机装置300的操作。例如,测试指挥330控制通过主机接口320的数据通信,并执行与通过用户输入单元350输入的用户命令相对应的操作。
从测试代理130、230向测试指挥330报告测试运行状态或测试运行结果,并且测试指挥330对测试运行状态或测试运行结果进行监控。监控可以主要包括管理测试状态和产生报告,或如果没有对测试进行平滑处理,则控制测试。例如,每次完成每个事件再现时,测试代理130、230可以向测试指挥330报告运行结果。如果没有在预设时间内向测试指挥330报告事件再现,则确定发生了错误,并命令测试代理130、230产生关于迄今运行结果的报告或重新开始相应事件。
在实施例中的测试指挥330将测试代理130、230和嵌入式软件110、210构建在一起,并将其与电子设备100端口连接。为了运行测试,测试指挥330可以通过主机接口320以及第一和第二代理接口130、230,向第一和第二电子设备100、200发送单独的指令列表,使得嵌入软件210可以再现多种事件状态。
下文中,将参考图1来描述测试指挥330和测试代理130、230的详细测试操作。
如图1所示,测试指挥330包括输出检测器331、情景构成器332以及控制命令产生器333。
当执行第一和第二嵌入软件110、210时,输出检测器331根据在第一和第二代理接口120、220中的数据通信,通过主机接口320收集接口状态信息。这里,可以在测试代理130、230的控制下来执行第一和第二嵌入式软件110、210,并且接口状态信息可以保存为日志文件,在日志文件中存储当执行嵌入式软件110、210时在第一和第二代理接口120、220之间发送和接收数据的历史。
图2示出了根据示例性实施例接收接口状态信息的示例的视图。
如图2所示,例如,第一和第二代理接口120、220可以是HDMI接口。例如,如果第一电子设备100是PC且第二电子设备200是诸如监控器等图像处理设备,则可以通过两者间的HDMI接口发送和接收多种数据(视频/音频信号、控制/状态信息等)。
在这种情况下,通过消费电子控制(CEC)线发送和接收的数据(指令和信息)可以通过主机接口320接收作为接口状态信息。CEC是HDMI特征,设计为允许用户通过仅使用它们远程控制之一来命令和控制多个支持CEC的设备,所述多个支持CEC的设备通过HDMI连接。
在实施例中的主机接口320可以连接到第一和第二代理接口120、220之一,并接收接口状态信息。也就是说,第一和第二代理接口120、220发送并接收两者间的数据,且将所有发送的和接收的数据记录为在第一和第二代理接口120、220之一中的输入或输出,使得一个代理接口足以收集所有发送和接收的接口状态信息。
图2的实施例示出了主机接口320连接到第二电子设备200的第二代理接口220并接收接口状态信息的示例,但不仅限于此。备选地,本公开可以包括将主机接口320连接到第一电子设备100的第一代理120并接收接口状态信息,并且包括主机接口320从第一和第二代理接口120、220二者接收接口状态信息。
输出检测器331从所收集的接口状态信息中提取关键字,并基于所提取的关键字构成关键字列表331。所构成的关键字列表331存储在存储单元340中。此外,所收集的接口状态信息包括根据基于下述控制命令由第一和第二嵌入式软件110、210再现的事件而输出的接口状态信息。
情景构成器332基于所构成的关键字列表331,根据嵌入式软件110、210的执行分析输出(标准输出)。这里,关键字列表331用于实时分析第一和第二嵌入式软件110、210的状态。
情景构成器332基于关于第一和第二嵌入式软件110、210的识别信息以及由输出检测器331根据输出分析器142的所分析结果而提取的关键字,产生与预定事件相对应的至少一个情景342。情景构成器332通过使用所提取的关键字作为条件(状态条件或询问),来确定真/假,并加载与满足相应条件的事件状态相对应的情景。
例如,如果第一电子设备100是TV且第二电子设备200是遥控器,则第一和第二代理接口120、220可以由例如蓝牙通信模块来实现。主机接口300可以通过串行、以太网、HDMI等连接到第二电子设备200的第二代理接口220,并接收接口状态信息。输出检测器331收集所接收的接口状态信息,并提取关键字。具体地,例如,如果连续地提取“上电”和“播放”作为关键字,则输出检测器141构成关键字列表331,包括“播放(关键字A)”,并使用和分析该关键字列表331作为播放音频文件的输出。情景构成器332可以加载记录所选频道的广播的情景(为了方便,称为情景A),作为与播放条件有关的事件状态之一。这里,情景构成器332可以按照预设顺序或随机地加载与该频道有关的多个情景(情景A、B、...N)。
实施例中的情景构成器332可以使用关于第一和第二嵌入式软件110、210的识别(ID)信息和关键字列表331的关键字,构成关于预定事件状态的情景。使用表示所提取关键字是发送数据还是接收数据的信息,来确定ID信息。
控制命令产生器333基于所构成的情景产生用于控制第一和第二嵌入式软件110和210之一再现预定事件状态的控制命令。也就是说,控制命令产生器333使用所构成的情景来产生指令列表,包含与相关事件状态相对应的指令。
例如,如果加载了情景A,则控制命令产生器333可以产生控制命令A,控制命令A包括与事件相对应的指令,所述事件是指第二嵌入式软件210向TV发送用于选择频道的命令并且发送用于记录所选频道的命令。此外,控制命令产生器333可以产生控制命令A’,控制命令A’包括与事件相对应的指令,所述事件是指第一嵌入式软件110从遥控器接收频道选择命令以便调谐到频道,并接收针对所调谐到的频道的记录命令以便记录相应广播。
所产生的控制命令A、A’分别包含关于第一和第二嵌入式软件110、210之一的识别信息,并发送给加载有与相关识别信息相对应的嵌入式软件的电子设备。
因此,控制命令A包含第二嵌入式软件210的识别信息(ID2),并发送给加载有第二嵌入式软件210的第二电子设备200(例如,遥控器)。此外,控制命令A’包含第一嵌入式软件110的识别信息(ID1),并发送给加载有第一嵌入式软件110的第一电子设备100。
所产生的控制命令A、A’包括用于执行嵌入式软件110、210的命令和关于该执行命令的时间信息。在实施例中,时间信息根据第一和第二电子设备100、200的数据发送/接收,反映执行第一和第二嵌入式软件110、210的时间差。
例如,为了在控制命令A’下再现事件,在顺序地再现上电、频道和调谐记录的同时,考虑到用户使用遥控器进行输入需要花费的时间,第一嵌入式软件100可以反映时间差。在实施例中,关于从第二代理接口220获得的发送/接收接口状态信息的信息可以用于确定每个执行命令的时间信息。
所产生的控制命令A、A’分别通过主机接口320发送给电子设备200中加载的测试代理130、230的第一和第二测试处理器131、231。这里,控制命令A和控制命令A’相互独立地进行发送。
第一测试处理器131基于所接收的控制命令A控制第一嵌入式软件110执行再现相应事件状态的测试(调谐频道并记录所调谐到的频道)。第二测试处理器231基于所接收的控制命令A’控制第二嵌入式软件210执行再现相应事件状态的测试(选择频道、接收记录所调谐到频道并将其发送给TV的用户命令)。
通过第一和第二代理接口120、220将来自再现结果的接口状态信息以日志文件的形式发送给主机装置300。日志文件可以保存在存储单元342中。
如上所述,输出检测器331基于再现结果收集状态信息,控制命令产生器333通过所收集的接口状态信息来分析输出,并确定在事件再现的结果中是否存在错误。控制命令产生器333可以将事件再现结果与先前构成的情景342作比较,以便确定是否有错误。
此外,控制命令产生器333可以根据是否发生了错误,通过将与新事件状态相对应的指令进行分支,来更新指令列表,并因此产生新控制命令。
例如,如果在选择频道和再现所选频道的事件A或A’的结果中没有错误,则构成在关键字A(频道)的条件下的另一情景(例如,将所选频道设为最喜爱频道的情景(为了方便,称为情景B)),所构成的情景B用于产生控制命令B、B’,控制命令B、B’与将所选频道设置为最喜爱频道的事件B、B’相对应。这里,事件B是通过遥控器接收用户输入以便设置最喜爱频道的事件,事件B’是TV根据用户输入设置并存储最喜爱频道的事件。
经由主机接口320将所产生的控制命令B、B’发送给第一和第二电子设备100、200,第一和第二测试处理器131、231基于各自接收的控制命令B、B’,控制第一和第二嵌入式软件110、210执行再现相应事件状态(例如,事件B和事件B’)的测试。
如果输出分析器142的分析结果示出在事件再现中的错误,则控制命令产生器333可以终止第一和第二嵌入式软件110、210的测试。这里,开发者可以通过用户输入单元350选择是否终止该测试。测试的终止也可以是自动执行的。
如果选择了终止该测试,则开发者可以执行分析,以便解决在执行第一和第二嵌入式软件110、210的同时发生的错误。
在另一方面,如果没有选择终止测试,则测试指挥330基于通过主机接口320接收的接口状态信息继续收集和提取关键字。
因此,根据示例性实施例的自动测试装置根据嵌入式软件210的状态信息,顺序地或随机地执行多种事件,并预先检测在用户条件下会发生的可预见或不可预见的多种问题,从而对其进行再现。
此外,根据确定关于所提取关键字的状态信息是真/假,对多种事件进行分支,从而执行重复测试。
在情景构成器332中构成的情景可以存储在存储单元250中。在实施例中的情景包括:预定形式的编程语言(下文中,称为“情景语言”),使用包括在指令列表中的至少一个指令作为执行第一和第二嵌入式软件110、120的指令。编程语言可以使用嵌入式软件110、210的接口状态信息(<关键字A>,<关键字B>)作为条件,并支持多个选择语句(<关键字C>的情况下调用<情景C>、<关键字D>的情况下调用<情景D>、<关键字E>的情况下调用<情景E>)、重复语句(重复<重复次数>)和比较语句(如果状态确定?成功:失败)中的至少一个。
在实施例中,构成情景(情景A、B、...、N),使得嵌入式软件110、210可以在基于第一和第二嵌入式软件110、210的接口状态信息的关键字的条件下,考虑可以在第一和第二嵌入式软件110、210中发生的每种情况来执行自动测试。
尽管根据条件对情景342进行了分支,但是连续地构成新情景直到开发者发起停止构成情景(或终止测试)的命令。
在实施例中的测试代理130、230可以向测试指挥330报告事件运行状态或结果。可以从测试代理130、230向测试指挥330报告测试操作状态或结果,且测试指挥330产生关于管理一般测试状态的报告,或没有对该测试进行平滑的报告。开发者查明该报告,并确认关于第一和第二嵌入式软件110、210的自动测试结果。
下文中,将参考图3和4来描述嵌入式软件的自动测试方法和情景构成方法。
图3是示出了根据示例性实施例的嵌入式软件的自动测试方法的流程图。
如图3所示,输出检测器331执行第一和第二嵌入式软件110、210,并接收输出接口状态信息(S402)。这里,可以从连接到主机接口320的第一或第二代理接口120、220中的任一个收集接口状态信息。
输出检测器331从在操作S402处接收的接口信息中提取关键字(S404)。所提取的关键字可以存储在存储单元340的关键字列表341中。
情景构成器332使用第一和第二嵌入式软件110、210以及在操作S404处提取的关键字,构成与预定事件状态相对应的情景(S406)。这里,情景构成器332使用在操作S404处提取的关键字作为条件(询问),以便确定真/假(是/否),并产生满足相应条件的情景。
在操作S406处构成的情景342可以存储在存储单元340中(S408)。
此外,控制命令产生器333使用在操作S408中存储的情景,以便产生再现预定事件状态的控制命令(S410)。所产生的控制命令可以包括示出第一和第二嵌入式软件110、210之一的识别信息、执行嵌入式软件的指令、以及关于该指令的时间信息(例如,在执行该指令的时间差)。
将在操作S410产生的控制命令发送给加载有与所包括的识别信息相对应的嵌入式软件210或220的电子设备100或200(S412)。
第一测试处理器131或第二测试处理器231根据所接收的控制命令,控制第一或第二嵌入式软件110、210再现预定事件状态(S414)。
在输出检测器331中收集基于操作S414处处事件再现的接口状态信息,并提取关键字。控制命令产生器333使用所提取的关键字以便将再现结果与先前构成的情景342进行比较,从而基于事件再现确定是否发生了错误(S416)。
如果在操作S416中确定发生了错误,则开发者可以选择是否终止测试(S418)。
如果在操作S416确定没有发生错误并在操作S418中没有选择终止测试,则重复执行操作S402到S414以便对与新事件状态相对应的命令进行分支并更新情景342。这样,再现多种事件,以便可以自动测试通过接口连接的多个电子设备中安装的多个嵌入式软件。
图4是示出了根据示例性实施例的嵌入软件的测试情景构成方法的流程图。
如图4所示,输出检测器331执行第一和第二嵌入式软件110、210,并接收输出的接口状态信息(S502)。这里,可以从连接到主机接口320的第一或第二代理接口120、220之一收集接口状态信息。
输出检测器331从操作S502处接收的接口信息中提取关键字(S504)。所提取的关键字可以存储在存储单元340的关键字列表341中。
情景构成器332使用第一和第二嵌入式软件110、210的识别信息以及操作S504处提取的关键字,构成与预定事件状态相对应的情景(S506)。这里,情景构成器332使用操作S504处提取的关键字作为条件(询问),以便确定真/假(是/否),并产生满足相应条件的情景。
操作S506处构成的情景342可以存储在存储单元340中(S508)。
可以由开发者选择情景构成器332是否继续构成情景(S510)。根据操作S510中的选择结果,根据条件对情景进行分支,并因此连续地构成新情景。这里,可以构成情景直到开发者发起停止构成情景(或终止测试)的命令。
根据示例性实施例,自动测试装置执行特性相互不同的多个嵌入式软件,并使用输出的接口状态信息作为询问,由此连续地或随机地执行多种事件。因此,能够预先检测在多个嵌入式软件的交互中、发送和接收数据的交互操作中等会发生的不可预见问题和可预见问题,并从而对其进行再现。
此外,根据确定所提取关键字的状态条件的真/假,对多种事件进行分支,从而重复地执行关于多个嵌入式软件的自动测试。
此外,有条件地对测试情景进行分支,并连续地构成新情景直到开发者发起停止构成情景的命令,从而确保多种测试情景。
尽管示出并描述了一些示例性实施例,但是本领域技术人员应认识到,在不脱离本发明的原理和精神的前提下,可以进行改变,本发明的范围在所附权利要求及其等同物中限定。
Claims (15)
1.一种嵌入式软件的自动测试装置,包括:
输出检测器,根据来自分别加载有第一和第二嵌入式软件的第一和第二电子设备中的至少一个的数据发送/接收以及其间的数据交换,收集接口状态信息,并且从所收集的接口状态信息中提取关键字;
情景构成器,使用关于第一和第二嵌入式软件的识别信息和所提取的关键字,并且构成与预定事件状态相对应的情景;以及
控制命令产生器,基于所构成的情景产生用于控制第一和第二嵌入式软件之一再现事件状态的控制命令。
2.根据权利要求1所述的自动测试装置,其中所述控制命令包括关于第一和第二嵌入式软件之一的识别信息,并且被发送给加载有与所述识别信息相对应的嵌入式软件的电子设备。
3.根据权利要求1所述的自动测试装置,其中所述控制命令包括嵌入式软件的执行命令,以及关于所述执行命令的时间信息。
4.根据权利要求3所述的自动测试装置,其中所述时间信息根据第一和第二电子设备的数据发送/接收,反映执行第一和第二嵌入式软件的时间差。
5.根据权利要求1所述的自动测试装置,其中所述情景构成器使用关键字作为条件,并且构成与满足条件的事件状态相对应的情景,所构成的情景包括预定形式的编程语言,所述预定形式的编程语言使用控制命令中包括的至少一个指令作为用于执行嵌入式软件的指令。
6.根据权利要求1到5之一所述的自动测试装置,还包括:第一和第二测试处理器,在控制命令下控制第一和第二嵌入式软件分别执行再现事件状态的测试。
7.根据权利要求6所述的自动测试装置,其中所述控制命令产生器将再现结果与先前构成的情景进行比较,以便确定是否发生了错误。
8.根据权利要求1到5之一所述的自动测试装置,其中所述控制命令产生器产生用于按照预设顺序或随机地再现与多个先前存储的情景相对应的事件状态的控制命令。
9.一种嵌入式软件的自动测试方法,包括:
根据来自分别加载有第一和第二嵌入式软件的第一和第二电子设备中的至少一个的数据发送/接收以及其间的数据交换,接收接口状态信息;
从所接收的接口状态信息中提取关键字;
通过使用关于第一和第二嵌入式软件的识别信息和所提取的关键字,构成与预定事件状态相对应的情景;以及
基于所构成的情景产生用于控制第一和第二嵌入式软件之一再现事件状态的控制命令。
10.根据权利要求9所述的自动测试方法,其中所述控制命令包括关于第一和第二嵌入式软件之一的识别信息,
所述方法还包括:向加载有与所述识别信息相对应的嵌入式软件的电子设备发送所述控制命令。
11.根据权利要求9所述的自动测试方法,其中所述控制命令包括嵌入式软件的执行命令和关于所述执行命令的时间信息,时间信息根据第一和第二电子设备的数据发送/接收,反映执行第一和第二嵌入式软件的时间差。
12.根据权利要求9所述的自动测试方法,其中构成情景包括:使用关键字作为条件并且构成与满足条件的事件状态相对应的情景,所构成的情景包括预定形式的编程语言,所述预定形式的编程语言使用控制命令中包括的至少一个指令作为执行嵌入式软件的指令。
13.根据权利要求9到12中之一所述的自动测试方法,还包括:在控制命令下控制第一和第二嵌入式软件中的至少一个执行再现事件状态的测试。
14.根据权利要求13所述的自动测试方法,还包括:通过将再现结果与先前构成的情景进行比较,来确定是否发生了错误。
15.根据权利要求9到12中之一所述的自动测试方法,其中产生控制命令包括:产生用于按照预设顺序或随机地再现与多个先前存储的情景相对应的事件状态的控制命令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120119604A KR20140056478A (ko) | 2012-10-26 | 2012-10-26 | 내장형 소프트웨어의 자동 테스트 장치 및 자동 테스트 방법 |
KR10-2012-0119604 | 2012-10-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103793323A true CN103793323A (zh) | 2014-05-14 |
CN103793323B CN103793323B (zh) | 2018-08-17 |
Family
ID=49382274
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310502738.3A Expired - Fee Related CN103793323B (zh) | 2012-10-26 | 2013-10-23 | 嵌入式软件的自动测试装置及其自动测试方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9323648B2 (zh) |
EP (1) | EP2725493A1 (zh) |
KR (1) | KR20140056478A (zh) |
CN (1) | CN103793323B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105846973A (zh) * | 2016-04-25 | 2016-08-10 | 北京智能综电信息技术有限责任公司 | 一种嵌入式软件的协议测试方法和装置 |
CN106708488A (zh) * | 2015-11-17 | 2017-05-24 | 中兴通讯股份有限公司 | 一种多应用程序的调试系统和方法 |
CN110226095A (zh) * | 2016-10-20 | 2019-09-10 | Y软股份公司 | 嵌入式系统的通用自动化测试 |
CN113760714A (zh) * | 2020-10-30 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种软件测试的方法和装置 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9218266B2 (en) * | 2012-07-23 | 2015-12-22 | Infosys Limited | Systems and methods for replication of test results in a network environment |
US9311215B2 (en) * | 2014-02-12 | 2016-04-12 | International Business Machines Corporation | Defining multi-channel tests system and method |
EP3295311B1 (en) * | 2015-05-12 | 2021-08-11 | Suitest s.r.o. | Method and system for automating the process of testing of software application |
CN104881364A (zh) * | 2015-06-26 | 2015-09-02 | 上海斐讯数据通信技术有限公司 | 应用于安卓系统的自动化测试方法及系统 |
CN105278339B (zh) * | 2015-10-30 | 2021-11-16 | 青岛海尔智能家电科技有限公司 | 复合家电的子设备描述信息生成、控制方法和装置 |
CN106201885A (zh) * | 2016-07-18 | 2016-12-07 | 四川君逸易视科技有限公司 | 人脸检测比对抓拍处理器自动测试方法及装置 |
CN107315679A (zh) * | 2017-05-12 | 2017-11-03 | 昆明奥多智能科技有限公司 | 一种嵌入式软件自动化确认测试方法及测试系统 |
CN109032928A (zh) * | 2018-07-03 | 2018-12-18 | 中国电子科技集团公司第十四研究所 | 嵌入式软件构件监测方法 |
CN112416790B (zh) * | 2020-11-30 | 2023-04-14 | 中国航空工业集团公司西安航空计算技术研究所 | 一种嵌入式软件离线重放调试方法和装置 |
KR102420238B1 (ko) * | 2021-09-01 | 2022-07-14 | 브이엠이텍 주식회사 | 통제 처리를 수행하기 위한 fpga |
KR102501149B1 (ko) * | 2022-11-29 | 2023-02-21 | 국방과학연구소 | 호스트 시스템에 정보를 제공하는 장치 및 그 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060129990A1 (en) * | 2004-12-13 | 2006-06-15 | International Business Machines Corporation | System, method, and article of manufacture for determining execution counts associated with a software program of an embedded system |
US20080010539A1 (en) * | 2006-05-16 | 2008-01-10 | Roth Rick R | Software testing |
CN101221504A (zh) * | 2008-01-23 | 2008-07-16 | 中兴通讯股份有限公司 | 测试脚本的处理方法及其调度执行系统 |
US20120136612A1 (en) * | 2010-11-30 | 2012-05-31 | Verizon Patent And Licensing, Inc. | Hdmi device and interoperability testing systems and methods |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU8966391A (en) * | 1990-12-24 | 1992-06-25 | Ball Corporation | System for analysis of embedded computer systems |
US6067639A (en) * | 1995-11-09 | 2000-05-23 | Microsoft Corporation | Method for integrating automated software testing with software development |
US6249882B1 (en) * | 1998-06-15 | 2001-06-19 | Hewlett-Packard Company | Methods and systems for automated software testing |
US6261229B1 (en) * | 1999-07-15 | 2001-07-17 | International Business Machines Corporation | Method and system for gathering and analyzing psychophysics data |
US20040199600A1 (en) * | 2001-10-16 | 2004-10-07 | Dorundo Alan D. | Method and apparatus for program installation in a modular network |
US7494340B2 (en) * | 2001-11-13 | 2009-02-24 | Prometric Inc. | Extensible exam language (XXL) protocol for computer based testing |
US20040025083A1 (en) * | 2002-07-31 | 2004-02-05 | Murthi Nanja | Generating test code for software |
TWI230856B (en) * | 2002-10-04 | 2005-04-11 | Hon Hai Prec Ind Co Ltd | An apparatus for IDE channel testing |
CN100375058C (zh) * | 2004-12-24 | 2008-03-12 | 北京中星微电子有限公司 | 一种嵌入式产品软件调试方法 |
US20060179351A1 (en) | 2005-02-10 | 2006-08-10 | Microsoft Corporation | Target object for dynamic marshaling testing |
US7493520B2 (en) * | 2005-06-07 | 2009-02-17 | Microsoft Corporation | System and method for validating the graphical output of an updated software module |
KR100985749B1 (ko) | 2006-12-05 | 2010-10-06 | 삼성전자주식회사 | 내장형 시스템 소프트웨어 자동 테스트 시스템 및 방법과테스트 시나리오 작성 방법 |
KR101019210B1 (ko) * | 2007-04-25 | 2011-03-04 | 이화여자대학교 산학협력단 | 이뮬레이트를 활용한 임베디드 소프트웨어 테스트 장치 및그 방법 |
US8165700B2 (en) * | 2008-10-02 | 2012-04-24 | Fisher-Rosemount Systems, Inc. | Complete integration of stand-alone batch operator interface capabilities into generic human machine interface using componentized objects |
KR20100041447A (ko) | 2008-10-14 | 2010-04-22 | 삼성전자주식회사 | 테스트 자동화 장치 및 테스트 자동화 방법 |
US8549491B2 (en) * | 2008-12-05 | 2013-10-01 | Electronics And Telecommunications Research Institute | Apparatus and method for application testing of embedded system |
FR2942667B1 (fr) * | 2009-02-27 | 2016-05-06 | Sagem Comm | Procede de diagnostic et/ou de mise a jour d'un logiciel d'un dispositif electronique equipe d'un connecteur de type hdmi et dispositif associe. |
FR2964224A1 (fr) * | 2010-08-24 | 2012-03-02 | Thales Sa | Procede et dispositif de deploiement et d'aide au deploiement de composants formant un systeme temps reel embarque |
US9454463B2 (en) * | 2010-10-05 | 2016-09-27 | Infinera Corporation | Rapid automation front-end framework library and executable graphic user interface testing system and method |
US8887135B2 (en) * | 2012-03-30 | 2014-11-11 | NIIT Technologies Ltd | Generating test cases for functional testing of a software application |
KR20140053542A (ko) * | 2012-10-26 | 2014-05-08 | 삼성전자주식회사 | 내장형 소프트웨어의 자동 테스트 장치, 자동 테스트 방법 및 테스트 시나리오 작성방법 |
-
2012
- 2012-10-26 KR KR1020120119604A patent/KR20140056478A/ko not_active Application Discontinuation
-
2013
- 2013-09-13 US US14/026,042 patent/US9323648B2/en not_active Expired - Fee Related
- 2013-10-14 EP EP13188577.4A patent/EP2725493A1/en not_active Withdrawn
- 2013-10-23 CN CN201310502738.3A patent/CN103793323B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060129990A1 (en) * | 2004-12-13 | 2006-06-15 | International Business Machines Corporation | System, method, and article of manufacture for determining execution counts associated with a software program of an embedded system |
US20080010539A1 (en) * | 2006-05-16 | 2008-01-10 | Roth Rick R | Software testing |
CN101221504A (zh) * | 2008-01-23 | 2008-07-16 | 中兴通讯股份有限公司 | 测试脚本的处理方法及其调度执行系统 |
US20120136612A1 (en) * | 2010-11-30 | 2012-05-31 | Verizon Patent And Licensing, Inc. | Hdmi device and interoperability testing systems and methods |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106708488A (zh) * | 2015-11-17 | 2017-05-24 | 中兴通讯股份有限公司 | 一种多应用程序的调试系统和方法 |
CN105846973A (zh) * | 2016-04-25 | 2016-08-10 | 北京智能综电信息技术有限责任公司 | 一种嵌入式软件的协议测试方法和装置 |
CN110226095A (zh) * | 2016-10-20 | 2019-09-10 | Y软股份公司 | 嵌入式系统的通用自动化测试 |
US10997045B2 (en) | 2016-10-20 | 2021-05-04 | Y Soft Corporation, A.S. | Universal automated testing of embedded systems |
CN110226095B (zh) * | 2016-10-20 | 2022-06-17 | Y软股份公司 | 嵌入式系统的通用自动化测试 |
CN113760714A (zh) * | 2020-10-30 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种软件测试的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20140056478A (ko) | 2014-05-12 |
EP2725493A1 (en) | 2014-04-30 |
US9323648B2 (en) | 2016-04-26 |
US20140123111A1 (en) | 2014-05-01 |
CN103793323B (zh) | 2018-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103793323A (zh) | 嵌入式软件的自动测试装置及其自动测试方法 | |
US9195571B2 (en) | Automatic testing apparatus for embedded software, automatic testing method thereof and test scenario composing method | |
EP2784666B1 (en) | Method and device for displaying service pages for executing applications | |
KR101380967B1 (ko) | 애플리케이션 기능 실행을 위한 사용자 정의 패턴 설정 장치 및 방법 | |
KR101507272B1 (ko) | 대화형 비디오에서 이동 객체의 의미적 어노테이션 시스템의 인터페이스 및 그 방법 | |
TW201445448A (zh) | 目標裝置及非現存裝置之驅動程式安裝 | |
CN110913135A (zh) | 一种视频拍摄方法、装置、电子设备和存储介质 | |
KR20110100414A (ko) | 컨텐츠 전송을 위한 유저 인터페이스를 디스플레이하는 디지털 기기 및 그의 유저 인터페이스 디스플레이 방법 | |
US11372612B2 (en) | Display device and method for controlling same | |
CN103069747A (zh) | 用于建立通信的方法和设备 | |
KR102552286B1 (ko) | 영상 표시 장치 및 그 동작 방법 | |
CN105763897A (zh) | 用于识别广播服务器的方法和设备 | |
CN104620220A (zh) | 用于在装置中执行应用的方法和设备 | |
CN104199913A (zh) | 终端资源的清理方法、装置及终端 | |
EP2933940A1 (en) | Method and system for a smart mixing console | |
US8655151B2 (en) | Editing apparatus, editing method, program, and recording media | |
KR20130060917A (ko) | 정보 제공 방법, 기기와 컴퓨터로 읽을 수 있는 기록 매체 | |
US20140310318A1 (en) | Generating Task Flows for an Application | |
CN115630197A (zh) | 媒体内容处理方法、装置和电子设备 | |
CN115278341A (zh) | 显示设备及视频处理方法 | |
EP2843962B1 (en) | Information processing apparatus, information processing method, and program | |
CN103984691A (zh) | 信息处理设备,信息处理方法以及程序 | |
CN105426523A (zh) | 内容项的展示方法及装置 | |
KR102636533B1 (ko) | 실시간 푸시수신확인을 위한 푸시 알림 솔루션 장치및 방법 | |
US9720706B2 (en) | Generating task flows for an application |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180817 Termination date: 20191023 |
|
CF01 | Termination of patent right due to non-payment of annual fee |