CN110537171A - 测试设备及用于对设备驱动器软件进行测试的方法 - Google Patents

测试设备及用于对设备驱动器软件进行测试的方法 Download PDF

Info

Publication number
CN110537171A
CN110537171A CN201780089873.6A CN201780089873A CN110537171A CN 110537171 A CN110537171 A CN 110537171A CN 201780089873 A CN201780089873 A CN 201780089873A CN 110537171 A CN110537171 A CN 110537171A
Authority
CN
China
Prior art keywords
test equipment
equipment
emulated
processor
emulation
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
CN201780089873.6A
Other languages
English (en)
Other versions
CN110537171B (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.)
Thunder Snake (asia Pacific) Private Ltd
Original Assignee
Thunder Snake (asia Pacific) Private Ltd
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 Thunder Snake (asia Pacific) Private Ltd filed Critical Thunder Snake (asia Pacific) Private Ltd
Publication of CN110537171A publication Critical patent/CN110537171A/zh
Application granted granted Critical
Publication of CN110537171B publication Critical patent/CN110537171B/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/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by 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/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
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • 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/3692Test management for test results analysis
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Stored Programmes (AREA)

Abstract

根据各个实施例,提供一种用于对处理器的设备驱动器软件进行测试的方法,其包括:基于通过第一测试设备接口接收的设备仿真命令来配置测试设备的身份字段;在测试设备上运行仿真程序,仿真程序包括根据所配置的身份字段对人工输入设备的仿真;经由第一测试设备接口将输入指令接收在测试设备中,输入指令能指出在所仿真的人工输入设备上执行的输入;仿真程序响应于在所仿真的人工输入设备上执行的输入,对可由所仿真的人工输入设备产生的输出信号进行仿真;经由第二测试设备接口将所仿真的输出信号输出至处理器的设备驱动器软件。

Description

