CN105893234A - 用于软件测试的方法和计算设备 - Google Patents

用于软件测试的方法和计算设备 Download PDF

Info

Publication number
CN105893234A
CN105893234A CN201410854536.XA CN201410854536A CN105893234A CN 105893234 A CN105893234 A CN 105893234A CN 201410854536 A CN201410854536 A CN 201410854536A CN 105893234 A CN105893234 A CN 105893234A
Authority
CN
China
Prior art keywords
software
virtual
hardware
behavior
nextport
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
CN201410854536.XA
Other languages
English (en)
Other versions
CN105893234B (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 CN201410854536.XA priority Critical patent/CN105893234B/zh
Priority to US14/968,399 priority patent/US9921949B2/en
Publication of CN105893234A publication Critical patent/CN105893234A/zh
Application granted granted Critical
Publication of CN105893234B publication Critical patent/CN105893234B/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/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明的实施例提供了一种用于软件测试的方法和计算设备。该方法包括通过计算设备提供至少一个虚拟硬件组件,每个虚拟硬件组件模拟与待测试的软件相关联的硬件组件的行为。该方法还包括根据至少一个虚拟硬件组件模拟的行为来测试待测试的软件。根据本发明的实施例,通过提供能够模拟实际硬件组件的行为的虚拟硬件组件来执行软件测试。这样的软件测试方式使得软件开发与硬件开发可以并列地被执行,并且针对不同硬件组件的不同待测试软件可以并列地被测试,从而加快了软件开发的进度并且缩短了产品开发的耗时。

Description

用于软件测试的方法和计算设备
技术领域
本发明的各种实施方式涉及计算机领域,并且更具体地,涉及用于软件测试的方法和计算设备。
背景技术
产品开发过程(例如,各种电子器件和设备的开发过程)通常包括硬件开发和软件开发。硬件开发主要涉及对于产品的硬件组件的选择和组装、硬件功能的开发和调试等。软件开发主要涉及与硬件组件的有关的软件的开发、以及对所开发的软件的测试以适配硬件组件。
在常规产品开发过程中,软件开发主要取决于硬件开发的完成。例如,通常在已经完成整体硬件开发之后,硬件开发部门将生产的硬件工程板传送给软件部门,以便于软件部门在硬件工程板上对开发的软件进行测试。或者,例如在每个阶段(例如,在工程验证测试(Engineering Verification Testing,EVT)阶段、在关键设计验证测试(critical Design Verification and Testing,cDVT)阶段、和在设计验证测试(Design Verification and Testing,DVT)阶段)的硬件开发完成之后,将开发的硬件工程板交由软件部门执行软件测试。通常软件部门的不同软件开发人员或软件开发团队开发与不同硬件组件关联的多个软件,不同的软件需要一个或多个硬件工程板用于测试目的。
然而,这样的产品开发过程通常会导致较高的时间成本和经济成本。因为软件开发依赖于硬件开发的完成,因而完成产品开发的耗时较长。而且,用于软件测试的大量硬件工程板需要被生产、传送以及在使用中的维护,这增加了产品开发的经济成本。此外,如果在软件测试过程中发现了硬件的问题,还将导致硬件开发的重新执行以及硬件工程板的重新生产,这是对时间和经济成本的双重增加。
发明内容
鉴于上述以及其他潜在问题,本发明的实施方式提供了用于软件测试的方法和计算设备。
根据本发明的第一方面,提供了一种用于软件测试的方法。该方法包括通过计算设备提供至少一个虚拟硬件组件,每个虚拟硬件组件模拟与待测试的软件相关联的硬件组件的行为。该方法还包括根据至少一个虚拟硬件组件模拟的行为来测试待测试的软件。
在本发明的一个实施例中,该计算设备至少具有中央处理器和存储器。
在本发明的一个实施例中,该方法还包括通过计算设备提供与至少一个虚拟硬件组件相对应的虚拟总线,以使得至少一个虚拟硬件组件经由虚拟总线与中央处理器和存储器连接。
在本发明的一个实施例中,该计算设备包括已经开发的与软件相关联的硬件组件。
在本发明的一个实施例中,多个虚拟硬件组件通过计算设备而被提供。
在本发明的一个实施例中,根据虚拟硬件组件模拟的行为来测试软件包括根据多个虚拟硬件组件模拟的行为来并行地测试软件。
在本发明的一个实施例中,模拟的硬件组件的行为包括硬件组件的正常行为和出错行为中的至少一项。
根据本发明的第二方面,提供了一种用于软件测试的计算设备。该计算设备包括虚拟硬件组件供应单元,被配置为提供至少一个虚拟硬件组件,每个虚拟硬件组件模拟与待测试的软件相关联的硬件组件的行为。该计算设备还包括软件测试单元,被配置为根据至少一个虚拟硬件组件模拟的行为来测试待测试的软件。
在本发明的一个实施例中,该计算设备至少具有中央处理器和存储器。
在本发明的一个实施例中,该计算设备还包括虚拟总线供应单元,被配置为提供与至少一个虚拟硬件组件相对应的虚拟总线,以使得至少一个虚拟硬件组件经由虚拟总线与中央处理器和存储器连接。
在本发明的一个实施例中,该计算设备包括已经开发的与软件相关联的硬件组件。
在本发明的一个实施例中,虚拟硬件组件供应单元提供多个虚拟硬件组件。
在本发明的一个实施例中,软件测试单元进一步被配置为根据多个虚拟硬件组件模拟的行为来并行地测试软件。
在本发明的一个实施例中,模拟的硬件组件的行为包括硬件组件的正常行为和出错行为中的至少一项。
通过下文描述将会理解,根据本发明的实施例,通过提供能够模拟实际硬件组件的行为的虚拟硬件组件来执行软件测试。这样的软件测试方式使得软件开发与硬件开发可以并列地被执行,并且针对不同硬件组件的不同待测试软件可以并列地被测试,从而加快了软件开发的进度并且缩短了产品开发的耗时。而且,由于无需生产、传送和维护用于软件测试目的的硬件工程板,这是一种经济成本节约的方式。此外,虚拟硬件组件不仅可以模拟硬件组件的正常行为,还可以模拟硬件组件的错误行为,从而有效地测试软件的出错处理能力并且提高软件的鲁棒性。
附图说明
通过结合附图对本公开的示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了根据本发明的实施例的用于软件测试的方法的流程图;
图2示出了根据本发明的实施例的用于软件测试的硬件模拟平台的示意图;
图3示出了根据本发明的实施例的用于软件测试的计算设备的框图;以及
图4示出了适于用来实践本发明实施方式的计算机系统的示意性框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在对示例实施例的描述中,术语“包括”及其类似用语表示开放性包含,即“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”或“该实施例”表示“至少一个实施例”。
下面将详细描述本发明的实施例。通过下文描述将会理解,本发明的基本构思之一在于:在硬件开发完成之前,提供一种硬件模拟平台。该平台可以虚拟相应的硬件组件,从而软件测试可以基于虚拟硬件组件来执行而不必等待硬件开发完成。这样的软件测试方式使得软件开发与硬件开发可以并列地被执行、并且针对不同硬件组件的不同待测试软件可以并列地被测试,从而加快了软件开发的进度并且缩短了产品开发的耗时。而且,由于无需生产和传送用于软件测试目的的硬件板,这是一种经济成本节约的方式。此外,虚拟硬件组件不仅可以模拟硬件组件的正常行为,还可以模拟硬件组件的错误行为,从而有效地测试软件的出错处理能力并且提高软件的鲁棒性。
首先参见图1,其示出了根据本发明的实施例的用于软件测试的方法100的流程图。应理解的是,方法100还可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。
在方法100的步骤S101,通过计算设备提供至少一个虚拟硬件组件,每个虚拟硬件组件模拟与待测试的软件相关联的硬件组件的行为。
如以上提及的,为了加快软件开发的进度并且缩短整体产品开发的耗时,本发明的实施例提供了一种允许在计算设备上的硬件模拟平台。该平台在示例实施例中可以基于虚拟机基础架构(例如利用虚拟化工具QEMU)来实施并且可以提供虚拟硬件组件。为了能够提供虚拟硬件组件,在本发明的实施例中,计算设备至少具有中央处理器(CPU)和存储器(Memory)。在另外的实施例中,计算设备还可以包括其他必要的组成部件。在进一步的实施例中,该计算设备可以是任意的台式计算机、便携式计算机、膝上型计算机、手持设备、蜂窝电话、智能电话、个人数字助理、以及具有处理能力的任何其他适当的设备。
在本发明的实施例中,所提供的虚拟硬件组件可以模拟与待测试的软件相关联的硬件组件的行为。在一个示例中,一个软件可以具有一个相关联的硬件组件。在其他示例中,一个软件还可以具有多个相关联的硬件组件。
如本文中所使用的,“硬件组件”可以包括提供硬件产品(例如,电子器件、电子设备、或服务器等)的一类功能并且需要相应软件的支持的任何硬件组件。例如,硬件组件可以包括但不限于输入/输出(I/O)设备、小型I/O卡(SLiC)、基板管理控制器(BMC)、控制和监测设备(CMD)、电源(PS)、局域网(LAN)接入设备、平台管理芯片组、风扇、硬盘驱动器,等等。
进一步地,与待测试软件相关联的硬件组件在一个实施例中还可以包括CPU和存储器。因此,在这个实施例中,还可以根据正在开发的产品对于CPU和存储器的要求,选择具有适当的CPU和存储器的计算设备,以便更好地执行后续的软件测试。
通常在产品开发过程中,硬件组件的标准和接口的选择和功能的设计预先已经被定义。因此,基于这些预定义的信息,虚拟硬件组件可以模拟实际硬件组件的行为。例如,虚拟I/O设备可以模拟待测试软件将要应用至的硬件产品选用的实际I/O设备的输入操作、输出操作等等。
在本发明的实施例中,虚拟硬件组件对实际硬件组件的行为的模拟可以基于软件编程来实现。因此,以软件的方式可以灵活地实现虚拟硬件组件对实际硬件组件的行为的模拟。在一些实施例中,在一台计算设备上,可以模拟出与一个实际硬件组件对应的多个虚拟硬件组件。在另外的实施例中,还可以在一台计算设备上分别模拟出与多个实际硬件组件对应的多个虚拟硬件组件。注意到,在一台计算设备上模拟的虚拟硬件组件的数量可以取决于实际的测试需求并且可以通过软件编程灵活地实现,本发明的范围在此方面不受限制。
除了在计算设备的硬件模拟平台上提供虚拟硬件组件之外,在进一步的实施例中还可以提供与虚拟硬件组件相对应的虚拟总线,从而使得虚拟硬件组件经由虚拟总线与计算设备中的中央处理器和存储器连接。这也是对硬件产品中实际硬件组件与中央处理器和存储器之间的总线连接的模拟。通常各种硬件组件可以通过例如外设部件互连(Peripheral Component Interconnect,PCI)总线、PCI-Express总线、集成电路间(Inter-Integrated Circuit,I2C)总线、或通用串行总线(Universal Serial Bus,USB)总线等而连接至硬件产品中的中央处理器和存储器。因此,可以根据用于连接硬件组件的相应总线的标准,提供对应的虚拟总线。在硬件模拟平台中,虚拟硬件组件通过各自对应的虚拟总线连接至中央处理器和存储器。通过虚拟总线的连接,可以更好地模拟待测试的软件将要被应用到的硬件产品的整体环境。
在方法100的步骤S102中,根据至少一个虚拟硬件组件模拟的行为来测试待测试的软件。
在本发明的实施例中,软件的测试在虚拟硬件组件的基础上完成。由于虚拟硬件组件可以模拟实际硬件组件的行为,根据这些行为可以调试软件以发现软件的错误、验证软件的功能、以及执行其他涉及软件测试的方面。具体应该模拟哪些行为用于测试软件可以取决于软件开发人员的设计,本发明的保护范围在此方面不受限制。在一些示例中,硬件模拟平台可以模拟相应的实际硬件组件的尽可能多的行为以供软件开发人员在软件测试时进行选择。
在本发明的一个实施例中,虚拟硬件组件模拟的行为包括实际硬件组件的正常行为和出错行为中的至少一项。实际硬件组件的正常行为指的是该硬件组件在正常运行的情况下将会做出的操作、响应等行为。实际硬件组件的出错行为指的是该硬件组件在发生故障的情况下将会做出的操作、响应等行为。在利用硬件开发部门完成的硬件工程板执行的软件测试中,通常仅能够在硬件组件正常运行的情况下测试软件。然而,在本发明的实施例中,通过虚拟硬件组件来模拟实际硬件组件的行为,可以除了实际硬件组件的正常行为之外,还可以灵活地模拟出错行为以便测试软件。因此,本发明中所提供的软件测试过程可以有效地测试软件的出错处理能力并且提高软件的鲁棒性。
在本发明的一个实施例中,如果在利用虚拟硬件组件执行软件测试的过程中发现当前模拟的硬件组件可能存在的缺陷,例如硬件型号、功能选择不适当等,这些缺陷也可以被反馈给硬件开发部门,以便促进硬件开发。
如以上所提及的,虚拟硬件组件对实际硬件组件的行为的模拟可以通过软件编程来灵活地实现。因此,在一个计算设备上可以提供用于测试某个软件的多个虚拟硬件组件、或者提供分别用于测试多个软件的多个虚拟硬件组件。在这种情况下,可以根据多个虚拟硬件组件的行为来并行地测试(多个)软件。例如,可以利用多个同样的虚拟硬件组件来并行地测试一个软件的不同方面,或者可以并行地利用相应的虚拟硬件组件来并行地测试多个软件。软件测试的并行执行可以有效地缩短软件测试的耗时。此外,软件测试的并行执行还可以减少对实际硬件(例如计算设备)的需要,从而减少了经济成本(例如,硬件购买成本、硬件维护成本、硬件耗电成本等)。
如以上所提及的,与待测试软件相关联的硬件组件在一个实施例中还可以包括CPU和存储器。由于CPU和存储器物理上存在于提供虚拟硬件组件的计算设备中,如果在测试软件的过程中,仅需要利用一个存储器和/或一个处理器,则可以直接利用物理上存在于计算设备上的CPU和存储器来执行软件测试。在一些实施例中,为了在一台计算设备中并行地执行软件测试(例如,对软件的不同功能和方面进行测试、或者对不同软件的并行测试),还可以CPU虚拟化为多个虚拟CPU以及将存储器虚拟化为多个虚拟存储器。
进一步地,在一些情况下,在硬件开发的某个阶段中可能已经生产出有限数量的硬件工程板。这些硬件工程板可以具有正在开发的硬件产品所需的一个或多个硬件组件。在这种情况下,先前描述的提供虚拟硬件组件的计算设备可以是硬件工程板,其包括已经开发的与待测试的软件相关联的实际硬件组件。也就是说,运行硬件模拟平台还可以被运行在已经开发的硬件工程板上,以将硬件工程板上的实际硬件组件虚拟化为多个虚拟硬件组件。软件测试可以在多个虚拟硬件组件的基础上被执行。因此,有限数量的硬件工程板可以满足软件测试的需求。
图2示出了根据本发明的实施例的用于软件测试的硬件模拟平台200的示意图。该硬件模拟平台200可以基于虚拟机架构,并且可以包括客户机操作系统201、虚拟化工具202、主机操作系统203以及硬件板204。主机操作系统203和硬件板204是虚拟机架构的基础组成部分。虚拟化工具202提供虚拟硬件组件的实施。虚拟化工具202包括虚拟中央处理器2021vCPU和虚拟存储器2022vMemory。虚拟化工具202还包括虚拟硬件组件子系统2023。虚拟硬件组件子系统2023提供一个或多个虚拟硬件组件,例如所示出的五个虚拟硬件组件,vBMC、vCMD、vSLiC、vPS和vLAN,这些虚拟硬件组件分别模拟实际硬件组件BMC、CMD、SLiC、PS和LAN的行为。被包括在虚拟化工具202中的虚拟总线子系统2024提供虚拟硬件组件子系统2023与虚拟处理器2021和虚拟存储器2022的总线连接。虚拟总线子系统2024在一些示例中可以提供根据连接的虚拟硬件组件而提供相应的虚拟总线,例如虚拟化的PCI总线、PCIE总线、I2C总线和USB总线等。硬件模拟平台200中的客机操作系统201可以由软件开发人员操作以执行软件测试,例如对于软件应用1至5的测试。可以利用虚拟硬件组件vBMC、vCMD、vSLiC、vPS和vLAN模拟的行为分别来测试软件应用1至5。
注意,图2中的硬件模拟平台仅仅为了示例的目的而示出的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况而增加或者减少某些设备。例如,虚拟硬件组件子系统2023可以虚拟出比图2中示出的更多或更少的虚拟硬件组件。客机操作系统201可以用于测试比图2中示出的更多或更少的软件应用。
图3示出了根据本发明的实施例的用于软件测试的计算设备300的框图。如图3中所示,计算设备300包括虚拟硬件组件供应单元301,被配置为提供至少一个虚拟硬件组件,每个虚拟硬件组件模拟与待测试的软件相关联的硬件组件的行为。该计算设备还包括软件测试单元302,被配置为根据至少一个虚拟硬件组件模拟的行为来测试待测试的软件。
在本发明的一个实施例中,计算设备300至少具有中央处理器和存储器。
在本发明的一个实施例中,计算设备300还包括虚拟总线供应单元,被配置为提供与至少一个虚拟硬件组件相对应的虚拟总线,以使得至少一个虚拟硬件组件经由虚拟总线与中央处理器和存储器连接。
在本发明的一个实施例中,计算设备300包括已经开发的与软件相关联的硬件组件。
在本发明的一个实施例中,虚拟硬件组件供应单元301提供多个虚拟硬件组件。
在本发明的一个实施例中,软件测试单元302进一步被配置为根据多个虚拟硬件组件模拟的行为来并行地测试软件。
在本发明的一个实施例中,模拟的硬件组件的行为包括硬件组件的正常行为和出错行为中的至少一项。
应当注意,为清晰起见,图3中没有示出计算设备300所包括的可选单元或者子单元。上文所描述的所有特征和操作分别适用于计算设备300。而且,计算设备300中的单元或子单元的划分不是限制性的而是示例性的,旨在从逻辑上描述其主要功能或操作。一个单元的功能可以由多个单元来实现;反之,多个单元亦可由一个单元来实现。本发明的范围在此方面不受限制。
而且,计算设备300所包含的单元可以利用各种方式来实现,包括软件、硬件、固件或其任意组合。例如,在某些实施方式中,计算设备300可以利用软件和/或固件来实现。备选地或附加地,计算设备300可以部分地或者完全地基于硬件来实现。例如,计算设备300中的一个或多个单元可以实现为集成电路(IC)芯片、专用集成电路(ASIC)、片上系统(SOC)、现场可编程门阵列(FPGA),等等。本发明的范围在此方面不受限制。
下面参考图4,其示出了适于用来实践本发明实施方式的计算机系统400的示意性框图。例如,图4所示的计算机系统400可以用于实现如上文描述的用于软件测试的计算设备300的各个部件,也可以用于固化或实现如上文描述的用于确定软件测试的方法100的各个步骤。
如图4所示,计算机系统可以包括:CPU(中央处理单元)401、RAM(随机存取存储器)402、ROM(只读存储器)403、系统总线404、硬盘控制器405、键盘控制器406、串行接口控制器407、并行接口控制器408、显示控制器409、硬盘410、键盘411、串行外部设备412、并行外部设备413和显示器414。在这些设备中,与系统总线404耦合的有CPU 401、RAM 402、ROM 403、硬盘控制器405、键盘控制器406、串行控制器407、并行控制器408和显示控制器409。硬盘410与硬盘控制器405耦合,键盘411与键盘控制器406耦合,串行外部设备412与串行接口控制器407耦合,并行外部设备413与并行接口控制器408耦合,以及显示器414与显示控制器409耦合。应当理解,图4所述的结构框图仅仅为了示例的目的而示出的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况而增加或者减少某些设备。
如上所述,计算设备300可以实现为纯硬件,例如芯片、ASIC、SOC等。这些硬件可以集成在计算机系统400中。此外,本发明的实施方式也可以通过计算机程序产品的形式实现。例如,参考图1描述的方法100可以通过计算机程序产品来实现。该计算机程序产品可以存储在例如图4所示的RAM 404、ROM 404、硬盘410和/或任何适当的存储介质中,或者通过网络从适当的位置下载到计算机系统400上。计算机程序产品可以包括计算机代码部分,其包括可由适当的处理设备(例如,图4中示出的CPU 401)执行的程序指令。所述程序指令至少可以包括用于实现方法100的步骤的指令。这些指令例如包括:用于确定所述固件所处的上下文环境的指令;用于确定所述固件所处的硬件环境的指令;以及用于至少部分地基于所述上下文环境和所述硬件环境,测试所述固件的指令。
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
应当注意,尽管在上文详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明,但是应该理解,本发明并不限于所公开的具体实施方式。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。

Claims (12)

1.一种用于软件测试的方法,包括:
通过计算设备提供至少一个虚拟硬件组件,每个虚拟硬件组件模拟与待测试的软件相关联的硬件组件的行为;以及
根据所述至少一个虚拟硬件组件模拟的行为来测试所述待测试的软件。
2.根据权利要求1所述的方法,其中所述计算设备至少具有中央处理器和存储器。
3.根据权利要求2所述的方法,进一步包括:
通过所述计算设备提供与所述至少一个虚拟硬件组件相对应的虚拟总线,以使得所述至少一个虚拟硬件组件经由所述虚拟总线与所述中央处理器和所述存储器连接。
4.根据权利要求1所述的方法,其中所述计算设备包括已经开发的与所述软件相关联的所述硬件组件。
5.根据权利要求1至4中任一项所述的方法,其中通过所述计算设备提供多个虚拟硬件组件;以及
其中根据所述虚拟硬件组件模拟的行为来测试所述软件包括:
根据所述多个虚拟硬件组件模拟的行为来并行地测试所述软件。
6.根据权利要求1至4中任一项所述的方法,其中模拟的所述硬件组件的行为包括所述硬件组件的正常行为和出错行为中的至少一项。
7.一种用于软件测试的计算设备,包括:
虚拟硬件组件供应单元,被配置为提供至少一个虚拟硬件组件,每个虚拟硬件组件模拟与待测试的软件相关联的硬件组件的行为;以及
软件测试单元,被配置为根据所述至少一个虚拟硬件组件模拟的行为来测试所述待测试的软件。
8.根据权利要求7所述的计算设备,其中所述计算设备至少具有中央处理器和存储器。
9.根据权利要求8所述的计算设备,进一步包括:
虚拟总线供应单元,被配置为提供与所述至少一个虚拟硬件组件相对应的虚拟总线,以使得所述至少一个虚拟硬件组件经由所述虚拟总线与所述中央处理器和所述存储器连接。
10.根据权利要求7所述的计算设备,其中所述计算设备包括已经开发的与所述软件相关联的所述硬件组件。
11.根据权利要求7至10中任一项所述的计算设备,其中所述虚拟硬件组件供应单元提供多个虚拟硬件组件;以及
其中所述软件测试单元进一步被配置为根据所述多个虚拟硬件组件模拟的行为来并行地测试所述软件。
12.根据权利要求7至10中任一项所述的计算设备,其中模拟的所述硬件组件的行为包括所述硬件组件的正常行为和出错行为中的至少一项。
CN201410854536.XA 2014-12-30 2014-12-30 用于软件测试的方法和计算设备 Active CN105893234B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201410854536.XA CN105893234B (zh) 2014-12-30 2014-12-30 用于软件测试的方法和计算设备
US14/968,399 US9921949B2 (en) 2014-12-30 2015-12-14 Software testing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410854536.XA CN105893234B (zh) 2014-12-30 2014-12-30 用于软件测试的方法和计算设备

Publications (2)

Publication Number Publication Date
CN105893234A true CN105893234A (zh) 2016-08-24
CN105893234B CN105893234B (zh) 2019-05-07

Family

ID=56164304

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410854536.XA Active CN105893234B (zh) 2014-12-30 2014-12-30 用于软件测试的方法和计算设备

Country Status (2)

Country Link
US (1) US9921949B2 (zh)
CN (1) CN105893234B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106776325A (zh) * 2016-12-20 2017-05-31 广东美晨通讯有限公司 一种虚拟用户操作的系统稳定性测试方法和系统、终端
CN109218128A (zh) * 2017-07-06 2019-01-15 瑟恩森知识产权控股有限公司 包括数字信号处理系统的测试系统
CN111045931A (zh) * 2019-11-22 2020-04-21 腾讯科技(深圳)有限公司 应用程序测试方法、装置、设备及存储介质
CN113157382A (zh) * 2020-12-16 2021-07-23 建信金融科技有限责任公司 一种基于虚拟驱动的设备调用的方法和装置
CN113342702A (zh) * 2021-08-04 2021-09-03 武汉天喻信息产业股份有限公司 一种应用程序测试方法、装置、设备及可读存储介质
CN114416608A (zh) * 2021-12-06 2022-04-29 埃夫特智能装备股份有限公司 基于虚拟机器人控制器总线结构的外部设备模拟平台及其模拟方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9792102B2 (en) * 2015-09-04 2017-10-17 Quest Software Inc. Identifying issues prior to deploying software
US10846113B1 (en) * 2017-03-30 2020-11-24 Amazon Technologies, Inc. Board management controller firmware virtualization
US10705933B2 (en) * 2017-07-18 2020-07-07 The Boeing Company System integration using virtualization
US11394702B2 (en) * 2019-09-23 2022-07-19 T-Mobile Usa, Inc. Authentication system when authentication is not functioning
US11599373B2 (en) * 2020-02-17 2023-03-07 Raytheon Company Virtualized hardware and methods for leveraging virtualized hardware with munition support software
DE102020129562A1 (de) 2020-11-10 2022-05-12 Audi Aktiengesellschaft Testvorrichtung sowie Verfahren und Speichermedium zum Betreiben eines Prozessorsystems

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040237062A1 (en) * 2003-05-20 2004-11-25 Zeidman Technologies Method and apparatus for emulating a hardware/software system using a computer
US20110246975A1 (en) * 2010-03-30 2011-10-06 Eurocopter Control architecture and process for porting application software for equipment on board an aircraft to a consumer standard computer hardware unit
CN102681941A (zh) * 2012-05-15 2012-09-19 北京理工大学 一种可扩展的嵌入式仿真测试系统
CN102789416A (zh) * 2012-06-13 2012-11-21 北京航空航天大学 面向bit软件测试的存储器故障注入方法及其模拟器
CN103109275A (zh) * 2010-09-07 2013-05-15 爱德万测试(新加坡)私人有限公司 在半导体测试环境中使用虚拟仪器的系统、方法和设备
CN103152458A (zh) * 2011-12-07 2013-06-12 中国移动通信集团广东有限公司 测试手机、远程手机测试系统、远程手机测试方法与装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2319100B (en) * 1997-11-15 1998-09-16 Ibm Hardware simulator for a transaction processing system
US20060161415A1 (en) * 2005-01-18 2006-07-20 Microsoft Corporation Driver handler object framework
JP2009544012A (ja) * 2006-07-10 2009-12-10 アステリオン・インコーポレイテッド 試験システムで処理を実行するシステムおよび方法
US8782615B2 (en) * 2008-04-14 2014-07-15 Mcafee, Inc. System, method, and computer program product for simulating at least one of a virtual environment and a debugging environment to prevent unwanted code from executing
DE102009050161A1 (de) * 2009-10-21 2011-04-28 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Testen eines Systems mit zumindest einer Mehrzahl von parallel ausführbaren Softwareeinheiten
US9110496B1 (en) * 2011-06-07 2015-08-18 Interactive TKO, Inc. Dynamic provisioning of a virtual test environment
WO2014035463A1 (en) * 2012-08-31 2014-03-06 Oregon State Board Of Higher Education On Behalf Of Portland State University System and methods for generating and managing a virtual device
US9898388B2 (en) * 2014-05-23 2018-02-20 Mentor Graphics Corporation Non-intrusive software verification

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040237062A1 (en) * 2003-05-20 2004-11-25 Zeidman Technologies Method and apparatus for emulating a hardware/software system using a computer
US20110246975A1 (en) * 2010-03-30 2011-10-06 Eurocopter Control architecture and process for porting application software for equipment on board an aircraft to a consumer standard computer hardware unit
CN103109275A (zh) * 2010-09-07 2013-05-15 爱德万测试(新加坡)私人有限公司 在半导体测试环境中使用虚拟仪器的系统、方法和设备
CN103152458A (zh) * 2011-12-07 2013-06-12 中国移动通信集团广东有限公司 测试手机、远程手机测试系统、远程手机测试方法与装置
CN102681941A (zh) * 2012-05-15 2012-09-19 北京理工大学 一种可扩展的嵌入式仿真测试系统
CN102789416A (zh) * 2012-06-13 2012-11-21 北京航空航天大学 面向bit软件测试的存储器故障注入方法及其模拟器

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106776325A (zh) * 2016-12-20 2017-05-31 广东美晨通讯有限公司 一种虚拟用户操作的系统稳定性测试方法和系统、终端
CN109218128A (zh) * 2017-07-06 2019-01-15 瑟恩森知识产权控股有限公司 包括数字信号处理系统的测试系统
CN111045931A (zh) * 2019-11-22 2020-04-21 腾讯科技(深圳)有限公司 应用程序测试方法、装置、设备及存储介质
CN113157382A (zh) * 2020-12-16 2021-07-23 建信金融科技有限责任公司 一种基于虚拟驱动的设备调用的方法和装置
CN113342702A (zh) * 2021-08-04 2021-09-03 武汉天喻信息产业股份有限公司 一种应用程序测试方法、装置、设备及可读存储介质
CN114416608A (zh) * 2021-12-06 2022-04-29 埃夫特智能装备股份有限公司 基于虚拟机器人控制器总线结构的外部设备模拟平台及其模拟方法

Also Published As

Publication number Publication date
US20160188451A1 (en) 2016-06-30
CN105893234B (zh) 2019-05-07
US9921949B2 (en) 2018-03-20

Similar Documents

Publication Publication Date Title
CN105893234A (zh) 用于软件测试的方法和计算设备
CN108292337B (zh) 虚拟化环境下安全堡垒区域的可信开启
US11302412B2 (en) Systems and methods for simulated device testing using a memory-based communication protocol
US10430222B2 (en) Cloud based platform simulation for management controller development
US10489582B1 (en) Firmware security vulnerability verification service
US7895472B2 (en) System and method of managing BIOS test routnes
US20100131927A1 (en) Automated gui testing
JP7321839B2 (ja) ハードウェア抽象化ソフトウェアレイヤを使用するシステムのための汎用仮想化プラットフォーム
US20210303691A1 (en) Ip independent secure firmware load
CN110516447A (zh) 一种识别终端模拟器的方法与设备
JP6283096B2 (ja) プログラム試験サービス
US9690681B1 (en) Method and system for automatically generating executable system-level tests
US20090240483A1 (en) System and computer program product for automatic logic model build process with autonomous quality checking
US10467078B2 (en) Crash dump extraction of guest failure
CN110597597B (zh) 硬件的虚拟化方法、系统、装置及存储介质
US9430595B2 (en) Managing model checks of sequential designs
US20100153053A1 (en) Stream Based Stimulus Definition and Delivery via Interworking
US20230131198A1 (en) Featureless machine enhancement discovery and verification
US11501046B2 (en) Pre-silicon chip model of extracted workload inner loop instruction traces
US9524801B2 (en) Persistent command parameter table for pre-silicon device testing
EP3734491A1 (en) Method, apparatus, device, and medium for implementing simulator
US20200341875A1 (en) Feedback from higher-level verification to improve unit verification effectiveness
CN109716304B (zh) 用于测试混合指令体系结构的方法和系统
US20240175916A1 (en) Systems and methods for testing virtual functions of a device under test
US20230230101A1 (en) Method for validating a product portfolio

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
TR01 Transfer of patent right

Effective date of registration: 20200416

Address after: Massachusetts, USA

Patentee after: EMC IP Holding Company LLC

Address before: Massachusetts, USA

Patentee before: EMC Corp.

TR01 Transfer of patent right