CN105893233A - 用于自动测试固件的方法和系统 - Google Patents

用于自动测试固件的方法和系统 Download PDF

Info

Publication number
CN105893233A
CN105893233A CN201410813967.1A CN201410813967A CN105893233A CN 105893233 A CN105893233 A CN 105893233A CN 201410813967 A CN201410813967 A CN 201410813967A CN 105893233 A CN105893233 A CN 105893233A
Authority
CN
China
Prior art keywords
firmware
test
hardware
tested
context environmental
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
Application number
CN201410813967.1A
Other languages
English (en)
Other versions
CN105893233B (zh
Inventor
杨云龙
张扬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by EMC Corp filed Critical EMC Corp
Priority to CN201410813967.1A priority Critical patent/CN105893233B/zh
Priority to US14/973,160 priority patent/US20160179656A1/en
Publication of CN105893233A publication Critical patent/CN105893233A/zh
Application granted granted Critical
Publication of CN105893233B publication Critical patent/CN105893233B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本发明的实施方式提供一种用于自动测试固件的方法和系统。方法包括:确定所述固件所处的上下文环境;确定所述固件所处的硬件环境;至少部分地基于所述上下文环境和所述硬件环境,测试所述固件。通过该方法,可以在无法事先预知被测系统的实际软硬件配置的情况下自动实现对该固件的自动测试,节约了人力资源,并提高了测试效率。

Description

用于自动测试固件的方法和系统
技术领域
本发明的实施方式涉及固件测试领域,更具体地,涉及一种用于测试固件的方法和系统。
背景技术
随着计算机软件技术的高速发展,固件的开发和测试也成为研究的热点之一。术语“固件”一般而言是指存储于可擦除可编程只读存储器(EPROM)或电可擦除可编程只读存储器(EEPROM)等闪存芯片中的一种程序。这种程序通常担任较为基础、底层的工作。例如计算机主板上的基本输入/输出系统BIOS就是固件的一个示例。然而,随着集成电路技术的发展,固件与普通软件的界限已经不再特别明显。因此,在本文中,如无必要,“固件”与软件并不进行严格区分。
通常,在固件的开发过程结束之后,需要测试人员来手动地对所开发的固件进行测试。这是由于被测系统状态具有不确定性,导致对固件的测试用例或步骤往往需要进行相应的调整。在缺乏有效机制支持的情况下,这种不确定性使得对固件的测试难以变为自动化。而手动测试固件本身除了耗费巨大的人力资源之外,还因为无法优化测试流程而导致效率低下。
发明内容
为了解决现有技术中存在的上述问题,本说明书提出如下方案。
根据本发明的第一方面,提供一种用于自动测试固件的方法,包括:确定所述固件所处的上下文环境;确定所述固件所处的硬件环境;以及至少部分地基于所述上下文环境和所述硬件环境,测试所述固件。
在本发明的可选实施方式中,所述至少部分地基于所述上下文环境和所述硬件环境,测试所述固件包括:响应于所述上下文环境与预疋的上下文环境不匹配,将所述固件从所述上下文环境引导至所述预足的上下文环境;以及在所述预定的上下文环境中进行所述测试。
在本发明的可选实施方式中,所述至少部分地基于所述上下文环境和所述硬件环境,测试所述固件包括:根据所述硬件环境,修改用于所述测试的测试用例;以及至少使用修改的所述测试用例来测试所述固件。
在本发明的可选实施方式中,所述硬件环境包括硬件结构和硬件接口,并且其中,所述硬件结构被抽象化,以形成用于描述所述硬件结构特性的代码,且所述硬件接口被抽象化,以形成用于描述经由所述硬件接口的通信的代码。
在本发明的可选实施方式中,所述硬件结构被抽象化包括:抽象化与所述测试有关的所述硬件结构特性,而不抽象化与所述测试无关的所述硬件结构特性。
根据本发明的第二方面,提供一种用于自动测试多个固件的方法,包括:为所述多个固件中的每个固件分配优先级;至少部分地基于所述优先级为所述多个固件确定测试顺序;以及根据所述测试顺序为所述多个固件中的每个固件执行根据前述任一实施方式所述的方法。
在本发明的可选实施方式中,该方法还包括:为用于所述多个固件中的每个固件的测试任务确定到来时间;并且其中,所述测试顺序还基于所述到来时间而确定。
在本发明的可选实施方式中,该方法还包括:针对所述多个固件中的当前待测试固件,确定所述当前待测试固件是否已经进入测试状态;以及响应于所述固件已经进入所述测试状态,开始所述测试。
在本发明的可选实施方式中,该方法还包括:响应于所述当前待测试固件尚未进入所述测试状态,跳过所述当前待测试固件,而对按照所述测试顺序的下一待测试固件确定是否已经进入所述测试状态。
在本发明的可选实施方式中,所述测试针对多个不同的被测平台类型或同一所述被测平台类型下的多个待测试固件而并发地进行。
根据本发明的第三方面,提供一种用于自动测试固件的系统,包括:上下文确定单元,被配置为确定所述固件所处的上下文环境;硬件确定单元,被配置为确定所述固件所处的硬件环境;以及测试单元,被配置为至少部分地基于所述上下文环境和所述硬件环境,测试所述固件。
在本发明的可选实施方式中,所述测试单元包括:引导单元,被配置为响应于所述上下文环境与预定的上下文环境不匹配,将所述固件从所述上下文环境引导至所述预定的上下文环境;以及第一子测试单元,被配置为在所述预定的上下文环境中进行所述测试。
在本发明的可选实施方式中,所述测试单元包括:修改单元,被配置为根据所述硬件环境,修改用于所述测试的测试用例;以及第二子测试单元,被配置为至少使用修改的所述测试用例来测试所述固件。
在本发明的可选实施方式中,所述硬件环境包括硬件结构和硬件接口,并且其中,所述硬件结构被抽象化,以形成用于描述所述硬件结构特性的代码,且所述硬件接口被抽象化,以形成用于描述经由所述硬件接口的通信的代码。
在本发明的可选实施方式中,所述硬件结构被抽象化包括:抽象化与所述测试有关的所述硬件结构特性,而不抽象化与所述测试无关的所述硬件结构特性。
根据本发明的第四方面,提供一种用于自动测试多个固件的系统,包括:优先级分配单元,被配置为为所述多个固件中的每个固件分配优先级;顺序确定单元,被配置为至少部分地基于所述优先级为所述多个固件确定测试顺序;以及执行单元,被配置为根据所述测试顺序为所述多个固件中的每个固件执行根据权利要求1至5中任一项所述的方法。
在本发明的可选实施方式中,该系统还包括:到来时间确定单元,被配置为为用于所述多个固件中的每个固件的测试任务确定到来时间;并且其中,所述顺序确定单元还基于所述到来时间而确定所述测试顺序。
在本发明的可选实施方式中,该系统还包括:状态确定单元,被配置为针对所述多个固件中的当前待测试固件,确定所述当前待测试固件是否已经进入测试状态;并且其中,所述测试单元被配置为响应于所述固件已经进入所述测试状态,开始所述测试。
在本发明的可选实施方式中,所述测试单元还被配置为:响应于所述当前待测试固件尚未进入所述测试状态,跳过所述当前待测试固件,而对按照所述测试顺序的下一待测试固件确定是否已经进入所述测试状态。
在本发明的可选实施方式中,所述测试针对多个不同的被测平台类型或同一所述被测平台类型下的多个待测试固件而并发地进行。
根据本发明的实施方式,能够在无法事先预知被测系统的实际软硬件配置的情况下自动实现对该固件的自动测试,节约了人力资源,并提高了测试效率。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了根据本发明示例性实施方式的用于自动测试固件的方法100的流程图。
图2图示了根据本发明示例性实施方式的用于自动测试多个固件的方法200的流程图;
图3示出了根据本发明示例性实施方式的用于自动测试固件的系统300的示意性框图;
图4示出了根据本发明示例性实施方式的用于自动测试多个固件的系统400的示意性框图;
图5示出了适于用来实践本发明实施方式的计算机系统500的示意性框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明示例性实施方式的用于自动测试固件的方法100的流程图。如图所示,方法100开始以后,首先进到步骤S101,确定该固件所处的上下文环境。需要注意的是,本文中所称的“上下文环境”主要指代相对于硬件环境而言的“软件环境”,即该固件所在的被测系统(以下简称为“被测系统”)所处于的“状态”。在对固件的测试任务开始之前,首先需要了解该固件所处的上下文环境。该上下文环境包括但不限于WINDOWS操作系统、LINUX操作系统、POST、PXE操作系统、Debugger、BIOS等等。
接着,方法100前进到步骤S102,确定该固件所处的硬件环境。如前所述,这里的“硬件环境”是相对于“上下文环境”(即“软件环境”)而言。例如,该硬件环境包括被测系统的实际硬件配置。在一个实现中,可以利用被测系统在特定状态下的行为先验知识对被测系统进行检测,根据检测结果来确定实际的硬件配置。术语“先验知识”包括但不限于通过历史行为所获知的被测系统的硬件配置信息。
接下来,方法100前进到步骤S103,至少部分地基于该上下文环境和该硬件环境,测试该固件。根据本发明的一个实施方式,步骤S103可以包括响应于在步骤S101中确定的上下文环境与预定的上下文环境(即,目标上下文环境)不匹配,而将该固件从该上下文环境引导至该预定的上下文环境。本领域技术人员可以理解,在测试过程中,可以根据测试目的而将被测系统引导至目标系统状态,通过检查在目标系统状态下被测系统的行为与预期结果的匹配程度来判定固件的质量。然而,本发明并不必然局限于此。此外,根据本发明的另一个实施方式,步骤S103也可以包括根据在步骤S102中所确定的硬件环境来修改用于该测试的测试用例,并且至少使用该修改的测试用例来测试该固件。例如,在实现中,一个测试案例可能包括有针对硬件环境中的各种不同硬件部件的测试片段,此时可以根据对被测系统的硬件环境检测来裁剪掉当前硬件环境中不涉及的硬件部件的相关测试片段,从而达到节约资源的效果。
根据本发明的一个实施方式,上述硬件环境可以包括硬件结构和硬件接口。在实践中,可以基于“面向对象编程”的思想对相关硬件进行抽象化,从而实现对固件的测试。例如,可以将该硬件结构抽象化,以形成用于描述所述硬件结构特性的代码。作为示例,可以将硬件结构抽象成软件的树状结构。通过对硬件结构的抽象化,能够用代码来描述硬件配置,从而有利于通过设置代码指令来调控硬件的功能。在进一步的可选实施方式中,可以仅抽象化与固件测试有关的硬件结构特性,而不抽象化与该固件测试无关的硬件结构特性,从而进一步节约资源,提高固件测试的效率。
备选地或附加地,也可以将该硬件接口抽象化,以形成用于描述经由所述硬件接口的通信的代码。在实践中往往借助于各种通信协议与被测系统通信,如串口、LAN等。通过对硬件接口的抽象化,可以用代码来描述经由该接口的通信,从而有利于通过设置代码指令来规划和定义接口的相关功能。
需要注意的是,可以根据对被测系统的硬件结构和硬件接口的抽象,通过设置相关指令来收集被测系统响应于特定设置的属性和行为,从而在测试过程中能够动态地对被测系统的先验知识加以更新。而这些更新的先验知识转而又可以更为准确地如前所述用来确定被测系统的硬件环境。
至此,方法100结束。
可以看到,方法100通过引入对固件所处的上下文环境和硬件环境的具体考虑,能够在无法事先预知被测系统的实际软硬件配置的情况下自动实现对该固件的自动测试,节约了人力资源,并提高了测试效率。
图2图示了根据本发明示例性实施方式的用于自动测试多个固件的方法200的流程图。
如图2所示,方法200开始之后,首先进到步骤S201,为该多个固件中的每个固件分配优先级。在存在多个固件需要测试(即,存在针对多个固件的多个测试任务)的情况下,根据本发明的一个实施方式,可以采用为每个固件分配测试优先级的方式来协调对固件测试任务的调度。
接下来,方法200进到步骤S202,至少部分地基于该优先级为该多个固件确定测试顺序。例如,在进行任务调度时,可以优先测试优先级较高的任务。然而,本发明并不局限于此,即,其他因素也可以用来帮助确定该多个固件的测试顺序。例如,还可以为该多个固件中的每个固件的测试任务确定到来时间,并且基于该到来时间来进一步确定该多个固件的测试顺序。
然后,方法200前进到步骤S203,根据该测试顺序为该多个固件中的每个固件执行前述参照方法100所描述的各种方法步骤。
根据本发明的一个实施方式,可以为每个所开发的固件设置多种状态,例如:“固件开发状态”,“准备测试状态”、“测试状态”等。其中,“固件开发状态”表示该固件正在开发过程中,并未准备好被测试。当开发完成后,可以为该“固件开发状态”设置退出标志(如,“固件可用”)来表示固件开发状态的退出,同时表示“准备测试状态”的进入。“准备测试状态”表示固件处于已经完成开发,但处于种种原因还未发出测试请求的状态。根据本发明的一个实施方式,在“准备测试状态”中,可以为每个任务分配步骤S201中所涉及的测试优先级。一旦测试请求发出,固件就处于“测试状态”,此时可以对固件进行如方法100以及200中所涉及的各种相关方法步骤。在实现中,诸如“开发状态”、“准备测试状态,,以及“测试状态”之类的各种状态可以记录在文件中供查询。在根据本发明的另一实施方式中,该文件还可以用于记载诸如步骤S201中所涉及的优先级信息等其他信息。因此,方法200可以在一个实施方式中可选地包括针对多个固件中的当前待测试固件,确定其是否已经进入测试状态,以及响应于该固件已经进入测试状态,进行该测试。在另一个实施方式中,备选地,响应于当前待测试固件尚未进入测试状态(例如处于“开发状态”或“准备测试状态”),则可以跳过该固件,而对按照测试顺序的下一待测试固件确定其是否已经进入测试状态。这样,在原本测试顺序靠前的固件尚未准备好进行测试时,方法不会阻塞于此,而是可以尝试对下一固件进行测试。
此外,在根据本发明的另一实施方式中,还可以针对多个不同的被测平台类型或同一被测平台类型下的多个待测试固件来并发地进行测试。在一个示例性实现中,并发进行的多个测试可以在一个测试界面中呈现。
接下来参看图3描述根据本发明示例性实施方式的用于自动测试固件的系统300。
如图所示,系统300包括上下文确定单元301,被配置为确定所述固件所处的上下文环境;硬件确定单元302,被配置为确定所述固件所处的硬件环境;以及测试单元303,被配置为至少部分地基于所述上下文环境和所述硬件环境,测试所述固件。
在本发明的可选实施方式中,测试单元303包括:引导单元,被配置为响应于所述上下文环境与预定的上下文环境不匹配,将所述固件从所述上下文环境引导至所述预定的上下文环境;以及第一子测试单元,被配置为在所述预定的上下文环境中进行所述测试。
在本发明的可选实施方式中,所述测试单元303包括:修改单元,被配置为根据所述硬件环境,修改用于所述测试的测试用例;以及第二子测试单元,被配置为至少使用修改的所述测试用例来测试所述固件。
在本发明的可选实施方式中,所述硬件环境包括硬件结构和硬件接口,并且其中,所述硬件结构被抽象化,以形成用于描述所述硬件结构特性的代码,且所述硬件接口被抽象化,以形成用于描述经由所述硬件接口的通信的代码。
在本发明的可选实施方式中,所述硬件结构被抽象化包括:抽象化与所述测试有关的所述硬件结构特性,而不抽象化与所述测试无关的所述硬件结构特性。
图4进一步描述根据本发明示例性实施方式的用于自动测试多个固件的系统400。如图所示,系统400包括优先级分配单元401,被配置为为所述多个固件中的每个固件分配优先级;顺序确定单元402,被配置为至少部分地基于所述优先级为所述多个固件确定测试顺序;以及执行单元403,被配置为根据所述测试顺序为所述多个固件中的每个固件执行根据前述方法100和200中任何相关方案所述的方法。
在本发明的可选实施方式中,系统400还包括:到来时间确定单元,被配置为为用于所述多个固件中的每个固件的测试任务确定到来时间;并且其中,所述顺序确定单元还基于所述到来时间而确定所述测试顺序。
在本发明的可选实施方式中,系统400还包括:状态确定单元,被配置为针对所述多个固件中的当前待测试固件,确定所述当前待测试固件是否已经进入测试状态;并且其中,系统300中的所述测试单元303被配置为响应于所述固件已经进入所述测试状态,开始所述测试。
在本发明的可选实施方式中,系统300中的所述测试单元303还被配置为:响应于所述当前待测试固件尚未进入所述测试状态,跳过所述当前待测试固件,而对按照所述测试顺序的下一待测试固件确定是否已经进入所述测试状态。
在本发明的可选实施方式中,所述测试针对多个不同的被测平台类型或同一所述被测平台类型下的多个待测试固件而并发地进行。
下面参考图5,其示出了适于用来实践本发明实施方式的计算机系统500的示意性框图。例如,图5所示的计算机系统500可以用于实现如上文描述的用于确定应用正确性的系统300和装置400的各个部件,也可以用于固化或实现如上文描述的用于确定应用正确性的方法200的各个步骤。
如图5所示,计算机系统可以包括:CPU(中央处理单元)501、RAM(随机存取存储器)502、ROM(只读存储器)503、系统总线504、硬盘控制器505、键盘控制器506、串行接口控制器507、并行接口控制器508、显示控制器509、硬盘510、键盘511、串行外部设备512、并行外部设备513和显示器514。在这些设备中,与系统总线504耦合的有CPU 501、RAM 502、ROM 503、硬盘控制器505、键盘控制器506、串行控制器507、并行控制器508和显示控制器509。硬盘510与硬盘控制器505耦合,键盘511与键盘控制器506耦合,串行外部设备512与串行接口控制器507耦合,并行外部设备513与并行接口控制器508耦合,以及显示器514与显示控制器509耦合。应当理解,图5所述的结构框图仅仅为了示例的目的而示出的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况而增加或者减少某些设备。
如上所述,系统300可以实现为纯硬件,例如芯片、ASIC、SOC等。这些硬件可以集成在计算机系统500中。此外,本发明的实施方式也可以通过计算机程序产品的形式实现。例如,参考图1描述的方法100和/或参考图2描述的方法200可以通过计算机程序产品来实现。该计算机程序产品可以存储在例如图5所示的RAM 504、ROM504、硬盘510和/或任何适当的存储介质中,或者通过网络从适当的位置下载到计算机系统500上。计算机程序产品可以包括计算机代码部分,其包括可由适当的处理设备(例如,图5中示出的CPU 501)执行的程序指令。所述程序指令至少可以包括用于实现方法100和/或200的步骤的指令。这些指令例如包括:用于确定所述固件所处的上下文环境的指令;用于确定所述固件所处的硬件环境的指令;以及用于至少部分地基于所述上下文环境和所述硬件环境,测试所述固件的指令。
上文已经结合若干具体实施方式阐释了本发明的精神和原理。根据本发明的用于自动测试固件的方法和系统相对于现有技术具有诸多优点。例如,本发明通过提供适当的方法和系统来支持对固件测试的自动化实现。通过本发明提供的实施方式,可以在无法事先预知被测系统的实际软硬件配置的情况下自动实现对该固件的自动测试,节约了人力资源,并提高了测试效率。
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
应当注意,尽管在上文详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明,但是应该理解,本发明并不限于所公开的具体实施方式。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。

Claims (20)

1.一种用于自动测试固件的方法,包括:
确定所述固件所处的上下文环境;
确定所述固件所处的硬件环境;以及
至少部分地基于所述上下文环境和所述硬件环境,测试所述固件。
2.根据权利要求1所述的方法,其中,所述至少部分地基于所述上下文环境和所述硬件环境,测试所述固件包括:
响应于所述上下文环境与预定的上下文环境不匹配,将所述固件从所述上下文环境引导至所述预定的上下文环境;以及
在所述预定的上下文环境中进行所述测试。
3.根据权利要求1所述的方法,其中,所述至少部分地基于所述上下文环境和所述硬件环境,测试所述固件包括:
根据所述硬件环境,修改用于所述测试的测试用例;以及
至少使用修改的所述测试用例来测试所述固件。
4.根据权利要求1所述的方法,其中,所述硬件环境包括硬件结构和硬件接口,并且其中,所述硬件结构被抽象化,以形成用于描述所述硬件结构特性的代码,且所述硬件接口被抽象化,以形成用于描述经由所述硬件接口的通信的代码。
5.根据权利要求4所述的方法,其中,所述硬件结构被抽象化包括:
抽象化与所述测试有关的所述硬件结构特性,而不抽象化与所述测试无关的所述硬件结构特性。
6.一种用于自动测试多个固件的方法,包括:
为所述多个固件中的每个固件分配优先级;
至少部分地基于所述优先级为所述多个固件确定测试顺序;以及
根据所述测试顺序为所述多个固件中的每个固件执行根据权利要求1至5中任一项所述的方法。
7.根据权利要求6所述的方法,还包括:
为用于所述多个固件中的每个固件的测试任务确定到来时间;
并且其中,所述测试顺序还基于所述到来时间而确定。
8.根据权利要求6所述的方法,还包括:
针对所述多个固件中的当前待测试固件,确定所述当前待测试固件是否已经进入测试状态;以及
响应于所述固件已经进入所述测试状态,开始所述测试。
9.根据权利要求8所述的方法,还包括:
响应于所述当前待测试固件尚未进入所述测试状态,跳过所述当前待测试固件,而对按照所述测试顺序的下一待测试固件确定是否已经进入所述测试状态。
10.根据权利要求6所述的方法,其中,所述测试针对多个不同的被测平台类型或同一所述被测平台类型下的多个待测试固件而并发地进行。
11.一种用于自动测试固件的系统,包括:
上下文确定单元,被配置为确定所述固件所处的上下文环境;
硬件确定单元,被配置为确定所述固件所处的硬件环境;以及
测试单元,被配置为至少部分地基于所述上下文环境和所述硬件环境,测试所述固件。
12.根据权利要求11所述的系统,其中,所述测试单元包括:
引导单元,被配置为响应于所述上下文环境与预定的上下文环境不匹配,将所述固件从所述上下文环境引导至所述预定的上下文环境;以及
第一子测试单元,被配置为在所述预定的上下文环境中进行所述测试。
13.根据权利要求11所述的系统,其中,所述测试单元包括:
修改单元,被配置为根据所述硬件环境,修改用于所述测试的测试用例;以及
第二子测试单元,被配置为至少使用修改的所述测试用例来测试所述固件。
14.根据权利要求11所述的系统,其中,所述硬件环境包括硬件结构和硬件接口,并且其中,所述硬件结构被抽象化,以形成用于描述所述硬件结构特性的代码,且所述硬件接口被抽象化,以形成用于描述经由所述硬件接口的通信的代码。
15.根据权利要求14所述的系统,其中,所述硬件结构被抽象化包括:
抽象化与所述测试有关的所述硬件结构特性,而不抽象化与所述测试无关的所述硬件结构特性。
16.一种用于自动测试多个固件的系统,包括:
优先级分配单元,被配置为为所述多个固件中的每个固件分配优先级;
顺序确定单元,被配置为至少部分地基于所述优先级为所述多个固件确定测试顺序;以及
执行单元,被配置为根据所述测试顺序为所述多个固件中的每个固件执行根据权利要求1至5中任一项所述的方法。
17.根据权利要求16所述的系统,还包括:
到来时间确定单元,被配置为为用于所述多个固件中的每个固件的测试任务确定到来时间;
并且其中,所述顺序确定单元还基于所述到来时间而确定所述测试顺序。
18.根据权利要求16所述的系统,还包括:
状态确定单元,被配置为针对所述多个固件中的当前待测试固件,确定所述当前待测试固件是否已经进入测试状态;
并且其中,所述测试单元被配置为响应于所述固件已经进入所述测试状态,开始所述测试。
19.根据权利要求18所述的系统,其中,所述测试单元还被配置为:响应于所述当前待测试固件尚未进入所述测试状态,跳过所述当前待测试固件,而对按照所述测试顺序的下一待测试固件确定是否已经进入所述测试状态。
20.根据权利要求16所述的系统,其中,所述测试针对多个不同的被测平台类型或同一所述被测平台类型下的多个待测试固件而并发地进行。
CN201410813967.1A 2014-12-19 2014-12-19 用于自动测试固件的方法和系统 Active CN105893233B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201410813967.1A CN105893233B (zh) 2014-12-19 2014-12-19 用于自动测试固件的方法和系统
US14/973,160 US20160179656A1 (en) 2014-12-19 2015-12-17 Automatically testing firmware

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410813967.1A CN105893233B (zh) 2014-12-19 2014-12-19 用于自动测试固件的方法和系统

Publications (2)

Publication Number Publication Date
CN105893233A true CN105893233A (zh) 2016-08-24
CN105893233B CN105893233B (zh) 2021-04-27

Family

ID=56129543

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410813967.1A Active CN105893233B (zh) 2014-12-19 2014-12-19 用于自动测试固件的方法和系统

Country Status (2)

Country Link
US (1) US20160179656A1 (zh)
CN (1) CN105893233B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111786852A (zh) * 2020-06-30 2020-10-16 展讯通信(上海)有限公司 测试方法及相关设备

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108287792B (zh) * 2018-01-26 2021-09-07 百度在线网络技术(北京)有限公司 用于输出信息的方法和装置
US10430179B1 (en) * 2019-03-07 2019-10-01 Capital One Services, Llc Methods and systems for managing application configurations
US11106452B2 (en) * 2020-02-04 2021-08-31 Arm Limited Infrastructure for validating updates via a network of IoT-type devices

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030217308A1 (en) * 2002-05-16 2003-11-20 Sun Microsystems, Inc. Distributed test harness model
CN1485740A (zh) * 2002-09-23 2004-03-31 上海贝尔有限公司 一种基于主机平台的嵌入式模块和子系统的通用测试装置
US20040154001A1 (en) * 2003-02-05 2004-08-05 Haghighat Mohammad R. Profile-guided regression testing
US6779134B1 (en) * 2000-06-27 2004-08-17 Ati International Srl Software test system and method
US7437717B1 (en) * 2000-04-12 2008-10-14 Compuware Corporation Techniques for software configuration tracking
US20090031170A1 (en) * 2007-07-26 2009-01-29 Teppei Tsurumi System and method to facilitate automatic globalization verification test
US20090187366A1 (en) * 2008-01-23 2009-07-23 International Business Machines Corporation Test apparatus and methods thereof
CN102541725A (zh) * 2010-12-09 2012-07-04 中国科学院沈阳计算技术研究所有限公司 一种数控系统功能模块的仿真测试方法
US20120198436A1 (en) * 2011-01-27 2012-08-02 Preimesberger Lee A Compatible Operating System
US20130219372A1 (en) * 2013-03-15 2013-08-22 Concurix Corporation Runtime Settings Derived from Relationships Identified in Tracer Data
US20130318397A1 (en) * 2012-05-23 2013-11-28 Shawn Jamison Automated Build, Deploy, and Testing Environment for Firmware
CN103473174A (zh) * 2013-09-10 2013-12-25 四川长虹电器股份有限公司 智能电视应用软件的云测试方法
CN103748562A (zh) * 2010-12-23 2014-04-23 英特尔公司 测试、验证和调试架构
CN103812726A (zh) * 2014-01-26 2014-05-21 烽火通信科技股份有限公司 一种数据通信设备的自动化测试方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030115570A1 (en) * 2001-12-13 2003-06-19 International Business Machines Corporation Development environment for building software applications that mimics the target environment
JP4168338B2 (ja) * 2003-09-18 2008-10-22 ブラザー工業株式会社 インストールプログラム、コンピュータ読取可能な記録媒体、及びインストール方法
JP6217212B2 (ja) * 2013-07-25 2017-10-25 富士通株式会社 テストプログラム、テスト方法及びテスト装置

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7437717B1 (en) * 2000-04-12 2008-10-14 Compuware Corporation Techniques for software configuration tracking
US6779134B1 (en) * 2000-06-27 2004-08-17 Ati International Srl Software test system and method
US20030217308A1 (en) * 2002-05-16 2003-11-20 Sun Microsystems, Inc. Distributed test harness model
CN1485740A (zh) * 2002-09-23 2004-03-31 上海贝尔有限公司 一种基于主机平台的嵌入式模块和子系统的通用测试装置
US20040154001A1 (en) * 2003-02-05 2004-08-05 Haghighat Mohammad R. Profile-guided regression testing
US20090031170A1 (en) * 2007-07-26 2009-01-29 Teppei Tsurumi System and method to facilitate automatic globalization verification test
US20090187366A1 (en) * 2008-01-23 2009-07-23 International Business Machines Corporation Test apparatus and methods thereof
CN102541725A (zh) * 2010-12-09 2012-07-04 中国科学院沈阳计算技术研究所有限公司 一种数控系统功能模块的仿真测试方法
CN103748562A (zh) * 2010-12-23 2014-04-23 英特尔公司 测试、验证和调试架构
US20120198436A1 (en) * 2011-01-27 2012-08-02 Preimesberger Lee A Compatible Operating System
US20130318397A1 (en) * 2012-05-23 2013-11-28 Shawn Jamison Automated Build, Deploy, and Testing Environment for Firmware
US20130219372A1 (en) * 2013-03-15 2013-08-22 Concurix Corporation Runtime Settings Derived from Relationships Identified in Tracer Data
CN103473174A (zh) * 2013-09-10 2013-12-25 四川长虹电器股份有限公司 智能电视应用软件的云测试方法
CN103812726A (zh) * 2014-01-26 2014-05-21 烽火通信科技股份有限公司 一种数据通信设备的自动化测试方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
马佳敏 等: "面向新一代固件接口标准的固件模糊测试系统", 《计算机工程》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111786852A (zh) * 2020-06-30 2020-10-16 展讯通信(上海)有限公司 测试方法及相关设备

Also Published As

Publication number Publication date
US20160179656A1 (en) 2016-06-23
CN105893233B (zh) 2021-04-27

Similar Documents

Publication Publication Date Title
CN110377520B (zh) 交易场景的测试方法及装置、电子设备和可读存储介质
KR101742590B1 (ko) 반도체 장치들의 동시 시험을 위한 시스템
CN107807881B (zh) 代码覆盖率的测试方法、装置和计算机设备
CN109992498B (zh) 测试用例的生成方法及系统、计算机系统
US10354031B2 (en) Information processing by interpenetrating signal transmission channel in design for testability of chip
CN103019942B (zh) 一种基于安卓系统的待测应用自动测试方法和系统
CN109815141B (zh) 一种测试方法和装置
CN105653338B (zh) 一种应用的更新方法及装置
CN105893233A (zh) 用于自动测试固件的方法和系统
CN112270149A (zh) 验证平台自动化集成方法、系统及电子设备和存储介质
CN106093897B (zh) 一种雷达系统的测试系统及测试方法
CN111290941A (zh) 多个接口的测试方法、装置、计算设备和介质
CN103186463B (zh) 确定软件的测试范围的方法和系统
CN104020763A (zh) 输入输出接口的自动测试方法及系统
CN112100085B (zh) 安卓应用程序稳定性测试方法、装置和设备
CN107038120A (zh) 一种软件测试方法和设备
CN104346279A (zh) 一种软件测试方法及装置
CN108874649A (zh) 自动化测试脚本的生成方法、装置及其计算机设备
CN109032864A (zh) 一种NVMe SSD热插拔测试的方法及系统
CN109473121A (zh) 语音合成质量测试方法及装置
CN112231206A (zh) 应用程序测试的脚本编辑方法、计算机可读存储介质及测试平台
CN107943635A (zh) 一种存储设备的测试方法、装置及介质
CN105867894A (zh) 开发环境自动创建方法及系统
CN105301480A (zh) Soc芯片的测试方法
CN114444421A (zh) 基于uvm验证平台的仿真结束机制

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20200416

Address after: Massachusetts, USA

Applicant after: EMC IP Holding Company LLC

Address before: Massachusetts, USA

Applicant before: EMC Corp.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant