用于自動測試固件的方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明的實施方式提供一種用于自動測試固件的方法和系統(tǒng)。方法包括:確定所述固件所處的上下文環(huán)境;確定所述固件所處的硬件環(huán)境;至少部分地基于所述上下文環(huán)境和所述硬件環(huán)境,測試所述固件。通過該方法,可以在無法事先預知被測系統(tǒng)的實際軟硬件配置的情況下自動實現(xiàn)對該固件的自動測試,節(jié)約了人力資源,并提高了測試效率。
【專利說明】
用于自動測試固件的方法和系統(tǒng)
技術領域
[0001]本發(fā)明的實施方式涉及固件測試領域,更具體地,涉及一種用于測試固件的方法和系統(tǒng)。
【背景技術】
[0002]隨著計算機軟件技術的高速發(fā)展,固件的開發(fā)和測試也成為研究的熱點之一。術語“固件”一般而言是指存儲于可擦除可編程只讀存儲器(EPROM)或電可擦除可編程只讀存儲器(EEPROM)等閃存芯片中的一種程序。這種程序通常擔任較為基礎、底層的工作。例如計算機主板上的基本輸入/輸出系統(tǒng)B1S就是固件的一個示例。然而,隨著集成電路技術的發(fā)展,固件與普通軟件的界限已經(jīng)不再特別明顯。因此,在本文中,如無必要,“固件”與軟件并不進行嚴格區(qū)分。
[0003]通常,在固件的開發(fā)過程結束之后,需要測試人員來手動地對所開發(fā)的固件進行測試。這是由于被測系統(tǒng)狀態(tài)具有不確定性,導致對固件的測試用例或步驟往往需要進行相應的調(diào)整。在缺乏有效機制支持的情況下,這種不確定性使得對固件的測試難以變?yōu)樽詣踊?。而手動測試固件本身除了耗費巨大的人力資源之外,還因為無法優(yōu)化測試流程而導致效率低下。
【發(fā)明內(nèi)容】
[0004]為了解決現(xiàn)有技術中存在的上述問題,本說明書提出如下方案。
[0005]根據(jù)本發(fā)明的第一方面,提供一種用于自動測試固件的方法,包括:確定所述固件所處的上下文環(huán)境;確定所述固件所處的硬件環(huán)境;以及至少部分地基于所述上下文環(huán)境和所述硬件環(huán)境,測試所述固件。
[0006]在本發(fā)明的可選實施方式中,所述至少部分地基于所述上下文環(huán)境和所述硬件環(huán)境,測試所述固件包括:響應于所述上下文環(huán)境與預疋的上下文環(huán)境不匹配,將所述固件從所述上下文環(huán)境引導至所述預足的上下文環(huán)境;以及在所述預定的上下文環(huán)境中進行所述測試。
[0007]在本發(fā)明的可選實施方式中,所述至少部分地基于所述上下文環(huán)境和所述硬件環(huán)境,測試所述固件包括:根據(jù)所述硬件環(huán)境,修改用于所述測試的測試用例;以及至少使用修改的所述測試用例來測試所述固件。
[0008]在本發(fā)明的可選實施方式中,所述硬件環(huán)境包括硬件結構和硬件接口,并且其中,所述硬件結構被抽象化,以形成用于描述所述硬件結構特性的代碼,且所述硬件接口被抽象化,以形成用于描述經(jīng)由所述硬件接口的通信的代碼。
[0009]在本發(fā)明的可選實施方式中,所述硬件結構被抽象化包括:抽象化與所述測試有關的所述硬件結構特性,而不抽象化與所述測試無關的所述硬件結構特性。
[0010]根據(jù)本發(fā)明的第二方面,提供一種用于自動測試多個固件的方法,包括:為所述多個固件中的每個固件分配優(yōu)先級;至少部分地基于所述優(yōu)先級為所述多個固件確定測試順序;以及根據(jù)所述測試順序為所述多個固件中的每個固件執(zhí)行根據(jù)前述任一實施方式所述的方法。
[0011]在本發(fā)明的可選實施方式中,該方法還包括:為用于所述多個固件中的每個固件的測試任務確定到來時間;并且其中,所述測試順序還基于所述到來時間而確定。
[0012]在本發(fā)明的可選實施方式中,該方法還包括:針對所述多個固件中的當前待測試固件,確定所述當前待測試固件是否已經(jīng)進入測試狀態(tài);以及響應于所述固件已經(jīng)進入所述測試狀態(tài),開始所述測試。
[0013]在本發(fā)明的可選實施方式中,該方法還包括:響應于所述當前待測試固件尚未進入所述測試狀態(tài),跳過所述當前待測試固件,而對按照所述測試順序的下一待測試固件確定是否已經(jīng)進入所述測試狀態(tài)。
[0014]在本發(fā)明的可選實施方式中,所述測試針對多個不同的被測平臺類型或同一所述被測平臺類型下的多個待測試固件而并發(fā)地進行。
[0015]根據(jù)本發(fā)明的第三方面,提供一種用于自動測試固件的系統(tǒng),包括:上下文確定單元,被配置為確定所述固件所處的上下文環(huán)境;硬件確定單元,被配置為確定所述固件所處的硬件環(huán)境;以及測試單元,被配置為至少部分地基于所述上下文環(huán)境和所述硬件環(huán)境,測試所述固件。
[0016]在本發(fā)明的可選實施方式中,所述測試單元包括:引導單元,被配置為響應于所述上下文環(huán)境與預定的上下文環(huán)境不匹配,將所述固件從所述上下文環(huán)境引導至所述預定的上下文環(huán)境;以及第一子測試單元,被配置為在所述預定的上下文環(huán)境中進行所述測試。
[0017]在本發(fā)明的可選實施方式中,所述測試單元包括:修改單元,被配置為根據(jù)所述硬件環(huán)境,修改用于所述測試的測試用例;以及第二子測試單元,被配置為至少使用修改的所述測試用例來測試所述固件。
[0018]在本發(fā)明的可選實施方式中,所述硬件環(huán)境包括硬件結構和硬件接口,并且其中,所述硬件結構被抽象化,以形成用于描述所述硬件結構特性的代碼,且所述硬件接口被抽象化,以形成用于描述經(jīng)由所述硬件接口的通信的代碼。
[0019]在本發(fā)明的可選實施方式中,所述硬件結構被抽象化包括:抽象化與所述測試有關的所述硬件結構特性,而不抽象化與所述測試無關的所述硬件結構特性。
[0020]根據(jù)本發(fā)明的第四方面,提供一種用于自動測試多個固件的系統(tǒng),包括:優(yōu)先級分配單元,被配置為為所述多個固件中的每個固件分配優(yōu)先級;順序確定單元,被配置為至少部分地基于所述優(yōu)先級為所述多個固件確定測試順序;以及執(zhí)行單元,被配置為根據(jù)所述測試順序為所述多個固件中的每個固件執(zhí)行根據(jù)權利要求1至5中任一項所述的方法。
[0021]在本發(fā)明的可選實施方式中,該系統(tǒng)還包括:到來時間確定單元,被配置為為用于所述多個固件中的每個固件的測試任務確定到來時間;并且其中,所述順序確定單元還基于所述到來時間而確定所述測試順序。
[0022]在本發(fā)明的可選實施方式中,該系統(tǒng)還包括:狀態(tài)確定單元,被配置為針對所述多個固件中的當前待測試固件,確定所述當前待測試固件是否已經(jīng)進入測試狀態(tài);并且其中,所述測試單元被配置為響應于所述固件已經(jīng)進入所述測試狀態(tài),開始所述測試。
[0023]在本發(fā)明的可選實施方式中,所述測試單元還被配置為:響應于所述當前待測試固件尚未進入所述測試狀態(tài),跳過所述當前待測試固件,而對按照所述測試順序的下一待測試固件確定是否已經(jīng)進入所述測試狀態(tài)。
[0024]在本發(fā)明的可選實施方式中,所述測試針對多個不同的被測平臺類型或同一所述被測平臺類型下的多個待測試固件而并發(fā)地進行。
[0025]根據(jù)本發(fā)明的實施方式,能夠在無法事先預知被測系統(tǒng)的實際軟硬件配置的情況下自動實現(xiàn)對該固件的自動測試,節(jié)約了人力資源,并提高了測試效率。
【附圖說明】
[0026]通過結合附圖對本公開示例性實施方式進行更詳細的描述,本公開的上述以及其它目的、特征和優(yōu)勢將變得更加明顯,其中,在本公開示例性實施方式中,相同的參考標號通常代表相同部件。
[0027]圖1示出了根據(jù)本發(fā)明示例性實施方式的用于自動測試固件的方法100的流程圖。
[0028]圖2圖示了根據(jù)本發(fā)明示例性實施方式的用于自動測試多個固件的方法200的流程圖;
[0029]圖3示出了根據(jù)本發(fā)明示例性實施方式的用于自動測試固件的系統(tǒng)300的示意性框圖;
[0030]圖4示出了根據(jù)本發(fā)明示例性實施方式的用于自動測試多個固件的系統(tǒng)400的示意性框圖;
[0031]圖5示出了適于用來實踐本發(fā)明實施方式的計算機系統(tǒng)500的示意性框圖。
【具體實施方式】
[0032]下面將參照附圖更詳細地描述本公開的優(yōu)選實施方式。雖然附圖中顯示了本公開的優(yōu)選實施方式,然而應該理解,可以以各種形式實現(xiàn)本公開而不應被這里闡述的實施方式所限制。相反,提供這些實施方式是為了使本公開更加透徹和完整,并且能夠將本公開的范圍完整的傳達給本領域的技術人員。
[0033]圖1示出了根據(jù)本發(fā)明示例性實施方式的用于自動測試固件的方法100的流程圖。如圖所示,方法100開始以后,首先進到步驟S101,確定該固件所處的上下文環(huán)境。需要注意的是,本文中所稱的“上下文環(huán)境”主要指代相對于硬件環(huán)境而言的“軟件環(huán)境”,即該固件所在的被測系統(tǒng)(以下簡稱為“被測系統(tǒng)”)所處于的“狀態(tài)”。在對固件的測試任務開始之前,首先需要了解該固件所處的上下文環(huán)境。該上下文環(huán)境包括但不限于WINDOWS操作系統(tǒng)、LINUX操作系統(tǒng)、POST、PXE操作系統(tǒng)、Debugger、B1S等等。
[0034]接著,方法100前進到步驟S102,確定該固件所處的硬件環(huán)境。如前所述,這里的“硬件環(huán)境”是相對于“上下文環(huán)境”(即“軟件環(huán)境”)而言。例如,該硬件環(huán)境包括被測系統(tǒng)的實際硬件配置。在一個實現(xiàn)中,可以利用被測系統(tǒng)在特定狀態(tài)下的行為先驗知識對被測系統(tǒng)進行檢測,根據(jù)檢測結果來確定實際的硬件配置。術語“先驗知識”包括但不限于通過歷史行為所獲知的被測系統(tǒng)的硬件配置信息。
[0035]接下來,方法100前進到步驟S103,至少部分地基于該上下文環(huán)境和該硬件環(huán)境,測試該固件。根據(jù)本發(fā)明的一個實施方式,步驟S103可以包括響應于在步驟SlOl中確定的上下文環(huán)境與預定的上下文環(huán)境(即,目標上下文環(huán)境)不匹配,而將該固件從該上下文環(huán)境引導至該預定的上下文環(huán)境。本領域技術人員可以理解,在測試過程中,可以根據(jù)測試目的而將被測系統(tǒng)引導至目標系統(tǒng)狀態(tài),通過檢查在目標系統(tǒng)狀態(tài)下被測系統(tǒng)的行為與預期結果的匹配程度來判定固件的質量。然而,本發(fā)明并不必然局限于此。此外,根據(jù)本發(fā)明的另一個實施方式,步驟S103也可以包括根據(jù)在步驟S102中所確定的硬件環(huán)境來修改用于該測試的測試用例,并且至少使用該修改的測試用例來測試該固件。例如,在實現(xiàn)中,一個測試案例可能包括有針對硬件環(huán)境中的各種不同硬件部件的測試片段,此時可以根據(jù)對被測系統(tǒng)的硬件環(huán)境檢測來裁剪掉當前硬件環(huán)境中不涉及的硬件部件的相關測試片段,從而達到節(jié)約資源的效果。
[0036]根據(jù)本發(fā)明的一個實施方式,上述硬件環(huán)境可以包括硬件結構和硬件接口。在實踐中,可以基于“面向對象編程”的思想對相關硬件進行抽象化,從而實現(xiàn)對固件的測試。例如,可以將該硬件結構抽象化,以形成用于描述所述硬件結構特性的代碼。作為示例,可以將硬件結構抽象成軟件的樹狀結構。通過對硬件結構的抽象化,能夠用代碼來描述硬件配置,從而有利于通過設置代碼指令來調(diào)控硬件的功能。在進一步的可選實施方式中,可以僅抽象化與固件測試有關的硬件結構特性,而不抽象化與該固件測試無關的硬件結構特性,從而進一步節(jié)約資源,提高固件測試的效率。
[0037]備選地或附加地,也可以將該硬件接口抽象化,以形成用于描述經(jīng)由所述硬件接口的通信的代碼。在實踐中往往借助于各種通信協(xié)議與被測系統(tǒng)通信,如串口、LAN等。通過對硬件接口的抽象化,可以用代碼來描述經(jīng)由該接口的通信,從而有利于通過設置代碼指令來規(guī)劃和定義接口的相關功能。
[0038]需要注意的是,可以根據(jù)對被測系統(tǒng)的硬件結構和硬件接口的抽象,通過設置相關指令來收集被測系統(tǒng)響應于特定設置的屬性和行為,從而在測試過程中能夠動態(tài)地對被測系統(tǒng)的先驗知識加以更新。而這些更新的先驗知識轉而又可以更為準確地如前所述用來確定被測系統(tǒng)的硬件環(huán)境。
[0039]至此,方法100結束。
[0040]可以看到,方法100通過引入對固件所處的上下文環(huán)境和硬件環(huán)境的具體考慮,能夠在無法事先預知被測系統(tǒng)的實際軟硬件配置的情況下自動實現(xiàn)對該固件的自動測試,節(jié)約了人力資源,并提高了測試效率。
[0041]圖2圖示了根據(jù)本發(fā)明示例性實施方式的用于自動測試多個固件的方法200的流程圖。
[0042]如圖2所示,方法200開始之后,首先進到步驟S201,為該多個固件中的每個固件分配優(yōu)先級。在存在多個固件需要測試(即,存在針對多個固件的多個測試任務)的情況下,根據(jù)本發(fā)明的一個實施方式,可以采用為每個固件分配測試優(yōu)先級的方式來協(xié)調(diào)對固件測試任務的調(diào)度。
[0043]接下來,方法200進到步驟S202,至少部分地基于該優(yōu)先級為該多個固件確定測試順序。例如,在進行任務調(diào)度時,可以優(yōu)先測試優(yōu)先級較高的任務。然而,本發(fā)明并不局限于此,即,其他因素也可以用來幫助確定該多個固件的測試順序。例如,還可以為該多個固件中的每個固件的測試任務確定到來時間,并且基于該到來時間來進一步確定該多個固件的測試順序。
[0044]然后,方法200前進到步驟S203,根據(jù)該測試順序為該多個固件中的每個固件執(zhí)行前述參照方法100所描述的各種方法步驟。
[0045]根據(jù)本發(fā)明的一個實施方式,可以為每個所開發(fā)的固件設置多種狀態(tài),例如:“固件開發(fā)狀態(tài)”,“準備測試狀態(tài)”、“測試狀態(tài)”等。其中,“固件開發(fā)狀態(tài)”表示該固件正在開發(fā)過程中,并未準備好被測試。當開發(fā)完成后,可以為該“固件開發(fā)狀態(tài)”設置退出標志(如,“固件可用”)來表示固件開發(fā)狀態(tài)的退出,同時表示“準備測試狀態(tài)”的進入?!皽蕚錅y試狀態(tài)”表示固件處于已經(jīng)完成開發(fā),但處于種種原因還未發(fā)出測試請求的狀態(tài)。根據(jù)本發(fā)明的一個實施方式,在“準備測試狀態(tài)”中,可以為每個任務分配步驟S201中所涉及的測試優(yōu)先級。一旦測試請求發(fā)出,固件就處于“測試狀態(tài)”,此時可以對固件進行如方法100以及200中所涉及的各種相關方法步驟。在實現(xiàn)中,諸如“開發(fā)狀態(tài)”、“準備測試狀態(tài),,以及“測試狀態(tài)”之類的各種狀態(tài)可以記錄在文件中供查詢。在根據(jù)本發(fā)明的另一實施方式中,該文件還可以用于記載諸如步驟S201中所涉及的優(yōu)先級信息等其他信息。因此,方法200可以在一個實施方式中可選地包括針對多個固件中的當前待測試固件,確定其是否已經(jīng)進入測試狀態(tài),以及響應于該固件已經(jīng)進入測試狀態(tài),進行該測試。在另一個實施方式中,備選地,響應于當前待測試固件尚未進入測試狀態(tài)(例如處于“開發(fā)狀態(tài)”或“準備測試狀態(tài)”),則可以跳過該固件,而對按照測試順序的下一待測試固件確定其是否已經(jīng)進入測試狀態(tài)。這樣,在原本測試順序靠前的固件尚未準備好進行測試時,方法不會阻塞于此,而是可以嘗試對下一固件進行測試。
[0046]此外,在根據(jù)本發(fā)明的另一實施方式中,還可以針對多個不同的被測平臺類型或同一被測平臺類型下的多個待測試固件來并發(fā)地進行測試。在一個示例性實現(xiàn)中,并發(fā)進行的多個測試可以在一個測試界面中呈現(xiàn)。
[0047]接下來參看圖3描述根據(jù)本發(fā)明示例性實施方式的用于自動測試固件的系統(tǒng)300。
[0048]如圖所示,系統(tǒng)300包括上下文確定單元301,被配置為確定所述固件所處的上下文環(huán)境;硬件確定單元302,被配置為確定所述固件所處的硬件環(huán)境;以及測試單元303,被配置為至少部分地基于所述上下文環(huán)境和所述硬件環(huán)境,測試所述固件。
[0049]在本發(fā)明的可選實施方式中,測試單元303包括:引導單元,被配置為響應于所述上下文環(huán)境與預定的上下文環(huán)境不匹配,將所述固件從所述上下文環(huán)境引導至所述預定的上下文環(huán)境;以及第一子測試單元,被配置為在所述預定的上下文環(huán)境中進行所述測試。
[0050]在本發(fā)明的可選實施方式中,所述測試單元303包括:修改單元,被配置為根據(jù)所述硬件環(huán)境,修改用于所述測試的測試用例;以及第二子測試單元,被配置為至少使用修改的所述測試用例來測試所述固件。
[0051 ] 在本發(fā)明的可選實施方式中,所述硬件環(huán)境包括硬件結構和硬件接口,并且其中,所述硬件結構被抽象化,以形成用于描述所述硬件結構特性的代碼,且所述硬件接口被抽象化,以形成用于描述經(jīng)由所述硬件接口的通信的代碼。
[0052]在本發(fā)明的可選實施方式中,所述硬件結構被抽象化包括:抽象化與所述測試有關的所述硬件結構特性,而不抽象化與所述測試無關的所述硬件結構特性。
[0053]圖4進一步描述根據(jù)本發(fā)明示例性實施方式的用于自動測試多個固件的系統(tǒng)400。如圖所示,系統(tǒng)400包括優(yōu)先級分配單元401,被配置為為所述多個固件中的每個固件分配優(yōu)先級;順序確定單元402,被配置為至少部分地基于所述優(yōu)先級為所述多個固件確定測試順序;以及執(zhí)行單元403,被配置為根據(jù)所述測試順序為所述多個固件中的每個固件執(zhí)行根據(jù)前述方法100和200中任何相關方案所述的方法。
[0054]在本發(fā)明的可選實施方式中,系統(tǒng)400還包括:到來時間確定單元,被配置為為用于所述多個固件中的每個固件的測試任務確定到來時間;并且其中,所述順序確定單元還基于所述到來時間而確定所述測試順序。
[0055]在本發(fā)明的可選實施方式中,系統(tǒng)400還包括:狀態(tài)確定單元,被配置為針對所述多個固件中的當前待測試固件,確定所述當前待測試固件是否已經(jīng)進入測試狀態(tài);并且其中,系統(tǒng)300中的所述測試單元303被配置為響應于所述固件已經(jīng)進入所述測試狀態(tài),開始所述測試。
[0056]在本發(fā)明的可選實施方式中,系統(tǒng)300中的所述測試單元303還被配置為:響應于所述當前待測試固件尚未進入所述測試狀態(tài),跳過所述當前待測試固件,而對按照所述測試順序的下一待測試固件確定是否已經(jīng)進入所述測試狀態(tài)。
[0057]在本發(fā)明的可選實施方式中,所述測試針對多個不同的被測平臺類型或同一所述被測平臺類型下的多個待測試固件而并發(fā)地進行。
[0058]下面參考圖5,其示出了適于用來實踐本發(fā)明實施方式的計算機系統(tǒng)500的示意性框圖。例如,圖5所示的計算機系統(tǒng)500可以用于實現(xiàn)如上文描述的用于確定應用正確性的系統(tǒng)300和裝置400的各個部件,也可以用于固化或實現(xiàn)如上文描述的用于確定應用正確性的方法200的各個步驟。
[0059]如圖5所示,計算機系統(tǒng)可以包括..CPU (中央處理單元)501、RAM (隨機存取存儲器)502、ROM (只讀存儲器)503、系統(tǒng)總線504、硬盤控制器505、鍵盤控制器506、串行接口控制器507、并行接口控制器508、顯示控制器509、硬盤510、鍵盤511、串行外部設備512、并行外部設備513和顯示器514。在這些設備中,與系統(tǒng)總線504耦合的有CPU 501、RAM502、ROM 503、硬盤控制器505、鍵盤控制器506、串行控制器507、并行控制器508和顯示控制器509。硬盤510與硬盤控制器505耦合,鍵盤511與鍵盤控制器506耦合,串行外部設備512與串行接口控制器507耦合,并行外部設備513與并行接口控制器508耦合,以及顯示器514與顯示控制器509耦合。應當理解,圖5所述的結構框圖僅僅為了示例的目的而示出的,而不是對本發(fā)明范圍的限制。在某些情況下,可以根據(jù)具體情況而增加或者減少某些設備。
[0060]如上所述,系統(tǒng)300可以實現(xiàn)為純硬件,例如芯片、ASIC、SOC等。這些硬件可以集成在計算機系統(tǒng)500中。此外,本發(fā)明的實施方式也可以通過計算機程序產(chǎn)品的形式實現(xiàn)。例如,參考圖1描述的方法100和/或參考圖2描述的方法200可以通過計算機程序產(chǎn)品來實現(xiàn)。該計算機程序產(chǎn)品可以存儲在例如圖5所示的RAM 504、R0M504、硬盤510和/或任何適當?shù)拇鎯橘|中,或者通過網(wǎng)絡從適當?shù)奈恢孟螺d到計算機系統(tǒng)500上。計算機程序產(chǎn)品可以包括計算機代碼部分,其包括可由適當?shù)奶幚碓O備(例如,圖5中示出的CPU501)執(zhí)行的程序指令。所述程序指令至少可以包括用于實現(xiàn)方法100和/或200的步驟的指令。這些指令例如包括:用于確定所述固件所處的上下文環(huán)境的指令;用于確定所述固件所處的硬件環(huán)境的指令;以及用于至少部分地基于所述上下文環(huán)境和所述硬件環(huán)境,測試所述固件的指令。
[0061]上文已經(jīng)結合若干【具體實施方式】闡釋了本發(fā)明的精神和原理。根據(jù)本發(fā)明的用于自動測試固件的方法和系統(tǒng)相對于現(xiàn)有技術具有諸多優(yōu)點。例如,本發(fā)明通過提供適當?shù)姆椒ê拖到y(tǒng)來支持對固件測試的自動化實現(xiàn)。通過本發(fā)明提供的實施方式,可以在無法事先預知被測系統(tǒng)的實際軟硬件配置的情況下自動實現(xiàn)對該固件的自動測試,節(jié)約了人力資源,并提高了測試效率。
[0062]應當注意,本發(fā)明的實施方式可以通過硬件、軟件或者軟件和硬件的結合來實現(xiàn)。硬件部分可以利用專用邏輯來實現(xiàn);軟件部分可以存儲在存儲器中,由適當?shù)闹噶顖?zhí)行系統(tǒng),例如微處理器或者專用設計硬件來執(zhí)行。本領域的普通技術人員可以理解上述的設備和方法可以使用計算機可執(zhí)行指令和/或包含在處理器控制代碼中來實現(xiàn),例如在諸如磁盤、CD或DVD-ROM的載體介質、諸如只讀存儲器(固件)的可編程的存儲器或者諸如光學或電子信號載體的數(shù)據(jù)載體上提供了這樣的代碼。本發(fā)明的設備及其模塊可以由諸如超大規(guī)模集成電路或門陣列、諸如邏輯芯片、晶體管等的半導體、或者諸如現(xiàn)場可編程門陣列、可編程邏輯設備等的可編程硬件設備的硬件電路實現(xiàn),也可以用由各種類型的處理器執(zhí)行的軟件實現(xiàn),也可以由上述硬件電路和軟件的結合例如固件來實現(xiàn)。
[0063]應當注意,盡管在上文詳細描述中提及了設備的若干裝置或子裝置,但是這種劃分僅僅并非強制性的。實際上,根據(jù)本發(fā)明的實施方式,上文描述的兩個或更多裝置的特征和功能可以在一個裝置中具體化。反之,上文描述的一個裝置的特征和功能可以進一步劃分為由多個裝置來具體化。
[0064]此外,盡管在附圖中以特定順序描述了本發(fā)明方法的操作,但是,這并非要求或者暗示必須按照該特定順序來執(zhí)行這些操作,或是必須執(zhí)行全部所示的操作才能實現(xiàn)期望的結果。相反,流程圖中描繪的步驟可以改變執(zhí)行順序。附加地或備選地,可以省略某些步驟,將多個步驟合并為一個步驟執(zhí)行,和/或將一個步驟分解為多個步驟執(zhí)行。
[0065]雖然已經(jīng)參考若干【具體實施方式】描述了本發(fā)明,但是應該理解,本發(fā)明并不限于所公開的【具體實施方式】。本發(fā)明旨在涵蓋所附權利要求的精神和范圍內(nèi)所包括的各種修改和等同布置。所附權利要求的范圍符合最寬泛的解釋,從而包含所有這樣的修改及等同結構和功能。
【主權項】
1.一種用于自動測試固件的方法,包括: 確定所述固件所處的上下文環(huán)境; 確定所述固件所處的硬件環(huán)境;以及 至少部分地基于所述上下文環(huán)境和所述硬件環(huán)境,測試所述固件。2.根據(jù)權利要求1所述的方法,其中,所述至少部分地基于所述上下文環(huán)境和所述硬件環(huán)境,測試所述固件包括: 響應于所述上下文環(huán)境與預定的上下文環(huán)境不匹配,將所述固件從所述上下文環(huán)境引導至所述預定的上下文環(huán)境;以及 在所述預定的上下文環(huán)境中進行所述測試。3.根據(jù)權利要求1所述的方法,其中,所述至少部分地基于所述上下文環(huán)境和所述硬件環(huán)境,測試所述固件包括: 根據(jù)所述硬件環(huán)境,修改用于所述測試的測試用例;以及 至少使用修改的所述測試用例來測試所述固件。4.根據(jù)權利要求1所述的方法,其中,所述硬件環(huán)境包括硬件結構和硬件接口,并且其中,所述硬件結構被抽象化,以形成用于描述所述硬件結構特性的代碼,且所述硬件接口被抽象化,以形成用于描述經(jīng)由所述硬件接口的通信的代碼。5.根據(jù)權利要求4所述的方法,其中,所述硬件結構被抽象化包括: 抽象化與所述測試有關的所述硬件結構特性,而不抽象化與所述測試無關的所述硬件結構特性。6.一種用于自動測試多個固件的方法,包括: 為所述多個固件中的每個固件分配優(yōu)先級; 至少部分地基于所述優(yōu)先級為所述多個固件確定測試順序;以及根據(jù)所述測試順序為所述多個固件中的每個固件執(zhí)行根據(jù)權利要求1至5中任一項所述的方法。7.根據(jù)權利要求6所述的方法,還包括: 為用于所述多個固件中的每個固件的測試任務確定到來時間; 并且其中,所述測試順序還基于所述到來時間而確定。8.根據(jù)權利要求6所述的方法,還包括: 針對所述多個固件中的當前待測試固件,確定所述當前待測試固件是否已經(jīng)進入測試狀態(tài);以及 響應于所述固件已經(jīng)進入所述測試狀態(tài),開始所述測試。9.根據(jù)權利要求8所述的方法,還包括: 響應于所述當前待測試固件尚未進入所述測試狀態(tài),跳過所述當前待測試固件,而對按照所述測試順序的下一待測試固件確定是否已經(jīng)進入所述測試狀態(tài)。10.根據(jù)權利要求6所述的方法,其中,所述測試針對多個不同的被測平臺類型或同一所述被測平臺類型下的多個待測試固件而并發(fā)地進行。11.一種用于自動測試固件的系統(tǒng),包括: 上下文確定單元,被配置為確定所述固件所處的上下文環(huán)境; 硬件確定單元,被配置為確定所述固件所處的硬件環(huán)境;以及 測試單元,被配置為至少部分地基于所述上下文環(huán)境和所述硬件環(huán)境,測試所述固件。12.根據(jù)權利要求11所述的系統(tǒng),其中,所述測試單元包括: 引導單元,被配置為響應于所述上下文環(huán)境與預定的上下文環(huán)境不匹配,將所述固件從所述上下文環(huán)境引導至所述預定的上下文環(huán)境;以及 第一子測試單元,被配置為在所述預定的上下文環(huán)境中進行所述測試。13.根據(jù)權利要求11所述的系統(tǒng),其中,所述測試單元包括: 修改單元,被配置為根據(jù)所述硬件環(huán)境,修改用于所述測試的測試用例;以及 第二子測試單元,被配置為至少使用修改的所述測試用例來測試所述固件。14.根據(jù)權利要求11所述的系統(tǒng),其中,所述硬件環(huán)境包括硬件結構和硬件接口,并且其中,所述硬件結構被抽象化,以形成用于描述所述硬件結構特性的代碼,且所述硬件接口被抽象化,以形成用于描述經(jīng)由所述硬件接口的通信的代碼。15.根據(jù)權利要求14所述的系統(tǒng),其中,所述硬件結構被抽象化包括: 抽象化與所述測試有關的所述硬件結構特性,而不抽象化與所述測試無關的所述硬件結構特性。16.一種用于自動測試多個固件的系統(tǒng),包括: 優(yōu)先級分配單元,被配置為為所述多個固件中的每個固件分配優(yōu)先級; 順序確定單元,被配置為至少部分地基于所述優(yōu)先級為所述多個固件確定測試順序;以及 執(zhí)行單元,被配置為根據(jù)所述測試順序為所述多個固件中的每個固件執(zhí)行根據(jù)權利要求I至5中任一項所述的方法。17.根據(jù)權利要求16所述的系統(tǒng),還包括: 到來時間確定單元,被配置為為用于所述多個固件中的每個固件的測試任務確定到來時間; 并且其中,所述順序確定單元還基于所述到來時間而確定所述測試順序。18.根據(jù)權利要求16所述的系統(tǒng),還包括: 狀態(tài)確定單元,被配置為針對所述多個固件中的當前待測試固件,確定所述當前待測試固件是否已經(jīng)進入測試狀態(tài); 并且其中,所述測試單元被配置為響應于所述固件已經(jīng)進入所述測試狀態(tài),開始所述測試。19.根據(jù)權利要求18所述的系統(tǒng),其中,所述測試單元還被配置為:響應于所述當前待測試固件尚未進入所述測試狀態(tài),跳過所述當前待測試固件,而對按照所述測試順序的下一待測試固件確定是否已經(jīng)進入所述測試狀態(tài)。20.根據(jù)權利要求16所述的系統(tǒng),其中,所述測試針對多個不同的被測平臺類型或同一所述被測平臺類型下的多個待測試固件而并發(fā)地進行。
【文檔編號】G06F11/36GK105893233SQ201410813967
【公開日】2016年8月24日
【申請日】2014年12月19日
【發(fā)明人】楊云龍, 張揚
【申請人】伊姆西公司