TW201842446A - 測試設備、非暫態電腦可讀介質及用於對設備驅動器軟體進行測試的方法 - Google Patents

測試設備、非暫態電腦可讀介質及用於對設備驅動器軟體進行測試的方法 Download PDF

Info

Publication number
TW201842446A
TW201842446A TW107111916A TW107111916A TW201842446A TW 201842446 A TW201842446 A TW 201842446A TW 107111916 A TW107111916 A TW 107111916A TW 107111916 A TW107111916 A TW 107111916A TW 201842446 A TW201842446 A TW 201842446A
Authority
TW
Taiwan
Prior art keywords
test
processor
driver software
simulation
interface
Prior art date
Application number
TW107111916A
Other languages
English (en)
Other versions
TWI766977B (zh
Inventor
韓旭
楊文良
Original Assignee
新加坡商雷蛇(亞太)私人有限公司
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 新加坡商雷蛇(亞太)私人有限公司 filed Critical 新加坡商雷蛇(亞太)私人有限公司
Publication of TW201842446A publication Critical patent/TW201842446A/zh
Application granted granted Critical
Publication of TWI766977B publication Critical patent/TWI766977B/zh

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),其中身份字段可被設備驅動器軟體存取以識別測試設備;在所述測試設備上運行仿真程式,所述仿真程式包括根據所配置的身份字段對人工輸入設備的仿真;經由所述第一測試設備介面將輸入指令接收在所述測試設備中,所述輸入指令能指出在所仿真的人工輸入設備上執行的輸入;所述仿真程式響應於在所仿真的人工輸入設備上執行的輸入,來對可由所仿真的人工輸入設備產生的輸出訊號進行仿真;經由第二測試設備介面將所仿真的輸出訊號輸出至所述處理器的所述設備驅動器軟體,以將所仿真的輸出訊號轉換為在所述處理器上運行的應用程式中的事件。
根據各個實施例,可以提供一種測試設備,該測試設備包括:身份字段,可被處理器的設備驅動器軟體存取以用於識別測試設備;第一測試設備介面,被配置為接收設備仿真命令,其中所述身份字段可基於所述設備仿真命令來配置;仿真程式,包括根據所配置的身份字段對人工輸入設備的仿真;其中所述第一測試設備介面進一步被配置為接收能指出在所仿真的人工輸入設備上執行的輸入指令;其中所述仿真程式進一步被配置為響應於正在所仿真的人工輸入設備上執行的輸入,對可由所仿真的人工輸入設備產生的輸出訊號進行仿真;第二測試設備介面,被配置為將所仿真的輸出訊號輸出至設備驅動器軟體,以將所仿真的輸出訊號轉換為在所述處理器上運行的應用程式中的事件。
根據各個實施例,可以提供其上儲存有指令的非暫態電腦可讀介質,該指令在被處理器執行時促使所述處理器執 行用於對設備驅動器軟體進行測試的方法,所述方法包括:通過由第一測試設備介面將設備仿真命令發送至測試設備來配置測試設備的身份字段,其中所述身份字段可被所述設備驅動器軟體讀取以識別所述測試設備;在所述測試設備上開始仿真程式,所述仿真程式包括根據所配置的身份字段對人工輸入設備的仿真;將輸入指令經由所述第一測試介面發送至所述測試設備,輸入指令能指出在所仿真的人工輸入設備上執行的輸入;其中所述仿真程式被配置為響應於正在所仿真的人工輸入設備上執行的輸入,對可由所仿真的人工輸入設備產生的輸出訊號進行仿真;並且其中第二測試設備介面被配置為將所仿真的輸出訊號輸出至另一處理器的設備驅動器軟體,以將所仿真的輸出訊號轉換為在另一個處理器上運行的應用程式中的事件。
100‧‧‧測試裝置
110‧‧‧測試設備
102‧‧‧身份字段
104‧‧‧第一設備介面
106‧‧‧第二設備介面
108‧‧‧仿真程式
110‧‧‧測試設備
120‧‧‧控制處理器
122‧‧‧測試軟體
130‧‧‧目標處理器
132‧‧‧設備驅動器軟體
200‧‧‧示意圖
210‧‧‧記憶體
212‧‧‧控制器
214‧‧‧設備識別碼
216‧‧‧仿真
300‧‧‧設備仿真過程
330、332‧‧‧子過程
334、336‧‧‧子過程
338、340‧‧‧子過程
342、344‧‧‧子過程
346‧‧‧子過程
400‧‧‧事件模擬過程
440、442‧‧‧過程
444、446‧‧‧過程
448、450‧‧‧過程
452、454‧‧‧過程
500‧‧‧測試設備
502‧‧‧身份字段
504‧‧‧第一測試設備介面
506‧‧‧第二測試設備介面
508‧‧‧仿真程式
550‧‧‧線
600‧‧‧測試設備
610‧‧‧記憶體
612‧‧‧控制器
660‧‧‧線
700‧‧‧流程圖
770、772‧‧‧過程
774、776‧‧‧過程
778‧‧‧過程
800‧‧‧流程圖
880、882‧‧‧過程
900‧‧‧流程圖
990、992‧‧‧過程
994‧‧‧過程
在圖式中,在全部不同視圖中,相同參考符號通常指相同部分。圖式未必按比例繪製,相反,重點通常是關注對本發明原理的例示。在以下描述中,各個實施例參考所附圖式來描述,其中:圖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)連接器、IEEE 1394連接器、並行連接器、序列連接器或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的過程中。在新的設備識別碼被寫入身份字段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. 一種非暫態電腦可讀介質,前述介質中儲存有指令,前述指令在被處理器執行時促使前述處理器執行用於對設備驅動器軟體進行測試的方法,前述方法包括以下步驟:藉由由第一測試設備介面將設備仿真命令發送至測試設備來配置前述測試設備的身份字段,前述身份字段能被前述設備驅動器軟體讀取以識別前述測試設備;在前述測試設備上開始仿真程式,前述仿真程式包括根據所配置的前述身份字段對人工輸入設備的仿真;以及經由前述第一測試設備介面將輸入指令發送至前述測試設 備,前述輸入指令能指出在所仿真的前述人工輸入設備上執行的輸入;其中前述仿真程式被配置為響應於正在所仿真的前述人工輸入設備上執行的前述輸入,對能由所仿真的前述人工輸入設備產生的輸出訊號進行仿真;且其中第二測試設備介面被配置為將所仿真的前述輸出訊號輸出至另一處理器的前述設備驅動器軟體,以將所仿真的前述輸出訊號轉換為在前述另一處理器上運行的應用程式中的事件。
TW107111916A 2017-04-21 2018-04-03 測試設備、非暫態電腦可讀介質及用於對設備驅動器軟體進行測試的方法 TWI766977B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
??PCT/SG2017/050224 2017-04-21
WOPCT/SG2017/050224 2017-04-21
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
TW201842446A true TW201842446A (zh) 2018-12-01
TWI766977B TWI766977B (zh) 2022-06-11

Family

ID=63856284

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107111916A TWI766977B (zh) 2017-04-21 2018-04-03 測試設備、非暫態電腦可讀介質及用於對設備驅動器軟體進行測試的方法

Country Status (7)

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

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113821429A (zh) * 2020-06-19 2021-12-21 比亚迪股份有限公司 车载软件开发仿真系统、方法
CN113282490A (zh) * 2021-05-17 2021-08-20 深圳Tcl新技术有限公司 智能门锁测试方法及电子设备
CN113485755B (zh) * 2021-06-30 2023-08-18 深圳市科力锐科技有限公司 设备驱动程序验证方法、装置、设备及存储介质

Family Cites Families (36)

* 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
US7181382B2 (en) * 2003-05-08 2007-02-20 Microsoft Corporation System and method for testing, simulating, and controlling computer software and hardware
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
US7383547B1 (en) * 2004-12-03 2008-06-03 Lecroy Corporation Apparatus and technique for device emulation
GB0600207D0 (en) 2006-01-05 2006-02-15 Bishop Durrell G B Apparatus for direct automated access to a task or content
US7752029B2 (en) 2006-06-23 2010-07-06 Kyocera Mita Corporation Method to change USB device descriptors from host to emulate a new device
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
CN101094118B (zh) * 2007-07-12 2010-11-24 中国工商银行股份有限公司 一种终端外部设备的测试系统
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
CN102163056B (zh) * 2010-02-23 2013-07-03 上海奉天电子有限公司 汽车空调控制器测试仿真仪
US8533531B2 (en) * 2010-06-10 2013-09-10 Microsoft Corporation Multimedia hardware emulation for application testing
US20130030786A1 (en) * 2011-07-29 2013-01-31 Irwan Halim Emulating input/output components
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
CN102929683B (zh) * 2012-08-08 2015-12-09 韦创科技有限公司 输入设备的全自动化仿真系统
JP5811978B2 (ja) * 2012-09-19 2015-11-11 株式会社デンソー モデルベースの制御装置用のテストケース生成装置およびテストケース生成方法
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 腾讯科技(深圳)有限公司 测试方法及装置
KR101874416B1 (ko) * 2014-03-14 2018-07-04 구글 엘엘씨 주변 디바이스들의 유니버셜 시리얼 버스 에뮬레이션
US9811480B2 (en) * 2014-03-14 2017-11-07 Google Inc. Universal serial bus emulation of peripheral devices
EP3204862B1 (en) * 2014-10-05 2019-09-18 Amazon Technologies Inc. Emulated endpoint configuration
US20160283353A1 (en) 2015-03-23 2016-09-29 Tryon Solutions, Inc. Automated software testing
CN106021004B (zh) * 2016-05-10 2019-09-17 深圳市泰衡诺科技有限公司 用户行为模拟单元、测试系统、以及测试方法
CN106066809B (zh) * 2016-06-20 2019-06-18 深圳市普中科技有限公司 一种基于arm内核51仿真器的仿真调试方法及系统
AU2016422147B2 (en) * 2016-09-01 2022-06-30 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

