欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

判斷應(yīng)用程序測試覆蓋范圍的方法及程序測試設(shè)備與流程

文檔序號:11829421閱讀:411來源:國知局
判斷應(yīng)用程序測試覆蓋范圍的方法及程序測試設(shè)備與流程

本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種判斷應(yīng)用程序測試覆蓋范圍的方法及其設(shè)備。



背景技術(shù):

現(xiàn)如今,各種終端應(yīng)用影響著人們的日常生活,為用戶提供便利,因此對于終端應(yīng)用的程序進(jìn)行測試尤為重要。目前對于程序進(jìn)行測試的過程是通過人為手動進(jìn)行測試,然而人為手動測試容易造成對某段代碼的重復(fù)測試或者所進(jìn)行的測試未覆蓋到某段代碼,降低了對程序的測試效果以及測試效率,進(jìn)而對后續(xù)的程序開發(fā)造成了影響。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明實(shí)施例提供一種判斷應(yīng)用程序測試覆蓋范圍的方法及程序測試設(shè)備,可以提升對程序的測試效果以及測試效率。

本發(fā)明實(shí)施例第一方面提供了一種判斷應(yīng)用程序測試覆蓋范圍的方法,可包括:

當(dāng)對目標(biāo)程序進(jìn)行測試時(shí),與所述目標(biāo)程序中的目標(biāo)函數(shù)建立鏈接關(guān)系;

基于所述鏈接關(guān)系,獲取所述目標(biāo)函數(shù)的起始位置信息;

按照所述起始位置信息對所述目標(biāo)程序進(jìn)行插樁測試。

本發(fā)明實(shí)施例第二方面提供了一種程序測試設(shè)備,可包括:

關(guān)系建立單元,用于當(dāng)對目標(biāo)程序進(jìn)行測試時(shí),與所述目標(biāo)程序中的目標(biāo)函數(shù)建立鏈接關(guān)系;

信息獲取單元,用于基于所述鏈接關(guān)系,獲取所述目標(biāo)函數(shù)的起始位置信息;

程序測試單元,用于按照所述起始位置信息對所述目標(biāo)程序進(jìn)行插樁測試。

在本發(fā)明實(shí)施例中,當(dāng)需要對目標(biāo)程序進(jìn)行測試時(shí),通過與所述目標(biāo)程序中的目標(biāo)函數(shù)建立鏈接關(guān)系,可以基于該鏈接關(guān)系獲取目標(biāo)函數(shù)的起始位置信 息,最終按照起始位置信息對目標(biāo)程序進(jìn)行插樁測試。實(shí)現(xiàn)了對目標(biāo)程序的自動測試,通過基于鏈接關(guān)系獲取目標(biāo)函數(shù)的起始位置信息,保證了對程序進(jìn)行覆蓋測試的全面性,避免了對后續(xù)的程序開發(fā)的影響,提升了對程序的測試效果和測試效率。

附圖說明

為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1是本發(fā)明實(shí)施例提供的一種判斷應(yīng)用程序測試覆蓋范圍的方法的流程示意圖;

圖2是本發(fā)明實(shí)施例提供的另一種判斷應(yīng)用程序測試覆蓋范圍的方法的流程示意圖;

圖3是本發(fā)明實(shí)施例提供的一種程序測試設(shè)備的結(jié)構(gòu)示意圖;

圖4是本發(fā)明實(shí)施例提供的信息獲取單元的結(jié)構(gòu)示意圖;

圖5是本發(fā)明實(shí)施例提供的另一種程序測試設(shè)備的結(jié)構(gòu)示意圖;

圖6是本發(fā)明實(shí)施例提供的又一種程序測試設(shè)備的結(jié)構(gòu)示意圖。

具體實(shí)施方式

下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

本發(fā)明實(shí)施例提供的判斷應(yīng)用程序測試覆蓋范圍的方法可以應(yīng)用于對系統(tǒng)平臺的應(yīng)用程序進(jìn)行插樁測試的場景,例如:對于針對IOS系統(tǒng)平臺、Android系統(tǒng)平臺等,當(dāng)對目標(biāo)程序進(jìn)行測試時(shí),程序測試設(shè)備可以與所述目標(biāo)程序中的目標(biāo)函數(shù)建立鏈接關(guān)系,基于所述鏈接關(guān)系,所述程序測試設(shè)備獲取所述目標(biāo)函數(shù)的起始位置信息,所述程序測試設(shè)備按照所述起始位置信息對所述目標(biāo)程序進(jìn)行插樁測試的場景等。實(shí)現(xiàn)了對目標(biāo)程序的自動測試,通過基于鏈接關(guān) 系獲取目標(biāo)函數(shù)的起始位置信息,保證了對程序進(jìn)行覆蓋測試的全面性,避免了對后續(xù)的程序開發(fā)的影響,提升了對程序的測試效果和測試效率。

