專利名稱:系統(tǒng)測(cè)試設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及系統(tǒng)測(cè)試設(shè)備,并更特別涉及用于使用包括關(guān)于系統(tǒng)的執(zhí)行信息的進(jìn)程控制塊,實(shí)時(shí)收集關(guān)于系統(tǒng)測(cè)試的信息的系統(tǒng)測(cè)試設(shè)備。
背景技術(shù):
在包括各種軟件和硬件部分的嵌入式系統(tǒng)中,在系統(tǒng)運(yùn)行的環(huán)境中互操作性很重要。因此,不是包括軟件的用于測(cè)試的虛擬數(shù)據(jù)而是使用在系統(tǒng)實(shí)際運(yùn)行的實(shí)踐環(huán)境中獲得的實(shí)際數(shù)據(jù)的操作也很重要。如果想要測(cè)試系統(tǒng),則需要這樣一種方案,其通過使用實(shí)際運(yùn)行數(shù)據(jù)執(zhí)行系統(tǒng)測(cè)試,從而真正有效地檢測(cè)潛在缺陷或系統(tǒng)實(shí)際運(yùn)行時(shí)發(fā)生的運(yùn)行缺陷。此外,為了獨(dú)立地測(cè)試形成系統(tǒng)的軟件部分,需要許多測(cè)試資源和成本,這是因?yàn)楸仨毷褂糜糜谔娲鷮?duì)應(yīng)部件的另外設(shè)備。因此,需要這樣一種測(cè)試設(shè)備,其可以實(shí)時(shí)測(cè)試包括在系統(tǒng)中的全部進(jìn)程,并使存儲(chǔ)器空間開銷或執(zhí)行對(duì)應(yīng)代碼所致的性能開銷最小化。
發(fā)明內(nèi)容
[技術(shù)問題]本發(fā)明的實(shí)施例旨在提供一種系統(tǒng)測(cè)試設(shè)備,該系統(tǒng)測(cè)試設(shè)備通過使用掛鉤(hooking)技術(shù)對(duì)系統(tǒng)執(zhí)行存儲(chǔ)器錯(cuò)誤測(cè)試、性能測(cè)試和用于進(jìn)程間通信的測(cè)試,能夠測(cè)試實(shí)際運(yùn)行的系統(tǒng),即使在系統(tǒng)的實(shí)時(shí)狀況中也能執(zhí)行動(dòng)態(tài)測(cè)試,并且,能夠檢查在系統(tǒng)運(yùn)行時(shí)發(fā)生的缺陷。[技術(shù)解決方案]—方面,本發(fā)明涉及一種系統(tǒng)測(cè)試設(shè)備。該系統(tǒng)測(cè)試設(shè)備包括插入模塊,其配置為使測(cè)試代理(test agent)插入至進(jìn)程控制塊;掛鉤(hooking)模塊;其配置為當(dāng)發(fā)生涉及測(cè)試目標(biāo)的事件(event)時(shí),使用測(cè)試代理使測(cè)試目標(biāo)掛鉤到測(cè)試代碼;掃描模塊,其配置為當(dāng)測(cè)試目標(biāo)掛鉤到測(cè)試代碼時(shí),收集與已發(fā)生其中涉及測(cè)試目標(biāo)的事件的進(jìn)程有關(guān)的測(cè)試信息;以及記錄模塊(logging module),其配置為存儲(chǔ)由掃描模塊收集的測(cè)試信息。另一方面,本發(fā)明涉及一種系統(tǒng)測(cè)試系統(tǒng)。該系統(tǒng)測(cè)試系統(tǒng)包括輸入設(shè)備,其配置為接收用于驅(qū)動(dòng)系統(tǒng)的信號(hào),系統(tǒng)測(cè)試設(shè)備,其配置為在系統(tǒng)響應(yīng)于通過輸入設(shè)備接收的信號(hào)運(yùn)行時(shí),將測(cè)試代理插入進(jìn)程控制塊,使用測(cè)試代理將測(cè)試目標(biāo)掛鉤到測(cè)試代碼,并從多個(gè)進(jìn)程中收集與已發(fā)生涉及測(cè)試目標(biāo)的事件的進(jìn)程有關(guān)的測(cè)試信息,以及分析設(shè)備,其配置為分析由系統(tǒng)測(cè)試設(shè)備收集的測(cè)試信息。[發(fā)明效果]根據(jù)本發(fā)明,因?yàn)閷⒉皇窃创a的實(shí)際運(yùn)行代碼作為目標(biāo),所以可以在系統(tǒng)實(shí)際運(yùn)行時(shí)執(zhí)行用于系統(tǒng)的測(cè)試。因此,可以在系統(tǒng)實(shí)際運(yùn)行時(shí)測(cè)試存儲(chǔ)器錯(cuò)誤、系統(tǒng)性能和進(jìn)程間通信。此外,因?yàn)樵跊]有將個(gè)別代碼插入每個(gè)進(jìn)程的情況下使用利用包括在進(jìn)程控制塊中的信息的掛鉤方法,所以能夠使系統(tǒng)開銷最小化,并且能夠在不中斷系統(tǒng)的情況下執(zhí)行用于系統(tǒng)的測(cè)試。此外,盡管進(jìn)程之間的共享資源受限制,但能夠?qū)崟r(shí)收集關(guān)于測(cè)試的信息,并且能夠基于該信息檢查測(cè)試的結(jié)果。
圖I是示出使用根據(jù)本發(fā)明的實(shí)施例的系統(tǒng)測(cè)試設(shè)備的整個(gè)系統(tǒng)的視圖;
圖2示出根據(jù)本發(fā)明的實(shí)施例的系統(tǒng)測(cè)試設(shè)備的構(gòu)造;圖3是示出根據(jù)本發(fā)明的實(shí)施例的系統(tǒng)測(cè)試方法的流程圖;并且圖4a至圖4c是示出根據(jù)本發(fā)明的實(shí)施例的存儲(chǔ)器測(cè)試方法、性能測(cè)試方法和測(cè)試進(jìn)程間通信的方法的流程圖。
具體實(shí)施例方式本發(fā)明涉及在系統(tǒng)實(shí)際運(yùn)行的環(huán)境中的測(cè)試并可以在從系統(tǒng)的起動(dòng)到系統(tǒng)的結(jié)束的動(dòng)態(tài)狀況下測(cè)試系統(tǒng)的設(shè)備和方法。本發(fā)明可以使用掛鉤方案,對(duì)在系統(tǒng)內(nèi)運(yùn)行的全部進(jìn)程執(zhí)行測(cè)試。圖I是示出使用根據(jù)本發(fā)明的實(shí)施例的系統(tǒng)測(cè)試設(shè)備的整個(gè)系統(tǒng)的視圖。如圖I所不,整個(gè)系統(tǒng)包括系統(tǒng)測(cè)試設(shè)備100、系統(tǒng)200、輸入設(shè)備300、分析設(shè)備400和輸出設(shè)備500。系統(tǒng)測(cè)試設(shè)備100配置為測(cè)試系統(tǒng)200的存儲(chǔ)器缺陷、系統(tǒng)200的性能,或包括在系統(tǒng)200中的兩個(gè)或更多進(jìn)程之間的通信。系統(tǒng)測(cè)試設(shè)備100,如圖I所示,可以與系統(tǒng)200獨(dú)立地進(jìn)行設(shè)置,或可以以通信測(cè)試設(shè)備100包括在系統(tǒng)200中的形式實(shí)施。系統(tǒng)200是系統(tǒng)測(cè)試設(shè)備100的測(cè)試目標(biāo)。系統(tǒng)200是其中集成各種軟件和硬件部分的嵌入式系統(tǒng)。該系統(tǒng),即系統(tǒng)測(cè)試設(shè)備100的測(cè)試目標(biāo),指代包括多個(gè)進(jìn)程的一個(gè)或更多系統(tǒng)。因此,多個(gè)系統(tǒng)中的存儲(chǔ)器缺陷或系統(tǒng)性能可以成為系統(tǒng)測(cè)試設(shè)備100的測(cè)試目標(biāo),并且不僅是包括在一個(gè)系統(tǒng)中的多個(gè)進(jìn)程之間的通信,而且包括在不同系統(tǒng)中的進(jìn)程之間的通信也可以成為系統(tǒng)測(cè)試設(shè)備100的測(cè)試目標(biāo)。系統(tǒng)200可以包括多個(gè)進(jìn)程相互執(zhí)行通信的全部的嵌入式系統(tǒng)和計(jì)算機(jī)系統(tǒng),其可以是例如信息娛樂(infotainment)系統(tǒng)、多媒體系統(tǒng)或有線/無線網(wǎng)絡(luò)系統(tǒng)。例如,如果系統(tǒng)200是車輛信息娛樂系統(tǒng),則系統(tǒng)200以音頻視頻導(dǎo)航(AVN =AudioVideo Navigation)功能為基礎(chǔ),可以包括地面數(shù)字多媒體廣播(TDMB :TerestrialDigitalMultimedia Broadcasting)、傳輸協(xié)議專家組(TPEG !Transport ProtocolExpertGroup)、IPOD、USB、藍(lán)牙(Bluetooth)、語音識(shí)別(VR Voice Recognition)、停車誘導(dǎo)系統(tǒng)(PGS Parking Guidance System)、無線電數(shù)據(jù)系統(tǒng)(RDS :Radio Data System)、車輛 CDC(VO)C :Vehicle CDC)、駕駛員信息系統(tǒng)(DIS :Driver Information System)、后座娛樂系統(tǒng)(RSE Rear Seat Entertainment)、混合動(dòng)力汽車(HEV Hybrid Electric Vehicle)顯不器(display),以及空調(diào)單兀(AHU AirHandling Unit)顯不器(display)。輸入設(shè)備300是用于驅(qū)動(dòng)系統(tǒng)測(cè)試設(shè)備100和系統(tǒng)200的用戶輸入設(shè)備。輸入設(shè)備300可以具體化為鍵盤或觸摸屏。響應(yīng)于通過輸入設(shè)備300接收的信號(hào),驅(qū)動(dòng)系統(tǒng)200。此外,系統(tǒng)測(cè)試設(shè)備100響應(yīng)于通過輸入設(shè)備300接收的信號(hào),執(zhí)行用于系統(tǒng)測(cè)試的操作。分析設(shè)備400分析由系統(tǒng)測(cè)試設(shè)備100收集的測(cè)試信息,并檢查系統(tǒng)200的測(cè)試結(jié)果。系統(tǒng)測(cè)試設(shè)備100可以與分析設(shè)備400 —起集成為一個(gè)設(shè)備。在此情況下,系統(tǒng)測(cè)試設(shè)備100可以通過收集測(cè)試信息并同時(shí)分析已收集測(cè)試信息,來檢查測(cè)試的結(jié)果。輸出設(shè)備500以圖像或語音的形式輸出由系統(tǒng)測(cè)試設(shè)備100收集的測(cè)試信息或由分析設(shè)備400分析的測(cè)試結(jié)果。使用輸出設(shè)備500的用戶可以檢查系統(tǒng)200的測(cè)試結(jié)果。圖2示出根據(jù)本發(fā)明的實(shí)施例的系統(tǒng)測(cè)試設(shè)備100的構(gòu)造。如圖2所示,系統(tǒng)測(cè)試設(shè)備100包括插入模塊101、掛鉤模塊(hooking module)103、掃描模塊105和記錄模塊107。在圖2中,假設(shè)連接到系統(tǒng)測(cè)試設(shè)備100的系統(tǒng)200,即測(cè)試目標(biāo),是包括兩個(gè)或更多進(jìn)程的單個(gè)系統(tǒng)。
系統(tǒng)200包括進(jìn)程控制塊201。進(jìn)程控制塊201包括關(guān)于包括在系統(tǒng)200中的全部進(jìn)程的運(yùn)行時(shí)間(rum-time)執(zhí)行信息。運(yùn)行時(shí)間執(zhí)行信息是指當(dāng)系統(tǒng)200運(yùn)轉(zhuǎn)時(shí)全部進(jìn)程之間的執(zhí)行信息。因此,進(jìn)程控制塊201可以包括對(duì)包括在系統(tǒng)200中的全部進(jìn)程的資源使用的現(xiàn)狀、進(jìn)程狀態(tài)、優(yōu)先級(jí)順序,以及函數(shù)表。更具體地,進(jìn)程控制塊201可以包括進(jìn)程ID、進(jìn)程名稱、當(dāng)前進(jìn)程、當(dāng)前線程、正在在系統(tǒng)200中執(zhí)行的進(jìn)程的列表、模塊的列表、系統(tǒng)頁大小(system page size)、可用物理存儲(chǔ)器大小、CPU使用率、正在使用的資源的列表、正在請(qǐng)求的I/O設(shè)備狀態(tài)、關(guān)于打開文件(opened file)的信息,以及關(guān)于寄存器的信息。因此,在全部系統(tǒng)中包括上述的信息的數(shù)據(jù)結(jié)構(gòu)或設(shè)備對(duì)應(yīng)于本發(fā)明的進(jìn)程控制塊。插入模塊101將測(cè)試代理插入進(jìn)程控制塊201。測(cè)試代理可以基于包括在進(jìn)程控制塊201中的信息將測(cè)試目標(biāo)掛鉤到測(cè)試代碼,并收集測(cè)試信息。測(cè)試代碼掛鉤到的測(cè)試位置可以根據(jù)缺陷類型來定義。在本發(fā)明中,掛鉤到測(cè)試代碼的測(cè)試目標(biāo)可以是存儲(chǔ)器區(qū)域即測(cè)試目標(biāo)、包括關(guān)于系統(tǒng)性能的信息的代碼或生成通信相關(guān)事件的代碼。在本發(fā)明中,系統(tǒng)200在測(cè)試代理被插入至進(jìn)程控制塊201之前正常運(yùn)轉(zhuǎn)(operate)。系統(tǒng)200在不受系統(tǒng)測(cè)試設(shè)備100影響的情況下正常運(yùn)轉(zhuǎn)。此外,插入模塊101可以檢查正在系統(tǒng)200中運(yùn)行(operate)的進(jìn)程的列表,并基于檢查的列表將測(cè)試代理插入進(jìn)程控制塊201。掛鉤模塊103使用由插入模塊101插入的測(cè)試代理將測(cè)試目標(biāo)掛鉤到測(cè)試代碼。測(cè)試代碼根據(jù)有待測(cè)試的目標(biāo)和缺陷類型而改變。即,測(cè)試代碼根據(jù)存儲(chǔ)器缺陷測(cè)試、性能測(cè)試和通信測(cè)試而不同。即使在通信測(cè)試中,測(cè)試代碼也可以根據(jù)有待測(cè)試的缺陷類型而不同。此外,掛鉤模塊103可以改變測(cè)試代碼被掛鉤到的測(cè)試位置。術(shù)語“掛鉤到測(cè)試代碼”是指在涉及測(cè)試目標(biāo)的事件在正在運(yùn)行(operate)的系統(tǒng)200內(nèi)發(fā)生時(shí),被插入的測(cè)試代理將OS的進(jìn)程控制塊掛鉤,從而執(zhí)行包括原始代碼操作的測(cè)試代碼。掛鉤模塊103可以基于包括在進(jìn)程控制塊中的信息檢查涉及測(cè)試目標(biāo)的事件是否發(fā)生。掃描模塊105在測(cè)試代碼被掛鉤時(shí),收集與已發(fā)生涉及測(cè)試目標(biāo)的事件的進(jìn)程有關(guān)的測(cè)試信息。這里,測(cè)試信息可以不僅包括關(guān)于已產(chǎn)生事件的信息,而且包括與根據(jù)測(cè)試代碼的掛鉤新近發(fā)生的事件有關(guān)的信息。已收集測(cè)試信息根據(jù)測(cè)試步驟、測(cè)試目標(biāo)和有待測(cè)試的缺陷類型而不同。因此,掃描模塊105收集關(guān)于分析系統(tǒng)測(cè)試結(jié)果所需的系統(tǒng)動(dòng)態(tài)狀態(tài)的信息,例如函數(shù)參數(shù)和返回值、性能測(cè)量值,以及共享資源使用列表。記錄模塊107在存儲(chǔ)空間中存儲(chǔ)由掃描模塊105收集的測(cè)試信息。存儲(chǔ)空間可以包括在記錄模塊107中,或可以體現(xiàn)為不同于記錄模塊107的裝置。圖I的分析設(shè)備400可以分析由掃描模塊105收集的測(cè)試信息,或由記錄模塊107存儲(chǔ)的測(cè)試信息。圖3是示出根據(jù)本發(fā)明的實(shí)施例的系統(tǒng)測(cè)試方法的流程圖。如圖3所示,在步驟S110,測(cè)試代理被插入至作為測(cè)試目標(biāo)的系統(tǒng)200的進(jìn)程控制塊201。系統(tǒng)200在測(cè)試代理被插入至進(jìn)程控制塊201之前正常運(yùn)轉(zhuǎn)。接下來,在涉及測(cè)試目標(biāo)的事件發(fā)生時(shí),在步驟S120,被插入的測(cè)試代理將測(cè)試目標(biāo)掛鉤到測(cè)試代碼。在測(cè)試目標(biāo)掛鉤到測(cè)試代碼時(shí),測(cè)試代碼可以代替已發(fā)生事件的進(jìn)程, 被執(zhí)行。在測(cè)試目標(biāo)掛鉤到測(cè)試代碼時(shí),在步驟S130,收集與發(fā)生涉及測(cè)試目標(biāo)的事件的進(jìn)程有關(guān)的測(cè)試信息。在步驟S140,存儲(chǔ)已收集的測(cè)試信息。這里,測(cè)試信息可以僅在測(cè)試目標(biāo)掛鉤到測(cè)試代碼時(shí)收集,或測(cè)試信息也可以在測(cè)試目標(biāo)掛鉤到測(cè)試代碼時(shí)和在測(cè)試目標(biāo)掛鉤到測(cè)試代碼之后,系統(tǒng)運(yùn)轉(zhuǎn)時(shí)收集。圖4a到圖4c是示出根據(jù)本發(fā)明的實(shí)施例的存儲(chǔ)器測(cè)試方法、性能測(cè)試方法和測(cè)試進(jìn)程間通信的方法的流程圖。圖4a示出存儲(chǔ)器缺陷測(cè)試的系統(tǒng)測(cè)試方法。首先,在步驟S150定義缺陷模型。缺陷模型是指根據(jù)缺陷類型有待檢測(cè)的存儲(chǔ)器的位置和用于發(fā)現(xiàn)和修復(fù)缺陷的測(cè)試信息。在系統(tǒng)200正常運(yùn)行時(shí),可以根據(jù)缺陷模型生成能收集測(cè)試信息的測(cè)試代碼。接下來,在步驟S151測(cè)試代理被插入至系統(tǒng)200的進(jìn)程控制塊201。測(cè)試代理可以被插入至在系統(tǒng)200中運(yùn)行的進(jìn)程的列表中的至少一個(gè)。接下來,在步驟S152,掛鉤模塊103基于缺陷模型和包括在進(jìn)程控制塊201中的信息鑒別有待掛鉤的存儲(chǔ)器區(qū)域,并將測(cè)試代碼掛鉤到已鑒別的存儲(chǔ)器區(qū)域。如果鑒別存儲(chǔ)器區(qū)域的結(jié)果,測(cè)試位置是系統(tǒng)(SYSTEM)應(yīng)用程序進(jìn)程接口(API Application ProcessInterface)函數(shù),則掛鉤模塊103將進(jìn)程控制塊201的API集(API set)鑒別為掛鉤區(qū)域。如果鑒別存儲(chǔ)器區(qū)域的結(jié)果,測(cè)試位置是動(dòng)態(tài)鏈接庫(DLL Dynamic Linking Library)輸出(export)函數(shù),貝U掛鉤模塊103將進(jìn)程控制塊201的輸入地址表(IAT Import AddressTable)鑒別為掛鉤區(qū)域。在其它情況下,掛鉤模塊103將進(jìn)程控制塊201的代碼空間鑒別為掛鉤區(qū)域。在圖4a中,術(shù)語“掛鉤到測(cè)試代碼”是指當(dāng)在系統(tǒng)200內(nèi),在存儲(chǔ)器即測(cè)試目標(biāo)的位置發(fā)生對(duì)存儲(chǔ)器的事件例如寫入、讀取或訪問時(shí),已插入的測(cè)試代理將OS的進(jìn)程控制塊掛鉤,以執(zhí)行包括原始代碼操作的測(cè)試代碼。接下來,在步驟S153,收集關(guān)于作為測(cè)試目標(biāo)的存儲(chǔ)器的狀態(tài)的信息。例如,可以收集鑒別缺陷的原因所需的程序執(zhí)行信息、鑒別缺陷的位置所需的進(jìn)程內(nèi)容信息,以及分析存儲(chǔ)器性能所需的系統(tǒng)狀態(tài)信息。在步驟S153收集的測(cè)試信息在步驟S154存儲(chǔ)。圖4b示出用于執(zhí)行性能測(cè)試的系統(tǒng)測(cè)試方法。在根據(jù)本發(fā)明的系統(tǒng)測(cè)試方法中,為了分析性能瓶頸及其原因,可以掛鉤源自進(jìn)程控制塊201的數(shù)據(jù)中的系統(tǒng)執(zhí)行信息例如頁面錯(cuò)誤率和處理器使用率,并且可以基于掛鉤的結(jié)果分析系統(tǒng)性能。這里,術(shù)語“性能”是指系統(tǒng)或部件在給定系統(tǒng)的狀況下執(zhí)行功能的程度。性能測(cè)試是關(guān)于具體性能需求是否滿足系統(tǒng)的評(píng)估??梢酝ㄟ^性能測(cè)試來分析性能瓶頸及其原因,并且可以通過解決性能瓶頸及其原因來改善系統(tǒng)性能。系統(tǒng)的性能瓶頸是由于受到限制的資源例如存儲(chǔ)器、I/O設(shè)備和網(wǎng)絡(luò)的沖突,系統(tǒng)性能惡化的現(xiàn)象。系統(tǒng)性能瓶頸可以是各種各樣的,例如資源的缺乏、共享資源的沖突、資源的獨(dú)占、資源的錯(cuò)誤配置,以及資源的錯(cuò)誤操作。首先,在步驟S160定義缺陷模型。缺陷模型是指根據(jù)缺陷類型有待測(cè)試的性能瓶頸的位置和表示確定性能瓶頸的系統(tǒng)狀態(tài)的測(cè)試信息。在系統(tǒng)200正常運(yùn)轉(zhuǎn)時(shí),可以根據(jù)已定義的缺陷模型生成能收集測(cè)試信息的測(cè)試代碼。接下來,在步驟S161插入模塊101將測(cè)試代理插入進(jìn)程控制塊201。插入模塊101可以檢查在系統(tǒng)200中運(yùn)行的進(jìn)程的列表,并基于已檢測(cè)的列表將測(cè)試代理插入進(jìn)程控制塊201。即,涉及當(dāng)前進(jìn)程的進(jìn)程控制塊201的基址(base address)在具體存儲(chǔ)器空間中管理,或根據(jù)環(huán)境作為先前固定的地址來管理。因此,可以預(yù)知關(guān)于涉及當(dāng)前進(jìn)程的進(jìn)程控制塊201的信息。在步驟S162掛鉤模塊103將測(cè)試目標(biāo)掛鉤到測(cè)試代碼。在測(cè)試目標(biāo)掛鉤到測(cè)試代碼時(shí),在步驟S163掃描模塊105收集關(guān)于系統(tǒng)性能的信息。例如,可以使用計(jì)時(shí)器中斷,并且可以以預(yù)定時(shí)間間隔(例如I秒或100毫秒)測(cè)量性能數(shù)據(jù)。此外,為了不僅對(duì)每個(gè)系統(tǒng)而且對(duì)每個(gè)進(jìn)程或線程分析系統(tǒng)性能,可以一邊使進(jìn)程控制塊201的進(jìn)程和線程列表循環(huán),一邊測(cè)量性能信息。為了精確跟蹤系統(tǒng)性能瓶頸所發(fā)生的位置,掃描模塊105可以對(duì)每個(gè)線程存儲(chǔ)調(diào)用棧(Call-stack)信息。對(duì)每個(gè)監(jiān)控被測(cè)量的信息如下。進(jìn)程控制塊201的性能信息可以包括處理器使用率、存儲(chǔ)器使用率、頁面錯(cuò)誤、進(jìn)程內(nèi)容信息、進(jìn)程調(diào)用棧信息、進(jìn)程堆(process heap)使用率、進(jìn)程狀態(tài)以及進(jìn)程優(yōu)先級(jí)中的一個(gè)或更多。進(jìn)程控制塊201的進(jìn)程的性能信息可以包括ID、進(jìn)程狀態(tài)、進(jìn)程優(yōu)先級(jí)、堆(heap)使用率、進(jìn)程的運(yùn)行時(shí)間、用戶時(shí)間以及內(nèi)核時(shí)間中的一個(gè)或更多。此外,進(jìn)程控制塊201的線程的性能信息可以包括ID、運(yùn)行狀態(tài)、基本優(yōu)先級(jí)、當(dāng)前優(yōu)先級(jí)、用戶時(shí)間、內(nèi)核時(shí)間,以及調(diào)用棧信息中的一個(gè)或更多。接下來,在步驟S164,記錄模塊107在存儲(chǔ)空間中存儲(chǔ)已收集的測(cè)試信息。在用于執(zhí)行性能測(cè)試的系統(tǒng)測(cè)試方法中,可以基于頁面錯(cuò)誤(pagefault)確定存儲(chǔ)器瓶頸。例如,如果頁面錯(cuò)誤為高,則其可能是存儲(chǔ)器瓶頸。頁面錯(cuò)誤是程序嘗試訪問在自己的地址空間中存在但現(xiàn)在不在系統(tǒng)存儲(chǔ)器中的數(shù)據(jù)或代碼時(shí)所發(fā)生的現(xiàn)象。在發(fā)生頁面錯(cuò)誤時(shí),OS將對(duì)應(yīng)數(shù)據(jù)提取到存儲(chǔ)器,使程序繼續(xù)運(yùn)行,如同頁面錯(cuò)誤沒有發(fā)生。由于OS對(duì)頁面錯(cuò)誤的異常處理,應(yīng)用程序執(zhí)行處理的時(shí)間被延遲,并且整體系統(tǒng)性能受影響。此外,在根據(jù)本發(fā)明的系統(tǒng)測(cè)試方法中,可以基于存儲(chǔ)器使用率確定性能瓶頸。系統(tǒng)的存儲(chǔ)器可以被分為物理存儲(chǔ)器使用率、虛擬存儲(chǔ)器使用率和對(duì)每個(gè)進(jìn)程的堆存儲(chǔ)器使用率。在根據(jù)本發(fā)明的系統(tǒng)測(cè)試方法中,基于存儲(chǔ)器使用率的總和確定性能瓶頸。此外,在根據(jù)本發(fā)明的系統(tǒng)測(cè)試方法中,可以基于處理器使用率(或CPU使用率)確定性能瓶頸。例如,在根據(jù)本發(fā)明的系統(tǒng)測(cè)試方法中,如果處理器使用率保持為高并且具有可用存儲(chǔ)器,那么可以確定在CPU上具有瓶頸。相反,如果處理器使用率保持為高并且存儲(chǔ)器已耗盡,則可以確定性能問題是存儲(chǔ)器瓶頸而不是CPU。此外,在根據(jù)本發(fā)明的系統(tǒng)測(cè)試方法中,可以基于進(jìn)程使用率確定性能瓶頸。進(jìn)程使用率是指系統(tǒng)的執(zhí)行時(shí)間,即已從總CPU使用率排除空閑時(shí)間(idle time)的時(shí)間。此外,在根據(jù)本發(fā)明的系統(tǒng)測(cè)試方法中,可以基于用戶時(shí)間確定性能瓶頸。用戶時(shí)間是指執(zhí)行保持在用戶空間中的時(shí)間,即執(zhí)行應(yīng)用程序花費(fèi)的時(shí)間。此外,在根據(jù)本發(fā)明的系統(tǒng)測(cè)試方法中,可以基于內(nèi)核時(shí)間確定性能瓶頸。內(nèi)核時(shí)間意思是執(zhí)行保持在內(nèi)核空間中的時(shí)間,即內(nèi)核處理服務(wù)花費(fèi)的時(shí)間。圖4c示出用于執(zhí)行對(duì)復(fù)數(shù)進(jìn)程之間的通信的測(cè)試的系統(tǒng)測(cè)試方法。執(zhí)行圖4c的 系統(tǒng)測(cè)試方法的系統(tǒng)測(cè)試設(shè)備100可以收集與在系統(tǒng)200中的全部進(jìn)程之間的共享資源有關(guān),以及與通信是否精確執(zhí)行有關(guān)的測(cè)試信息。首先,在步驟S170定義缺陷模型。這里,缺陷模型是指根據(jù)缺陷類型有待測(cè)試的進(jìn)程間的通信位置和用于發(fā)現(xiàn)和修復(fù)缺陷的測(cè)試信息。在系統(tǒng)200正常運(yùn)行時(shí),可以根據(jù)已定義的缺陷模型生成能收集測(cè)試信息的測(cè)試代碼。在步驟S171,測(cè)試代理被插入至系統(tǒng)200即測(cè)試目標(biāo)的進(jìn)程控制塊201。插入模塊101可以選擇進(jìn)程的列表中的兩個(gè)或更多作為測(cè)試目標(biāo),并且將用于測(cè)試已選擇的進(jìn)程之間的通信的測(cè)試代理插入進(jìn)程控制塊201。當(dāng)涉及通信的事件在多個(gè)進(jìn)程之間發(fā)生時(shí),在步驟S172已插入的測(cè)試代理將測(cè)試目標(biāo)掛鉤到測(cè)試代碼。術(shù)語“掛鉤到測(cè)試代碼”是指當(dāng)在正在運(yùn)行的系統(tǒng)200內(nèi)的多個(gè)進(jìn)程之間發(fā)生涉及通信的事件時(shí),已插入的測(cè)試代理將OS的進(jìn)程控制塊掛鉤,以執(zhí)行包括原始代碼操作的測(cè)試代碼。掛鉤模塊103可以基于包括在進(jìn)程控制塊201中的信息檢查涉及通信的事件是否發(fā)生。這里,涉及通信的事件是指多個(gè)進(jìn)程之間的消息傳遞、共享數(shù)據(jù)的轉(zhuǎn)移、共享存儲(chǔ)器的使用、消息隊(duì)列(massage queue)的使用以及同步對(duì)象的使用。測(cè)試代碼用來檢查缺陷類型,該缺陷類型涉及多個(gè)進(jìn)程之間的消息傳遞、消息隊(duì)列、共享存儲(chǔ)器或同步對(duì)象。例如,測(cè)試代碼可以包括第一函數(shù)例如SendMessage ()或PostMessage O,和根據(jù)有待測(cè)試的缺陷的類型所需的第二函數(shù)。包括在系統(tǒng)中的進(jìn)程分別包括第一函數(shù)。因此,當(dāng)涉及通信的事件在第一進(jìn)程和第二進(jìn)程之間發(fā)生時(shí),掛鉤模塊103以如下方式將測(cè)試目標(biāo)掛鉤到測(cè)試代碼,即在第一進(jìn)程和第二進(jìn)程中執(zhí)行第一函數(shù)的步驟中,已插入的測(cè)試代理執(zhí)行測(cè)試代碼,而不執(zhí)行第一進(jìn)程和第二進(jìn)程的第一函數(shù)?;诎ㄔ谶M(jìn)程控制塊201中的信息,檢查第一函數(shù)在第一進(jìn)程和第二進(jìn)程中執(zhí)行的步驟。其間,由于測(cè)試目標(biāo)是多個(gè)進(jìn)程之間的通信,于是測(cè)試代碼可以根據(jù)有待測(cè)試的缺陷類型僅在發(fā)射器和接收器的一個(gè)中掛鉤。在測(cè)試目標(biāo)已掛鉤時(shí),在步驟S173,掃描模塊105收集與已發(fā)生涉及通信的事件的多個(gè)進(jìn)程之間的通信有關(guān)的測(cè)試信息。這里,多個(gè)進(jìn)程之間的通信不僅包括涉及通信的已產(chǎn)生的事件,而且包括涉及根據(jù)測(cè)試代碼的掛鉤發(fā)生的通信的事件。已收集的測(cè)試信息可根據(jù)測(cè)試步驟、測(cè)試目的以及有待測(cè)試的缺陷類型而不同。因此,掃描模塊105收集確定與多個(gè)進(jìn)程之間的通信有關(guān)的缺陷所需的系統(tǒng)動(dòng)態(tài)狀態(tài)的信息,例如函數(shù)參數(shù)和返回值、性能測(cè)量值,以及共享資源使用列表。測(cè)試信息可以包括關(guān)于多個(gè)進(jìn)程的調(diào)用棧信息、在多個(gè)進(jìn)程之間傳輸和接收的通信類型、通信ID及通信數(shù)據(jù),以及在多個(gè)進(jìn)程之間的通信中發(fā)生的延遲時(shí)間。在步驟S174,記錄模塊107在存儲(chǔ)空間中存儲(chǔ)由掃描模塊105收集的測(cè)試信息。存儲(chǔ)空間可以包括在記錄模塊107中,或可以體現(xiàn)為不同于記錄模塊107的裝置。圖I的分析設(shè)備400可以分析由掃描模塊1 05收集的測(cè)試信息,或存儲(chǔ)在記錄模塊107中的測(cè)試信息。用于對(duì)多個(gè)進(jìn)程之間的通信執(zhí)行測(cè)試的測(cè)試代碼可以是用于檢查涉及進(jìn)程之間的消息傳遞、消息隊(duì)列、共享存儲(chǔ)器或同步對(duì)象的代碼。涉及消息傳遞(message passing)的缺陷類型可以被分為在預(yù)定時(shí)間內(nèi)的消息傳遞失敗(failure,失敗)(同步)、消息死鎖(同步)、消息處理延遲(同步)、消息丟失(同步)、消息改變(同步)、插入消息隊(duì)列失敗(failure)(異步)、消息處理延遲(異步)、消息丟失(異步),以及消息改變(異步)。涉及消息隊(duì)列的缺陷類型可以被分為消息隊(duì)列生成失敗、消息隊(duì)列關(guān)閉失敗、源自消息隊(duì)列的讀取失敗,以及在消息隊(duì)列中的寫入失敗。涉及共享存儲(chǔ)器的缺陷類型可以是共享存儲(chǔ)器生成失敗。涉及同步對(duì)象的缺陷類型可以被分為使用沒有生成的同步對(duì)象、未使用已生成的同步對(duì)象,以及未釋放(non-release)已使用的同步對(duì)象。 因此,根據(jù)檢測(cè)類型,測(cè)試代碼隨之改變。如上所述,根據(jù)本發(fā)明的系統(tǒng)測(cè)試設(shè)備100在不影響正在運(yùn)行的系統(tǒng)200的情況下可以插入測(cè)試代理、將測(cè)試代碼掛鉤,并且收集測(cè)試信息。系統(tǒng)測(cè)試設(shè)備100基于包括在系統(tǒng)200的進(jìn)程控制塊201中的信息執(zhí)行系統(tǒng)測(cè)試。本發(fā)明可以在記錄介質(zhì)中以處理器可讀的代碼的形式實(shí)施。處理器可讀的記錄介質(zhì)包括存儲(chǔ)處理器可讀數(shù)據(jù)的全部類型的記錄裝置。記錄介質(zhì)可以包括例如ROM、RAM、CD-ROM、磁帶、軟盤,以及光數(shù)據(jù)存儲(chǔ)。此外,處理器可讀的記錄介質(zhì)可以分布在連接網(wǎng)絡(luò)的計(jì)算機(jī)系統(tǒng)中,并且可以以分布形式存儲(chǔ)并執(zhí)行處理器可讀的代碼。雖然聯(lián)系實(shí)際的示范性實(shí)施例說明了本發(fā)明,但應(yīng)理解的是,本發(fā)明不限于已公開的實(shí)施例,相反,旨在覆蓋包括在所附權(quán)利要求的主旨和范圍內(nèi)的各種修改和等效安排。[工業(yè)應(yīng)用性]本發(fā)明可以在系統(tǒng)實(shí)際運(yùn)行時(shí)測(cè)試存儲(chǔ)器錯(cuò)誤、系統(tǒng)性能和進(jìn)程間通信。
權(quán)利要求
1.一種系統(tǒng)測(cè)試設(shè)備,所述系統(tǒng)測(cè)試設(shè)備用于包括多個(gè)進(jìn)程和含有關(guān)于所述多個(gè)進(jìn)程的運(yùn)行時(shí)間執(zhí)行信息的進(jìn)程控制塊的系統(tǒng),所述系統(tǒng)測(cè)試設(shè)備包括 插入模塊,其配置為將測(cè)試代理插入所述進(jìn)程控制塊; 掛鉤模塊,其配置為在發(fā)生涉及所述測(cè)試目標(biāo)的事件時(shí)使用所述測(cè)試代理將測(cè)試目標(biāo)掛鉤到測(cè)試代碼; 掃描模塊,其配置為在所述測(cè)試目標(biāo)掛鉤到所述測(cè)試代碼時(shí),收集與發(fā)生涉及所述測(cè)試目標(biāo)的事件的進(jìn)程有關(guān)的測(cè)試信息;以及 記錄模塊,其配置為存儲(chǔ)由所述掃描模塊收集的測(cè)試信息。
2.根據(jù)權(quán)利要求I所述的系統(tǒng)測(cè)試設(shè)備,其中所述進(jìn)程控制塊包括所述多個(gè)進(jìn)程的資源使用現(xiàn)狀、進(jìn)程狀態(tài)、優(yōu)先級(jí)順序和函數(shù)表中的至少一個(gè)。
3.根據(jù)權(quán)利要求2所述的系統(tǒng)測(cè)試設(shè)備,其中所述測(cè)試代碼根據(jù)缺陷類型被定義。
4.根據(jù)權(quán)利要求3所述的系統(tǒng)測(cè)試設(shè)備,其中所述掛鉤模塊基于根據(jù)所述檢測(cè)類型的測(cè)試位置來鑒別存儲(chǔ)器區(qū)域,并將所述已鑒別的存儲(chǔ)器區(qū)域掛鉤到所述測(cè)試代碼。
5.根據(jù)權(quán)利要求3所述的系統(tǒng)測(cè)試設(shè)備,其中所述測(cè)試信息包括程序執(zhí)行信息、進(jìn)程背景信息和系統(tǒng)狀態(tài)信息中的至少一個(gè)。
6.根據(jù)權(quán)利要求2所述的系統(tǒng)測(cè)試設(shè)備,其中所述掃描模塊測(cè)量有關(guān)所述進(jìn)程控制塊的性能的信息。
7.根據(jù)權(quán)利要求6所述的系統(tǒng)測(cè)試設(shè)備,其中有關(guān)所述進(jìn)程控制塊的性能的信息包括處理器使用率、存儲(chǔ)器使用率、頁面錯(cuò)誤、進(jìn)程背景信息、進(jìn)程調(diào)用棧信息、進(jìn)程堆使用率、進(jìn)程狀態(tài),以及進(jìn)程優(yōu)先級(jí)中的至少一個(gè)。
8.根據(jù)權(quán)利要求6所述的系統(tǒng)測(cè)試設(shè)備,其中所述掃描模塊以預(yù)定的時(shí)間間隔測(cè)量關(guān)于所述進(jìn)程控制塊的性能的信息。
9.根據(jù)權(quán)利要求6所述的系統(tǒng)測(cè)試設(shè)備,其中所述掃描模塊測(cè)量有關(guān)所述進(jìn)程控制塊的進(jìn)程和線程的信息。
10.根據(jù)權(quán)利要求9所述的系統(tǒng)測(cè)試設(shè)備,其中所述進(jìn)程控制塊的進(jìn)程的性能因數(shù)包括ID、進(jìn)程狀態(tài)、進(jìn)程的優(yōu)先級(jí)、堆使用率、進(jìn)程的運(yùn)行時(shí)間、用戶時(shí)間,以及內(nèi)核時(shí)間中的一個(gè)或更多。
11.根據(jù)權(quán)利要求9所述的系統(tǒng)測(cè)試設(shè)備,其中所述進(jìn)程控制塊的線程的性能因數(shù)包括ID、運(yùn)行狀態(tài)、基本優(yōu)先級(jí)、當(dāng)前優(yōu)先級(jí)、用戶時(shí)間、內(nèi)核時(shí)間,以及調(diào)用棧中的一個(gè)或更多。
12.根據(jù)權(quán)利要求2所述的系統(tǒng)測(cè)試設(shè)備,其中涉及所述測(cè)試目標(biāo)的事件包括所述多個(gè)進(jìn)程之間的消息傳遞、共享數(shù)據(jù)的轉(zhuǎn)移、共享存儲(chǔ)器的使用、消息隊(duì)列的使用,以及同步對(duì)象的使用中的至少一者。
13.根據(jù)權(quán)利要求12所述的系統(tǒng)測(cè)試設(shè)備,其中所述測(cè)試代碼是用于檢查有關(guān)所述多個(gè)進(jìn)程之間的消息傳遞、消息隊(duì)列、共享存儲(chǔ)器以及同步對(duì)象中的至少一者的缺陷類型代碼。
14.根據(jù)權(quán)利要求12所述的系統(tǒng)測(cè)試設(shè)備,其中所述測(cè)試信息包括有關(guān)所述多個(gè)進(jìn)程的調(diào)用棧信息、在所述多個(gè)進(jìn)程之間傳輸和接收的通信類型、通信ID、通信數(shù)據(jù)以及在所述多個(gè)進(jìn)程之間的通信中發(fā)生的延遲時(shí)間中的至少一個(gè)。
15.根據(jù)權(quán)利要求12所述的系統(tǒng)測(cè)試設(shè)備,其中所述測(cè)試信息包括有關(guān)系統(tǒng)的動(dòng)態(tài)狀態(tài)的信息、有關(guān)進(jìn)程狀態(tài)的信息以及有關(guān)所述多個(gè)進(jìn)程之間的通信的信息。
16.一種系統(tǒng)測(cè)試系統(tǒng),所述系統(tǒng)測(cè)試系統(tǒng)用于包括多個(gè)進(jìn)程和含有關(guān)于所述多個(gè)進(jìn)程的運(yùn)行時(shí)間執(zhí)行信息的進(jìn)程控制塊的系統(tǒng),所述系統(tǒng)測(cè)試系統(tǒng)包括 輸入設(shè)備,其配置為接收用于驅(qū)動(dòng)所述系統(tǒng)的信號(hào); 系統(tǒng)測(cè)試設(shè)備,其配置為當(dāng)所述系統(tǒng)響應(yīng)于通過所述輸入設(shè)備接收的所述信號(hào)而運(yùn)轉(zhuǎn)時(shí),將測(cè)試代理插入所述進(jìn)程控制塊,使用所述測(cè)試代理將測(cè)試目標(biāo)掛鉤到測(cè)試代碼,并從所述多個(gè)進(jìn)程中收集與發(fā)生涉及測(cè)試目標(biāo)的事件的進(jìn)程有關(guān)的測(cè)試信息,以及 分析設(shè)備,其配置為分析由所述系統(tǒng)測(cè)試設(shè)備收集的測(cè)試信息。
17.根據(jù)權(quán)利要求16所述的系統(tǒng)測(cè)試系統(tǒng),其中所述進(jìn)程控制塊包括所述多個(gè)進(jìn)程的資源使用現(xiàn)狀、進(jìn)程狀態(tài)、優(yōu)先級(jí)順序和函數(shù)表中的至少一個(gè)。
18.根據(jù)權(quán)利要求16所述的系統(tǒng)測(cè)試系統(tǒng),其中所述測(cè)試代碼掛鉤到的的測(cè)試位置可根據(jù)缺陷類型而改變。
19.根據(jù)權(quán)利要求16所述的系統(tǒng)測(cè)試系統(tǒng),其中所述測(cè)試信息包括程序執(zhí)行信息、進(jìn)程背景信息、系統(tǒng)狀態(tài)信息、處理器使用率、存儲(chǔ)器使用率、頁面錯(cuò)誤、關(guān)于所述多個(gè)進(jìn)程的調(diào)用棧信息、在所述多個(gè)進(jìn)程之間傳輸和接收的通信類型、通信ID及通信數(shù)據(jù),以及在所述多個(gè)進(jìn)程之間的通信中發(fā)生的延遲時(shí)間中的至少一個(gè)。
20.根據(jù)權(quán)利要求16所述的系統(tǒng)測(cè)試系統(tǒng),還包括 輸出設(shè)備,其被配置為以圖像或語音的形式輸出由所述分析設(shè)備分析的測(cè)試的結(jié)果。
全文摘要
本發(fā)明涉及一種系統(tǒng)測(cè)試設(shè)備,其包括插入模塊,其將測(cè)試代理插入進(jìn)程控制塊;掛鉤模塊,其在發(fā)生涉及測(cè)試目標(biāo)的事件時(shí)使用測(cè)試代理將測(cè)試目標(biāo)與測(cè)試代碼掛鉤;掃描模塊,其在測(cè)試目標(biāo)掛鉤時(shí),收集與發(fā)生涉及測(cè)試目標(biāo)的事件的進(jìn)程有關(guān)的測(cè)試信息;以及記錄模塊,其存儲(chǔ)由掃描模塊收集的測(cè)試信息。
文檔編號(hào)G06F11/22GK102959519SQ201180032537
公開日2013年3月6日 申請(qǐng)日期2011年3月15日 優(yōu)先權(quán)日2010年6月28日
發(fā)明者崔炳珠, 徐珠瑛, 梁承完, 林真用, 金泳秀, 吳定錫, 權(quán)海永, 張丞延 申請(qǐng)人:現(xiàn)代自動(dòng)車株式會(huì)社, 起亞自動(dòng)車株式會(huì)社, 梨花女子大學(xué)校產(chǎn)學(xué)協(xié)力團(tuán)