Also Published As

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

Similar Documents

Publication Publication Date Title
US8966438B2 (en) System and methods for end-users to graphically program and manage computers and devices
TWI766977B (zh) 測試設備、非暫態電腦可讀介質及用於對設備驅動器軟體進行測試的方法
WO2016029792A1 (zh) 硬件设备的调试方法、装置和系统
CN104077204B (zh) 可重构的8位rsic单片机仿真器
CN107678949B (zh) 实现嵌入式设备不同通信方式的自动化测试方法
CN107870271A (zh) 自动化测试方法及装置
WO2012027983A1 (zh) 一种面向android及其衍生系统的软件操作录制回放方法
TWI306560B (en) Method and system for booting a client end computer system through a network
CN107656882A (zh) 一种通用串行总线控制器验证方法、系统及设备
KR20150128256A (ko) 실제 스마트기기의 디바이스에서 발생하는 이벤트에 따라 응용프로그램을 실행하는 가상 안드로이드 장치를 구비한 서버 시스템
CN108293199A (zh) 提供事件管理服务的电子装置和方法
CN103838591A (zh) 一种基于串行总线的多单片机升级方法及装置
Kurniawan Getting Started with Windows 10 IoT Core for Raspberry Pi 3
Hillar Internet of things with python
TWI758315B (zh) 用於模擬虛擬控制器裝置之方法、模擬器及電腦可讀媒體
WO2015176366A1 (zh) 通用串行总线的驱动方法、计算机及复合设备
CN116502208B (zh) 一种跨设备兼容的引导方法、装置和系统
CN110147328B (zh) 一种数据库性能测试方法、系统、电子设备和存储介质
US10223296B2 (en) Method of transferring configuration information for a connected object
KR100775210B1 (ko) 범용 시리얼 버스 통신 장치 프로그램 업데이트 방법
WO2018040429A1 (zh) Usb设备模拟装置及方法
CN108829407B (zh) 电子设备的系统引导方法、电子设备及存储介质
TWI790615B (zh) 虛擬機的裝置直通方法及其伺服器
KR100682667B1 (ko) 컴퓨터 윈도우 기반의 디지털 텔레비젼 수신기 시뮬레이션시스템
CN113703811B (zh) 一种dsp远程下载固件的方法、装置、设备及存储介质