本發(fā)明實(shí)施例涉及的程序測試設(shè)備可以包括:平板電腦、智能手機(jī)、筆記本電腦、掌上電腦、個(gè)人計(jì)算機(jī)以及移動互聯(lián)網(wǎng)設(shè)備(MID)等具備程序處理功能的終端設(shè)備。

下面將結(jié)合附圖1和附圖2,對本發(fā)明實(shí)施例提供的判斷應(yīng)用程序測試覆蓋范圍的方法進(jìn)行詳細(xì)介紹。

請參見圖1,為本發(fā)明實(shí)施例提供了一種判斷應(yīng)用程序測試覆蓋范圍的方法的流程示意圖。如圖1所示,本發(fā)明實(shí)施例的所述方法可以包括以下步驟S101-步驟S103。

S101,當(dāng)對目標(biāo)程序進(jìn)行測試時(shí),與所述目標(biāo)程序中的目標(biāo)函數(shù)建立鏈接關(guān)系;

具體的,當(dāng)需要對目標(biāo)程序進(jìn)行測試時(shí),程序測試設(shè)備可以與所述目標(biāo)程序中的目標(biāo)函數(shù)建立鏈接關(guān)系,優(yōu)選的,所述程序測試設(shè)備可以創(chuàng)建一個(gè)前端進(jìn)程,該前端進(jìn)程優(yōu)選為對目標(biāo)程序進(jìn)行輸入的接口,測試人員可以通過該前端進(jìn)程將需要測試的目標(biāo)程序進(jìn)行輸入,所述程序測試設(shè)備可以獲取所述目標(biāo)程序,并與所述目標(biāo)程序中的目標(biāo)函數(shù)建立鏈接關(guān)系。例如:所述程序測試設(shè)備可以調(diào)用Clang工具建立一個(gè)前端進(jìn)程,Clang是一個(gè)C語言、C++、Objective-C、Objective-C++語言的輕量級編譯器,并通過Clang工具與所述目標(biāo)函數(shù)建立鏈接關(guān)系。

可以理解的是,所述目標(biāo)程序可以包含一個(gè)或多個(gè)函數(shù),因此所述目標(biāo)函數(shù)可以為一個(gè)或多個(gè)函數(shù)。對于多個(gè)函數(shù),所述程序測試設(shè)備需要分別與所述多個(gè)函數(shù)建立鏈接關(guān)系。

通過與目標(biāo)函數(shù)建立鏈接關(guān)系,可以便于實(shí)現(xiàn)后續(xù)對目標(biāo)函數(shù)進(jìn)行預(yù)處理、編譯處理等過程,提高了對目標(biāo)程序進(jìn)行測試的準(zhǔn)確性。

S102,基于所述鏈接關(guān)系,獲取所述目標(biāo)函數(shù)的起始位置信息;

具體的,基于所述鏈接關(guān)系,所述程序測試設(shè)備可以獲取所述目標(biāo)函數(shù)的起始位置信息,優(yōu)選的,所述程序測試設(shè)備可以基于所述鏈接關(guān)系對所述目標(biāo)函數(shù)進(jìn)行預(yù)處理,并在預(yù)處理后生成所述目標(biāo)函數(shù)對應(yīng)的抽象語法樹(Abstract Syntax Tree,AST),所述預(yù)處理可以包括預(yù)編譯過程以及翻譯過程,所述程序測試設(shè)備基于所述鏈接關(guān)系對所述目標(biāo)函數(shù)進(jìn)行預(yù)編譯處理,并對預(yù)編譯處理后的目標(biāo)函數(shù)進(jìn)行翻譯,最終生成所述目標(biāo)函數(shù)對應(yīng)的AST。所述程序測試設(shè)備獲取所述目標(biāo)函數(shù)對應(yīng)的AST,并對所述AST進(jìn)行編譯以獲取所述目標(biāo)函數(shù)的起始位置信息??梢岳斫獾氖牵銎鹗嘉恢眯畔ㄋ瞿繕?biāo)函數(shù)的首字符的位置坐標(biāo)以及所述目標(biāo)函數(shù)中開始運(yùn)行的位置坐標(biāo),例如:所述目標(biāo)函數(shù)的起始大括號的位置坐標(biāo)等。

