專利名稱:覆蓋率測試處理方法、裝置、覆蓋率測試服務(wù)器及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本申請涉及測試領(lǐng)域,具體而言,涉及一種覆蓋率測試處理方法、裝置、覆蓋率測試服務(wù)器及系統(tǒng)。
背景技術(shù):
在開發(fā)人員進行開發(fā)的過程中,需要對已經(jīng)開發(fā)完成的代碼進行測試,其中包括覆蓋率測試。覆蓋率測試用于測試多少代碼被測試過,多少代碼沒有被測試過。這樣就有利于開發(fā)人員了解到還有多少代碼處于未測試狀態(tài)。在現(xiàn)有技術(shù)中,對于不同的編程語言完成的代碼有不同的覆蓋率測試工具,例如,Cobertura(在西班牙文中,Cobertura用于表示覆蓋的意思)是一款基于jcoverage的java工具,該工具可以計算有多少比率的代碼被測試走過,從而可以向開發(fā)者提供哪部分java程序缺乏測試;對于java而言,不僅僅只有這一種測試工具,例如,Emma也是一款java的覆蓋率測試工具。對于其他編程語言而言也有其相應(yīng)的測試工具,例如,對于PHP語言而言,其可以通過PHP Unit來進行覆蓋率測試等等。由于覆蓋率測試工具的工作原理有類似之處,因此,以下雖然以Coberura為例進行說明,但是并不限于此,對于其他類型的編程語言的覆蓋率測試或者對于java語言的其他覆蓋率測試工具同樣存在下文所描述的問題。Cobertura將額外的語句記錄在執(zhí)行測試包,通過這種方式來度量字節(jié)碼,可以獲取到哪些行被測試到、哪些行沒有被測試到。在測試全部完畢之后,可以生成一個測試報告,指出代碼中的哪些包、哪些類、哪些方法和哪些行沒有被測試到,以便于針對這些特定的區(qū)域編寫更多的測試代碼,以發(fā)現(xiàn)更多隱藏的問題。隨著軟件開發(fā)項目的日益增大,一個項目往往有幾十甚至幾百個開發(fā)者來共同完成,但是,不同的開發(fā)者僅對自己所開發(fā)的代碼進行覆蓋率測試,即該覆蓋率測試是每部分單獨進行的。這對于項目而言,無法得到其整體的覆蓋率。這樣,由于不確定有多少代碼未被測試過,因此也無法預(yù)計存在多少隱藏的問題,在這種情況下,如果該項目上線,就有可能導(dǎo)致出現(xiàn)各種軟件和/或硬件故障,使得該項目的平臺不夠穩(wěn)定,甚至有可能使該項目平臺出現(xiàn)嚴重的故障。
發(fā)明內(nèi)容
本申請的主要目的在于提供一種覆蓋率測試處理方法、裝置、覆蓋率測試服務(wù)器及系統(tǒng),以至少解決上述問題。根據(jù)本申請的一個方面,提供了一種覆蓋率測試處理方法,包括以下步驟:接收一個或多個覆蓋率測試服務(wù)器上報的該覆蓋率測試服務(wù)器執(zhí)行的覆蓋率測試的結(jié)果,其中,所述覆蓋率測試服務(wù)器用于測試待測代碼中的部分代碼的覆蓋率;對接收到的覆蓋率測試的結(jié)果進行歸并,生成測試報告。優(yōu)選地,在接收到所述一個或多個覆蓋率測試服務(wù)器上報的該覆蓋率測試服務(wù)器執(zhí)行的覆蓋率測試的結(jié)果之前,所述方法還包括:向所述一個或多個覆蓋率測試服務(wù)器發(fā)送消息,其中,所述消息用于指示接收到該消息的覆蓋率測試服務(wù)器上報該覆蓋率測試服務(wù)器執(zhí)行的覆蓋率測試的結(jié)果;和/或,所述一個或多個覆蓋率測試服務(wù)器定期上報該覆蓋率測試服務(wù)器執(zhí)行的覆蓋率測試的結(jié)果。優(yōu)選地,所述覆蓋率測試服務(wù)器上報該覆蓋率測試服務(wù)器執(zhí)行的覆蓋率測試的結(jié)果包括:所述覆蓋率測試服務(wù)器根據(jù)所述消息中攜帶的時間信息或所述覆蓋率測試服務(wù)器本地配置的時間信息上報在所述時間信息對應(yīng)時間段內(nèi)執(zhí)行覆蓋率測試得到的結(jié)果;和/或,所述覆蓋率測試服務(wù)器根據(jù)所述消息中攜帶的代碼信息或所述覆蓋率測試服務(wù)器本地配置的代碼信息上報對所述代碼信息對應(yīng)的代碼執(zhí)行覆蓋率測試得到的結(jié)果。優(yōu)選地,所述覆蓋率測試服務(wù)器上報該覆蓋率測試服務(wù)器執(zhí)行的覆蓋率測試的結(jié)果包括:所述覆蓋率測試服務(wù)器確定在執(zhí)行覆蓋率測試的過程中需要上報覆蓋率測試結(jié)果;所述覆蓋率測試服務(wù)器上報已經(jīng)執(zhí)行完畢的該覆蓋率測試的結(jié)果。優(yōu)選地,所述方法還包括:所述覆蓋率測試服務(wù)器在執(zhí)行所述覆蓋率測試的過程中周期性的發(fā)送心跳消息,其中,所述心跳消息用于對所述覆蓋率測試服務(wù)器進行?;?。優(yōu)選地,所述方法還包括:向所述一個或多個覆蓋率測試服務(wù)器發(fā)送清空消息,其中,所述清空消息用于指示所述清空消息的接收方在接收到該清空消息之后,對本地保存的覆蓋率測試的結(jié)果進行清空。優(yōu)選地,所述方法還包括:向所述一個或多個覆蓋率測試服務(wù)器發(fā)送測試命令,其中,所述測試命令中攜帶有需要執(zhí)行覆蓋率測試的時間信息和/或代碼信息。優(yōu)選地,所述覆蓋率測試服務(wù)器執(zhí)行的覆蓋率測試包括:覆蓋率測試服務(wù)器通過對指定的字節(jié)碼插樁和/或?qū)ψ止?jié)碼所引用的代碼對應(yīng)的字節(jié)碼進行插樁執(zhí)行覆蓋率測試。優(yōu)選地,所述對接收到的覆蓋率測試的結(jié)果進行歸并是通過對對應(yīng)覆蓋率信息的字節(jié)碼對象進行歸并完成。根據(jù)本申請的另一個方面,提供了一種覆蓋率測試處理裝置,包括:接收模塊,用于接收一個或多個覆蓋率測試服務(wù)器上報的該覆蓋率測試服務(wù)器執(zhí)行的覆蓋率測試的結(jié)果,其中,所述覆蓋率測試服務(wù)器用于測試待測代碼中的部分代碼的覆蓋率;生成模塊,用于對接收到的覆蓋率測試的結(jié)果進行歸并,生成測試報告。優(yōu)選地,所述裝置還包括:第一發(fā)送模塊,用于向所述一個或多個覆蓋率測試服務(wù)器發(fā)送消息,其中,所述消息用于指示接收到該消息的覆蓋率測試服務(wù)器上報該覆蓋率測試服務(wù)器執(zhí)行的覆蓋率測試的結(jié)果,所述消息中攜帶有時間信息和/或代碼信息,所述時間信息用于指示所述覆蓋率測試服務(wù)器上報在該時間信息對應(yīng)時間段內(nèi)執(zhí)行覆蓋率測試得到的結(jié)果,所述代碼信息用于指示所述覆蓋率測試服務(wù)器上報對該代碼信息對應(yīng)的代碼所執(zhí)行的覆蓋率測試得到的結(jié)果。優(yōu)選地,所述裝置還包括:第二發(fā)送模塊,用于向所述一個或多個覆蓋率測試服務(wù)器發(fā)送清空消息,其中,所述清空消息用于指示所述清空消息的接收方在接收到該清空消息之后,對本地保存的覆蓋率測試的結(jié)果進行清空。優(yōu)選地,所述裝置還包括:第三發(fā)送模塊,用于向所述一個或多個覆蓋率測試服務(wù)器發(fā)送測試命令,其中,所述測試命令中攜帶有需要執(zhí)行覆蓋率測試的時間信息和/或代碼息O根據(jù)本申請的另一方面,還提供了一種覆蓋率測試服務(wù)器,包括:執(zhí)行模塊,用于執(zhí)行待測代碼中的部分代碼的覆蓋率測試;上報模塊,用于根據(jù)接收到的用于指示上報覆蓋率測試結(jié)果的消息和/或本地的配置信息上報覆蓋率測試的結(jié)果。優(yōu)選地,所述上報模塊包括:第一上報模塊,用于根據(jù)所述消息中攜帶的時間信息或所述覆蓋率測試服務(wù)器本地配置的時間信息上報在所述時間信息對應(yīng)時間段內(nèi)執(zhí)行覆蓋率測試得到的結(jié)果;和/或,第二上報模塊,用于根據(jù)所述消息中攜帶的代碼信息或所述覆蓋率測試服務(wù)器本地配置的代碼信息上報對所述代碼信息對應(yīng)的代碼執(zhí)行覆蓋率測試得到的結(jié)果。優(yōu)選地,所述上報模塊,用于在所述執(zhí)行模塊執(zhí)行覆蓋率測試的過程中需要上報覆蓋率測試結(jié)果時,上報已經(jīng)執(zhí)行完畢的該覆蓋率測試的結(jié)果。優(yōu)選地,所述上報模塊用于在執(zhí)行所述覆蓋率測試的過程中周期性的發(fā)送心跳消息,其中,所述心跳消息用于對所述覆蓋率測試服務(wù)器進行?;?。優(yōu)選地,所述執(zhí)行模塊用于通過對指定的字節(jié)碼插樁和/或?qū)ψ止?jié)碼所引用的代碼對應(yīng)的字節(jié)碼進行插樁執(zhí)行覆蓋率測試。根據(jù)本申請的再一個方面,還提供了一種覆蓋率測試系統(tǒng),包括上述覆蓋率測試處理裝置,以及,一個或多個上述的覆蓋率測試服務(wù)器。通過本申請,采用接收一個或多個覆蓋率測試服務(wù)器上報的該覆蓋率測試服務(wù)器執(zhí)行的覆蓋率測試的結(jié)果;對接收到的覆蓋率測試的結(jié)果進行歸并,生成測試報告。解決了現(xiàn)有技術(shù)中無法得到項目整體的覆蓋率而有可能導(dǎo)致該項目穩(wěn)定性不夠甚至使該項目的平臺出現(xiàn)嚴重故障的問題,在一定程度上提高了項目整體在平臺上的穩(wěn)定性,降低了該項目平臺出現(xiàn)故障的概率。
此處所說明的附圖用來提供對本申請的進一步理解,構(gòu)成本申請的一部分,本申請的示意性實施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當限定。在附圖中:圖1是根據(jù)本申請實施例的覆蓋率測試的架構(gòu)示意圖;圖2是根據(jù)本申請實施例的覆蓋率測試處理方法的流程圖;圖3是根據(jù)本申請實施例的覆蓋率測試處理裝置的結(jié)構(gòu)框圖;圖4是根據(jù)本申請實施例的覆蓋率測試處理裝置優(yōu)選的結(jié)構(gòu)框圖;圖5是根據(jù)本申請實施例的覆蓋率測試處理裝置另一優(yōu)選的結(jié)構(gòu)框圖;圖6是根據(jù)本申請實施例中的覆蓋率測試處理裝置的再一優(yōu)選的結(jié)構(gòu)框圖;圖7是根據(jù)本申請實施例的覆蓋率測試服務(wù)器的結(jié)構(gòu)框圖;圖8是根據(jù)本申請實施例的覆蓋率測試服務(wù)器的優(yōu)選結(jié)構(gòu)框圖;圖9是根據(jù)本申請優(yōu)選實施例的覆蓋率測試系統(tǒng)的示意圖。
具體實施例方式下文中將參考附圖并結(jié)合實施例來詳細說明本申請。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。
圖1是根據(jù)本申請實施例的覆蓋率測試的架構(gòu)示意圖,出于描述的目的,圖1所繪的體系結(jié)構(gòu)僅為本申請實施例適用環(huán)境的一個示例,并非對本申請的使用范圍或功能的任何局限。本申請的原理可以使用其它通用或?qū)S糜嬎慊蛲ㄐ怒h(huán)境或配置來操作。適用于本申請的眾所周知的計算系統(tǒng)、環(huán)境和配置的示例包括但不限于,個人計算機、服務(wù)器,多處理器系統(tǒng)、基于微處理的系統(tǒng)、小型機、大型計算機、以及包括任一上述系統(tǒng)或設(shè)備的分布式計算環(huán)境。下面以圖1中的架構(gòu)為例進行說明,如圖1所示,在該架構(gòu)包括一個或多個覆蓋率測試服務(wù)器10和覆蓋率測試處理裝置12,該覆蓋率測試處理裝置12與一個或多個覆蓋率測試服務(wù)器10連接,需要說明的是,覆蓋率測試處理裝置12可以與覆蓋率測試服務(wù)器10通信即可,因此,此處的連接包括但是不限于:覆蓋率測試處理裝置12與覆蓋率測試服務(wù)器10的直接連接、或者通過其他中間網(wǎng)元連接,有線連接、或者無線連接等等。對于覆蓋率測試服務(wù)器10可以根據(jù)不同的編程語言來選擇使用現(xiàn)有的覆蓋率測試方法或者工具,因此,在以下實施例中,對于這些單個覆蓋率測試服務(wù)器10進行覆蓋率測試的具體實施方式
不再贅述。對于覆蓋率測試處理裝置12,其可以位于一個或多個單獨的物理服務(wù)器中,也可以作為功能模塊位于現(xiàn)有的提供其他服務(wù)功能的服務(wù)器中,具體的應(yīng)用可以根據(jù)網(wǎng)絡(luò)環(huán)境的不同和/或?qū)Ω采w率測試處理裝置12的要求的不同來進行選擇。圖2是根據(jù)本申請實施例的覆蓋率測試處理方法的流程圖,下面結(jié)合圖1中所示出的架構(gòu)對圖2進行說明,如圖2所示,該流程包括以下步驟:步驟S202,接收一個或多個覆蓋率測試服務(wù)器10上報的該覆蓋率測試服務(wù)器10執(zhí)行的覆蓋率測試的結(jié)果,其中,每個覆蓋率測試服務(wù)器用于測試待測代碼中的部分代碼
的覆蓋率;步驟S204,對接收到的覆蓋率測試的結(jié)果進行歸并,生成測試報告。通過上述步驟,可以對各個覆蓋率測試服務(wù)器10上的測試結(jié)果進行歸并,生成測試報告。從而可以得到一個比較完整的覆蓋率測試報告。有助于了解某個項目的整體或者某個項目中的一個功能模塊整體的覆蓋率測試結(jié)果,為提高測試的覆蓋率提供了保證,在一定程度上減少了隱藏問題的發(fā)生,提高了項目平臺的運營的穩(wěn)定性。通過上述步驟可以看出,在本實施例中提出了分布式覆蓋率測試。在現(xiàn)有的技術(shù)中,覆蓋率測試均只提供單機上運行的版本。這樣對于軟件開發(fā)人員而言,其受到了現(xiàn)有技術(shù)中的覆蓋率測試技術(shù)的限制,只能在單機上進行測試。雖然分布式的概念在其他領(lǐng)域中可能也存在,但是對于覆蓋率測試而言,并沒有任何一種現(xiàn)有的技術(shù)暗示或者明示對于覆蓋率測試可以進行分布式的覆蓋率測試。在現(xiàn)有技術(shù)中,如果需要對一個項目的整體進行覆蓋率測試,那么其也只是將該項目的所有代碼集中在一臺覆蓋率測試服務(wù)器上,即各個部分的代碼的覆蓋率測試和項目整體的覆蓋率測試是分開進行的。通過圖2中所示的步驟,實現(xiàn)了歸并的過程,即可以在單個覆蓋率測試服務(wù)器執(zhí)行部分代碼的覆蓋率測試之后,就可以通過歸并的動作來掌控整個項目或者多個項目的整體覆蓋率測試結(jié)果。相比與將一個項目的所有代碼集中在一臺覆蓋率測試服務(wù)器上的做法,提升了測試的效率。在實施時,對于需要歸并測試結(jié)果的覆蓋率測試服務(wù)器可以根據(jù)實際的需要進行設(shè)置。例如,對于一個項目A而言,全部的覆蓋率測試服務(wù)器包括Al-AlO這十臺覆蓋率測試服務(wù)器,其中的Al至A3執(zhí)行功能模塊BI的覆蓋率測試,A4至A6執(zhí)行功能模塊B2的覆蓋率測試,其他的執(zhí)行功能模塊A3的覆蓋率測試。如果需要BI和B2的總的覆蓋率測試結(jié)果,那么可以歸并Al至A6的測試結(jié)果,如果需要整個項目的覆蓋率信息,則可以歸并Al至AlO的測試結(jié)果。又例如,一個項目可以拆分成兩個部分,分別在兩臺覆蓋率測試服務(wù)器上運行覆蓋率測試,在收集覆蓋率統(tǒng)計信息時,可以把這兩臺機器上的數(shù)據(jù)均進行收集。為了描述方便,將覆蓋率測試處理裝置稱為服務(wù)器端,而將覆蓋率測試服務(wù)器稱為客戶端。在本優(yōu)選示例中,服務(wù)器端可以發(fā)送命令通知客戶端需要收集當前的數(shù)據(jù),客戶端收到該命令后可以先鎖定客戶端的收集容器(該鎖定的目的是為了避免臟數(shù)據(jù)的產(chǎn)生),并把收集容器的數(shù)據(jù)直接轉(zhuǎn)換成一份擁有此項目包和類的詳細結(jié)構(gòu)和對應(yīng)覆蓋率信息的字節(jié)碼對象,傳輸?shù)椒?wù)器端,當服務(wù)器端獲取到這兩臺測試機器的字節(jié)碼對象后,對字節(jié)碼對象的信息進行歸并(例如,可以以其中一個字節(jié)碼對象為基礎(chǔ),把第二個字節(jié)碼對象的信息讀取出來,然后判斷第一個字節(jié)碼對象是否存在第二字節(jié)碼對象的信息,如果不存在就加入,如果存在可以根據(jù)信息的種類來判斷是否需要疊加。當然,歸并的方式并不局限于這一種,可以根據(jù)覆蓋率測試結(jié)果的格式來選擇不同的歸并方式)。在某些編程語言中(例如,java),因為字節(jié)碼對象的層次比較清晰,覆蓋率信息可以按照語言中包的組織結(jié)構(gòu)來進行收集(例如,如果該編程語言包的組織結(jié)構(gòu)是樹形結(jié)構(gòu),那么只要遍歷包中的類來逐個收集覆蓋率即可),即對于覆蓋率測試結(jié)果的歸并可以根據(jù)不同編程語言的項目中的結(jié)構(gòu)來進行。上述兩個例子是以同一個項目為例進行的說明,但是,并不限于此,本申請中涉及到的實施例及優(yōu)選的實施方式,也同樣適用于對不同項目的覆蓋率進行歸并,在實現(xiàn)上與對同一個項目的歸并實現(xiàn)方式一致,對于不同的項目可以設(shè)置不同的標識以便能夠區(qū)分項目。當然,也可以不用對項目進行標識,因為對于某些編程語言而言,代碼的命名足以區(qū)分各個代碼所屬的項目。對于不同項目之間的覆蓋率的歸并意義比較深遠,因為把不同項目的覆蓋率進行統(tǒng)一的統(tǒng)計,就可以從更大的范圍來對比覆蓋率的結(jié)果,例如,按照產(chǎn)品線來統(tǒng)計,按照部門來統(tǒng)計,這樣可以從多個維度來體現(xiàn)覆蓋率的信息,更優(yōu)地,還可以生成一致風(fēng)格的覆蓋率報告。無論上述的哪一點均是現(xiàn)有的技術(shù)所不可能完成的。對于覆蓋率測試服務(wù)器10何時上報,在本實施例中提供了兩種優(yōu)選的方式:方式一,可以向一個或多個覆蓋率測試服務(wù)器10發(fā)送消息,該消息用于指示接收到該消息的覆蓋率測試服務(wù)器10上報該覆蓋率測試服務(wù)器10執(zhí)行的覆蓋率測試的結(jié)果。這種方式,可以更好的利用覆蓋率測試處理裝置12,使該裝置可以完全掌握什么時候需要覆蓋率測試服務(wù)器進行上報。在該優(yōu)選的方式中,并不需要覆蓋率測試服務(wù)器10隨時上報測試結(jié)果,而是在覆蓋率測試處理裝置12需要時再通知覆蓋率測試服務(wù)器10來進行上報,相比于覆蓋率測試服務(wù)器定時上報的處理方式,一方面節(jié)約了覆蓋率測試服務(wù)器10和覆蓋率測試處理裝置12之間的帶寬資源,另一方面,也降低了覆蓋率測試處理裝置12處理測試結(jié)果的負荷。但是,這種方式有可能收集到的信息不足夠,例如,覆蓋率測試服務(wù)器在10:00和12:00分別進行了覆蓋率測試,覆蓋率測試處理裝置12要求上報測試結(jié)果,但是,由于覆蓋率測試服務(wù)器已經(jīng)在12:00又進行了一次測試,其有可能會根據(jù)自身的策略將10:00得到的測試結(jié)果刪除。此時,如果覆蓋率測試處理裝置12需要10:00的測試結(jié)果,將無法獲取到。當然,解決該問題,有一個比較簡單的處理方式,即可以在覆蓋率測試服務(wù)器10上保存所有的測試結(jié)果,由于覆蓋率測試服務(wù)器10還要執(zhí)行保存代碼、運行代碼、運行覆蓋率測試工具等功能,因此,如果還需要在該服務(wù)器上保存所有的測試結(jié)果,那么對于覆蓋率測試服務(wù)器10的要求就比較高了。在這種方式下,作為一個比較優(yōu)的實施方式,覆蓋率測試服務(wù)器10可以向覆蓋率測試處理裝置12提供可以獲取到覆蓋率測試結(jié)果的地址信息,這樣,覆蓋率測試處理裝置12可以從覆蓋率測試服務(wù)器10上主動獲取到該覆蓋率測試結(jié)果,這種模式可以稱為拉模式。方式二,覆蓋率測試服務(wù)器10可以定期上報該覆蓋率測試服務(wù)器執(zhí)行的覆蓋率測試的結(jié)果。例如,可以在每一次覆蓋率測試執(zhí)行完畢之后均上報,這樣的處理方式,相對于方式一,可以使覆蓋率測試服務(wù)器10掌握更大的靈活度,開發(fā)人員可以根據(jù)不同的覆蓋率測試服務(wù)器所測試的代碼的不同來設(shè)置不同的定期上報策略。例如,可以每隔3秒,被測代碼會自動采用類似心跳消息一樣處理方式將覆蓋率信息推送到收集覆蓋率信息的平臺上(例如,覆蓋率測試處理裝置12),這種模式可以稱為推模式。對于上述兩種方式,在實際實施時,可以單獨使用也可以結(jié)合起來使用。為了更加方便的在覆蓋率測試服務(wù)器上獲取測試結(jié)果,可以在覆蓋率測試服務(wù)器上提供開放的接口。當然,也可以在覆蓋率測試處理裝置上提供開放的接口,這兩個接口均可以被其他的平臺進行調(diào)用,這樣對于與其他平臺或者應(yīng)用的整合將提供較大的便利。無論對于上述哪種上報方式,均可以根據(jù)時間信息和/或代碼信息來進行上報,例如,覆蓋率測試服務(wù)器10可以根據(jù)接收到的來自覆蓋率測試處理裝置12的消息中攜帶的時間信息或覆蓋率測試服務(wù)器10本地配置的時間信息上報在該時間信息對應(yīng)的時間段內(nèi)執(zhí)行覆蓋率測試得到的結(jié)果;又例如,覆蓋率測試服務(wù)器10還可以根據(jù)該消息中攜帶的代碼信息或覆蓋率測試服務(wù)器10本地配置的代碼信息上報對代碼信息對應(yīng)的代碼執(zhí)行覆蓋率測試得到的結(jié)果。通過消息發(fā)送時間信息和代碼信息的方式可以使覆蓋率測試處理裝置12更容易對覆蓋率測試服務(wù)器10進行集中控制。而通過覆蓋率測試服務(wù)器自行上報的方式,可以使覆蓋率測試服務(wù)器的上報更加符合該覆蓋率測試服務(wù)器所執(zhí)行的測試的上報要求。這些優(yōu)選的實施方式均可以根據(jù)實際的需要進行不同的組合。對于覆蓋率測試服務(wù)器上所執(zhí)行的測試工具而言,在現(xiàn)有技術(shù)中,一般是在執(zhí)行完所有的待測試的代碼才會返回測試結(jié)果,例如,在現(xiàn)有的Cobertura實現(xiàn)中,插樁完畢后的代碼在測試完畢后才能生成相應(yīng)的覆蓋率信息,也就意味著不能在測試中實時的獲取覆蓋率信息,并進行有效的覆蓋率報告生成;如果只能得到最終測試狀態(tài)的覆蓋率結(jié)果會使得代碼覆蓋率有一定的欺騙性。在實際實施時,對于有可能需要在測試過程中實時的得到測試結(jié)果的情況,在本實施例提供了一種較優(yōu)的實施方式,在該優(yōu)選實施方式中,覆蓋率測試服務(wù)器10如果在執(zhí)行覆蓋率測試的過程中確定需要上報覆蓋率測試結(jié)果(例如,根據(jù)覆蓋率測試處理裝置12的通知,或者根據(jù)本地的配置確定需要上報覆蓋率測試結(jié)果);可以上報已經(jīng)執(zhí)行完畢的該覆蓋率測試的結(jié)果。例如,如果覆蓋率測試服務(wù)器10正在執(zhí)行測試,在此時接收到來自覆蓋率測試處理裝置12的消息或者根據(jù)其本地的配置需要上報測試結(jié)果,覆蓋率測試服務(wù)器10可以暫停當前所進行的測試,將已經(jīng)執(zhí)行完畢的測試結(jié)果進行上報。當然,在上報完畢之后可以繼續(xù)當前的測試。通過這種方式,可以更加實時的得到測試結(jié)果。
作為一個優(yōu)選實施例,覆蓋率測試服務(wù)器10在執(zhí)行覆蓋率測試的過程中周期性的發(fā)送心跳消息,其中,該心跳消息起到?;畹哪康?,通過?;羁梢允垢采w率測試處理裝置12 了解到哪個覆蓋率測試服務(wù)器是正常工作的。覆蓋率測試處理裝置12通過該心跳消息實現(xiàn)了對覆蓋率測試服務(wù)器的實時監(jiān)控,如果覆蓋率測試處理裝置12在預(yù)定時長內(nèi)未接收到某個覆蓋率測試服務(wù)器的心跳消息,則可以認為是該服務(wù)器出了故障,從而可進行告警等處理。更優(yōu)地,該心跳消息還可以上報以下信息的至少之一:正在測試的代碼、IP地址和/或端口、正在測試的項目信息等。通過心跳消息上報IP地址和/或端口,可以使覆蓋率測試處理裝置得知哪些覆蓋率測試服務(wù)器保持連接,從而可以避免保留一些已經(jīng)斷開的覆蓋服務(wù)器的連接地址。為了使覆蓋率測試處理裝置12更好的對覆蓋率測試服務(wù)器10進行控制,在本實施例中還提供了另外兩種優(yōu)選的實施方式,這兩種實施方式可以單獨使用,也可以結(jié)合使用。方式一,覆蓋率測試處理裝置12可以向一個或多個覆蓋率測試服務(wù)器10發(fā)送清空消息,其中,該清空消息用于指示清空消息的接收方在接收到該清空消息之后,對本地保存的覆蓋率測試的結(jié)果進行清空。通過該優(yōu)選方式,一方面,可以減少覆蓋率測試服務(wù)器10上所保存的信息容量,另一方面,還可以在重新測試該部分代碼時避免測試信息的疊加。方式二,覆蓋率測試處理裝置12還可以向一個或多個覆蓋率測試服務(wù)器10發(fā)送測試命令,其中,該測試命令中攜帶有需要執(zhí)行覆蓋率測試的時間信息和/或代碼信息。更優(yōu)地,該測試命令可以與用于指示覆蓋率測試服務(wù)器上報覆蓋率測試結(jié)果的消息結(jié)合使用,從而可以使覆蓋率測試處理裝置12對覆蓋率測試服務(wù)器10的控制更加靈活。在本實施例中對于覆蓋率測試服務(wù)器10,可以采用插樁的方式來進行,插樁是一種現(xiàn)有的處理方式,在本實施例中不再贅述。但是,現(xiàn)有的插樁處理中,并不能實現(xiàn)嵌套處理。在本實施例中,覆蓋率測試服務(wù)器可以通過對字節(jié)碼所引用的代碼對應(yīng)的字節(jié)碼進行插樁執(zhí)行覆蓋率測試。這樣實現(xiàn)了覆蓋率測試的嵌套執(zhí)行。通過對所應(yīng)用的代碼對應(yīng)的字節(jié)碼進行插樁和對字節(jié)碼直接插樁的方式相結(jié)合,可以使覆蓋率測試覆蓋面更廣。通過上述實施例及優(yōu)選實施方式,可以對分散在各個覆蓋率測試服務(wù)器上正在測試的代碼進行實時覆蓋率監(jiān)控,此外,還可以實現(xiàn)自動化的清空、收集等功能。需要說明的,這些優(yōu)點是某些優(yōu)選實施方式才具有的,對于實施上述任一優(yōu)選實施方式并不一定需要同時達到這些優(yōu)點。下面對上述的覆蓋率測試處理裝置12中涉及到的模塊進行說明,如以下所使用的,術(shù)語“模塊”可以實現(xiàn)預(yù)定功能的軟件和/或硬件的組合。盡管以下實施例所描述的裝置較佳地以軟件來實現(xiàn),但是硬件,或者軟件和硬件的組合的實現(xiàn)也是可能并被構(gòu)想的。圖3是根據(jù)本申請實施例的覆蓋率測試處理裝置的結(jié)構(gòu)框圖,如圖3所示,該結(jié)構(gòu)包括:接收模塊32和生成模塊34,下面對該結(jié)構(gòu)進行詳細的說明。接收模塊32,用于接收一個或多個覆蓋率測試服務(wù)器上報的該覆蓋率測試服務(wù)器執(zhí)行的覆蓋率測試的結(jié)果,其中,覆蓋率測試服務(wù)器用于測試待測代碼中的部分代碼的覆蓋率;生成模塊34,該模塊連接至接收模塊32,用于對接收到的覆蓋率測試的結(jié)果進行歸并,生成測試報告。
圖4是根據(jù)本申請實施例的覆蓋率測試處理裝置優(yōu)選的結(jié)構(gòu)框圖,如圖4所示,該裝置還包括:第一發(fā)送模塊42,該模塊用于向一個或多個覆蓋率測試服務(wù)器發(fā)送消息,其中,該消息用于指示接收到該消息的覆蓋率測試服務(wù)器上報該覆蓋率測試服務(wù)器執(zhí)行的覆蓋率測試的結(jié)果。作為一個較優(yōu)的實施方式,在該消息中可以攜帶有時間信息和/或代碼信息,該時間信息用于指示覆蓋率測試服務(wù)器上報在該時間信息對應(yīng)時間段內(nèi)執(zhí)行覆蓋率測試得到的結(jié)果,該代碼信息用于指示覆蓋率測試服務(wù)器上報對該代碼信息對應(yīng)的代碼所執(zhí)行的覆蓋率測試得到的結(jié)果。圖5是根據(jù)本申請實施例的覆蓋率測試處理裝置另一優(yōu)選的結(jié)構(gòu)框圖,如圖5所示,該裝置還包括:第二發(fā)送模塊52,用于向一個或多個覆蓋率測試服務(wù)器發(fā)送清空消息,其中,該清空消息用于指示該清空消息的接收方在接收到該清空消息之后,對本地保存的覆蓋率測試的結(jié)果進行清空。圖6是根據(jù)本申請實施例中的覆蓋率測試處理裝置的再一優(yōu)選的結(jié)構(gòu)框圖,如圖6所示,該裝置還包括:第三發(fā)送模塊62,用于向一個或多個覆蓋率測試服務(wù)器發(fā)送測試命令,其中,該測試命令中攜帶有需要執(zhí)行覆蓋率測試的時間信息和/或代碼信息。需要說明的是,上述圖4、圖5和圖6中所示出的優(yōu)選的結(jié)構(gòu)可以單獨實施,也可以
一起實施。下面對上述的覆蓋率測試服務(wù)器10中涉及到的模塊進行說明,同樣,如以下所使用的,術(shù)語“模塊”可以實現(xiàn)預(yù)定功能的軟件和/或硬件的組合。盡管以下實施例所描述的裝置較佳地以軟件來實現(xiàn),但是硬件,或者軟件和硬件的組合的實現(xiàn)也是可能并被構(gòu)想的。圖7是根據(jù)本申請實施例的覆蓋率測試服務(wù)器的結(jié)構(gòu)框圖,如圖7所示,該結(jié)構(gòu)包括:執(zhí)行模塊72和上報模塊74,下面對該結(jié)構(gòu)進行說明。執(zhí)行模塊72,用于執(zhí)行待測代碼中的部分代碼的覆蓋率測試,該模塊可以使用現(xiàn)有的覆蓋率測試方法或者工具來執(zhí)行,在本實施例中不再贅述;上報模塊74,該模塊連接至執(zhí)行模塊72,該模塊用于根據(jù)接收到的用于指示上報覆蓋率測試結(jié)果的消息和/或本地的配置信息上報覆蓋率測試的結(jié)果。本實施例中的覆蓋率測試服務(wù)器10不再是一個單獨執(zhí)行覆蓋率測試的服務(wù)器,而是具有了上報的功能,這是通過該上報,為了解該覆蓋率測試服務(wù)器所執(zhí)行的測試結(jié)果提供了可能,無論將測試結(jié)果上報給哪個網(wǎng)元(或稱為裝置、設(shè)備),均可以使該網(wǎng)元獲取到該服務(wù)器所執(zhí)行的測試情況,從而為該網(wǎng)元提供下一步的操作提供了可能。該覆蓋率測試服務(wù)器可以和覆蓋率測試處理裝置作為一個整體的系統(tǒng)來進行實施,當然,也可以和其他的網(wǎng)元作為一個整體的系統(tǒng)來進行實施。優(yōu)選地,執(zhí)行模塊72用于通過對指定的字節(jié)碼插樁和/或?qū)ψ止?jié)碼所引用的代碼對應(yīng)的字節(jié)碼進行插樁執(zhí)行覆蓋率測試。圖8是根據(jù)本申請實施例的覆蓋率測試服務(wù)器的優(yōu)選結(jié)構(gòu)框圖,如圖8所示,該上報模塊74可以包括:第一上報模塊742,用于根據(jù)消息中攜帶的時間信息或覆蓋率測試服務(wù)器本地配置的時間信息上報在該時間信息對應(yīng)時間段內(nèi)執(zhí)行覆蓋率測試得到的結(jié)果;和/或,第二上報模塊744,該模塊用于根據(jù)消息中攜帶的代碼信息或覆蓋率測試服務(wù)器本地配置的代碼信息上報對該代碼信息對應(yīng)代碼執(zhí)行覆蓋率測試得到的結(jié)果。優(yōu)選地,上報模塊74,可以用于在執(zhí)行模塊執(zhí)行覆蓋率測試的過程中需要上報覆蓋率測試結(jié)果時,上報已經(jīng)執(zhí)行完畢的該覆蓋率測試的結(jié)果。優(yōu)選地,上報模塊74還可以用于在執(zhí)行覆蓋率測試的過程中周期性的發(fā)送心跳消息,其中,該心跳消息用于對覆蓋率測試服務(wù)器進行保活。對于本實施例中的覆蓋率測試系統(tǒng),可以是上述的任一覆蓋率測試處理裝置12,以及,一個或多個上述的任一覆蓋率測試服務(wù)器10。下面以Cobertura為例對一個優(yōu)選實施例進行說明,以下雖然是以Cobertura為例進行說明的,但并不限于此,其他的java的覆蓋率測試工具或者其他語言下的覆蓋率測試工具也同樣適用。圖9是根據(jù)本申請優(yōu)選實施例的覆蓋率測試系統(tǒng)的示意圖,如圖9所示,Cobertura實例位于覆蓋率測試服務(wù)器10側(cè),Cobertura服務(wù)器實例位于覆蓋率測試處理裝置12側(cè),下面對這兩個實例中的進程進行說明。在Cobertura實例中包括:客戶端線程(Client Process,簡稱為CP)、注冊代理線程(Register Proxy Process,簡稱為RPP),其中,RPP用于向Cobertura服務(wù)器實例發(fā)送心跳消息(或稱為心跳注冊消息)。Cobertura服務(wù)器實例包括兩個部分:共享池和后臺進程,共享池用來存放實時注冊的被測的代碼所在服務(wù)器地址等信息,關(guān)于共享池的實現(xiàn)方式可以按照現(xiàn)有的實現(xiàn)方式來進行實現(xiàn),在此不再贅述。后臺進程可以包括:注冊線程(Register Process,簡稱為RP)、客戶端代理線程(Client Proxy Process,簡稱為CPP)、注冊監(jiān)控線程(RegisterMonitor,簡稱為RM0N)、歷史監(jiān)控進程(History Monitor,簡稱為ΗΜ0Ν)以及服務(wù)進程(Server Process,簡稱為SP),其中,CPP與CP進行通信,RPP和RP相配合實現(xiàn)心跳消息的發(fā)送和接收,RMON用來監(jiān)控共享池中的數(shù)據(jù)是否超期,HMON用于監(jiān)控歷史數(shù)據(jù),CP作為Cobertura服務(wù)器實例的主要進程用于完成測試報告的歸并、以及對Cobertura實例的管理等。下面結(jié)合圖9中的線程進行說明。被插樁的代碼在測試時,RPP會每隔一定時間向Cobertura服務(wù)器實例進行信息注冊,Cobertura服務(wù)器實例的RP會將被測代碼的信息更新到共享池中,RMON會根據(jù)PRR發(fā)送的心跳消息的情況檢查共享池(共享池是數(shù)據(jù)庫中的一個特殊的區(qū)域,該共享池的使用與現(xiàn)有的使用方式相同,在此不再贅述)中的信息,并清除過期信息。對于已經(jīng)完成的測試報告,可以以文檔的形式保存在文件服務(wù)器上,HMON用來維護數(shù)據(jù)庫和文件系統(tǒng)的信息,可以配置相應(yīng)的規(guī)則來刪除陳舊的資料。由上述可以看出,RMON主要是用來維護共享池中的信息,而HMON主要是用來維護文件系統(tǒng)中的信息。外部系統(tǒng)可以通過API接口或者頁面進行覆蓋率信息的獲取,CPP會通知符合條件的Cobertura實例中的CP,收集當前覆蓋率信息,并對來自各個Cobertura實例的覆蓋率信息進行歸并,歸并完成后生成覆蓋率報告可以存入服務(wù)器,并返回訪問地址。在本優(yōu)選實施例中,還可以支持實時清空分散在各個Cobertura實例上的覆蓋率信息,例如,可以通過SP對共享池中的已經(jīng)注冊的信息進行查詢,然后,通過CPP通知各個Cobertura實例進行實時清空操作。通過該操作可以在重新測試代碼的過程中避免測試信息疊加。另外,由于Cobertura對遞歸的支持比較弱,在本優(yōu)選實施例中進行了擴展,即在插樁階段可以使得覆蓋率工具支持遞歸插樁,也就是可以對指定的字節(jié)碼插樁并且可以對這些字節(jié)碼所引用的jar包進行插樁,并統(tǒng)計jar包的結(jié)果。由于可以對字節(jié)碼所引用的jar包進行插樁,因此實現(xiàn)了遞歸的處理。對于其他的工具而言,也可以根據(jù)需要對字節(jié)碼所引用的包進行插樁,從而實現(xiàn)遞歸處理。上述優(yōu)選實施例提高了測試人員檢查覆蓋率和對比覆蓋率的效率,可以實時得到分布在各個Cobertura實例正在測試代碼的具體情況,和歸并后的整體情況,這種優(yōu)勢在大型應(yīng)用中顯得尤為突出,可以幫助測試工程師對測試質(zhì)量進行全局的監(jiān)控,并為自動化測試過程信息的獲取提供了可能。在另外一個實施例中,還提供了一種軟件,該軟件用于執(zhí)行上述實施例及優(yōu)選實施方式中描述的技術(shù)方案。在另外一個實施例中,還提供了一種存儲介質(zhì),該存儲介質(zhì)中存儲有上述軟件,該存儲介質(zhì)包括但不限于:光盤、軟盤、硬盤、可擦寫存儲器等。顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本申請的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本申請不限制于任何特定的硬件和軟件結(jié)合。以上所述僅為本申請的優(yōu)選實施例而已,并不用于限制本申請,對于本領(lǐng)域的技術(shù)人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本申請的保護范圍之內(nèi)。
權(quán)利要求
1.一種覆蓋率測試處理方法,其特征在于包括以下步驟: 接收一個或多個覆蓋率測試服務(wù)器上報的該覆蓋率測試服務(wù)器執(zhí)行的覆蓋率測試的結(jié)果,其中,所述覆蓋率測試服務(wù)器用于測試待測代碼中的部分代碼的覆蓋率; 對接收到的覆蓋率測試的結(jié)果進行歸并,生成測試報告。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在接收到所述一個或多個覆蓋率測試服務(wù)器上報的該覆蓋率測試服務(wù)器執(zhí)行的覆蓋率測試的結(jié)果之前,所述方法還包括: 向所述一個或多個覆蓋率測試服務(wù)器發(fā)送消息,其中,所述消息用于指示接收到該消息的覆蓋率測試服務(wù)器上報該覆蓋率測試服務(wù)器執(zhí)行的覆蓋率測試的結(jié)果;和/或, 所述一個或多個覆蓋率測試服務(wù)器定期上報該覆蓋率測試服務(wù)器執(zhí)行的覆蓋率測試的結(jié)果。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述覆蓋率測試服務(wù)器上報該覆蓋率測試服務(wù)器執(zhí)行的覆蓋率測試的結(jié)果包括: 所述覆蓋率測試服務(wù)器根據(jù)所述消息中攜帶的時間信息或所述覆蓋率測試服務(wù)器本地配置的時間信息上報在所述時間信息對應(yīng)時間段內(nèi)執(zhí)行覆蓋率測試得到的結(jié)果;和/或, 所述覆蓋率測試服務(wù)器根據(jù)所述消息中攜帶的代碼信息或所述覆蓋率測試服務(wù)器本地配置的代碼信息上報對所述代碼信息對應(yīng)的代碼執(zhí)行覆蓋率測試得到的結(jié)果。
4.根據(jù)權(quán)利要求1至3中任一項所述的方法,其特征在于,所述覆蓋率測試服務(wù)器上報該覆蓋率測試服務(wù)器執(zhí)行的覆蓋率測試的結(jié)果包括: 所述覆蓋率測試服務(wù)器確定在執(zhí)行覆蓋率測試的過程中需要上報覆蓋率測試結(jié)果; 所述覆蓋率測試服務(wù)器上報已經(jīng)執(zhí)行完畢的該覆蓋率測試的結(jié)果。
5.根據(jù)權(quán)利要求1至3中任一項所述的方法,其特征在于,所述方法還包括: 所述覆蓋率測試服務(wù)器在執(zhí)行所述覆蓋率測試的過程中周期性的發(fā)送心跳消息,其中,所述心跳消息用于對所述覆蓋率測試服務(wù)器進行保活。
6.根據(jù)權(quán)利要求1至3中任一項所述的方法,其特征在于,所述方法還包括: 向所述一個或多個覆蓋率測試服務(wù)器發(fā)送清空消息,其中,所述清空消息用于指示所述清空消息的接收方在接收到該清空消息之后,對本地保存的所述覆蓋率測試的結(jié)果進行清空。
7.根據(jù)權(quán)利要求1至3中任一項所述的方法,其特征在于,所述方法還包括: 向所述一個或多個覆蓋率測試服務(wù)器發(fā)送測試命令,其中,所述測試命令中攜帶有需要執(zhí)行覆蓋率測試的時間信息和/或代碼信息。
8.根據(jù)權(quán)利要求1至3中任一項所述的方法,其特征在于,所述覆蓋率測試服務(wù)器執(zhí)行的覆蓋率測試包括: 覆蓋率測試服務(wù)器通過對指定的字節(jié)碼插樁和/或?qū)ψ止?jié)碼所引用的代碼對應(yīng)的字節(jié)碼進行插樁執(zhí)行覆蓋率測試。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對接收到的覆蓋率測試的結(jié)果進行歸并是通過對對應(yīng)覆蓋率信息的字節(jié)碼對象進行歸并完成。
10.一種覆蓋率測試處理裝置,其特征在于包括: 接收模塊,用于接收一個或多個覆蓋率測試服務(wù)器上報的該覆蓋率測試服務(wù)器執(zhí)行的覆蓋率測試的結(jié)果,其中,所述覆蓋率測試服務(wù)器用于測試待測代碼中的部分代碼的覆蓋率; 生成模塊,用于對接收到的覆蓋率測試的結(jié)果進行歸并,生成測試報告。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述裝置還包括: 第一發(fā)送模塊,用于向所述一個或多個覆蓋率測試服務(wù)器發(fā)送消息,其中,所述消息用于指示接收到該消息的覆蓋率測試服務(wù)器上報該覆蓋率測試服務(wù)器執(zhí)行的覆蓋率測試的結(jié)果,所述消息中攜帶有時間信息和/或代碼信息,所述時間信息用于指示所述覆蓋率測試服務(wù)器上報在該時間信息對應(yīng)時間段內(nèi)執(zhí)行覆蓋率測試得到的結(jié)果,所述代碼信息用于指示所述覆蓋率測試服務(wù)器上報對該代碼信息對應(yīng)的代碼所執(zhí)行的覆蓋率測試得到的結(jié)果O
12.根據(jù)權(quán)利要求10或11所述的裝置,其特征在于,所述裝置還包括: 第二發(fā)送模塊,用于向所述一個或多個覆蓋率測試服務(wù)器發(fā)送清空消息,其中,所述清空消息用于指示所述清空消息的接收方在接收到該清空消息之后,對本地保存的覆蓋率測試的結(jié)果進行清空。
13.根據(jù)權(quán)利要求10或11所述的裝置,其特征在于,所述裝置還包括: 第三發(fā)送模塊,用于向所述一個或多個覆蓋率測試服務(wù)器發(fā)送測試命令,其中,所述測試命令中攜帶有需要執(zhí)行覆蓋率測試的時間信息和/或代碼信息。
14.一種覆蓋率測試服務(wù)器,其特征在于,包括: 執(zhí)行模塊,用于執(zhí)行待測代碼中的部分代碼的覆蓋率測試; 上報模塊,用于根據(jù)接收到的用于指示上報覆蓋率測試結(jié)果的消息和/或本地的配置信息上報覆蓋率測試的結(jié)果。
15.根據(jù)權(quán)利要求14所述的覆蓋率測試服務(wù)器,其特征在于,所述上報模塊包括: 第一上報模塊,用于根據(jù)所述消息中攜帶的時間信息或所述覆蓋率測試服務(wù)器本地配置的時間信息上報在所述時間信息對應(yīng)時間段內(nèi)執(zhí)行所述覆蓋率測試得到的結(jié)果;和/或, 第二上報模塊,用于根據(jù)所述消息中攜帶的代碼信息或所述覆蓋率測試服務(wù)器本地配置的代碼信息上報對所述代碼信息對應(yīng)的代碼執(zhí)行所述覆蓋率測試得到的結(jié)果。
16.根據(jù)權(quán)利要求14或15所述的覆蓋率測試服務(wù)器,其特征在于, 所述上報模塊,用于在所述執(zhí)行模塊執(zhí)行所述覆蓋率測試的過程中需要上報覆蓋率測試結(jié)果時,上報已經(jīng)執(zhí)行完畢的該覆蓋率測試的結(jié)果。
17.根據(jù)權(quán)利要求16所述的覆蓋率測試服務(wù)器,其特征在于,所述上報模塊用于在執(zhí)行所述覆蓋率測試的過程中周期性的發(fā)送心跳消息,其中,所述心跳消息用于對所述覆蓋率測試服務(wù)器進行?;?。
18.根據(jù)權(quán)利要求14所述的覆蓋率測試服務(wù)器,其特征在于,所述執(zhí)行模塊用于通過對指定的字節(jié)碼插樁和/或?qū)ψ止?jié)碼所引用的代碼對應(yīng)的字節(jié)碼進行插樁執(zhí)行覆蓋率測試。
19.一種覆蓋率測試系統(tǒng),其特征在于,包括權(quán)利要求10至13中任一項所述的覆蓋率測試處理裝置,以及,一個或多個權(quán)利要求14至18中任一項所述的覆蓋率測試服務(wù)器。
全文摘要
本申請公開了覆蓋率測試處理方法、裝置、覆蓋率測試服務(wù)器及系統(tǒng)。該覆蓋率測試處理方法包括以下步驟接收一個或多個覆蓋率測試服務(wù)器上報的該覆蓋率測試服務(wù)器執(zhí)行的覆蓋率測試的結(jié)果,其中,覆蓋率測試服務(wù)器用于測試待測代碼中的部分代碼的覆蓋率;對接收到的覆蓋率測試的結(jié)果進行歸并,生成測試報告。本申請在一定程度上提高了項目整體在平臺上的穩(wěn)定性,降低了該項目平臺出現(xiàn)故障的概率。
文檔編號H04L12/26GK103095518SQ20111035166
公開日2013年5月8日 申請日期2011年11月8日 優(yōu)先權(quán)日2011年11月8日
發(fā)明者周文哲, 倪生華 申請人:阿里巴巴集團控股有限公司