测试设备及用于对设备驱动器软件进行测试的方法
技术领域
各个实施例涉及测试设备及用于对设备驱动器软件进行测试的方法。
背景技术
诸如键盘和计算机鼠标的人工输入设备(HID)可以被用于提供使用者输入至计算设备。例如,用户可以在键盘的键上打字,以启动在计算设备上运行的应用程序中的功能。HID可以基于在HID上执行的用户输入而将输出信号发送至计算设备。计算设备的设备驱动器软件可以将输出信号转换为应用程序中的事件,以启动应用程序中的功能。设备驱动器软件可以被配置为支持一种类型以上的HID,例如,其可以能够转换几种键盘模型和几种计算机鼠标模型的输出信号。通常,对设备驱动器软件进行测试可以包括将支持的HID联接至计算设备,一次一个设备,之后在联接的HID上提供一系列用户输入,并且然后观察作为每个用户输入结果的应用程序中启动的事件。
发明内容
根据各个实施例,可以提供一种用于对处理器的设备驱动器软件进行测试的方法,所述方法包括:基于通过第一测试设备接口接收的设备仿真命令来配置测试设备的身份字段(identity field),其中身份字段可被设备驱动器软件访问以识别测试设备;在所述测试设备上运行仿真程序,所述仿真程序包括根据所配置的身份字段对人工输入设备的仿真;经由所述第一测试设备接口将输入指令接收在所述测试设备中,所述输入指令指示在所仿真的人工输入设备上可执行的输入;所述仿真程序响应于在所仿真的人工输入设备上执行的输入,来对可由所仿真的人工输入设备产生的输出信号进行仿真;经由第二测试设备接口将所仿真的输出信号输出至所述处理器的所述设备驱动器软件,以将所仿真的输出信号转换为在所述处理器上运行的应用程序中的事件。
根据各个实施例,可以提供一种测试设备,该测试设备包括:身份字段,可被处理器的设备驱动器软件访问以用于识别测试设备;第一测试设备接口,被配置为接收设备仿真命令,其中所述身份字段可基于所述设备仿真命令来配置;仿真程序,包括根据所配置的身份字段对人工输入设备的仿真;其中所述第一测试设备接口进一步被配置为接收能指出指示在所仿真的人工输入设备上可执行的输入指令;其中所述仿真程序进一步被配置为响应于正在所仿真的人工输入设备上执行的输入,对可由所仿真的人工输入设备产生的输出信号进行仿真;第二测试设备接口,被配置为将所仿真的输出信号输出至设备驱动器软件,以将所仿真的输出信号转换为在所述处理器上运行的应用程序中的事件。
根据各个实施例,可以提供其中存储有指令的非瞬时计算机可读介质,该指令在被处理器执行时使所述处理器执行用于对设备驱动器软件进行测试的方法,所述方法包括:通过经由第一测试设备接口将设备仿真命令发送至测试设备来配置测试设备的身份字段,其中所述身份字段可被所述设备驱动器软件读取以识别所述测试设备;在所述测试设备上开始仿真程序,所述仿真程序包括根据所配置的身份字段对人工输入设备的仿真;将输入指令经由所述第一测试接口发送至所述测试设备,输入指令指示在所仿真的人工输入设备上可执行的输入;其中所述仿真程序被配置为响应于正在所仿真的人工输入设备上执行的输入,对可由所仿真的人工输入设备产生的输出信号进行仿真;并且其中第二测试设备接口被配置为将所仿真的输出信号输出至另一处理器的设备驱动器软件,以将所仿真的输出信号转换为在另一个处理器上运行的应用程序中的事件。
附图说明
在附图中,在全部不同视图中,相同参考符号通常指相同部分。附图未必按比例绘制,相反,重点通常是关注对本发明原理的例示。在以下描述中,各个实施例参考所附附图来描述,其中:
图1示出根据各个实施例的实施用于对设备驱动器软件进行测试的方法的测试装置的示意图。
图2示出根据各个实施例的测试设备的示意图。
图3示出使用根据各个实施例的测试设备的设备仿真过程的一个循环的流程图。
图4示出事件模拟过程的流程图。
图5示出根据各个实施例的测试设备的概念图。
图6示出根据各个实施例的测试设备的概念图。
图7示出根据各个实施例的用于对处理器的设备驱动器软件进行测试的方法的流程图。
图8示出根据各个实施例的用于对处理器的设备驱动器软件进行测试的方法的流程图。
图9示出在处理器执行存储在非瞬时计算机可读介质上的指令时可以由处理器执行的方法的流程图。
具体实施方式
在上下文中,下文描述设备的实施例对于各个方法是类似有效的,反之亦然。此外,应当理解下文描述的实施例可以结合,例如一个实施例的一部分可以与另一个实施例的一部分结合。
将被理解的是,在本文中针对特定设备所描述的任何特性也适用于在本文中所描述的任何设备。将被理解的是,在本文中针对特定方法所描述的任何特性也适用于在本文中所描述的任何方法。此外,将被理解的是,对于本文中所述的任何设备或方法而言,不一定所描述的所有组件或步骤都必须纳入设备或方法中,而是可以仅纳入一些(但不是所有)组件或步骤。
在此上下文中,如本说明书中描述的设备可以包括例如在设备中执行的处理中使用的存储器。用于实施例中的存储器可以是易失存储器,例如DRAM(动态随机存取存储器),或非易失存储器,例如PROM(可编程只读存储器)、EPROM(可擦除PROM)、EEPROM(电可擦除PROM),或者闪存,例如浮栅存储器、电荷捕捉存储器、MRAM(磁阻随机存取存储器)或PCRAM(相变随机存取存储器)。
在实施例中,“控制器”可理解为任何种类的逻辑实施实体,该逻辑实施实体可以是执行存储在存储器中的软件、固件或其任何组合的专用电路或处理器。因此,在实施例中,“控制器”可以是硬布线逻辑电路或可编程逻辑电路,诸如可编程处理器,例如微处理器(例如复杂指令集计算机(CISC)处理器或精简指令集计算机(RISC)处理器)。“控制器”也可以是执行软件的处理器,该软件例如任何种类的计算机程序,例如使用虚拟机代码、诸如例如Java的计算机程序。将在以下更详细地描述的各个功能的任何其他种类的实施方式也可根据替代实施例理解为“控制器”。
在说明书中,术语“包括”应理解为具有类似于术语“包含”的广泛含义,并且将被理解为暗示包含所述整数或步骤或者整数组或步骤组,但不排除任何其他整数或步骤或者整数组或步骤组。该定义还适用于术语“包括”的变体,例如“包含”和“含有”。
术语“联接”(或“连接”)在本文中可以被理解为通信联接、电联接或机械联接,例如附接或固定,或仅在没有任何固定的情况下接触,并且应当理解,直接联接或间接联接(换言之:没有直接接触的联接)都可以被提供。
本说明书中对任何常规设备的引用不是且不应被视为承认或以任何形式地建议所引用的常规设备形成澳大利亚(或任何其他国家)的公知常识的一部分。
为了使本发明可以容易地理解并付诸实现,现在将通过示例而非限制性的方式并参考附图来描述各个实施例。
在各个实施例的上下文中,词“处理器”可以指计算设备的处理器、例如个人计算机的中央处理单元,或任何种类的逻辑或电路。
在各个实施例的上下文中,短语“设备驱动器软件”可以但不限于可互换地称为“设备驱动器”或“驱动器”。
在各个实施例的上下文中,词“测试者”可以指正在对设备驱动器软件进行测试的人员。
根据各个实施例,设备驱动器软件可以被配置为将来自任何处理器的消息转换为可由设备驱动器软件支持(换言之:兼容)的任何硬件设备读取的消息。消息可以由处理器的操作系统或在处理器上运行的应用程序产生。设备驱动器软件还可以被进一步配置为将来自任何兼容硬件设备的消息转换为可由处理器读取的消息。处理器可以使用在处理器上运行的操作系统或应用程序来读取消息。换言之,设备驱动器软件可以用作任何兼容硬件设备和处理器之间的转换器。设备驱动器软件还可以被配置为在“键分配”模式下操作以支持作为人工输入设备(HID)的兼容硬设备。在“键分配”模式下,设备驱动器软件可以被配置为将在兼容HID上可执行的使用者输入分配给可以触发应用程序中相应事件的相应输出信号。例如,兼容HID可以是键盘或计算机鼠标等。可在键盘上执行的用户输入可以包括按压键盘的任何键。键盘的每个键可被映射成相应的输出信号。映射可以由键盘的固件控制。例如,在正常操作模式下,当按压键“A”时,键盘可以被配置为产生承载消息“A”的输出信号。设备驱动器软件可以从HID接收输出信号,并且可以指令应用程序、例如打字应用程序,来启动显示“A”的事件。在“键分配”模式下,设备驱动器软件可以被配置为分配可由键盘的至少一个键产生的输出信号以启动事件,好像输出信号是由键盘的另一个键产生一样。用户可以限定设备驱动器软件中的分配。例如,设备驱动器软件可以被配置为将可响应于键“A”产生的输出信号分配给与可由键“B”产生的输出信号相对应的事件。在该示例中,当用户按压键盘上的键“B”时,设备驱动器软件接收对应于键“B”的输出信号,并且然后将输出信号转换为对应于键“A”的事件。设备驱动器软件可以将事件提供给应用程序或操作系统。设备驱动器软件还可以被配置为在“宏分配”模式下操作以支持兼容HID。在“宏分配”模式下,设备驱动器软件可以被配置为分配可由键产生的输出信号,以启动事件序列,好像按压预定的键序列一样。例如,设备驱动器软件可以将可由键“A”产生的输出信号分配给显示“h”、“e”、“l”、“l”和“o”的序列。在该示例中,当用户按压键盘上的键“A”时,设备驱动器软件可以启动用于在应用程序上显示“hello”的事件序列,好像使用者已输入了“hello”一样。为了手动对设备驱动器软件进行测试,例如,“键分配”模式的功能,测试者通常必须使用设备驱动器软件将键分配给事件,将HID连接至处理器,按压所分配的键并检查键是否被正确分配以启动诸如文本输入应用程序的应用程序中的预期事件。当对设备驱动器软件进行测试时,测试者可能需要对键盘上的所有键进行测试。假定在一个键盘上平均键量为104,平均来说,在关于一个键盘对设备驱动器软件进行测试时,测试可能花费大约一个半小时。此外,如果设备驱动器软件被配置为支持大范围的键盘,则对设备驱动器软件进行测试所需的时间量可能会根据所支持的(换言之:兼容的)键盘的数目而倍增。可以理解的是,HID可以是任何其他类型的HID,诸如计算机鼠标、游戏杆或游戏控制器。因此,关于键盘的键的设备驱动器软件的功能还可以类似地适用于任何其他类型的HID的其他用户输入组件,诸如按钮、滚轮或游戏杆手柄。
根据各个实施例的用于对设备驱动器软件进行测试的方法可以减少为了对设备驱动器软件进行测试所需的时间。方法可以包括仿真多个HID。换言之,不同于将多个HID顺序地物理连接至正在运行设备驱动器软件的处理器,仿真程序可以将多个HID的仿真输出信号提供至设备驱动器软件。方法还可以包括使用测试软件来自动化测试程序。换言之,将键分配给事件、按压分配的键或检查键是否被正确分配以启动应用程序中的预期事件中的至少一个过程可以被测试软件执行。测试软件可以是可在处理器上运行的脚本或计算机程序。通过仿真HID并自动化测试程序,关于键盘对设备驱动器软件进行测试所花费的时间可能会减少到只有大约15分钟。设备驱动器软件可以在与运行测试软件的处理器区别的不同处理器上运行。可替代地,单个处理器可以运行设备驱动器软件和测试软件两者。
图1示出根据各个实施例的实施用于对设备驱动器软件132进行测试的方法的测试装置100的示意图。方法可以被执行以对设备驱动器软件132关于一系列HID的设备兼容性进行测试。测试装置100可以包括测试设备110、控制处理器120和目标处理器130。测试设备110可以是被配置为可连接至任何处理器的计算机外围设备。例如,测试设备110可以是闪盘或类似于计算机鼠标的HID。测试设备110可以包括第一设备接口104,并且可以进一步包括第二设备接口106。控制处理器120和目标处理器130中的每一个可以是计算设备,例如个人计算机或笔记本电脑。控制处理器120可以包括测试软件122。控制处理器120可以被配置为运行测试软件122。目标处理器130可以包括设备驱动器软件132。目标处理器130可以被配置为运行设备驱动器软件132。
第一设备接口104可以被配置为将测试设备110通信联接至控制处理器120。换言之,测试设备110可以被配置为通过第一设备接口104从控制处理器120接收数据及传输数据至控制处理器120中的至少一个。第二设备接口106可以被配置为将测试设备110通信联接至目标处理器130。换言之,测试设备110可以被配置为通过第二设备接口106从目标处理器130接收数据及传输数据至目标处理器130中的至少一个。第一设备接口104和第二设备接口106中的至少一个可以包括数据总线连接器(诸如通用串行总线(USB)连接器)、IEEE1394连接器、并行连接器、串行连接器或PS/2连接器。数据总线连接器可以是插头,换言之,可以是公连接器。数据总线连接器可以被配置为与对应的插座联接,换言之,对应的母连接器。控制处理器120可以包括对应于第一设备接口104的插座。目标处理器130可以包括对应于第二设备接口106的插座。第一设备接口104和第二设备接口106中的每一个可以进一步包括针对要传输的打包数据和通过数据总线连接器接收的解释数据中的至少一个的通信协议。第一设备接口104和第二设备接口106中的至少一个还可以包括连接在相应数据总线连接器和测试设备110的控制器之间的数据载体。数据载体可以是诸如电缆或电绳的电线。数据载体还可以是无线收发器,例如红外线收发器、蓝牙收发器或Wi-Fi收发器。
测试者可以使用控制处理器120来控制测试设备驱动器软件132的过程。测试者可以将测试参数输入测试软件122以控制测试过程。例如,测试者可以在测试软件122中选择诸如Razer Deathstalker键盘的HID模型。测试软件122可以基于测试者的选择通过第一设备接口104将设备仿真命令提供至测试设备110。测试设备110可以响应于设备仿真命令来仿真Razer Deathstalker键盘。测试者还可以选择要在仿真HID上仿真的使用者输入。例如,测试可以选择测试软件122中的“空格键”。测试软件122可以提供指示“空格键”正在诸如Razer Deathstalker键盘的仿真HID上被按压的输入指令。测试软件122可以通过第一设备接口104将输入指令提供至测试设备110。
根据各个实施例,单个处理器可以被配置为执行控制处理器120和目标处理器130的功能。单个处理器可以包括设备驱动器软件132和测试软件122。测试设备110可以只包括可以是第一设备接口104及第二设备接口106中的一个的单个设备接口。测试设备110可以被配置为通过单个设备接口从单个处理器接收数据或传输数据至单个处理器。
根据各个实施例,控制处理器120可以是远程服务器,例如托管在计算云上的服务器。测试设备110可以被配置为通过第一设备接口104并进一步通过诸如因特网或局域网络的网络与控制处理器120通信。
图2示出根据各个实施例的测试设备110的示意图200。除了第一设备接口104和第二设备接口106,测试设备110可以进一步包括存储器210。存储器210可以被配置为存储数据。存储器210可以是诸如非易失性随机存取存储器、动态随机存取存储器或静态随机存取存储器或直接存取存储器的随机存取存储器。存储器210可以是可重复编程的。测试设备110可以进一步包括控制器212。控制器212可以被配置为控制第一设备接口104、第二设备接口106及存储器210中的至少一个。存储器210可以存储身份字段102。身份字段102可以是可重写数据字段。身份字段102可以被配置为存储设备识别码214。身份字段102可以被任何计算设备访问,例如目标处理器130。设备识别码214可以是任何计算设备、例如目标处理器130可读取的。在测试设备110被连接至目标处理器130时,目标处理器130可以访问身份字段102以读取设备识别码214。设备识别码214可以包括关于特定HID模型的信息。例如,设备识别码214可以包括特定计算机鼠标模型的产品标识符和供货商标识符(PID/VID)。目标处理器130可以基于设备识别码214识别测试设备110。测试设备110可以被目标处理器130基于设备识别码214识别为是特定计算机鼠标模型。测试设备110可以被配置为通过第一设备接口104从控制处理器120接收设备仿真命令。控制器212可以被配置为基于设备仿真命令中的信息更改身份字段102中的设备识别码214。存储器210可以进一步存储仿真程序108。仿真程序108可以被配置为在被目标处理器130执行时,仿真对应于设备识别码214的HID。仿真程序108可以包括由设备识别码214识别的HID的仿真216。例如,设备识别码214可以指示Razer Black Widow Chroma键盘的标识。仿真216可以是Razer Black Widow Chroma键盘的仿真。仿真程序108可以被配置为仿真识别的HID的行为,包括HID如何对使用者输入做出反应。存储器210可以存储更多仿真程序108。每个仿真程序108可以包括各个HID的仿真216。控制器212可以被配置为从多个仿真程序108中选出与设备识别码214匹配的一个仿真程序108。
图3示出使用根据各个实施例的测试设备的设备仿真过程300的一个循环的流程图。设备仿真过程300可以是用于对处理器的设备驱动器软件进行测试的方法的一部分。设备驱动器软件可以是设备驱动器软件132。设备驱动器软件132可以在目标处理器130上运行。测试设备可以是测试设备110。作为说明性的非限制性示例,流程图示出测试设备110是计算机鼠标。在该示例中,第一设备接口104和第二设备接口106包括USB连接器。设备仿真过程300可以包括多个子过程。在子过程330中,测试设备110可以通过第二设备接口106而连接至目标处理器130的插座。插座可以是可联接至USB连接器的USB端口。在子过程332中,测试设备110可以被通电。测试设备110可以通过第二设备接口106从目标处理器130接收电力。可替代地,测试设备110可以从诸如电池的电源接收电力。在子过程334中,目标处理器130可以识别测试设备110并由此加载测试设备110的默认固件。换言之,目标处理器130可以识别测试设备110的真实身份,并且然后基于识别的身份加载固件。目标处理器130可以包括可被配置为执行识别过程的操作系统。在这个示例中,测试设备110是计算机鼠标,并且因此目标处理器130加载计算机鼠标的固件。在子过程336中,测试软件122可以在控制处理器120上启动。在子过程338中,测试软件122可以配置测试设备110的身份字段102以反映新身份。新身份可以是HID。测试软件122可以通过将设备仿真命令提供至测试设备110来配置身份字段102。设备仿真命令可以包括HID的设备识别码214。在这个示例中,HID可以是键盘。测试软件122可以通过使用设备识别码214写入身份字段102来配置身份字段102。可替代地,测试软件122可以通过从存储在测试设备110的存储器210中的多个设备识别码214选择一个设备识别码214来配置身份字段102。设备识别码214可以包含关于HID的信息。测试软件122可以通过改写现有设备识别码来配置身份字段102,现有设备识别码还被称为默认设备识别码,即,包含关于测试设备110的真实身份的信息的设备识别码。在该示例中,测试软件122可以使用键盘的设备识别码改写计算机鼠标的设备识别码。可替代地,身份字段102可以与包含测试设备110的真实设备识别码的数据字段分开。
在子过程340中,目标处理器130可以检测重置,换言之,测试设备110的重启或再启动。目标处理器130可以加载与测试设备110的新身份对应的新设备固件。测试设备110可以被重启以模拟将新的外围设备插入目标处理器130的插座。在测试设备110被重启之后,测试设备110可以加载在子过程338下写入其身份字段102中的新设备识别码。在子过程342中,目标处理器130可以根据其新身份列举测试设备110,好像测试设备110新连接至目标处理器130一样。换言之,目标处理器130可以识别测试设备110的新身份。在子过程344中,测试者或测试软件122可以确定目标处理器130识别的新身份是否对应于设备仿真命令。如果新身份未被目标处理器130正确识别,则测试者或测试软件122可以继续进行子过程348,以拔掉测试设备110。测试者或测试软件122然后可以继续进行子过程350,以重置测试设备110的身份字段102,并且然后将测试设备110连接回至目标处理器130的插座,由此返回至子过程332。测试设备110可以包括可以被配置为将身份字段102重置为测试设备110的真实身份的重置按钮,换言之,将默认设备识别码加载到身份字段102中。如果新身份被目标处理器130识别,设备仿真过程300可以在子过程346处结束。设备仿真过程300可以从子过程338重复,以仿真更多的HID。
图4示出事件模拟过程400的流程图。事件模拟过程400可以是用于对处理器的设备驱动器软件进行测试的方法的一部分。在440中,测试设备110可以根据设备仿真过程300而配置。换言之,过程440可以包括整个设备仿真过程300。剩下的过程可以在设备仿真过程300完成之后执行。在442中,测试软件122可以将输入指令发送至测试设备110。输入指令可以指示事件,换言之,指示可以在HID上执行的输入。如果HID是计算机鼠标,则输入可以包括左击、右击或滚动轮的旋转。在键盘的示例中,输入可以包括按压键,例如空格键或“a”字母键,换言之击键。测试软件122还可以基于设备仿真命令而将仿真程序108加载到测试设备110中。可替代地,测试设备110可以已经存储多个仿真程序108,并且测试软件122可以基于设备仿真命令从多个仿真程序108中选择一个仿真程序108。加载的仿真程序108或选择的仿真程序108可以对应于由所配置的身份字段102限定的HID。在444中,测试设备110可以基于由测试软件122发送的输入指令来模拟输入。测试软件122可以开始仿真程序108。可替代地,一旦仿真程序108被加载或选择,测试设备110可以运行仿真程序108。仿真程序108可以基于输入指令仿真模拟输入。仿真程序108可以被配置为响应于输入来仿真HID的输出信号。本文中输出信号还可以被称为HID命令。在446中,测试设备110可以通过第二设备接口106将HID命令发送至目标处理器130。在448中,目标处理器130上的设备驱动器软件132可以从测试设备110接收输出信号。本文中设备驱动器软件132还可以被称为系统驱动器。在450中,设备驱动器软件132可以转换输出信号,并由此基于模拟的输入来启动在目标处理器130上运行的应用程序中的事件。应用程序可以是Windows应用程序或者可以是操作系统。在452中,测试者或测试软件122可以确定是否应该模拟更多的HID事件。如果是,则过程可以返回到子过程422,其中测试软件122将另一个输入指令发送至测试设备110。如果否,过程可以在454结束。
根据各个实施例,测试设备110可以通过标准协议、例如USB协议与计算设备通信。计算设备和测试设备之间的通信可以在主机到设备的方向上,换言之,计算设备可以将命令发送至测试设备110,但是反之不然。计算设备可以是控制处理器120及目标处理器130中的任一个。标准协议可以指出每个命令包括三个部分,即标识符、长度和有效载荷(payload)。标识符可以是识别命令的包报头(package header)。有效载荷可以是直接涉及包含在命令中的指令的内容。长度可以指示命令的长度。计算设备可以将设置USB描述符命令发送至测试设备110以设置USB描述符。设置USB描述符的有效载荷可以包括设备描述符、配置描述符、接口描述符、HID描述符、端点描述符和字符串描述符。设备描述符可以包括设备识别码。计算设备可以使用设置USB描述符命令将标准USB描述符字节数组发送至测试设备110。计算设备可以将设置报告描述符命令发送至测试设备110以设置报告描述符。报告描述符可以指定要转移到计算设备的数据量以及如何解释数据。设置报告描述符命令的有效载荷可以遵循USB HID标准并且可以由使用者定制。计算设备可以使用设置报告描述符命令将定制的HID报告格式字节数组发送至测试设备110。HID报告格式字节数组可以是非标准格式。HID报告格式字节数组可以是计算设备和测试设备110之间、即主机和客户端之间约定的规则。设置USB描述符命令和设置报告描述符命令中的每一个可以在子过程338下被发送。计算设备可以将重置设备命令发送至测试设备110以重置测试设备110,换言之,以在子过程340下重启测试设备110。重置设备命令的有效载荷可以是空的。在接收到重置设备命令时,测试设备110可以重启,并由此启动在子过程338下发送至测试设备110的新设备描述符。计算设备可以将设备事件模拟命令发送至测试设备110以触发测试设备110,从而模拟由测试软件122发送的HID事件。设备事件模拟命令可以包括指示接口身份的额外字段。接口身份可以包括关于测试设备110将从其接收模拟事件的接口的信息。设备事件模拟命令的有效载荷可以包括诸如键盘或鼠标的HID的仿真模拟。控制处理器120可以将设置USB描述符命令和设置报告描述符命令发送至测试设备110,以将设备识别码214从控制处理器120转移至测试设备110,例如在图3的过程338中。在新的设备识别码被写入身份字段102之后,控制处理器120可以将重置设备命令发送至测试设备110,例如在图3的子过程340中。控制处理器120可以将设备事件模拟命令发送至测试设备110,例如在图4的过程442中。设备事件模拟命令可以包括输入指令。
图5示出根据各个实施例的测试设备500的概念图。测试设备500可以相同于或至少基本上类似于测试设备110。测试设备500可以包括身份字段502、第一测试设备接口504、第二测试设备接口506和仿真程序508。身份字段502可以相同于或至少基本上类似于身份字段102。身份字段502可以被处理器的设备驱动器软件访问以识别测试设备500。第一测试设备接口504可以相同于或至少基本上类似于第一设备接口104。第一测试设备接口504可以被配置为接收设备仿真命令。身份字段502可以是可基于设备仿真命令而配置的。仿真程序508可以相同于或至少基本上类似于仿真程序108。仿真程序508可以包括HID根据配置的身份字段502的仿真。仿真相同等同于或至少基本上类似于仿真216。第一测试设备接口504可以被进一步配置为接收输入指令,该输入指令指示在仿真的HID上可执行的输入。仿真程序508可以被进一步配置为响应于在仿真的HID上执行的输入,来仿真可由仿真的HID产生的输出信号。第二测试设备接口506可以等同相同于或至少基本上类似于第二设备接口106。第二测试设备接口506可以被配置为将仿真的输出信号输出至设备驱动器软件,以将仿真的输出信号转换为在处理器上运行的应用程序中的事件。身份字段502、第一测试设备接口504、第二测试设备接口506和仿真程序508可以彼此联接,如线550所示,例如通信联接或电联接(例如使用线路或电缆),和/或机械联接。
换言之,测试设备500可以被配置为测试设备驱动器软件。设备驱动器软件可以在处理器上运行。测试设备500可以包括身份字段502。身份字段502可以对于设备驱动器软件是可访问的。设备驱动器软件可以基于身份字段502识别测试设备500。身份字段502可以是可配置的。测试设备500可以进一步包括可以被配置为接收设备仿真命令的第一测试设备接口504。身份字段502可以基于设备仿真命令而配置。配置的身份字段502可以将测试设备500指示为HID,例如,HID的特定模型。测试设备500可以进一步包括仿真程序508。仿真程序508可以包括HID根据配置的身份字段502的仿真。本文中对应于配置的身份字段502的HID还可以被称为仿真HID。仿真HID可以是键盘、鼠标、游戏杆及游戏控制器中的一个。第一测试设备接口504还可以被配置为接收输入指令。输入指令可以指示在仿真HID上可执行的输入。仿真程序508可以被配置为对输出信号进行仿真,仿真HID响应于在仿真HID上执行的输入而产生输出信号。换言之,仿真程序508可以响应于在HID上执行的输入来对仿真HID的行为进行仿真。测试设备500可以进一步包括第二测试设备接口506。第二测试设备接口506可以被配置为将仿真输出信号输出至设备驱动器软件。第一测试设备接口504及第二测试设备接口506中的至少一个可以是USB接口。
第一测试设备接口504可以是第二测试设备接口506。换言之,测试设备500可以只包括单个测试设备接口。设备驱动器软件可以将仿真输出信号转换为在处理器上运行的应用程序中的事件。
图6示出根据各个实施例的测试设备600的概念图。测试设备600可以类似于测试设备500,因为其也可以包括身份字段502、第一测试设备接口504、第二测试设备接口506和仿真程序508。此外,测试设备600可以进一步包括存储器610。存储器610可以被配置为存储多个仿真程序508。测试设备600还可以包括控制器612。控制器612可以被配置为从多个仿真程序508识别对应于配置的身份字段502的仿真程序508。换言之,控制器612可以被配置为确定多个仿真程序508中的哪个仿真程序与配置的身份字段502匹配。身份字段502、第一测试设备接口504、第二测试设备接口506、仿真程序508、存储器610和控制器612可以彼此联接,如线660所示,例如通信联接或电联接(例如使用线路或电缆),和/或机械联接。
图7示出根据各个实施例的用于对处理器的设备驱动器软件进行测试的方法的流程图700。在770中,测试设备的身份可以基于通过第一测试设备接口接收的设备仿真命令而配置。设备驱动器软件可以访问身份字段,以识别测试设备。配置身份字段的过程可以包括以下中的一个:将设备识别码写入身份字段或从存储在测试设备中的多个设备识别码选择一个设备识别码。设备识别码可以包括产品标识符和供货商标识符。设备仿真命令可以包括设备识别码。在772中,测试设备可以运行仿真程序。仿真程序可以包括HID根据配置的身份字段的仿真。运行仿真程序的过程可以包括以下中的至少一个:基于设备仿真命令将仿真程序加载到测试设备中或基于设备仿真命令从存储在测试设备上的多个仿真程序中选择一个仿真程序。在774中,输入指令可以经由第一测试设备接口接收在测试设备中。输入指令可以指示在仿真HID上可执行的输入。在776中,输出信号可以被仿真。仿真HID可以响应于在仿真HID上执行的输入来产生输出信号。在778中,仿真输出信号可以经由第二测试设备接口被输出至处理器的设备驱动器软件,以将仿真输出信号转换为应用程序中的事件。处理器可以运行应用程序。
图8示出根据各个实施例的用于对处理器的设备驱动器软件进行测试的方法的流程图800。方法可以类似于流程图700中示出的方法,但是可以进一步包括880,其中查询可以被处理器经由第二测试设备接口接收以访问身份字段。方法可以进一步包括882,其中身份字段的数据可以经由
第二测试设备接口响应于查询而发送至处理器。方法可以进一步包括将固件加载到处理器上。固件可以与配置的身份字段中的数据关联。
图9示出在处理器执行存储在非瞬时计算机可读介质上的指令时可以由处理器执行的方法的流程图900。方法可以包括多个过程。在990中,测试设备的身份字段可以通过经由第一测试设备接口将设备仿真命令发送至测试设备来配置。设备驱动器软件可以读取身份字段,以识别测试设备。在992,仿真程序可以在测试设备上开始。仿真程序可以包括HID根据配置的身份字段的仿真。在994中,输入指令可以经由第一测试设备接口发送至测试设备。输入指令可以指示在仿真HID上可执行的输入。仿真程序可以被进一步配置为响应于在仿真的HID上执行的输入仿真由仿真HID产生的输出信号。第二测试设备接口可以被配置为将仿真输出信号输出至另外的处理器的设备驱动器软件,以将仿真输出信号转换为应用程序中的事件。另外的处理器可以运行应用程序。
根据各个实施例,测试设备110或测试设备500可以被配置为模拟HID上的任何使用者输入,例如按压键盘上的键或在计算机上的右击。测试设备可以联接至运行应用程序的计算设备。测试软件122可以将输入指令提供至测试设备,并且测试设备可以基于输入指令来模拟用户输入。测试设备可以基于模拟的用户输入来产生输出信号。计算设备上的应用程序可以基于输入信号来接收事件,好像使用者正提供HID上的使用者输入一样。使用者输入的模拟可以由HID中的仿真程序执行。当输出信号通过设备接口由计算设备从物理硬件设备接收时,使用者输入的模拟可以是逼真的,并且可以绕开病毒检测软件和抗病毒软件。用户可以使用测试软件122来预定义用户输入。
以下示例属于进一步实施例。
示例1是用于对处理器的设备驱动器软件进行测试的方法,该方法包括:基于通过第一测试设备接口接收的设备仿真命令来配置测试设备的身份字段,其中身份字段可被设备驱动器软件访问以识别测试设备;在测试设备上运行仿真程序,仿真程序包括根据所配置的身份字段对人工输入设备的仿真;经由第一测试设备接口将输入指令接收在测试设备中,输入指令指示在仿真人工输入设备上可执行的输入;仿真程序,响应于在仿真人工输入设备上执行的输入来仿真可由仿真人工输入设备产生的输出信号;经由第二测试设备接口将仿真的输出信号输出至处理器的设备驱动器软件,以将仿真的输出信号转换为在处理器上运行的应用程序中的事件。
在示例2中,示例1的主题(subject-matter)可以可选地包括:第二测试设备接口是第一测试设备接口。
在示例3,示例1或示例2的主题可以可选地包括:配置身份字段包括以下中的一个:将设备识别码写入身份字段或从存储在测试设备中的多个设备识别码选择一个设备识别码。
在示例4中,示例3中的主题可以可选地包括:设备识别码包括产品标识符和供货商标识符。
在示例5中,示例3或示例4中的主题可以可选地包括:设备仿真命令包括设备识别码。
在示例6中,示例1至5中的任一个的主题可以可选地包括:运行仿真程序包括以下中的至少一个:基于设备仿真命令将仿真程序加载到测试设备或基于设备仿真命令从存储在测试设备上的多个仿真程序中选择一个仿真程序。
在示例7中,示例1至6中的任一个的主题可以可选地包括:经由第二测试设备接口从处理器接收查询以访问身份字段;并且响应于查询经由第二测试设备接口将身份字段的数据发送至处理器。
在示例8中,示例7的主题可以可选地包括:将固件加载至处理器上,固件与配置的身份字段中的数据相关联。
示例9是测试设备,该测试设备包括:身份字段,可被处理器的设备驱动器软件访问以识别测试设备;第一测试设备接口,被配置为接收设备仿真命令,其中身份字段可基于设备仿真命令来配置;仿真程序,包括根据所配置的身份字段对人工输入设备的仿真;其中第一测试设备接口进一步被配置为接收输入指令,该输入指令指示在仿真人工输入设备上可执行的输入;其中仿真程序进一步被配置为响应于正在仿真人工输入设备上执行的输入,来对可由仿真人工输入设备产生的输出信号进行仿真;第二测试设备接口,被配置为将所仿真的输出信号输出至设备驱动器软件,以将所仿真的输出信号转换为在处理器上运行的应用程序中的事件。
在示例10中,示例9的主题可以可选地包括:第一测试设备接口及第二测试设备接口中的至少一个是通用串行总线接口。
在示例11中,示例9或示例10的主题可以可选地包括:仿真的人工输入设备是键盘、鼠标、游戏杆或游戏控制器。
在示例12中,示例9至示例11中任一个的主题可以可选地包括:存储器,被配置为存储多个仿真程序;以及控制器,被配置为从多个仿真程序识别与所配置的身份字段对应的仿真程序。
示例13是其中存储有指令的非瞬时计算机可读介质,在该指令被处理器执行时促使处理器执行用于对设备驱动器软件进行测试的方法,该方法包括:通过经由第一测试设备接口将设备仿真命令发送至测试设备来配置测试设备的身份字段,其中身份字段可被设备驱动器软件读取以识别测试设备;测试设备上开始仿真程序,仿真程序包括根据所配置的身份字段对人工输入设备的仿真;经由第一测试设备接口将输入指令发送至测试设备,输入指令指示在仿真的人工输入设备上可执行的输入;其中仿真程序被配置为响应于正在仿真的人工输入设备上执行的输入,来对可由仿真的人工输入设备产生的输出信号进行仿真;并且其中第二测试设备接口被配置为将仿真的输出信号输出至另一处理器的设备驱动器软件,以将仿真的输出信号转换为在另一处理器上运行的应用程序中的事件。
尽管已经结合具体实施例特定示出并描述了本发明的实施例,但是所属技术领域中具有通常知识者会理解,可以在不偏离所附权利要求书所限定的本发明的精神和范围的情况下,可以进行形式上和细节上的各种改变。因此,本发明的范围被所附权利要求书指示,并且在权利要求书的等价物的意思和范围内的所有改变因此而被包含在内。应当理解,在相关附图中使用的共同标号是指用于相似或相同目的的组件。