S103,按照所述起始位置信息對所述目標(biāo)程序進(jìn)行插樁測試;

具體的,所述程序測試設(shè)備按照所述起始位置信息對所述目標(biāo)程序進(jìn)行插樁測試,進(jìn)一步的,對于多個(gè)目標(biāo)函數(shù),所述程序測試設(shè)備按照每個(gè)目標(biāo)函數(shù)的起始位置信息進(jìn)行插樁,并依次進(jìn)行測試,即對所述目標(biāo)程序進(jìn)行測試。

在本發(fā)明實(shí)施例中,當(dāng)需要對目標(biāo)程序進(jìn)行測試時(shí),通過與所述目標(biāo)程序中的目標(biāo)函數(shù)建立鏈接關(guān)系,可以基于該鏈接關(guān)系獲取目標(biāo)函數(shù)的起始位置信息,最終按照起始位置信息對目標(biāo)程序進(jìn)行插樁測試。實(shí)現(xiàn)了對目標(biāo)程序的自動測試,通過基于鏈接關(guān)系獲取目標(biāo)函數(shù)的起始位置信息,保證了對程序進(jìn)行覆蓋測試的全面性,避免了對后續(xù)的程序開發(fā)的影響,提升了對程序的測試效果和測試效率。

請參見圖2,為本發(fā)明實(shí)施例提供了另一種判斷應(yīng)用程序測試覆蓋范圍的方法的流程示意圖。如圖2所示,本發(fā)明實(shí)施例的所述方法可以包括以下步驟S201-步驟S206。

S201,當(dāng)對目標(biāo)程序進(jìn)行測試時(shí),定位并獲取所述目標(biāo)程序的頭文件目錄;

具體的,當(dāng)需要對目標(biāo)程序進(jìn)行測試時(shí),程序測試設(shè)備需要定位并獲取目標(biāo)程序的頭文件目錄,假設(shè)系統(tǒng)中默認(rèn)的頭文件目錄為“/usr/include”,而在所述目標(biāo)程序中未查找到,則需要進(jìn)行頭文件目錄的重定位,所述程序測試設(shè)備可以將所定位的多個(gè)頭文件目錄進(jìn)行輸出,并由用戶自行分析,并最終確定所述目標(biāo)程序的頭文件目錄,所述程序測試設(shè)備獲取用戶所確定的所述目標(biāo)程序的頭文件目錄,優(yōu)選的,所述程序測試設(shè)備還可以將獲取的所述目標(biāo)程序的頭文件目錄輸出為一個(gè)變量,并根據(jù)該變量生成一個(gè)插件。

S202,與所述目標(biāo)程序中的目標(biāo)函數(shù)建立鏈接關(guān)系;

具體的,程序測試設(shè)備可以與所述目標(biāo)程序中的目標(biāo)函數(shù)建立鏈接關(guān)系,優(yōu)選的,所述程序測試設(shè)備可以創(chuàng)建一個(gè)前端進(jìn)程,該前端進(jìn)程優(yōu)選為對目標(biāo)程序進(jìn)行輸入的接口,測試人員可以通過該前端進(jìn)程將需要測試的目標(biāo)程序進(jìn)行輸入,所述程序測試設(shè)備可以獲取所述目標(biāo)程序,并與所述目標(biāo)程序中的目標(biāo)函數(shù)建立鏈接關(guān)系。例如:所述程序測試設(shè)備可以調(diào)用Clang工具建立一個(gè)前端進(jìn)程,Clang是一個(gè)C語言、C++、Objective-C、Objective-C++語言的輕量級編譯器,并通過Clang工具與所述目標(biāo)函數(shù)建立鏈接關(guān)系。

可以理解的是,所述目標(biāo)程序可以包含一個(gè)或多個(gè)函數(shù),因此所述目標(biāo)函數(shù)可以為一個(gè)或多個(gè)函數(shù)。對于多個(gè)函數(shù),所述程序測試設(shè)備需要分別與所述多個(gè)函數(shù)建立鏈接關(guān)系。

