用于軟件測(cè)試的方法和計(jì)算設(shè)備的制造方法
【專利摘要】本發(fā)明的實(shí)施例提供了一種用于軟件測(cè)試的方法和計(jì)算設(shè)備。該方法包括通過(guò)計(jì)算設(shè)備提供至少一個(gè)虛擬硬件組件,每個(gè)虛擬硬件組件模擬與待測(cè)試的軟件相關(guān)聯(lián)的硬件組件的行為。該方法還包括根據(jù)至少一個(gè)虛擬硬件組件模擬的行為來(lái)測(cè)試待測(cè)試的軟件。根據(jù)本發(fā)明的實(shí)施例,通過(guò)提供能夠模擬實(shí)際硬件組件的行為的虛擬硬件組件來(lái)執(zhí)行軟件測(cè)試。這樣的軟件測(cè)試方式使得軟件開發(fā)與硬件開發(fā)可以并列地被執(zhí)行,并且針對(duì)不同硬件組件的不同待測(cè)試軟件可以并列地被測(cè)試,從而加快了軟件開發(fā)的進(jìn)度并且縮短了產(chǎn)品開發(fā)的耗時(shí)。
【專利說(shuō)明】
用于軟件測(cè)試的方法和計(jì)算設(shè)備
技術(shù)領(lǐng)域
[0001]本發(fā)明的各種實(shí)施方式涉及計(jì)算機(jī)領(lǐng)域,并且更具體地,涉及用于軟件測(cè)試的方法和計(jì)算設(shè)備。
【背景技術(shù)】
[0002]產(chǎn)品開發(fā)過(guò)程(例如,各種電子器件和設(shè)備的開發(fā)過(guò)程)通常包括硬件開發(fā)和軟件開發(fā)。硬件開發(fā)主要涉及對(duì)于產(chǎn)品的硬件組件的選擇和組裝、硬件功能的開發(fā)和調(diào)試等。軟件開發(fā)主要涉及與硬件組件的有關(guān)的軟件的開發(fā)、以及對(duì)所開發(fā)的軟件的測(cè)試以適配硬件組件。
[0003]在常規(guī)產(chǎn)品開發(fā)過(guò)程中,軟件開發(fā)主要取決于硬件開發(fā)的完成。例如,通常在已經(jīng)完成整體硬件開發(fā)之后,硬件開發(fā)部門將生產(chǎn)的硬件工程板傳送給軟件部門,以便于軟件部門在硬件工程板上對(duì)開發(fā)的軟件進(jìn)行測(cè)試?;蛘撸缭诿總€(gè)階段(例如,在工程驗(yàn)證測(cè)試(Engineering Verificat1n Testing,EVT)階段、在關(guān)鍵設(shè)計(jì)驗(yàn)證測(cè)試(critical Design Verificat1n and Testing,cDVT)階段、和在設(shè)計(jì)驗(yàn)證測(cè)試(DesignVerificat1n and Testing,DVT)階段)的硬件開發(fā)完成之后,將開發(fā)的硬件工程板交由軟件部門執(zhí)行軟件測(cè)試。通常軟件部門的不同軟件開發(fā)人員或軟件開發(fā)團(tuán)隊(duì)開發(fā)與不同硬件組件關(guān)聯(lián)的多個(gè)軟件,不同的軟件需要一個(gè)或多個(gè)硬件工程板用于測(cè)試目的。
[0004]然而,這樣的產(chǎn)品開發(fā)過(guò)程通常會(huì)導(dǎo)致較高的時(shí)間成本和經(jīng)濟(jì)成本。因?yàn)檐浖_發(fā)依賴于硬件開發(fā)的完成,因而完成產(chǎn)品開發(fā)的耗時(shí)較長(zhǎng)。而且,用于軟件測(cè)試的大量硬件工程板需要被生產(chǎn)、傳送以及在使用中的維護(hù),這增加了產(chǎn)品開發(fā)的經(jīng)濟(jì)成本。此外,如果在軟件測(cè)試過(guò)程中發(fā)現(xiàn)了硬件的問(wèn)題,還將導(dǎo)致硬件開發(fā)的重新執(zhí)行以及硬件工程板的重新生產(chǎn),這是對(duì)時(shí)間和經(jīng)濟(jì)成本的雙重增加。
【發(fā)明內(nèi)容】
[0005]鑒于上述以及其他潛在問(wèn)題,本發(fā)明的實(shí)施方式提供了用于軟件測(cè)試的方法和計(jì)算設(shè)備。
[0006]根據(jù)本發(fā)明的第一方面,提供了一種用于軟件測(cè)試的方法。該方法包括通過(guò)計(jì)算設(shè)備提供至少一個(gè)虛擬硬件組件,每個(gè)虛擬硬件組件模擬與待測(cè)試的軟件相關(guān)聯(lián)的硬件組件的行為。該方法還包括根據(jù)至少一個(gè)虛擬硬件組件模擬的行為來(lái)測(cè)試待測(cè)試的軟件。
[0007]在本發(fā)明的一個(gè)實(shí)施例中,該計(jì)算設(shè)備至少具有中央處理器和存儲(chǔ)器。
[0008]在本發(fā)明的一個(gè)實(shí)施例中,該方法還包括通過(guò)計(jì)算設(shè)備提供與至少一個(gè)虛擬硬件組件相對(duì)應(yīng)的虛擬總線,以使得至少一個(gè)虛擬硬件組件經(jīng)由虛擬總線與中央處理器和存儲(chǔ)器連接。
[0009]在本發(fā)明的一個(gè)實(shí)施例中,該計(jì)算設(shè)備包括已經(jīng)開發(fā)的與軟件相關(guān)聯(lián)的硬件組件。
[0010]在本發(fā)明的一個(gè)實(shí)施例中,多個(gè)虛擬硬件組件通過(guò)計(jì)算設(shè)備而被提供。[0011 ] 在本發(fā)明的一個(gè)實(shí)施例中,根據(jù)虛擬硬件組件模擬的行為來(lái)測(cè)試軟件包括根據(jù)多個(gè)虛擬硬件組件模擬的行為來(lái)并行地測(cè)試軟件。
[0012]在本發(fā)明的一個(gè)實(shí)施例中,模擬的硬件組件的行為包括硬件組件的正常行為和出錯(cuò)行為中的至少一項(xiàng)。
[0013]根據(jù)本發(fā)明的第二方面,提供了一種用于軟件測(cè)試的計(jì)算設(shè)備。該計(jì)算設(shè)備包括虛擬硬件組件供應(yīng)單元,被配置為提供至少一個(gè)虛擬硬件組件,每個(gè)虛擬硬件組件模擬與待測(cè)試的軟件相關(guān)聯(lián)的硬件組件的行為。該計(jì)算設(shè)備還包括軟件測(cè)試單元,被配置為根據(jù)至少一個(gè)虛擬硬件組件模擬的行為來(lái)測(cè)試待測(cè)試的軟件。
[0014]在本發(fā)明的一個(gè)實(shí)施例中,該計(jì)算設(shè)備至少具有中央處理器和存儲(chǔ)器。
[0015]在本發(fā)明的一個(gè)實(shí)施例中,該計(jì)算設(shè)備還包括虛擬總線供應(yīng)單元,被配置為提供與至少一個(gè)虛擬硬件組件相對(duì)應(yīng)的虛擬總線,以使得至少一個(gè)虛擬硬件組件經(jīng)由虛擬總線與中央處理器和存儲(chǔ)器連接。
[0016]在本發(fā)明的一個(gè)實(shí)施例中,該計(jì)算設(shè)備包括已經(jīng)開發(fā)的與軟件相關(guān)聯(lián)的硬件組件。
[0017]在本發(fā)明的一個(gè)實(shí)施例中,虛擬硬件組件供應(yīng)單元提供多個(gè)虛擬硬件組件。
[0018]在本發(fā)明的一個(gè)實(shí)施例中,軟件測(cè)試單元進(jìn)一步被配置為根據(jù)多個(gè)虛擬硬件組件模擬的行為來(lái)并行地測(cè)試軟件。
[0019]在本發(fā)明的一個(gè)實(shí)施例中,模擬的硬件組件的行為包括硬件組件的正常行為和出錯(cuò)行為中的至少一項(xiàng)。
[0020]通過(guò)下文描述將會(huì)理解,根據(jù)本發(fā)明的實(shí)施例,通過(guò)提供能夠模擬實(shí)際硬件組件的行為的虛擬硬件組件來(lái)執(zhí)行軟件測(cè)試。這樣的軟件測(cè)試方式使得軟件開發(fā)與硬件開發(fā)可以并列地被執(zhí)行,并且針對(duì)不同硬件組件的不同待測(cè)試軟件可以并列地被測(cè)試,從而加快了軟件開發(fā)的進(jìn)度并且縮短了產(chǎn)品開發(fā)的耗時(shí)。而且,由于無(wú)需生產(chǎn)、傳送和維護(hù)用于軟件測(cè)試目的的硬件工程板,這是一種經(jīng)濟(jì)成本節(jié)約的方式。此外,虛擬硬件組件不僅可以模擬硬件組件的正常行為,還可以模擬硬件組件的錯(cuò)誤行為,從而有效地測(cè)試軟件的出錯(cuò)處理能力并且提高軟件的魯棒性。
【附圖說(shuō)明】
[0021]通過(guò)結(jié)合附圖對(duì)本公開的示例性實(shí)施方式進(jìn)行更詳細(xì)的描述,本公開的上述以及其它目的、特征和優(yōu)勢(shì)將變得更加明顯,其中,在本公開示例性實(shí)施方式中,相同的參考標(biāo)號(hào)通常代表相同部件。
[0022]圖1示出了根據(jù)本發(fā)明的實(shí)施例的用于軟件測(cè)試的方法的流程圖;
[0023]圖2示出了根據(jù)本發(fā)明的實(shí)施例的用于軟件測(cè)試的硬件模擬平臺(tái)的示意圖;
[0024]圖3示出了根據(jù)本發(fā)明的實(shí)施例的用于軟件測(cè)試的計(jì)算設(shè)備的框圖;以及
[0025]圖4示出了適于用來(lái)實(shí)踐本發(fā)明實(shí)施方式的計(jì)算機(jī)系統(tǒng)的示意性框圖。
【具體實(shí)施方式】
[0026]下面將參照附圖更詳細(xì)地描述本公開的優(yōu)選實(shí)施方式。雖然附圖中顯示了本公開的優(yōu)選實(shí)施方式,然而應(yīng)該理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施方式所限制。相反,提供這些實(shí)施方式是為了使本公開更加透徹和完整,并且能夠?qū)⒈竟_的范圍完整地傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0027]在對(duì)示例實(shí)施例的描述中,術(shù)語(yǔ)“包括”及其類似用語(yǔ)表示開放性包含,即“包括但不限于”。術(shù)語(yǔ)“基于”表示“至少部分地基于”。術(shù)語(yǔ)“一個(gè)實(shí)施例”或“該實(shí)施例”表示“至少一個(gè)實(shí)施例”。
[0028]下面將詳細(xì)描述本發(fā)明的實(shí)施例。通過(guò)下文描述將會(huì)理解,本發(fā)明的基本構(gòu)思之一在于:在硬件開發(fā)完成之前,提供一種硬件模擬平臺(tái)。該平臺(tái)可以虛擬相應(yīng)的硬件組件,從而軟件測(cè)試可以基于虛擬硬件組件來(lái)執(zhí)行而不必等待硬件開發(fā)完成。這樣的軟件測(cè)試方式使得軟件開發(fā)與硬件開發(fā)可以并列地被執(zhí)行、并且針對(duì)不同硬件組件的不同待測(cè)試軟件可以并列地被測(cè)試,從而加快了軟件開發(fā)的進(jìn)度并且縮短了產(chǎn)品開發(fā)的耗時(shí)。而且,由于無(wú)需生產(chǎn)和傳送用于軟件測(cè)試目的的硬件板,這是一種經(jīng)濟(jì)成本節(jié)約的方式。此外,虛擬硬件組件不僅可以模擬硬件組件的正常行為,還可以模擬硬件組件的錯(cuò)誤行為,從而有效地測(cè)試軟件的出錯(cuò)處理能力并且提高軟件的魯棒性。
[0029]首先參見(jiàn)圖1,其示出了根據(jù)本發(fā)明的實(shí)施例的用于軟件測(cè)試的方法100的流程圖。應(yīng)理解的是,方法100還可以包括附加的步驟和/或省略執(zhí)行示出的步驟。本發(fā)明的范圍在此方面不受限制。
[0030]在方法100的步驟S101,通過(guò)計(jì)算設(shè)備提供至少一個(gè)虛擬硬件組件,每個(gè)虛擬硬件組件模擬與待測(cè)試的軟件相關(guān)聯(lián)的硬件組件的行為。
[0031]如以上提及的,為了加快軟件開發(fā)的進(jìn)度并且縮短整體產(chǎn)品開發(fā)的耗時(shí),本發(fā)明的實(shí)施例提供了一種允許在計(jì)算設(shè)備上的硬件模擬平臺(tái)。該平臺(tái)在示例實(shí)施例中可以基于虛擬機(jī)基礎(chǔ)架構(gòu)(例如利用虛擬化工具QEMU)來(lái)實(shí)施并且可以提供虛擬硬件組件。為了能夠提供虛擬硬件組件,在本發(fā)明的實(shí)施例中,計(jì)算設(shè)備至少具有中央處理器(CPU)和存儲(chǔ)器(Memory)。在另外的實(shí)施例中,計(jì)算設(shè)備還可以包括其他必要的組成部件。在進(jìn)一步的實(shí)施例中,該計(jì)算設(shè)備可以是任意的臺(tái)式計(jì)算機(jī)、便攜式計(jì)算機(jī)、膝上型計(jì)算機(jī)、手持設(shè)備、蜂窩電話、智能電話、個(gè)人數(shù)字助理、以及具有處理能力的任何其他適當(dāng)?shù)脑O(shè)備。
[0032]在本發(fā)明的實(shí)施例中,所提供的虛擬硬件組件可以模擬與待測(cè)試的軟件相關(guān)聯(lián)的硬件組件的行為。在一個(gè)示例中,一個(gè)軟件可以具有一個(gè)相關(guān)聯(lián)的硬件組件。在其他示例中,一個(gè)軟件還可以具有多個(gè)相關(guān)聯(lián)的硬件組件。
[0033]如本文中所使用的,“硬件組件”可以包括提供硬件產(chǎn)品(例如,電子器件、電子設(shè)備、或服務(wù)器等)的一類功能并且需要相應(yīng)軟件的支持的任何硬件組件。例如,硬件組件可以包括但不限于輸入/輸出(I/O)設(shè)備、小型I/O卡(SLiC)、基板管理控制器(BMC)、控制和監(jiān)測(cè)設(shè)備(CMD)、電源(PS)、局域網(wǎng)(LAN)接入設(shè)備、平臺(tái)管理芯片組、風(fēng)扇、硬盤驅(qū)動(dòng)器,等等。
[0034]進(jìn)一步地,與待測(cè)試軟件相關(guān)聯(lián)的硬件組件在一個(gè)實(shí)施例中還可以包括CPU和存儲(chǔ)器。因此,在這個(gè)實(shí)施例中,還可以根據(jù)正在開發(fā)的產(chǎn)品對(duì)于CPU和存儲(chǔ)器的要求,選擇具有適當(dāng)?shù)腃PU和存儲(chǔ)器的計(jì)算設(shè)備,以便更好地執(zhí)行后續(xù)的軟件測(cè)試。
[0035]通常在產(chǎn)品開發(fā)過(guò)程中,硬件組件的標(biāo)準(zhǔn)和接口的選擇和功能的設(shè)計(jì)預(yù)先已經(jīng)被定義。因此,基于這些預(yù)定義的信息,虛擬硬件組件可以模擬實(shí)際硬件組件的行為。例如,虛擬I/O設(shè)備可以模擬待測(cè)試軟件將要應(yīng)用至的硬件產(chǎn)品選用的實(shí)際I/O設(shè)備的輸入操作、輸出操作等等。
[0036]在本發(fā)明的實(shí)施例中,虛擬硬件組件對(duì)實(shí)際硬件組件的行為的模擬可以基于軟件編程來(lái)實(shí)現(xiàn)。因此,以軟件的方式可以靈活地實(shí)現(xiàn)虛擬硬件組件對(duì)實(shí)際硬件組件的行為的模擬。在一些實(shí)施例中,在一臺(tái)計(jì)算設(shè)備上,可以模擬出與一個(gè)實(shí)際硬件組件對(duì)應(yīng)的多個(gè)虛擬硬件組件。在另外的實(shí)施例中,還可以在一臺(tái)計(jì)算設(shè)備上分別模擬出與多個(gè)實(shí)際硬件組件對(duì)應(yīng)的多個(gè)虛擬硬件組件。注意到,在一臺(tái)計(jì)算設(shè)備上模擬的虛擬硬件組件的數(shù)量可以取決于實(shí)際的測(cè)試需求并且可以通過(guò)軟件編程靈活地實(shí)現(xiàn),本發(fā)明的范圍在此方面不受限制。
[0037]除了在計(jì)算設(shè)備的硬件模擬平臺(tái)上提供虛擬硬件組件之外,在進(jìn)一步的實(shí)施例中還可以提供與虛擬硬件組件相對(duì)應(yīng)的虛擬總線,從而使得虛擬硬件組件經(jīng)由虛擬總線與計(jì)算設(shè)備中的中央處理器和存儲(chǔ)器連接。這也是對(duì)硬件產(chǎn)品中實(shí)際硬件組件與中央處理器和存儲(chǔ)器之間的總線連接的模擬。通常各種硬件組件可以通過(guò)例如外設(shè)部件互連(Peripheral Component Interconnect,PCI)總線、PC1-Express 總線、集成電路間(Inter-1ntegrated Circuit,I2C)總線、或通用串行總線(Universal Serial Bus, USB)總線等而連接至硬件產(chǎn)品中的中央處理器和存儲(chǔ)器。因此,可以根據(jù)用于連接硬件組件的相應(yīng)總線的標(biāo)準(zhǔn),提供對(duì)應(yīng)的虛擬總線。在硬件模擬平臺(tái)中,虛擬硬件組件通過(guò)各自對(duì)應(yīng)的虛擬總線連接至中央處理器和存儲(chǔ)器。通過(guò)虛擬總線的連接,可以更好地模擬待測(cè)試的軟件將要被應(yīng)用到的硬件產(chǎn)品的整體環(huán)境。
[0038]在方法100的步驟S102中,根據(jù)至少一個(gè)虛擬硬件組件模擬的行為來(lái)測(cè)試待測(cè)試的軟件。
[0039]在本發(fā)明的實(shí)施例中,軟件的測(cè)試在虛擬硬件組件的基礎(chǔ)上完成。由于虛擬硬件組件可以模擬實(shí)際硬件組件的行為,根據(jù)這些行為可以調(diào)試軟件以發(fā)現(xiàn)軟件的錯(cuò)誤、驗(yàn)證軟件的功能、以及執(zhí)行其他涉及軟件測(cè)試的方面。具體應(yīng)該模擬哪些行為用于測(cè)試軟件可以取決于軟件開發(fā)人員的設(shè)計(jì),本發(fā)明的保護(hù)范圍在此方面不受限制。在一些示例中,硬件模擬平臺(tái)可以模擬相應(yīng)的實(shí)際硬件組件的盡可能多的行為以供軟件開發(fā)人員在軟件測(cè)試時(shí)進(jìn)行選擇。
[0040]在本發(fā)明的一個(gè)實(shí)施例中,虛擬硬件組件模擬的行為包括實(shí)際硬件組件的正常行為和出錯(cuò)行為中的至少一項(xiàng)。實(shí)際硬件組件的正常行為指的是該硬件組件在正常運(yùn)行的情況下將會(huì)做出的操作、響應(yīng)等行為。實(shí)際硬件組件的出錯(cuò)行為指的是該硬件組件在發(fā)生故障的情況下將會(huì)做出的操作、響應(yīng)等行為。在利用硬件開發(fā)部門完成的硬件工程板執(zhí)行的軟件測(cè)試中,通常僅能夠在硬件組件正常運(yùn)行的情況下測(cè)試軟件。然而,在本發(fā)明的實(shí)施例中,通過(guò)虛擬硬件組件來(lái)模擬實(shí)際硬件組件的行為,可以除了實(shí)際硬件組件的正常行為之外,還可以靈活地模擬出錯(cuò)行為以便測(cè)試軟件。因此,本發(fā)明中所提供的軟件測(cè)試過(guò)程可以有效地測(cè)試軟件的出錯(cuò)處理能力并且提高軟件的魯棒性。
[0041]在本發(fā)明的一個(gè)實(shí)施例中,如果在利用虛擬硬件組件執(zhí)行軟件測(cè)試的過(guò)程中發(fā)現(xiàn)當(dāng)前模擬的硬件組件可能存在的缺陷,例如硬件型號(hào)、功能選擇不適當(dāng)?shù)?,這些缺陷也可以被反饋給硬件開發(fā)部門,以便促進(jìn)硬件開發(fā)。
[0042]如以上所提及的,虛擬硬件組件對(duì)實(shí)際硬件組件的行為的模擬可以通過(guò)軟件編程來(lái)靈活地實(shí)現(xiàn)。因此,在一個(gè)計(jì)算設(shè)備上可以提供用于測(cè)試某個(gè)軟件的多個(gè)虛擬硬件組件、或者提供分別用于測(cè)試多個(gè)軟件的多個(gè)虛擬硬件組件。在這種情況下,可以根據(jù)多個(gè)虛擬硬件組件的行為來(lái)并行地測(cè)試(多個(gè))軟件。例如,可以利用多個(gè)同樣的虛擬硬件組件來(lái)并行地測(cè)試一個(gè)軟件的不同方面,或者可以并行地利用相應(yīng)的虛擬硬件組件來(lái)并行地測(cè)試多個(gè)軟件。軟件測(cè)試的并行執(zhí)行可以有效地縮短軟件測(cè)試的耗時(shí)。此外,軟件測(cè)試的并行執(zhí)行還可以減少對(duì)實(shí)際硬件(例如計(jì)算設(shè)備)的需要,從而減少了經(jīng)濟(jì)成本(例如,硬件購(gòu)買成本、硬件維護(hù)成本、硬件耗電成本等)。
[0043]如以上所提及的,與待測(cè)試軟件相關(guān)聯(lián)的硬件組件在一個(gè)實(shí)施例中還可以包括(PU和存儲(chǔ)器。由于CPU和存儲(chǔ)器物理上存在于提供虛擬硬件組件的計(jì)算設(shè)備中,如果在測(cè)試軟件的過(guò)程中,僅需要利用一個(gè)存儲(chǔ)器和/或一個(gè)處理器,則可以直接利用物理上存在于計(jì)算設(shè)備上的CPU和存儲(chǔ)器來(lái)執(zhí)行軟件測(cè)試。在一些實(shí)施例中,為了在一臺(tái)計(jì)算設(shè)備中并行地執(zhí)行軟件測(cè)試(例如,對(duì)軟件的不同功能和方面進(jìn)行測(cè)試、或者對(duì)不同軟件的并行測(cè)試),還可以CPU虛擬化為多個(gè)虛擬CPU以及將存儲(chǔ)器虛擬化為多個(gè)虛擬存儲(chǔ)器。
[0044]進(jìn)一步地,在一些情況下,在硬件開發(fā)的某個(gè)階段中可能已經(jīng)生產(chǎn)出有限數(shù)量的硬件工程板。這些硬件工程板可以具有正在開發(fā)的硬件產(chǎn)品所需的一個(gè)或多個(gè)硬件組件。在這種情況下,先前描述的提供虛擬硬件組件的計(jì)算設(shè)備可以是硬件工程板,其包括已經(jīng)開發(fā)的與待測(cè)試的軟件相關(guān)聯(lián)的實(shí)際硬件組件。也就是說(shuō),運(yùn)行硬件模擬平臺(tái)還可以被運(yùn)行在已經(jīng)開發(fā)的硬件工程板上,以將硬件工程板上的實(shí)際硬件組件虛擬化為多個(gè)虛擬硬件組件。軟件測(cè)試可以在多個(gè)虛擬硬件組件的基礎(chǔ)上被執(zhí)行。因此,有限數(shù)量的硬件工程板可以滿足軟件測(cè)試的需求。
[0045]圖2示出了根據(jù)本發(fā)明的實(shí)施例的用于軟件測(cè)試的硬件模擬平臺(tái)200的示意圖。該硬件模擬平臺(tái)200可以基于虛擬機(jī)架構(gòu),并且可以包括客戶機(jī)操作系統(tǒng)201、虛擬化工具202、主機(jī)操作系統(tǒng)203以及硬件板204。主機(jī)操作系統(tǒng)203和硬件板204是虛擬機(jī)架構(gòu)的基礎(chǔ)組成部分。虛擬化工具202提供虛擬硬件組件的實(shí)施。虛擬化工具202包括虛擬中央處理器202IvCPU和虛擬存儲(chǔ)器2022vMemory。虛擬化工具202還包括虛擬硬件組件子系統(tǒng)2023。虛擬硬件組件子系統(tǒng)2023提供一個(gè)或多個(gè)虛擬硬件組件,例如所示出的五個(gè)虛擬硬件組件,vBMC、vCMD、vSLiC、vPS和vLAN,這些虛擬硬件組件分別模擬實(shí)際硬件組件BMC、CMD、SLiC、PS和LAN的行為。被包括在虛擬化工具202中的虛擬總線子系統(tǒng)2024提供虛擬硬件組件子系統(tǒng)2023與虛擬處理器2021和虛擬存儲(chǔ)器2022的總線連接。虛擬總線子系統(tǒng)2024在一些示例中可以提供根據(jù)連接的虛擬硬件組件而提供相應(yīng)的虛擬總線,例如虛擬化的PCI總線、PCIE總線、I2C總線和USB總線等。硬件模擬平臺(tái)200中的客機(jī)操作系統(tǒng)201可以由軟件開發(fā)人員操作以執(zhí)行軟件測(cè)試,例如對(duì)于軟件應(yīng)用I至5的測(cè)試??梢岳锰摂M硬件組件vBMC、vCMD、vSLiC、vPS和vLAN模擬的行為分別來(lái)測(cè)試軟件應(yīng)用I至5。
[0046]注意,圖2中的硬件模擬平臺(tái)僅僅為了示例的目的而示出的,而不是對(duì)本發(fā)明范圍的限制。在某些情況下,可以根據(jù)具體情況而增加或者減少某些設(shè)備。例如,虛擬硬件組件子系統(tǒng)2023可以虛擬出比圖2中示出的更多或更少的虛擬硬件組件??蜋C(jī)操作系統(tǒng)201可以用于測(cè)試比圖2中示出的更多或更少的軟件應(yīng)用。
[0047]圖3示出了根據(jù)本發(fā)明的實(shí)施例的用于軟件測(cè)試的計(jì)算設(shè)備300的框圖。如圖3中所示,計(jì)算設(shè)備300包括虛擬硬件組件供應(yīng)單元301,被配置為提供至少一個(gè)虛擬硬件組件,每個(gè)虛擬硬件組件模擬與待測(cè)試的軟件相關(guān)聯(lián)的硬件組件的行為。該計(jì)算設(shè)備還包括軟件測(cè)試單元302,被配置為根據(jù)至少一個(gè)虛擬硬件組件模擬的行為來(lái)測(cè)試待測(cè)試的軟件。
[0048]在本發(fā)明的一個(gè)實(shí)施例中,計(jì)算設(shè)備300至少具有中央處理器和存儲(chǔ)器。
[0049]在本發(fā)明的一個(gè)實(shí)施例中,計(jì)算設(shè)備300還包括虛擬總線供應(yīng)單元,被配置為提供與至少一個(gè)虛擬硬件組件相對(duì)應(yīng)的虛擬總線,以使得至少一個(gè)虛擬硬件組件經(jīng)由虛擬總線與中央處理器和存儲(chǔ)器連接。
[0050]在本發(fā)明的一個(gè)實(shí)施例中,計(jì)算設(shè)備300包括已經(jīng)開發(fā)的與軟件相關(guān)聯(lián)的硬件組件。
[0051]在本發(fā)明的一個(gè)實(shí)施例中,虛擬硬件組件供應(yīng)單元301提供多個(gè)虛擬硬件組件。
[0052]在本發(fā)明的一個(gè)實(shí)施例中,軟件測(cè)試單元302進(jìn)一步被配置為根據(jù)多個(gè)虛擬硬件組件模擬的行為來(lái)并行地測(cè)試軟件。
[0053]在本發(fā)明的一個(gè)實(shí)施例中,模擬的硬件組件的行為包括硬件組件的正常行為和出錯(cuò)行為中的至少一項(xiàng)。
[0054]應(yīng)當(dāng)注意,為清晰起見(jiàn),圖3中沒(méi)有示出計(jì)算設(shè)備300所包括的可選單元或者子單元。上文所描述的所有特征和操作分別適用于計(jì)算設(shè)備300。而且,計(jì)算設(shè)備300中的單元或子單元的劃分不是限制性的而是示例性的,旨在從邏輯上描述其主要功能或操作。一個(gè)單元的功能可以由多個(gè)單元來(lái)實(shí)現(xiàn);反之,多個(gè)單元亦可由一個(gè)單元來(lái)實(shí)現(xiàn)。本發(fā)明的范圍在此方面不受限制。
[0055]而且,計(jì)算設(shè)備300所包含的單元可以利用各種方式來(lái)實(shí)現(xiàn),包括軟件、硬件、固件或其任意組合。例如,在某些實(shí)施方式中,計(jì)算設(shè)備300可以利用軟件和/或固件來(lái)實(shí)現(xiàn)。備選地或附加地,計(jì)算設(shè)備300可以部分地或者完全地基于硬件來(lái)實(shí)現(xiàn)。例如,計(jì)算設(shè)備300中的一個(gè)或多個(gè)單元可以實(shí)現(xiàn)為集成電路(IC)芯片、專用集成電路(ASIC)、片上系統(tǒng)(SOC)、現(xiàn)場(chǎng)可編程門陣列(FPGA),等等。本發(fā)明的范圍在此方面不受限制。
[0056]下面參考圖4,其示出了適于用來(lái)實(shí)踐本發(fā)明實(shí)施方式的計(jì)算機(jī)系統(tǒng)400的示意性框圖。例如,圖4所示的計(jì)算機(jī)系統(tǒng)400可以用于實(shí)現(xiàn)如上文描述的用于軟件測(cè)試的計(jì)算設(shè)備300的各個(gè)部件,也可以用于固化或?qū)崿F(xiàn)如上文描述的用于確定軟件測(cè)試的方法100的各個(gè)步驟。
[0057]如圖4所示,計(jì)算機(jī)系統(tǒng)可以包括..CPU (中央處理單元)401、RAM(隨機(jī)存取存儲(chǔ)器)402、ROM (只讀存儲(chǔ)器)403、系統(tǒng)總線404、硬盤控制器405、鍵盤控制器406、串行接口控制器407、并行接口控制器408、顯示控制器409、硬盤410、鍵盤411、串行外部設(shè)備412、并行外部設(shè)備413和顯示器414。在這些設(shè)備中,與系統(tǒng)總線404耦合的有CPU 401、RAM402、ROM 403、硬盤控制器405、鍵盤控制器406、串行控制器407、并行控制器408和顯示控制器409。硬盤410與硬盤控制器405耦合,鍵盤411與鍵盤控制器406耦合,串行外部設(shè)備412與串行接口控制器407耦合,并行外部設(shè)備413與并行接口控制器408耦合,以及顯示器414與顯示控制器409耦合。應(yīng)當(dāng)理解,圖4所述的結(jié)構(gòu)框圖僅僅為了示例的目的而示出的,而不是對(duì)本發(fā)明范圍的限制。在某些情況下,可以根據(jù)具體情況而增加或者減少某些設(shè)備。
[0058]如上所述,計(jì)算設(shè)備300可以實(shí)現(xiàn)為純硬件,例如芯片、ASIC、S0C等。這些硬件可以集成在計(jì)算機(jī)系統(tǒng)400中。此外,本發(fā)明的實(shí)施方式也可以通過(guò)計(jì)算機(jī)程序產(chǎn)品的形式實(shí)現(xiàn)。例如,參考圖1描述的方法100可以通過(guò)計(jì)算機(jī)程序產(chǎn)品來(lái)實(shí)現(xiàn)。該計(jì)算機(jī)程序產(chǎn)品可以存儲(chǔ)在例如圖4所示的RAM 404,ROM 404、硬盤410和/或任何適當(dāng)?shù)拇鎯?chǔ)介質(zhì)中,或者通過(guò)網(wǎng)絡(luò)從適當(dāng)?shù)奈恢孟螺d到計(jì)算機(jī)系統(tǒng)400上。計(jì)算機(jī)程序產(chǎn)品可以包括計(jì)算機(jī)代碼部分,其包括可由適當(dāng)?shù)奶幚碓O(shè)備(例如,圖4中示出的CPU 401)執(zhí)行的程序指令。所述程序指令至少可以包括用于實(shí)現(xiàn)方法100的步驟的指令。這些指令例如包括:用于確定所述固件所處的上下文環(huán)境的指令;用于確定所述固件所處的硬件環(huán)境的指令;以及用于至少部分地基于所述上下文環(huán)境和所述硬件環(huán)境,測(cè)試所述固件的指令。
[0059]應(yīng)當(dāng)注意,本發(fā)明的實(shí)施方式可以通過(guò)硬件、軟件或者軟件和硬件的結(jié)合來(lái)實(shí)現(xiàn)。硬件部分可以利用專用邏輯來(lái)實(shí)現(xiàn);軟件部分可以存儲(chǔ)在存儲(chǔ)器中,由適當(dāng)?shù)闹噶顖?zhí)行系統(tǒng),例如微處理器或者專用設(shè)計(jì)硬件來(lái)執(zhí)行。本領(lǐng)域的普通技術(shù)人員可以理解上述的設(shè)備和方法可以使用計(jì)算機(jī)可執(zhí)行指令和/或包含在處理器控制代碼中來(lái)實(shí)現(xiàn),例如在諸如磁盤、CD或DVD-ROM的載體介質(zhì)、諸如只讀存儲(chǔ)器(固件)的可編程的存儲(chǔ)器或者諸如光學(xué)或電子信號(hào)載體的數(shù)據(jù)載體上提供了這樣的代碼。本發(fā)明的設(shè)備及其模塊可以由諸如超大規(guī)模集成電路或門陣列、諸如邏輯芯片、晶體管等的半導(dǎo)體、或者諸如現(xiàn)場(chǎng)可編程門陣列、可編程邏輯設(shè)備等的可編程硬件設(shè)備的硬件電路實(shí)現(xiàn),也可以用由各種類型的處理器執(zhí)行的軟件實(shí)現(xiàn),也可以由上述硬件電路和軟件的結(jié)合例如固件來(lái)實(shí)現(xiàn)。
[0060]應(yīng)當(dāng)注意,盡管在上文詳細(xì)描述中提及了設(shè)備的若干裝置或子裝置,但是這種劃分僅僅并非強(qiáng)制性的。實(shí)際上,根據(jù)本發(fā)明的實(shí)施方式,上文描述的兩個(gè)或更多裝置的特征和功能可以在一個(gè)裝置中具體化。反之,上文描述的一個(gè)裝置的特征和功能可以進(jìn)一步劃分為由多個(gè)裝置來(lái)具體化。
[0061]此外,盡管在附圖中以特定順序描述了本發(fā)明方法的操作,但是,這并非要求或者暗示必須按照該特定順序來(lái)執(zhí)行這些操作,或是必須執(zhí)行全部所示的操作才能實(shí)現(xiàn)期望的結(jié)果。相反,流程圖中描繪的步驟可以改變執(zhí)行順序。附加地或備選地,可以省略某些步驟,將多個(gè)步驟合并為一個(gè)步驟執(zhí)行,和/或?qū)⒁粋€(gè)步驟分解為多個(gè)步驟執(zhí)行。
[0062]雖然已經(jīng)參考若干【具體實(shí)施方式】描述了本發(fā)明,但是應(yīng)該理解,本發(fā)明并不限于所公開的【具體實(shí)施方式】。本發(fā)明旨在涵蓋所附權(quán)利要求的精神和范圍內(nèi)所包括的各種修改和等同布置。所附權(quán)利要求的范圍符合最寬泛的解釋,從而包含所有這樣的修改及等同結(jié)構(gòu)和功能。
【主權(quán)項(xiàng)】
1.一種用于軟件測(cè)試的方法,包括: 通過(guò)計(jì)算設(shè)備提供至少一個(gè)虛擬硬件組件,每個(gè)虛擬硬件組件模擬與待測(cè)試的軟件相關(guān)聯(lián)的硬件組件的行為;以及 根據(jù)所述至少一個(gè)虛擬硬件組件模擬的行為來(lái)測(cè)試所述待測(cè)試的軟件。2.根據(jù)權(quán)利要求1所述的方法,其中所述計(jì)算設(shè)備至少具有中央處理器和存儲(chǔ)器。3.根據(jù)權(quán)利要求2所述的方法,進(jìn)一步包括: 通過(guò)所述計(jì)算設(shè)備提供與所述至少一個(gè)虛擬硬件組件相對(duì)應(yīng)的虛擬總線,以使得所述至少一個(gè)虛擬硬件組件經(jīng)由所述虛擬總線與所述中央處理器和所述存儲(chǔ)器連接。4.根據(jù)權(quán)利要求1所述的方法,其中所述計(jì)算設(shè)備包括已經(jīng)開發(fā)的與所述軟件相關(guān)聯(lián)的所述硬件組件。5.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其中通過(guò)所述計(jì)算設(shè)備提供多個(gè)虛擬硬件組件;以及 其中根據(jù)所述虛擬硬件組件模擬的行為來(lái)測(cè)試所述軟件包括: 根據(jù)所述多個(gè)虛擬硬件組件模擬的行為來(lái)并行地測(cè)試所述軟件。6.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其中模擬的所述硬件組件的行為包括所述硬件組件的正常行為和出錯(cuò)行為中的至少一項(xiàng)。7.一種用于軟件測(cè)試的計(jì)算設(shè)備,包括: 虛擬硬件組件供應(yīng)單元,被配置為提供至少一個(gè)虛擬硬件組件,每個(gè)虛擬硬件組件模擬與待測(cè)試的軟件相關(guān)聯(lián)的硬件組件的行為;以及 軟件測(cè)試單元,被配置為根據(jù)所述至少一個(gè)虛擬硬件組件模擬的行為來(lái)測(cè)試所述待測(cè)試的軟件。8.根據(jù)權(quán)利要求7所述的計(jì)算設(shè)備,其中所述計(jì)算設(shè)備至少具有中央處理器和存儲(chǔ)器。9.根據(jù)權(quán)利要求8所述的計(jì)算設(shè)備,進(jìn)一步包括: 虛擬總線供應(yīng)單元,被配置為提供與所述至少一個(gè)虛擬硬件組件相對(duì)應(yīng)的虛擬總線,以使得所述至少一個(gè)虛擬硬件組件經(jīng)由所述虛擬總線與所述中央處理器和所述存儲(chǔ)器連接。10.根據(jù)權(quán)利要求7所述的計(jì)算設(shè)備,其中所述計(jì)算設(shè)備包括已經(jīng)開發(fā)的與所述軟件相關(guān)聯(lián)的所述硬件組件。11.根據(jù)權(quán)利要求7至10中任一項(xiàng)所述的計(jì)算設(shè)備,其中所述虛擬硬件組件供應(yīng)單元提供多個(gè)虛擬硬件組件;以及 其中所述軟件測(cè)試單元進(jìn)一步被配置為根據(jù)所述多個(gè)虛擬硬件組件模擬的行為來(lái)并行地測(cè)試所述軟件。12.根據(jù)權(quán)利要求7至10中任一項(xiàng)所述的計(jì)算設(shè)備,其中模擬的所述硬件組件的行為包括所述硬件組件的正常行為和出錯(cuò)行為中的至少一項(xiàng)。
【文檔編號(hào)】G06F11/36GK105893234SQ201410854536
【公開日】2016年8月24日
【申請(qǐng)日】2014年12月30日
【發(fā)明人】夏國(guó)武, 李 浩, 王霖, 王超, 王佳銀, 田力, 楊曉東, 錢偉偉
【申請(qǐng)人】伊姆西公司