本發(fā)明涉及軟件測試領(lǐng)域,具體地說是一種軟件測試定位補(bǔ)丁修改及影響范圍的工具及實(shí)現(xiàn)方法。
背景技術(shù):
在計(jì)算機(jī)的各種應(yīng)用過程中,常常會(huì)發(fā)現(xiàn)各種操作系統(tǒng)、應(yīng)用軟件等存在問題或漏洞,也可稱為bug,而這些漏洞會(huì)使用戶在使用操作系統(tǒng)或軟件時(shí)出現(xiàn)干擾,或者導(dǎo)致軟件的安全性能降低,因此可以通過寫出一些可插入源程序的程序語言,對這些漏洞進(jìn)行修復(fù),上述用于修復(fù)漏洞的程序語言就稱為補(bǔ)丁。
目前針對開發(fā)人員提交的補(bǔ)丁,測試人員只能根據(jù)補(bǔ)丁修改說明了解到測試信息,不能排除開發(fā)人員在修改問題過程中也修改了其他問題,這種僅依靠補(bǔ)丁信息不能確定影響的具體內(nèi)容的情況,導(dǎo)致測試人員各種摸索性測試,要么漏掉補(bǔ)丁包含說明中未提到的內(nèi)容導(dǎo)致程序報(bào)錯(cuò),要么全部測試耗費(fèi)大量時(shí)間、人力及成本。
申請?zhí)枮閏n102156650b的專利文獻(xiàn)公開了一種實(shí)現(xiàn)補(bǔ)丁自動(dòng)分析的方法和裝置;其中,所述方法包括:獲取補(bǔ)丁包;對所述補(bǔ)丁包進(jìn)行解包處理,提取出補(bǔ)丁的描述信息和檢測信息;將所述補(bǔ)丁的描述信息和檢測信息錄入系統(tǒng)漏洞庫。但是該技術(shù)方案不能定位補(bǔ)丁修改及影響范圍。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的技術(shù)任務(wù)是針對以上不足之處,提供一種軟件測試定位補(bǔ)丁修改及影響范圍的工具及實(shí)現(xiàn)方法,來解決測試人員根據(jù)補(bǔ)丁信息只能摸索性測試,部分測試可能漏掉補(bǔ)丁包含說明中未提到的內(nèi)容導(dǎo)致程序報(bào)錯(cuò)或者全部測試耗費(fèi)大量時(shí)間、人力以及成本的問題。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:一種軟件測試定位補(bǔ)丁修改及影響范圍的工具,該工具包括源代碼變化分析組件、元數(shù)據(jù)變化分析組件、sql規(guī)范性檢查組件以及影響功能菜單智能匯總組件;
其中,源代碼變化分析組件用于接收使用者傳入的補(bǔ)丁文件,并將補(bǔ)丁復(fù)制到指定目錄下并解壓,同時(shí)提取解壓路徑下全部后綴為dll的請求文件,開始對全部請求文件進(jìn)行預(yù)處理;
元數(shù)據(jù)變化分析組件用于通過查詢產(chǎn)品數(shù)據(jù)庫獲取補(bǔ)丁包含的元數(shù)據(jù)信息列表,針對每個(gè)元數(shù)據(jù)獲取到id、編號、名稱、路徑以及類型的信息形成列表展示在界面上;
sql規(guī)范檢查組件用于捕獲補(bǔ)丁文件中的所有以.sql為后綴的文件,按照多種規(guī)則結(jié)合正則匹配技術(shù)驗(yàn)證語法規(guī)范性;
影響功能菜單智能匯總組件用于將dll和元數(shù)據(jù)與功能菜單列表的關(guān)鍵信息寫入單獨(dú)文件中,通過讀取文件,將該補(bǔ)丁影響的所有菜單列表展示在匯總組件中。
一種軟件測試定位補(bǔ)丁修改及影響范圍的實(shí)現(xiàn)方法,包括如下步驟:
s1、將補(bǔ)丁傳入到應(yīng)用服務(wù)器上,通過源代碼變化分析組件自動(dòng)獲取解壓縮文件夾下面的所有后綴是dll的文件,通過反射機(jī)制展示新增、修改、刪除的dll、類、方法樹形結(jié)構(gòu);
s2、通過點(diǎn)擊樹形結(jié)構(gòu)上的節(jié)點(diǎn)自動(dòng)調(diào)用ilsby反編譯dll,并借助比較工具beyondcompare自動(dòng)展示源代碼差異比較和源代碼全文比較界面;
s3、通過元數(shù)據(jù)變化分析組件自動(dòng)獲取解壓縮文件夾下面的所有元數(shù)據(jù)文件,通過查詢數(shù)據(jù)庫獲取包含的元數(shù)據(jù)信息的列表結(jié)構(gòu);
s4、點(diǎn)擊列表的任意一行,通過查詢數(shù)據(jù)庫方式獲取元數(shù)據(jù)對應(yīng)的功能菜單、查看元數(shù)據(jù)的依賴關(guān)系、借助比較工具beyondcompare自動(dòng)展示元數(shù)據(jù)的內(nèi)容差異;
s5、切到sql規(guī)范性檢查組件中,輸入待檢查的文件夾路徑,點(diǎn)擊檢查,可以根據(jù)程序中預(yù)設(shè)規(guī)則進(jìn)行各種規(guī)范性檢查,程序界面顯示檢查結(jié)果,實(shí)現(xiàn)語法錯(cuò)誤的提前預(yù)知;
s6、結(jié)合步驟s1-s5的執(zhí)行結(jié)果,影響功能菜單智能匯總組件自動(dòng)形成該補(bǔ)丁影響的所有功能菜單列表。
作為優(yōu)選,步驟s2通過借助uiautomation自動(dòng)化技術(shù)自動(dòng)啟動(dòng)反編譯工具ilsby對dll進(jìn)行反編譯處理,最終展示出類對應(yīng)的源代碼差異比較信息和全文比較信息。
作為優(yōu)選,步驟s3元數(shù)據(jù)信息列表包括id、編號、名稱、路徑以及類型。
作為優(yōu)選,步驟s5捕獲補(bǔ)丁文件中的所有以.sql為后綴的文件,按照多種規(guī)則結(jié)合正則匹配技術(shù)驗(yàn)證語法規(guī)范性,并顯示語句檢查是否通過:
①、若檢查通過,則顯示檢查通過的語句;
②、若檢查不通過,則顯示出錯(cuò)的sql語句信息。
本發(fā)明的軟件測試定位補(bǔ)丁修改及影響范圍的工具及實(shí)現(xiàn)方法和現(xiàn)有技術(shù)相比,具有以下有益效果:
1、本發(fā)明通過對補(bǔ)丁包含文件的處理,分析出dll文件影響的源代碼變化信息,元數(shù)據(jù)文件影響的內(nèi)容變化信息,清晰展示元數(shù)據(jù)的依賴關(guān)系,sql規(guī)范檢查實(shí)現(xiàn)按照各種語法規(guī)則自動(dòng)進(jìn)行語句的規(guī)范性檢查,匯總出該補(bǔ)丁影響的所有功能菜單列表,實(shí)現(xiàn)了對補(bǔ)丁有針對性的測試,防止出現(xiàn)遺漏測試和全量測試,提高測試的可靠性;
2、本發(fā)明通過智能檢索補(bǔ)丁中包含的.dll文件與服務(wù)器上同名的.dll進(jìn)行反編譯處理,結(jié)合比較工具自動(dòng)分析出代碼差異,進(jìn)而根據(jù)dll名稱結(jié)合產(chǎn)品下載項(xiàng)信息獲取到影響的功能菜單列表,同時(shí)通過獲取補(bǔ)丁中的元數(shù)據(jù)信息列表,查詢產(chǎn)品數(shù)據(jù)庫信息獲取到元數(shù)據(jù)影響的功能菜單列表,查看元數(shù)據(jù)間的依賴關(guān)系,展示新舊元數(shù)據(jù)內(nèi)容差異,捕獲補(bǔ)丁文件中所有.sql后綴的文件進(jìn)行sql語法規(guī)范性檢查,在分析全部結(jié)果后,智能展示該補(bǔ)丁影響的全部功能菜單列表,使用者根據(jù)全部功能菜單列表確定該補(bǔ)丁的測試范圍;
3、本發(fā)明能夠讓看不懂代碼的測試人員了解要測的測試點(diǎn),細(xì)化到功能菜單,能讓看的懂代碼的測試人員深入了解源代碼修改內(nèi)容,有利于更精準(zhǔn)的測試;在打補(bǔ)丁前識別出來sql語法錯(cuò)誤避免更新時(shí)才能發(fā)現(xiàn)的錯(cuò)誤,大大提高了公司產(chǎn)品的質(zhì)量,大大節(jié)省了問題缺陷修復(fù)后回歸測試的人力物力,相比現(xiàn)在常用的針對補(bǔ)丁的摸索性測試,工作量有所削減,效益有所提升。
附圖說明
下面結(jié)合附圖對本發(fā)明進(jìn)一步說明。
附圖1為軟件測試定位補(bǔ)丁修改及影響范圍的實(shí)現(xiàn)方法的流程框圖。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施例對本發(fā)明作進(jìn)一步說明。
實(shí)施例1
本發(fā)明的軟件測試定位補(bǔ)丁修改及影響范圍的工具,該工具包括源代碼變化分析組件、元數(shù)據(jù)變化分析組件、sql規(guī)范性檢查組件以及影響功能菜單智能匯總組件;
其中,源代碼變化分析組件用于接收使用者傳入的補(bǔ)丁文件,并將補(bǔ)丁復(fù)制到指定目錄下并解壓,同時(shí)提取解壓路徑下全部后綴為dll的請求文件,開始對全部請求文件進(jìn)行預(yù)處理;
元數(shù)據(jù)變化分析組件用于通過查詢產(chǎn)品數(shù)據(jù)庫獲取補(bǔ)丁包含的元數(shù)據(jù)信息列表,針對每個(gè)元數(shù)據(jù)獲取到id、編號、名稱、路徑以及類型的信息形成列表展示在界面上;
sql規(guī)范檢查組件用于捕獲補(bǔ)丁文件中的所有以.sql為后綴的文件,按照多種規(guī)則結(jié)合正則匹配技術(shù)驗(yàn)證語法規(guī)范性;
影響功能菜單智能匯總組件用于將dll和元數(shù)據(jù)與功能菜單列表的關(guān)鍵信息寫入單獨(dú)文件中,通過讀取文件,將該補(bǔ)丁影響的所有菜單列表展示在匯總組件中。
實(shí)施例2
如附圖1所示,采用實(shí)施例1中的軟件測試定位補(bǔ)丁修改及影響范圍的工具的實(shí)現(xiàn)方法,包括如下步驟:
s1、將補(bǔ)丁傳入到應(yīng)用服務(wù)器上,通過源代碼變化分析組件自動(dòng)獲取解壓縮文件夾下面的所有后綴是dll的文件,通過反射機(jī)制展示新增、修改、刪除的dll、類、方法樹形結(jié)構(gòu);
s2、通過點(diǎn)擊樹形結(jié)構(gòu)上的節(jié)點(diǎn)通過借助uiautomation自動(dòng)化技術(shù)自動(dòng)調(diào)用ilsby反編譯dll,并借助比較工具beyondcompare自動(dòng)展示源代碼差異比較和源代碼全文比較界面;
s3、通過元數(shù)據(jù)變化分析組件自動(dòng)獲取解壓縮文件夾下面的所有元數(shù)據(jù)文件,通過查詢數(shù)據(jù)庫獲取包含的元數(shù)據(jù)信息的列表結(jié)構(gòu);元數(shù)據(jù)信息列表包括id、編號、名稱、路徑以及類型。
s4、點(diǎn)擊列表的任意一行,通過查詢數(shù)據(jù)庫方式獲取元數(shù)據(jù)對應(yīng)的功能菜單、查看元數(shù)據(jù)的依賴關(guān)系、借助比較工具beyondcompare自動(dòng)展示元數(shù)據(jù)的內(nèi)容差異;
s5、切到sql規(guī)范性檢查組件中,輸入待檢查的文件夾路徑,點(diǎn)擊檢查,可以根據(jù)程序中預(yù)設(shè)規(guī)則進(jìn)行各種規(guī)范性檢查,程序界面顯示檢查結(jié)果;
①、若檢查通過,則顯示檢查通過的語句;
②、若檢查不通過,則顯示出錯(cuò)的sql語句信息。
s6、結(jié)合步驟s1-s5的執(zhí)行結(jié)果,影響功能菜單智能匯總組件自動(dòng)形成該補(bǔ)丁影響的所有功能菜單列表。
實(shí)施例3
使用者首先將補(bǔ)丁放到應(yīng)用服務(wù)器端,然后開啟實(shí)施例1的工具。
(1)、首先調(diào)用第一層組件:源代碼變化分析組件接收使用者傳入的補(bǔ)丁文件,之后工具將補(bǔ)丁復(fù)制到指定目錄下并解壓,同時(shí)提取解壓路徑下全部后綴為dll的請求文件,然后開始對全部請求文件進(jìn)行預(yù)處理:獲取服務(wù)器端同名dll放在兩個(gè)文件夾下面,通過反射機(jī)制獲取dll的程序集內(nèi)部的類、方法、屬性等信息,進(jìn)而自動(dòng)分析出新增的、修改的、刪除的類、方法、屬性信息,同時(shí)展示出變化信息的樹形列表。使用者可以點(diǎn)擊樹上任意節(jié)點(diǎn),獲取該dll影響的功能菜單,同時(shí)借助uiautomation自動(dòng)化技術(shù)自動(dòng)啟動(dòng)反編譯工具ilsby對dll進(jìn)行反編譯,最終展示出類對應(yīng)的源代碼差異比較信息和全文比較信息。
(2)、調(diào)用工具第二層組件:元數(shù)據(jù)變化分析組件。首先通過查詢產(chǎn)品數(shù)據(jù)庫獲取補(bǔ)丁包含元數(shù)據(jù)文件包含的元數(shù)據(jù)信息列表,針對每個(gè)元數(shù)據(jù)獲取到id、編號、名稱、路徑、類型等信息形成列表展示在界面上,使用者可以點(diǎn)擊任意一行元數(shù)據(jù)獲取該元數(shù)據(jù)對應(yīng)的功能菜單列表;右鍵點(diǎn)擊任意一行元數(shù)據(jù)查看該元數(shù)據(jù)與其他元數(shù)據(jù)的依賴關(guān)系,進(jìn)而判斷該元數(shù)據(jù)修改會(huì)影響到哪些其他元數(shù)據(jù);使用者點(diǎn)擊任意一行可以獲取到新舊元數(shù)據(jù)內(nèi)容的變化,展示形式借助beyongdcompare工具顯示內(nèi)容異同。
(3)、調(diào)用工具第三層組件:sql規(guī)范檢查組件。程序捕獲補(bǔ)丁文件中的所有以.sql為后綴的文件,按照多種規(guī)則結(jié)合正則匹配技術(shù)驗(yàn)證語法規(guī)范性。按照規(guī)則檢查,如果檢查通過顯示檢查通過,如果檢查不通過,顯示出錯(cuò)的語句內(nèi)容。
(4)、調(diào)用工具第四層組件:影響功能菜單智能匯總組件。首先通過前面兩個(gè)組件的執(zhí)行,將dll和元數(shù)據(jù)與功能菜單列表的關(guān)鍵信息寫入單獨(dú)文件中,通過讀取文件,將該補(bǔ)丁影響的所有菜單列表展示在匯總組件中。
通過上面具體實(shí)施方式,所述技術(shù)領(lǐng)域的技術(shù)人員可容易的實(shí)現(xiàn)本發(fā)明。但是應(yīng)當(dāng)理解,本發(fā)明并不限于上述的三種具體實(shí)施方式。在公開的實(shí)施方式的基礎(chǔ)上,所述技術(shù)領(lǐng)域的技術(shù)人員可任意組合不同的技術(shù)特征,從而實(shí)現(xiàn)不同的技術(shù)方案。
除說明書所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。