通過對目標(biāo)程序的頭文件目錄進(jìn)行定位和獲取,以及與目標(biāo)函數(shù)建立鏈接關(guān)系,可以便于實(shí)現(xiàn)后續(xù)對目標(biāo)函數(shù)進(jìn)行預(yù)處理、編譯處理等過程,提高了對目標(biāo)程序進(jìn)行測試的準(zhǔn)確性。

S203,基于所述鏈接關(guān)系對所述目標(biāo)函數(shù)進(jìn)行預(yù)處理,并在預(yù)處理后生成所述目標(biāo)函數(shù)對應(yīng)的AST;

具體的,所述程序測試設(shè)備可以基于所述鏈接關(guān)系對所述目標(biāo)函數(shù)進(jìn)行預(yù)處理,并在預(yù)處理后生成所述目標(biāo)函數(shù)對應(yīng)的AST,所述預(yù)處理可以包括預(yù)編譯過程以及翻譯過程,所述程序測試設(shè)備基于所述鏈接關(guān)系對所述目標(biāo)函數(shù)進(jìn)行預(yù)編譯處理,并對預(yù)編譯處理后的目標(biāo)函數(shù)進(jìn)行翻譯,最終生成所述目標(biāo)函數(shù)對應(yīng)的AST。

S204,對所述AST進(jìn)行編譯以獲取所述目標(biāo)函數(shù)的起始位置信息;

具體的,所述程序測試設(shè)備獲取所述目標(biāo)函數(shù)對應(yīng)的AST,并對所述AST進(jìn)行編譯以獲取所述目標(biāo)函數(shù)的起始位置信息。可以理解的是,所述起始位置信息包括所述目標(biāo)函數(shù)的首字符的位置坐標(biāo)以及所述目標(biāo)函數(shù)中開始運(yùn)行的位置坐標(biāo),例如:所述目標(biāo)函數(shù)的起始大括號的位置坐標(biāo)等。

S205,基于所述連接關(guān)系,獲取所述目標(biāo)函數(shù)的結(jié)束位置信息;

具體的,所述程序測試設(shè)備在獲取所述起始位置信息的同時(shí)還可以獲取所述目標(biāo)函數(shù)對應(yīng)的結(jié)束位置信息,所述結(jié)束位置信息包括所述目標(biāo)函數(shù)的末字符的位置坐標(biāo)以及所述目標(biāo)函數(shù)中結(jié)束運(yùn)行的位置坐標(biāo),例如:所述目標(biāo)函數(shù)的結(jié)束大括號的位置坐標(biāo)等。通過獲取所述目標(biāo)函數(shù)的結(jié)束位置信息,可以便 于測試人員對所述目標(biāo)函數(shù)的測試結(jié)果進(jìn)行分析以及進(jìn)行評價(jià),保證測試的效果以及有效性。

S206,按照所述起始位置信息對所述目標(biāo)程序進(jìn)行插樁測試;

具體的,所述程序測試設(shè)備按照所述起始位置信息對所述目標(biāo)程序進(jìn)行插樁測試,進(jìn)一步的,對于多個(gè)目標(biāo)函數(shù),所述程序測試設(shè)備按照每個(gè)目標(biāo)函數(shù)的起始位置信息進(jìn)行插樁,并依次進(jìn)行測試,即對所述目標(biāo)程序進(jìn)行測試。

在本發(fā)明實(shí)施例中,當(dāng)需要對目標(biāo)程序進(jìn)行測試時(shí),通過與所述目標(biāo)程序中的目標(biāo)函數(shù)建立鏈接關(guān)系,可以基于該鏈接關(guān)系獲取目標(biāo)函數(shù)的起始位置信息,最終按照起始位置信息對目標(biāo)程序進(jìn)行插樁測試。實(shí)現(xiàn)了對目標(biāo)程序的自動測試,通過基于鏈接關(guān)系獲取目標(biāo)函數(shù)的起始位置信息,保證了對程序進(jìn)行覆蓋測試的全面性,避免了對后續(xù)的程序開發(fā)的影響,提升了對程序的測試效果和測試效率;通過對目標(biāo)程序的頭文件目錄進(jìn)行定位和獲取,以及與目標(biāo)函數(shù)建立鏈接關(guān)系,可以便于實(shí)現(xiàn)后續(xù)對目標(biāo)函數(shù)進(jìn)行預(yù)處理、編譯處理等過程,提高了對目標(biāo)程序進(jìn)行測試的準(zhǔn)確性;通過獲取所述目標(biāo)函數(shù)的結(jié)束位置信息,可以便于測試人員對所述目標(biāo)函數(shù)的測試結(jié)果進(jìn)行分析以及進(jìn)行評價(jià),保證測試的效果以及有效性。