Claims (13)

1.一种用于对处理器的设备驱动器软件进行测试的方法,所述方法包括:
基于通过第一测试设备接口接收的设备仿真命令来配置测试设备的身份字段,其中所述身份字段能被所述设备驱动器软件访问以识别所述测试设备;
在所述测试设备上运行仿真程序,所述仿真程序包括根据所配置的身份字段对人工输入设备的仿真;
经由所述第一测试设备接口将输入指令接收在所述测试设备中,所述输入指令指示在所仿真的人工输入设备上可执行的输入;
所述仿真程序响应于正在所仿真的人工输入设备上执行的所述输入,对能由所仿真的人工输入设备产生的输出信号进行仿真;以及
经由第二测试设备接口将所仿真的输出信号输出至所述处理器的所述设备驱动器软件,以将所仿真的输出信号转换为在所述处理器上运行的应用程序中的事件。
2.根据权利要求1所述的方法,其中所述第二测试设备接口是所述第一测试设备接口。
3.根据权利要求1所述的方法,其中配置所述身份字段包括以下中的一个:将设备识别码写入所述身份字段,或从存储在所述测试设备中的多个设备识别码选择一个设备识别码。
4.根据权利要求3所述的方法,其中所述设备识别码包括产品标识符和供货商标识符。
5.根据权利要求3所述的方法,其中所述设备仿真命令包括所述设备识别码。
6.根据权利要求1所述的方法,其中运行所述仿真程序包括以下中的至少一个:基于所述设备仿真命令将所述仿真程序加载至所述测试设备中或基于所述设备仿真命令从存储在所述测试设备上的多个仿真程序中选择一个仿真程序。
7.根据权利要求1所述的方法,其进一步包括:
经由所述第二测试设备接口从所述处理器接收查询以访问所述身份字段;以及
响应于所述查询经由所述第二测试设备接口将所述身份字段的数据发送至所述处理器。
8.根据权利要求7所述的方法,其进一步包括:
将固件加载到所述处理器上,所述固件与所配置的身份字段中的所述数据相关联。
9.一种测试设备,包括:
身份字段,能被处理器的设备驱动器软件访问以识别所述测试设备;
第一测试设备接口,被配置为接收设备仿真命令,其中所述身份字段能基于所述设备仿真命令被配置;
仿真程序,包括根据所配置的身份字段对人工输入设备的仿真;
其中所述第一测试设备接口被进一步配置为接收输入指令,所述输入指令指示在所仿真的人工输入设备上可执行的输入;
其中所述仿真程序被进一步配置为:响应于正在所仿真的人工输入设备上执行的所述输入,对能由所仿真的人工输入设备产生的输出信号进行仿真;
第二测试设备接口,被配置为将所仿真的输出信号输出至所述设备驱动器软件,以将所仿真的输出信号转换为在所述处理器上运行的应用程序中的事件。
10.根据权利要求9所述的测试设备,其中所述第一测试设备接口及所述第二测试设备接口中的至少一个是通用串行总线接口。
11.根据权利要求9所述的测试设备,其中所仿真的人工输入设备是键盘、鼠标、游戏杆及游戏控制器中的一个。
12.根据权利要求9所述的测试设备,进一步包括:
存储器,被配置为存储多个仿真程序;以及
控制器,被配置为从所述多个仿真程序中识别与所配置的身份字段对应的所述仿真程序。
13.一种非瞬时计算机可读介质,所述介质中存储有指令,所述指令在被处理器执行时使所述处理器执行用于对设备驱动器软件进行测试的方法,所述方法包括:
通过经由第一测试设备接口将设备仿真命令发送至测试设备来配置所述测试设备的身份字段,所述身份字段能被所述设备驱动器软件读取以识别所述测试设备;
在所述测试设备上开始仿真程序,所述仿真程序包括根据所配置的身份字段对人工输入设备的仿真;以及
经由所述第一测试设备接口将输入指令发送至所述测试设备,所述输入指令指示在所仿真的人工输入设备上可执行的输入;
其中所述仿真程序被配置为响应于正在所仿真的人工输入设备上执行的所述输入,对能由所仿真的人工输入设备产生的输出信号进行仿真;且
其中第二测试设备接口被配置为将所仿真的输出信号输出至另一处理器的所述设备驱动器软件,以将所仿真的输出信号转换为在所述另一处理器上运行的应用程序中的事件。
CN201780089873.6A 2017-04-21 2017-04-21 测试设备及用于对设备驱动器软件进行测试的方法 Active CN110537171B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/SG2017/050224 WO2018194512A1 (en) 2017-04-21 2017-04-21 Testing devices and methods for testing a device driver software

