本發(fā)明涉及計算機技術(shù)領(lǐng)域,尤其涉及一種判斷應(yīng)用程序測試覆蓋范圍的方法及其設(shè)備。
背景技術(shù):
現(xiàn)如今,各種終端應(yīng)用影響著人們的日常生活,為用戶提供便利,因此對于終端應(yīng)用的程序進行測試尤為重要。目前對于程序進行測試的過程是通過人為手動進行測試,然而人為手動測試容易造成對某段代碼的重復(fù)測試或者所進行的測試未覆蓋到某段代碼,降低了對程序的測試效果以及測試效率,進而對后續(xù)的程序開發(fā)造成了影響。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供一種判斷應(yīng)用程序測試覆蓋范圍的方法及程序測試設(shè)備,可以提升對程序的測試效果以及測試效率。
本發(fā)明實施例第一方面提供了一種判斷應(yīng)用程序測試覆蓋范圍的方法,可包括:
當對目標程序進行測試時,與所述目標程序中的目標函數(shù)建立鏈接關(guān)系;
基于所述鏈接關(guān)系,獲取所述目標函數(shù)的起始位置信息;
按照所述起始位置信息對所述目標程序進行插樁測試。
本發(fā)明實施例第二方面提供了一種程序測試設(shè)備,可包括:
關(guān)系建立單元,用于當對目標程序進行測試時,與所述目標程序中的目標函數(shù)建立鏈接關(guān)系;
信息獲取單元,用于基于所述鏈接關(guān)系,獲取所述目標函數(shù)的起始位置信息;
程序測試單元,用于按照所述起始位置信息對所述目標程序進行插樁測試。
在本發(fā)明實施例中,當需要對目標程序進行測試時,通過與所述目標程序中的目標函數(shù)建立鏈接關(guān)系,可以基于該鏈接關(guān)系獲取目標函數(shù)的起始位置信 息,最終按照起始位置信息對目標程序進行插樁測試。實現(xiàn)了對目標程序的自動測試,通過基于鏈接關(guān)系獲取目標函數(shù)的起始位置信息,保證了對程序進行覆蓋測試的全面性,避免了對后續(xù)的程序開發(fā)的影響,提升了對程序的測試效果和測試效率。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實施例提供的一種判斷應(yīng)用程序測試覆蓋范圍的方法的流程示意圖;
圖2是本發(fā)明實施例提供的另一種判斷應(yīng)用程序測試覆蓋范圍的方法的流程示意圖;
圖3是本發(fā)明實施例提供的一種程序測試設(shè)備的結(jié)構(gòu)示意圖;
圖4是本發(fā)明實施例提供的信息獲取單元的結(jié)構(gòu)示意圖;
圖5是本發(fā)明實施例提供的另一種程序測試設(shè)備的結(jié)構(gòu)示意圖;
圖6是本發(fā)明實施例提供的又一種程序測試設(shè)備的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明實施例提供的判斷應(yīng)用程序測試覆蓋范圍的方法可以應(yīng)用于對系統(tǒng)平臺的應(yīng)用程序進行插樁測試的場景,例如:對于針對IOS系統(tǒng)平臺、Android系統(tǒng)平臺等,當對目標程序進行測試時,程序測試設(shè)備可以與所述目標程序中的目標函數(shù)建立鏈接關(guān)系,基于所述鏈接關(guān)系,所述程序測試設(shè)備獲取所述目標函數(shù)的起始位置信息,所述程序測試設(shè)備按照所述起始位置信息對所述目標程序進行插樁測試的場景等。實現(xiàn)了對目標程序的自動測試,通過基于鏈接關(guān) 系獲取目標函數(shù)的起始位置信息,保證了對程序進行覆蓋測試的全面性,避免了對后續(xù)的程序開發(fā)的影響,提升了對程序的測試效果和測試效率。
本發(fā)明實施例涉及的程序測試設(shè)備可以包括:平板電腦、智能手機、筆記本電腦、掌上電腦、個人計算機以及移動互聯(lián)網(wǎng)設(shè)備(MID)等具備程序處理功能的終端設(shè)備。
下面將結(jié)合附圖1和附圖2,對本發(fā)明實施例提供的判斷應(yīng)用程序測試覆蓋范圍的方法進行詳細介紹。
請參見圖1,為本發(fā)明實施例提供了一種判斷應(yīng)用程序測試覆蓋范圍的方法的流程示意圖。如圖1所示,本發(fā)明實施例的所述方法可以包括以下步驟S101-步驟S103。
S101,當對目標程序進行測試時,與所述目標程序中的目標函數(shù)建立鏈接關(guān)系;
具體的,當需要對目標程序進行測試時,程序測試設(shè)備可以與所述目標程序中的目標函數(shù)建立鏈接關(guān)系,優(yōu)選的,所述程序測試設(shè)備可以創(chuàng)建一個前端進程,該前端進程優(yōu)選為對目標程序進行輸入的接口,測試人員可以通過該前端進程將需要測試的目標程序進行輸入,所述程序測試設(shè)備可以獲取所述目標程序,并與所述目標程序中的目標函數(shù)建立鏈接關(guān)系。例如:所述程序測試設(shè)備可以調(diào)用Clang工具建立一個前端進程,Clang是一個C語言、C++、Objective-C、Objective-C++語言的輕量級編譯器,并通過Clang工具與所述目標函數(shù)建立鏈接關(guān)系。
可以理解的是,所述目標程序可以包含一個或多個函數(shù),因此所述目標函數(shù)可以為一個或多個函數(shù)。對于多個函數(shù),所述程序測試設(shè)備需要分別與所述多個函數(shù)建立鏈接關(guān)系。
通過與目標函數(shù)建立鏈接關(guān)系,可以便于實現(xiàn)后續(xù)對目標函數(shù)進行預(yù)處理、編譯處理等過程,提高了對目標程序進行測試的準確性。
S102,基于所述鏈接關(guān)系,獲取所述目標函數(shù)的起始位置信息;
具體的,基于所述鏈接關(guān)系,所述程序測試設(shè)備可以獲取所述目標函數(shù)的起始位置信息,優(yōu)選的,所述程序測試設(shè)備可以基于所述鏈接關(guān)系對所述目標函數(shù)進行預(yù)處理,并在預(yù)處理后生成所述目標函數(shù)對應(yīng)的抽象語法樹(Abstract Syntax Tree,AST),所述預(yù)處理可以包括預(yù)編譯過程以及翻譯過程,所述程序測試設(shè)備基于所述鏈接關(guān)系對所述目標函數(shù)進行預(yù)編譯處理,并對預(yù)編譯處理后的目標函數(shù)進行翻譯,最終生成所述目標函數(shù)對應(yīng)的AST。所述程序測試設(shè)備獲取所述目標函數(shù)對應(yīng)的AST,并對所述AST進行編譯以獲取所述目標函數(shù)的起始位置信息。可以理解的是,所述起始位置信息包括所述目標函數(shù)的首字符的位置坐標以及所述目標函數(shù)中開始運行的位置坐標,例如:所述目標函數(shù)的起始大括號的位置坐標等。
S103,按照所述起始位置信息對所述目標程序進行插樁測試;
具體的,所述程序測試設(shè)備按照所述起始位置信息對所述目標程序進行插樁測試,進一步的,對于多個目標函數(shù),所述程序測試設(shè)備按照每個目標函數(shù)的起始位置信息進行插樁,并依次進行測試,即對所述目標程序進行測試。
在本發(fā)明實施例中,當需要對目標程序進行測試時,通過與所述目標程序中的目標函數(shù)建立鏈接關(guān)系,可以基于該鏈接關(guān)系獲取目標函數(shù)的起始位置信息,最終按照起始位置信息對目標程序進行插樁測試。實現(xiàn)了對目標程序的自動測試,通過基于鏈接關(guān)系獲取目標函數(shù)的起始位置信息,保證了對程序進行覆蓋測試的全面性,避免了對后續(xù)的程序開發(fā)的影響,提升了對程序的測試效果和測試效率。
請參見圖2,為本發(fā)明實施例提供了另一種判斷應(yīng)用程序測試覆蓋范圍的方法的流程示意圖。如圖2所示,本發(fā)明實施例的所述方法可以包括以下步驟S201-步驟S206。
S201,當對目標程序進行測試時,定位并獲取所述目標程序的頭文件目錄;
具體的,當需要對目標程序進行測試時,程序測試設(shè)備需要定位并獲取目標程序的頭文件目錄,假設(shè)系統(tǒng)中默認的頭文件目錄為“/usr/include”,而在所述目標程序中未查找到,則需要進行頭文件目錄的重定位,所述程序測試設(shè)備可以將所定位的多個頭文件目錄進行輸出,并由用戶自行分析,并最終確定所述目標程序的頭文件目錄,所述程序測試設(shè)備獲取用戶所確定的所述目標程序的頭文件目錄,優(yōu)選的,所述程序測試設(shè)備還可以將獲取的所述目標程序的頭文件目錄輸出為一個變量,并根據(jù)該變量生成一個插件。
S202,與所述目標程序中的目標函數(shù)建立鏈接關(guān)系;
具體的,程序測試設(shè)備可以與所述目標程序中的目標函數(shù)建立鏈接關(guān)系,優(yōu)選的,所述程序測試設(shè)備可以創(chuàng)建一個前端進程,該前端進程優(yōu)選為對目標程序進行輸入的接口,測試人員可以通過該前端進程將需要測試的目標程序進行輸入,所述程序測試設(shè)備可以獲取所述目標程序,并與所述目標程序中的目標函數(shù)建立鏈接關(guān)系。例如:所述程序測試設(shè)備可以調(diào)用Clang工具建立一個前端進程,Clang是一個C語言、C++、Objective-C、Objective-C++語言的輕量級編譯器,并通過Clang工具與所述目標函數(shù)建立鏈接關(guān)系。
可以理解的是,所述目標程序可以包含一個或多個函數(shù),因此所述目標函數(shù)可以為一個或多個函數(shù)。對于多個函數(shù),所述程序測試設(shè)備需要分別與所述多個函數(shù)建立鏈接關(guān)系。
通過對目標程序的頭文件目錄進行定位和獲取,以及與目標函數(shù)建立鏈接關(guān)系,可以便于實現(xiàn)后續(xù)對目標函數(shù)進行預(yù)處理、編譯處理等過程,提高了對目標程序進行測試的準確性。
S203,基于所述鏈接關(guān)系對所述目標函數(shù)進行預(yù)處理,并在預(yù)處理后生成所述目標函數(shù)對應(yīng)的AST;
具體的,所述程序測試設(shè)備可以基于所述鏈接關(guān)系對所述目標函數(shù)進行預(yù)處理,并在預(yù)處理后生成所述目標函數(shù)對應(yīng)的AST,所述預(yù)處理可以包括預(yù)編譯過程以及翻譯過程,所述程序測試設(shè)備基于所述鏈接關(guān)系對所述目標函數(shù)進行預(yù)編譯處理,并對預(yù)編譯處理后的目標函數(shù)進行翻譯,最終生成所述目標函數(shù)對應(yīng)的AST。
S204,對所述AST進行編譯以獲取所述目標函數(shù)的起始位置信息;
具體的,所述程序測試設(shè)備獲取所述目標函數(shù)對應(yīng)的AST,并對所述AST進行編譯以獲取所述目標函數(shù)的起始位置信息??梢岳斫獾氖?,所述起始位置信息包括所述目標函數(shù)的首字符的位置坐標以及所述目標函數(shù)中開始運行的位置坐標,例如:所述目標函數(shù)的起始大括號的位置坐標等。
S205,基于所述連接關(guān)系,獲取所述目標函數(shù)的結(jié)束位置信息;
具體的,所述程序測試設(shè)備在獲取所述起始位置信息的同時還可以獲取所述目標函數(shù)對應(yīng)的結(jié)束位置信息,所述結(jié)束位置信息包括所述目標函數(shù)的末字符的位置坐標以及所述目標函數(shù)中結(jié)束運行的位置坐標,例如:所述目標函數(shù)的結(jié)束大括號的位置坐標等。通過獲取所述目標函數(shù)的結(jié)束位置信息,可以便 于測試人員對所述目標函數(shù)的測試結(jié)果進行分析以及進行評價,保證測試的效果以及有效性。
S206,按照所述起始位置信息對所述目標程序進行插樁測試;
具體的,所述程序測試設(shè)備按照所述起始位置信息對所述目標程序進行插樁測試,進一步的,對于多個目標函數(shù),所述程序測試設(shè)備按照每個目標函數(shù)的起始位置信息進行插樁,并依次進行測試,即對所述目標程序進行測試。
在本發(fā)明實施例中,當需要對目標程序進行測試時,通過與所述目標程序中的目標函數(shù)建立鏈接關(guān)系,可以基于該鏈接關(guān)系獲取目標函數(shù)的起始位置信息,最終按照起始位置信息對目標程序進行插樁測試。實現(xiàn)了對目標程序的自動測試,通過基于鏈接關(guān)系獲取目標函數(shù)的起始位置信息,保證了對程序進行覆蓋測試的全面性,避免了對后續(xù)的程序開發(fā)的影響,提升了對程序的測試效果和測試效率;通過對目標程序的頭文件目錄進行定位和獲取,以及與目標函數(shù)建立鏈接關(guān)系,可以便于實現(xiàn)后續(xù)對目標函數(shù)進行預(yù)處理、編譯處理等過程,提高了對目標程序進行測試的準確性;通過獲取所述目標函數(shù)的結(jié)束位置信息,可以便于測試人員對所述目標函數(shù)的測試結(jié)果進行分析以及進行評價,保證測試的效果以及有效性。
下面將結(jié)合附圖3-附圖5,對本發(fā)明實施例提供的程序測試設(shè)備進行詳細介紹。需要說明的是,附圖3-附圖5所示的程序測試設(shè)備,用于執(zhí)行本發(fā)明圖1和圖2所示實施例的方法,為了便于說明,僅示出了與本發(fā)明實施例相關(guān)的部分,具體技術(shù)細節(jié)未揭示的,請參照本發(fā)明圖1和圖2所示的實施例。
請參見圖3,為本發(fā)明實施例提供了一種程序測試設(shè)備的結(jié)構(gòu)示意圖。如圖3所示,本發(fā)明實施例的所述程序測試設(shè)備1可以包括:關(guān)系建立單元11、信息獲取單元12和程序測試單元13。
關(guān)系建立單元11,用于當對目標程序進行測試時,與所述目標程序中的目標函數(shù)建立鏈接關(guān)系;
具體實現(xiàn)中,當需要對目標程序進行測試時,所述關(guān)系建立單元11可以與所述目標程序中的目標函數(shù)建立鏈接關(guān)系,優(yōu)選的,所述關(guān)系建立單元11可以創(chuàng)建一個前端進程,該前端進程優(yōu)選為對目標程序進行輸入的接口,測試人員可以通過該前端進程將需要測試的目標程序進行輸入,所述關(guān)系建立單元11可 以獲取所述目標程序,并與所述目標程序中的目標函數(shù)建立鏈接關(guān)系。例如:所述關(guān)系建立單元11可以調(diào)用Clang工具建立一個前端進程,Clang是一個C語言、C++、Objective-C、Objective-C++語言的輕量級編譯器,并通過Clang工具與所述目標函數(shù)建立鏈接關(guān)系。
可以理解的是,所述目標程序可以包含一個或多個函數(shù),因此所述目標函數(shù)可以為一個或多個函數(shù)。對于多個函數(shù),所述關(guān)系建立單元11需要分別與所述多個函數(shù)建立鏈接關(guān)系。
通過與目標函數(shù)建立鏈接關(guān)系,可以便于實現(xiàn)后續(xù)對目標函數(shù)進行預(yù)處理、編譯處理等過程,提高了對目標程序進行測試的準確性。
信息獲取單元12,用于基于所述鏈接關(guān)系,獲取所述目標函數(shù)的起始位置信息;
具體實現(xiàn)中,基于所述鏈接關(guān)系,所述信息獲取單元12可以獲取所述目標函數(shù)的起始位置信息,優(yōu)選的,所述信息獲取單元12可以基于所述鏈接關(guān)系對所述目標函數(shù)進行預(yù)處理,并在預(yù)處理后生成所述目標函數(shù)對應(yīng)的AST,所述預(yù)處理可以包括預(yù)編譯過程以及翻譯過程,所述信息獲取單元12基于所述鏈接關(guān)系對所述目標函數(shù)進行預(yù)編譯處理,并對預(yù)編譯處理后的目標函數(shù)進行翻譯,最終生成所述目標函數(shù)對應(yīng)的AST。所述信息獲取單元12獲取所述目標函數(shù)對應(yīng)的AST,并對所述AST進行編譯以獲取所述目標函數(shù)的起始位置信息??梢岳斫獾氖牵銎鹗嘉恢眯畔ㄋ瞿繕撕瘮?shù)的首字符的位置坐標以及所述目標函數(shù)中開始運行的位置坐標,例如:所述目標函數(shù)的起始大括號的位置坐標等。
所述信息獲取單元12在獲取所述起始位置信息的同時還可以獲取所述目標函數(shù)對應(yīng)的結(jié)束位置信息,所述結(jié)束位置信息包括所述目標函數(shù)的末字符的位置坐標以及所述目標函數(shù)中結(jié)束運行的位置坐標,例如:所述目標函數(shù)的結(jié)束大括號的位置坐標等。通過獲取所述目標函數(shù)的結(jié)束位置信息,可以便于測試人員對所述目標函數(shù)的測試結(jié)果進行分析以及進行評價,保證測試的效果以及有效性。
具體的,請一并參見圖4,為本發(fā)明實施例提供了信息獲取單元的結(jié)構(gòu)示意圖。如圖4所示,所述信息獲取單元12可以包括:
語法樹生成子單元121,用于基于所述鏈接關(guān)系對所述目標函數(shù)進行預(yù)處理, 并在預(yù)處理后生成所述目標函數(shù)對應(yīng)的AST;
具體實現(xiàn)中,所述語法樹生成子單元121可以基于所述鏈接關(guān)系對所述目標函數(shù)進行預(yù)處理,并在預(yù)處理后生成所述目標函數(shù)對應(yīng)的AST,所述預(yù)處理可以包括預(yù)編譯過程以及翻譯過程,所述語法樹生成子單元121基于所述鏈接關(guān)系對所述目標函數(shù)進行預(yù)編譯處理,并對預(yù)編譯處理后的目標函數(shù)進行翻譯,最終生成所述目標函數(shù)對應(yīng)的AST。
信息獲取子單元122,用于對所述AST進行編譯以獲取所述目標函數(shù)的起始位置信息;
具體實現(xiàn)中,所述信息獲取子單元122獲取所述目標函數(shù)對應(yīng)的AST,并對所述AST進行編譯以獲取所述目標函數(shù)的起始位置信息。可以理解的是,所述起始位置信息包括所述目標函數(shù)的首字符的位置坐標以及所述目標函數(shù)中開始運行的位置坐標,例如:所述目標函數(shù)的起始大括號的位置坐標等。
程序測試單元13,用于按照所述起始位置信息對所述目標程序進行插樁測試;
具體實現(xiàn)中,所述程序測試單元13按照所述起始位置信息對所述目標程序進行插樁測試,進一步的,對于多個目標函數(shù),所述程序測試單元13按照每個目標函數(shù)的起始位置信息進行插樁,并依次進行測試,即對所述目標程序進行測試。
在本發(fā)明實施例中,當需要對目標程序進行測試時,通過與所述目標程序中的目標函數(shù)建立鏈接關(guān)系,可以基于該鏈接關(guān)系獲取目標函數(shù)的起始位置信息,最終按照起始位置信息對目標程序進行插樁測試。實現(xiàn)了對目標程序的自動測試,通過基于鏈接關(guān)系獲取目標函數(shù)的起始位置信息,保證了對程序進行覆蓋測試的全面性,避免了對后續(xù)的程序開發(fā)的影響,提升了對程序的測試效果和測試效率;通過獲取所述目標函數(shù)的結(jié)束位置信息,可以便于測試人員對所述目標函數(shù)的測試結(jié)果進行分析以及進行評價,保證測試的效果以及有效性。
請參見圖5,為本發(fā)明實施例提供了另一種程序測試設(shè)備1的結(jié)構(gòu)示意圖。如圖5所示,本發(fā)明實施例的所述程序測試設(shè)備11可以包括:關(guān)系建立單元11、信息獲取單元12、程序測試單元13和目錄獲取單元14;其中,關(guān)系建立單元11、信息獲取單元12和程序測試單元13的具體結(jié)構(gòu)可以參見圖3所示實施例 的描述,在此不進行贅述。
目錄獲取單元14,用于當對目標程序進行測試時,定位并獲取所述目標程序的頭文件目錄;
具體實現(xiàn)中,當需要對目標程序進行測試時,程序測試設(shè)備1需要定位并獲取目標程序的頭文件目錄,假設(shè)系統(tǒng)中默認的頭文件目錄為“/usr/include”,而在所述目標程序中未查找到,則需要進行頭文件目錄的重定位,所述程序測試設(shè)備1可以將所定位的多個頭文件目錄進行輸出,并由用戶自行分析,并最終確定所述目標程序的頭文件目錄,所述目錄獲取單元14獲取用戶所確定的所述目標程序的頭文件目錄,優(yōu)選的,所述目錄獲取單元14還可以將獲取的所述目標程序的頭文件目錄輸出為一個變量,并根據(jù)該變量生成一個插件。
在本發(fā)明實施例中,當需要對目標程序進行測試時,通過與所述目標程序中的目標函數(shù)建立鏈接關(guān)系,可以基于該鏈接關(guān)系獲取目標函數(shù)的起始位置信息,最終按照起始位置信息對目標程序進行插樁測試。實現(xiàn)了對目標程序的自動測試,通過基于鏈接關(guān)系獲取目標函數(shù)的起始位置信息,保證了對程序進行覆蓋測試的全面性,避免了對后續(xù)的程序開發(fā)的影響,提升了對程序的測試效果和測試效率;通過對目標程序的頭文件目錄進行定位和獲取,以及與目標函數(shù)建立鏈接關(guān)系,可以便于實現(xiàn)后續(xù)對目標函數(shù)進行預(yù)處理、編譯處理等過程,提高了對目標程序進行測試的準確性;通過獲取所述目標函數(shù)的結(jié)束位置信息,可以便于測試人員對所述目標函數(shù)的測試結(jié)果進行分析以及進行評價,保證測試的效果以及有效性。
請參見圖6,為本發(fā)明實施例提供了又一種程序測試設(shè)備的結(jié)構(gòu)示意圖。如圖6所示,所述程序測試設(shè)備1000可以包括:至少一個處理器1001,例如CPU,至少一個網(wǎng)絡(luò)接口1004,用戶接口1003,存儲器1005,至少一個通信總線1002。其中,通信總線1002用于實現(xiàn)這些組件之間的連接通信。其中,用戶接口1003可以包括顯示屏(Display)、鍵盤(Keyboard),可選用戶接口1003還可以包括標準的有線接口、無線接口。網(wǎng)絡(luò)接口1004可選的可以包括標準的有線接口、無線接口(如WI-FI接口)。存儲器1005可以是高速RAM存儲器,也可以是非不穩(wěn)定的存儲器(non-volatile memory),例如至少一個磁盤存儲器。存儲器1005可選的還可以是至少一個位于遠離前述處理器1001的存儲裝置。如圖6所示, 作為一種計算機存儲介質(zhì)的存儲器1005中可以包括操作系統(tǒng)、網(wǎng)絡(luò)通信模塊、用戶接口模塊以及測試應(yīng)用程序。
在圖6所示的程序測試設(shè)備1000中,用戶接口1003主要用于為用戶提供輸入的接口,獲取用戶輸入的數(shù)據(jù);而處理器1001可以用于調(diào)用存儲器1005中存儲的測試應(yīng)用程序,并具體執(zhí)行以下操作:
當對目標程序進行測試時,與所述目標程序中的目標函數(shù)建立鏈接關(guān)系;
基于所述鏈接關(guān)系,獲取所述目標函數(shù)的起始位置信息;
按照所述起始位置信息對所述目標程序進行插樁測試。
在一個實施例中,所述處理器1001在執(zhí)行與所述目標程序中的目標函數(shù)建立鏈接關(guān)系之前,還執(zhí)行以下操作:
定位并獲取所述目標程序的頭文件目錄。
在一個實施例中,所述處理器1001在執(zhí)行基于所述鏈接關(guān)系,獲取所述目標函數(shù)的起始位置信息時,具體執(zhí)行以下操作:
基于所述鏈接關(guān)系對所述目標函數(shù)進行預(yù)處理,并在預(yù)處理后生成所述目標函數(shù)對應(yīng)的AST;
對所述AST進行編譯以獲取所述目標函數(shù)的起始位置信息。
在一個實施例中,所述處理器1001在執(zhí)行基于所述鏈接關(guān)系對所述目標函數(shù)進行預(yù)處理,并在預(yù)處理后生成所述目標函數(shù)對應(yīng)的AST時,具體執(zhí)行以下操作:
基于所述鏈接關(guān)系對所述目標函數(shù)進行預(yù)編譯處理,并對預(yù)編譯處理后的目標函數(shù)進行翻譯,以生成所述目標函數(shù)對應(yīng)的AST。
在一個實施例中,所述處理器1001還執(zhí)行以下操作:
基于所述連接關(guān)系,獲取所述目標函數(shù)的結(jié)束位置信息。
在本發(fā)明實施例中,當需要對目標程序進行測試時,通過與所述目標程序中的目標函數(shù)建立鏈接關(guān)系,可以基于該鏈接關(guān)系獲取目標函數(shù)的起始位置信息,最終按照起始位置信息對目標程序進行插樁測試。實現(xiàn)了對目標程序的自動測試,通過基于鏈接關(guān)系獲取目標函數(shù)的起始位置信息,保證了對程序進行覆蓋測試的全面性,避免了對后續(xù)的程序開發(fā)的影響,提升了對程序的測試效果和測試效率;通過對目標程序的頭文件目錄進行定位和獲取,以及與目標函數(shù)建立鏈接關(guān)系,可以便于實現(xiàn)后續(xù)對目標函數(shù)進行預(yù)處理、編譯處理等過程, 提高了對目標程序進行測試的準確性;通過獲取所述目標函數(shù)的結(jié)束位置信息,可以便于測試人員對所述目標函數(shù)的測試結(jié)果進行分析以及進行評價,保證測試的效果以及有效性。
本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機存儲記憶體(Random Access Memory,RAM)等。
以上所揭露的僅為本發(fā)明較佳實施例而已,當然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。