下面將結(jié)合附圖3-附圖5,對本發(fā)明實(shí)施例提供的程序測試設(shè)備進(jìn)行詳細(xì)介紹。需要說明的是,附圖3-附圖5所示的程序測試設(shè)備,用于執(zhí)行本發(fā)明圖1和圖2所示實(shí)施例的方法,為了便于說明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分,具體技術(shù)細(xì)節(jié)未揭示的,請參照本發(fā)明圖1和圖2所示的實(shí)施例。

請參見圖3,為本發(fā)明實(shí)施例提供了一種程序測試設(shè)備的結(jié)構(gòu)示意圖。如圖3所示,本發(fā)明實(shí)施例的所述程序測試設(shè)備1可以包括:關(guān)系建立單元11、信息獲取單元12和程序測試單元13。

關(guān)系建立單元11,用于當(dāng)對目標(biāo)程序進(jìn)行測試時(shí),與所述目標(biāo)程序中的目標(biāo)函數(shù)建立鏈接關(guān)系;

具體實(shí)現(xiàn)中,當(dāng)需要對目標(biāo)程序進(jìn)行測試時(shí),所述關(guān)系建立單元11可以與所述目標(biāo)程序中的目標(biāo)函數(shù)建立鏈接關(guān)系,優(yōu)選的,所述關(guān)系建立單元11可以創(chuàng)建一個(gè)前端進(jìn)程,該前端進(jìn)程優(yōu)選為對目標(biāo)程序進(jìn)行輸入的接口,測試人員可以通過該前端進(jìn)程將需要測試的目標(biāo)程序進(jìn)行輸入,所述關(guān)系建立單元11可 以獲取所述目標(biāo)程序,并與所述目標(biāo)程序中的目標(biāo)函數(shù)建立鏈接關(guān)系。例如:所述關(guān)系建立單元11可以調(diào)用Clang工具建立一個(gè)前端進(jìn)程,Clang是一個(gè)C語言、C++、Objective-C、Objective-C++語言的輕量級編譯器,并通過Clang工具與所述目標(biāo)函數(shù)建立鏈接關(guān)系。

可以理解的是,所述目標(biāo)程序可以包含一個(gè)或多個(gè)函數(shù),因此所述目標(biāo)函數(shù)可以為一個(gè)或多個(gè)函數(shù)。對于多個(gè)函數(shù),所述關(guān)系建立單元11需要分別與所述多個(gè)函數(shù)建立鏈接關(guān)系。

通過與目標(biāo)函數(shù)建立鏈接關(guān)系,可以便于實(shí)現(xiàn)后續(xù)對目標(biāo)函數(shù)進(jìn)行預(yù)處理、編譯處理等過程,提高了對目標(biāo)程序進(jìn)行測試的準(zhǔn)確性。

信息獲取單元12,用于基于所述鏈接關(guān)系,獲取所述目標(biāo)函數(shù)的起始位置信息;

具體實(shí)現(xiàn)中,基于所述鏈接關(guān)系,所述信息獲取單元12可以獲取所述目標(biāo)函數(shù)的起始位置信息,優(yōu)選的,所述信息獲取單元12可以基于所述鏈接關(guān)系對所述目標(biāo)函數(shù)進(jìn)行預(yù)處理,并在預(yù)處理后生成所述目標(biāo)函數(shù)對應(yīng)的AST,所述預(yù)處理可以包括預(yù)編譯過程以及翻譯過程,所述信息獲取單元12基于所述鏈接關(guān)系對所述目標(biāo)函數(shù)進(jìn)行預(yù)編譯處理,并對預(yù)編譯處理后的目標(biāo)函數(shù)進(jìn)行翻譯,最終生成所述目標(biāo)函數(shù)對應(yīng)的AST。所述信息獲取單元12獲取所述目標(biāo)函數(shù)對應(yīng)的AST,并對所述AST進(jìn)行編譯以獲取所述目標(biāo)函數(shù)的起始位置信息??梢岳斫獾氖?,所述起始位置信息包括所述目標(biāo)函數(shù)的首字符的位置坐標(biāo)以及所述目標(biāo)函數(shù)中開始運(yùn)行的位置坐標(biāo),例如:所述目標(biāo)函數(shù)的起始大括號的位置坐標(biāo)等。

所述信息獲取單元12在獲取所述起始位置信息的同時(shí)還可以獲取所述目標(biāo)函數(shù)對應(yīng)的結(jié)束位置信息,所述結(jié)束位置信息包括所述目標(biāo)函數(shù)的末字符的位置坐標(biāo)以及所述目標(biāo)函數(shù)中結(jié)束運(yùn)行的位置坐標(biāo),例如:所述目標(biāo)函數(shù)的結(jié)束大括號的位置坐標(biāo)等。通過獲取所述目標(biāo)函數(shù)的結(jié)束位置信息,可以便于測試人員對所述目標(biāo)函數(shù)的測試結(jié)果進(jìn)行分析以及進(jìn)行評價(jià),保證測試的效果以及有效性。

具體的,請一并參見圖4,為本發(fā)明實(shí)施例提供了信息獲取單元的結(jié)構(gòu)示意圖。如圖4所示,所述信息獲取單元12可以包括:

語法樹生成子單元121,用于基于所述鏈接關(guān)系對所述目標(biāo)函數(shù)進(jìn)行預(yù)處理, 并在預(yù)處理后生成所述目標(biāo)函數(shù)對應(yīng)的AST;

具體實(shí)現(xiàn)中,所述語法樹生成子單元121可以基于所述鏈接關(guān)系對所述目標(biāo)函數(shù)進(jìn)行預(yù)處理,并在預(yù)處理后生成所述目標(biāo)函數(shù)對應(yīng)的AST,所述預(yù)處理可以包括預(yù)編譯過程以及翻譯過程,所述語法樹生成子單元121基于所述鏈接關(guān)系對所述目標(biāo)函數(shù)進(jìn)行預(yù)編譯處理,并對預(yù)編譯處理后的目標(biāo)函數(shù)進(jìn)行翻譯,最終生成所述目標(biāo)函數(shù)對應(yīng)的AST。

信息獲取子單元122,用于對所述AST進(jìn)行編譯以獲取所述目標(biāo)函數(shù)的起始位置信息;

具體實(shí)現(xiàn)中,所述信息獲取子單元122獲取所述目標(biāo)函數(shù)對應(yīng)的AST,并對所述AST進(jìn)行編譯以獲取所述目標(biāo)函數(shù)的起始位置信息。可以理解的是,所述起始位置信息包括所述目標(biāo)函數(shù)的首字符的位置坐標(biāo)以及所述目標(biāo)函數(shù)中開始運(yùn)行的位置坐標(biāo),例如:所述目標(biāo)函數(shù)的起始大括號的位置坐標(biāo)等。

程序測試單元13,用于按照所述起始位置信息對所述目標(biāo)程序進(jìn)行插樁測試;

具體實(shí)現(xiàn)中,所述程序測試單元13按照所述起始位置信息對所述目標(biāo)程序進(jìn)行插樁測試,進(jìn)一步的,對于多個(gè)目標(biāo)函數(shù),所述程序測試單元13按照每個(gè)目標(biāo)函數(shù)的起始位置信息進(jìn)行插樁,并依次進(jìn)行測試,即對所述目標(biāo)程序進(jìn)行測試。

在本發(fā)明實(shí)施例中,當(dāng)需要對目標(biāo)程序進(jìn)行測試時(shí),通過與所述目標(biāo)程序中的目標(biāo)函數(shù)建立鏈接關(guān)系,可以基于該鏈接關(guān)系獲取目標(biāo)函數(shù)的起始位置信息,最終按照起始位置信息對目標(biāo)程序進(jìn)行插樁測試。實(shí)現(xiàn)了對目標(biāo)程序的自動測試,通過基于鏈接關(guān)系獲取目標(biāo)函數(shù)的起始位置信息,保證了對程序進(jìn)行覆蓋測試的全面性,避免了對后續(xù)的程序開發(fā)的影響,提升了對程序的測試效果和測試效率;通過獲取所述目標(biāo)函數(shù)的結(jié)束位置信息,可以便于測試人員對所述目標(biāo)函數(shù)的測試結(jié)果進(jìn)行分析以及進(jìn)行評價(jià),保證測試的效果以及有效性。

請參見圖5,為本發(fā)明實(shí)施例提供了另一種程序測試設(shè)備1的結(jié)構(gòu)示意圖。如圖5所示,本發(fā)明實(shí)施例的所述程序測試設(shè)備11可以包括:關(guān)系建立單元11、信息獲取單元12、程序測試單元13和目錄獲取單元14;其中,關(guān)系建立單元11、信息獲取單元12和程序測試單元13的具體結(jié)構(gòu)可以參見圖3所示實(shí)施例 的描述,在此不進(jìn)行贅述。

目錄獲取單元14,用于當(dāng)對目標(biāo)程序進(jìn)行測試時(shí),定位并獲取所述目標(biāo)程序的頭文件目錄;

具體實(shí)現(xiàn)中,當(dāng)需要對目標(biāo)程序進(jìn)行測試時(shí),程序測試設(shè)備1需要定位并獲取目標(biāo)程序的頭文件目錄,假設(shè)系統(tǒng)中默認(rèn)的頭文件目錄為“/usr/include”,而在所述目標(biāo)程序中未查找到,則需要進(jìn)行頭文件目錄的重定位,所述程序測試設(shè)備1可以將所定位的多個(gè)頭文件目錄進(jìn)行輸出,并由用戶自行分析,并最終確定所述目標(biāo)程序的頭文件目錄,所述目錄獲取單元14獲取用戶所確定的所述目標(biāo)程序的頭文件目錄,優(yōu)選的,所述目錄獲取單元14還可以將獲取的所述目標(biāo)程序的頭文件目錄輸出為一個(gè)變量,并根據(jù)該變量生成一個(gè)插件。

在本發(fā)明實(shí)施例中,當(dāng)需要對目標(biāo)程序進(jìn)行測試時(shí),通過與所述目標(biāo)程序中的目標(biāo)函數(shù)建立鏈接關(guān)系,可以基于該鏈接關(guān)系獲取目標(biāo)函數(shù)的起始位置信息,最終按照起始位置信息對目標(biāo)程序進(jìn)行插樁測試。實(shí)現(xiàn)了對目標(biāo)程序的自動測試,通過基于鏈接關(guān)系獲取目標(biāo)函數(shù)的起始位置信息,保證了對程序進(jìn)行覆蓋測試的全面性,避免了對后續(xù)的程序開發(fā)的影響,提升了對程序的測試效果和測試效率;通過對目標(biāo)程序的頭文件目錄進(jìn)行定位和獲取,以及與目標(biāo)函數(shù)建立鏈接關(guān)系,可以便于實(shí)現(xiàn)后續(xù)對目標(biāo)函數(shù)進(jìn)行預(yù)處理、編譯處理等過程,提高了對目標(biāo)程序進(jìn)行測試的準(zhǔn)確性;通過獲取所述目標(biāo)函數(shù)的結(jié)束位置信息,可以便于測試人員對所述目標(biāo)函數(shù)的測試結(jié)果進(jìn)行分析以及進(jìn)行評價(jià),保證測試的效果以及有效性。

請參見圖6,為本發(fā)明實(shí)施例提供了又一種程序測試設(shè)備的結(jié)構(gòu)示意圖。如圖6所示,所述程序測試設(shè)備1000可以包括:至少一個(gè)處理器1001,例如CPU,至少一個(gè)網(wǎng)絡(luò)接口1004,用戶接口1003,存儲器1005,至少一個(gè)通信總線1002。其中,通信總線1002用于實(shí)現(xiàn)這些組件之間的連接通信。其中,用戶接口1003可以包括顯示屏(Display)、鍵盤(Keyboard),可選用戶接口1003還可以包括標(biāo)準(zhǔn)的有線接口、無線接口。網(wǎng)絡(luò)接口1004可選的可以包括標(biāo)準(zhǔn)的有線接口、無線接口(如WI-FI接口)。存儲器1005可以是高速RAM存儲器,也可以是非不穩(wěn)定的存儲器(non-volatile memory),例如至少一個(gè)磁盤存儲器。存儲器1005可選的還可以是至少一個(gè)位于遠(yuǎn)離前述處理器1001的存儲裝置。如圖6所示, 作為一種計(jì)算機(jī)存儲介質(zhì)的存儲器1005中可以包括操作系統(tǒng)、網(wǎng)絡(luò)通信模塊、用戶接口模塊以及測試應(yīng)用程序。

在圖6所示的程序測試設(shè)備1000中,用戶接口1003主要用于為用戶提供輸入的接口,獲取用戶輸入的數(shù)據(jù);而處理器1001可以用于調(diào)用存儲器1005中存儲的測試應(yīng)用程序,并具體執(zhí)行以下操作:

當(dāng)對目標(biāo)程序進(jìn)行測試時(shí),與所述目標(biāo)程序中的目標(biāo)函數(shù)建立鏈接關(guān)系;

基于所述鏈接關(guān)系,獲取所述目標(biāo)函數(shù)的起始位置信息;

按照所述起始位置信息對所述目標(biāo)程序進(jìn)行插樁測試。

在一個(gè)實(shí)施例中,所述處理器1001在執(zhí)行與所述目標(biāo)程序中的目標(biāo)函數(shù)建立鏈接關(guān)系之前,還執(zhí)行以下操作:

定位并獲取所述目標(biāo)程序的頭文件目錄。

在一個(gè)實(shí)施例中,所述處理器1001在執(zhí)行基于所述鏈接關(guān)系,獲取所述目標(biāo)函數(shù)的起始位置信息時(shí),具體執(zhí)行以下操作:

基于所述鏈接關(guān)系對所述目標(biāo)函數(shù)進(jìn)行預(yù)處理,并在預(yù)處理后生成所述目標(biāo)函數(shù)對應(yīng)的AST;

對所述AST進(jìn)行編譯以獲取所述目標(biāo)函數(shù)的起始位置信息。

在一個(gè)實(shí)施例中,所述處理器1001在執(zhí)行基于所述鏈接關(guān)系對所述目標(biāo)函數(shù)進(jìn)行預(yù)處理,并在預(yù)處理后生成所述目標(biāo)函數(shù)對應(yīng)的AST時(shí),具體執(zhí)行以下操作:

基于所述鏈接關(guān)系對所述目標(biāo)函數(shù)進(jìn)行預(yù)編譯處理,并對預(yù)編譯處理后的目標(biāo)函數(shù)進(jìn)行翻譯,以生成所述目標(biāo)函數(shù)對應(yīng)的AST。

在一個(gè)實(shí)施例中,所述處理器1001還執(zhí)行以下操作:

基于所述連接關(guān)系,獲取所述目標(biāo)函數(shù)的結(jié)束位置信息。

在本發(fā)明實(shí)施例中,當(dāng)需要對目標(biāo)程序進(jìn)行測試時(shí),通過與所述目標(biāo)程序中的目標(biāo)函數(shù)建立鏈接關(guān)系,可以基于該鏈接關(guān)系獲取目標(biāo)函數(shù)的起始位置信息,最終按照起始位置信息對目標(biāo)程序進(jìn)行插樁測試。實(shí)現(xiàn)了對目標(biāo)程序的自動測試,通過基于鏈接關(guān)系獲取目標(biāo)函數(shù)的起始位置信息,保證了對程序進(jìn)行覆蓋測試的全面性,避免了對后續(xù)的程序開發(fā)的影響,提升了對程序的測試效果和測試效率;通過對目標(biāo)程序的頭文件目錄進(jìn)行定位和獲取,以及與目標(biāo)函數(shù)建立鏈接關(guān)系,可以便于實(shí)現(xiàn)后續(xù)對目標(biāo)函數(shù)進(jìn)行預(yù)處理、編譯處理等過程, 提高了對目標(biāo)程序進(jìn)行測試的準(zhǔn)確性;通過獲取所述目標(biāo)函數(shù)的結(jié)束位置信息,可以便于測試人員對所述目標(biāo)函數(shù)的測試結(jié)果進(jìn)行分析以及進(jìn)行評價(jià),保證測試的效果以及有效性。

本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計(jì)算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機(jī)存儲記憶體(Random Access Memory,RAM)等。

以上所揭露的僅為本發(fā)明較佳實(shí)施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
三门峡市| 喜德县| 台江县| 太仆寺旗| 梁平县| 卓资县| 高唐县| 华容县| 山东| 二连浩特市| 淮滨县| 清涧县| 塘沽区| 珠海市| 壶关县| 新巴尔虎右旗| 昌都县| 双流县| 江源县| 建水县| 察雅县| 安康市| 台中市| 台中县| 黄骅市| 巴塘县| 邳州市| 尖扎县| 山阳县| 特克斯县| 乐清市| 洪泽县| 迁西县| 彩票| 玉门市| 沁阳市| 宝鸡市| 简阳市| 湘乡市| 内乡县| 和田县|