Publications (2)

Publication Number Publication Date
CN110537171A true CN110537171A (zh) 2019-12-03
CN110537171B CN110537171B (zh) 2023-04-14

Family

ID=63856284

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780089873.6A Active CN110537171B (zh) 2017-04-21 2017-04-21 测试设备及用于对设备驱动器软件进行测试的方法

Country Status (7)

Country Link
US (1) US11226891B2 (zh)
EP (1) EP3612940A4 (zh)
CN (1) CN110537171B (zh)
AU (1) AU2017410256B2 (zh)
SG (1) SG11201909604SA (zh)
TW (1) TWI766977B (zh)
WO (1) WO2018194512A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113485755A (zh) * 2021-06-30 2021-10-08 深圳市科力锐科技有限公司 设备驱动程序验证方法、装置、设备及存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113282490A (zh) * 2021-05-17 2021-08-20 深圳Tcl新技术有限公司 智能门锁测试方法及电子设备

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050015702A1 (en) * 2003-05-08 2005-01-20 Microsoft Corporation System and method for testing, simulating, and controlling computer software and hardware
CN101094118A (zh) * 2007-07-12 2007-12-26 中国工商银行股份有限公司 一种终端外部设备的测试系统及方法
US20070299650A1 (en) * 2006-06-23 2007-12-27 Tamayo Paolo A Method to change USB device descriptors from host to emulate a new device
US7383547B1 (en) * 2004-12-03 2008-06-03 Lecroy Corporation Apparatus and technique for device emulation
CN102163056A (zh) * 2010-02-23 2011-08-24 上海奉天电子有限公司 汽车空调控制器测试仿真仪
US20130030786A1 (en) * 2011-07-29 2013-01-31 Irwan Halim Emulating input/output components
CN102929683A (zh) * 2012-08-08 2013-02-13 韦创科技有限公司 输入设备的全自动化仿真系统
JP2014059805A (ja) * 2012-09-19 2014-04-03 Denso Corp モデルベースの制御装置用のテストケース生成装置およびテストケース生成方法
CN105940384A (zh) * 2014-03-14 2016-09-14 谷歌公司 外围设备的通用串行总线仿真
CN106021004A (zh) * 2016-05-10 2016-10-12 上海传英信息技术有限公司 用户行为模拟单元、测试系统、以及测试方法
CN106066809A (zh) * 2016-06-20 2016-11-02 深圳市普中科技有限公司 一种基于arm内核51仿真器的仿真调试方法及系统

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6343260B1 (en) 1999-01-19 2002-01-29 Sun Microsystems, Inc. Universal serial bus test system
US6496891B1 (en) 1999-12-30 2002-12-17 Intel Corporation Device and method to emulate interrupts to provide PS/2 mouse and keyboard functionality for a USB mouse keyboard
US6636929B1 (en) 2000-04-06 2003-10-21 Hewlett-Packard Development Company, L.P. USB virtual devices
US7162407B2 (en) 2001-12-03 2007-01-09 Ms1-Microsoft Corporation Testing a host's support for peripheral devices
US7010782B2 (en) * 2002-04-04 2006-03-07 Sapphire Infotech, Inc. Interactive automatic-test GUI for testing devices and equipment using shell-level, CLI, and SNMP commands
US7082598B1 (en) * 2002-07-17 2006-07-25 Vmware, Inc. Dynamic driver substitution
US20060069543A1 (en) 2004-09-24 2006-03-30 Imtiaz Sajwani Emulated universal serial bus input devices
US7477950B2 (en) * 2004-09-28 2009-01-13 Dymocom, Inc. Method and system for controlling a network of water appliances
US8401588B2 (en) 2004-10-28 2013-03-19 Broadcom Corporation Dual mode human interface device
GB0600207D0 (en) 2006-01-05 2006-02-15 Bishop Durrell G B Apparatus for direct automated access to a task or content
US20080021693A1 (en) * 2006-07-21 2008-01-24 Microsoft Corporation Storage Device Simulator
US7840948B2 (en) * 2006-11-21 2010-11-23 International Business Machines Corporation Automation of keyboard accessibility testing
GB0624582D0 (en) 2006-12-08 2007-01-17 Visible Computing Ltd USB autorun devices
GB2446202A (en) * 2007-01-30 2008-08-06 Wolfson Microelectronics Plc Monitoring and controlling a device under test
US20100033425A1 (en) 2008-08-05 2010-02-11 Judith Shasek Computer peripheral device interface for simulating mouse, keyboard, or game controller action and method of use
US8533531B2 (en) * 2010-06-10 2013-09-10 Microsoft Corporation Multimedia hardware emulation for application testing
US9239776B2 (en) * 2012-02-09 2016-01-19 Vmware, Inc. Systems and methods to simulate storage
US9658933B2 (en) * 2012-07-02 2017-05-23 Salesforce.Com, Inc. Automatically modifying a test for a program on multiple electronic devices
US9009359B2 (en) 2013-03-29 2015-04-14 International Business Machines Corporation Emulating multiple universal serial bus (USB) keys so as to efficiently configure different types of hardware
CN104679627B (zh) * 2013-12-02 2019-02-12 腾讯科技(深圳)有限公司 测试方法及装置
US9811480B2 (en) * 2014-03-14 2017-11-07 Google Inc. Universal serial bus emulation of peripheral devices
WO2016057315A1 (en) * 2014-10-05 2016-04-14 Amazon Technologies, Inc. Emulated endpoint configuration
US20160283353A1 (en) 2015-03-23 2016-09-29 Tryon Solutions, Inc. Automated software testing
US10974144B2 (en) * 2016-09-01 2021-04-13 Razer (Asia-Pacific) Pte. Ltd. Methods for emulating a virtual controller device, emulators, and computer-readable media
US10621351B2 (en) * 2016-11-01 2020-04-14 Raptor Engineering, LLC. Systems and methods for tamper-resistant verification of firmware with a trusted platform module

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050015702A1 (en) * 2003-05-08 2005-01-20 Microsoft Corporation System and method for testing, simulating, and controlling computer software and hardware
US7383547B1 (en) * 2004-12-03 2008-06-03 Lecroy Corporation Apparatus and technique for device emulation
US20070299650A1 (en) * 2006-06-23 2007-12-27 Tamayo Paolo A Method to change USB device descriptors from host to emulate a new device
CN101094118A (zh) * 2007-07-12 2007-12-26 中国工商银行股份有限公司 一种终端外部设备的测试系统及方法
CN102163056A (zh) * 2010-02-23 2011-08-24 上海奉天电子有限公司 汽车空调控制器测试仿真仪
US20130030786A1 (en) * 2011-07-29 2013-01-31 Irwan Halim Emulating input/output components
CN102929683A (zh) * 2012-08-08 2013-02-13 韦创科技有限公司 输入设备的全自动化仿真系统
JP2014059805A (ja) * 2012-09-19 2014-04-03 Denso Corp モデルベースの制御装置用のテストケース生成装置およびテストケース生成方法
CN105940384A (zh) * 2014-03-14 2016-09-14 谷歌公司 外围设备的通用串行总线仿真
CN106021004A (zh) * 2016-05-10 2016-10-12 上海传英信息技术有限公司 用户行为模拟单元、测试系统、以及测试方法
CN106066809A (zh) * 2016-06-20 2016-11-02 深圳市普中科技有限公司 一种基于arm内核51仿真器的仿真调试方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
VICTOR HUGO ORTIZ MURO: "How to obtain realistic inputs to protective devices from fault simulations" *
裘杰: "利用Android手机仿真PC鼠标的设计与实现" *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113485755A (zh) * 2021-06-30 2021-10-08 深圳市科力锐科技有限公司 设备驱动程序验证方法、装置、设备及存储介质
CN113485755B (zh) * 2021-06-30 2023-08-18 深圳市科力锐科技有限公司 设备驱动程序验证方法、装置、设备及存储介质

Also Published As

Publication number Publication date
EP3612940A4 (en) 2020-04-29
SG11201909604SA (en) 2019-11-28
US20200065236A1 (en) 2020-02-27
TW201842446A (zh) 2018-12-01
AU2017410256A1 (en) 2019-11-21
EP3612940A1 (en) 2020-02-26
WO2018194512A1 (en) 2018-10-25
US11226891B2 (en) 2022-01-18
CN110537171B (zh) 2023-04-14
TWI766977B (zh) 2022-06-11
AU2017410256B2 (en) 2022-10-13

Similar Documents

Publication Publication Date Title
CN105143895B (zh) 从交互式图形用户界面中自动生成测试类预编译头
CN104268079B (zh) 一种pos应用程序测试的方法及系统
CN107491061A (zh) 一种商用车obd诊断设备的网络自动化测试系统及其方法
CN109472061B (zh) 一种可重用的仿真验证平台及仿真验证方法
US10809981B2 (en) Code generation and simulation for graphical programming
CN103812948A (zh) 智能手机操作系统云端交互定制系统与方法
WO2014035463A1 (en) System and methods for generating and managing a virtual device
CN113704043A (zh) 芯片功能验证方法、装置、可读存储介质及电子设备
CN108563579A (zh) 白盒测试方法、装置、系统及存储介质
CN108347356A (zh) 一种多协议单元测试方法、装置、电子设备和存储介质
CN115184764A (zh) 一种芯片测试方法、装置、电子设备及存储介质
CN114444422A (zh) 芯片验证系统、方法及存储介质
CN110537171A (zh) 测试设备及用于对设备驱动器软件进行测试的方法
CN108196861A (zh) 一种数据升级方法及其诊断设备
CN111181781A (zh) 一种Vdbench的测试配置方法、系统、终端及存储介质
CN105940384A (zh) 外围设备的通用串行总线仿真
CN113364747B (zh) 调试方法、装置、系统及数据集生成方法、装置
CN111901155B (zh) 一种物联网调试方法、装置、系统及存储介质
US11017380B1 (en) Systems and methods for EMV terminal device testing using EMV card emulation
CN106021004B (zh) 用户行为模拟单元、测试系统、以及测试方法
CN112305936B (zh) 一种卫星姿轨控半物理仿真测试方法、系统、装置及存储介质
CN111708711B (zh) Ab测试方法及装置、存储介质及电子设备
CN115935876A (zh) 一种fpga电路模拟仿真的方法及装置
Karmore et al. Development of software interface for testing of embedded system
CN114428701A (zh) 一种调试方法、装置、设备及计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant