一種注冊(cè)表監(jiān)控軟件的自動(dòng)化測(cè)試方法和裝置制造方法
【專利摘要】本發(fā)明提供了一種注冊(cè)表監(jiān)控軟件的自動(dòng)化測(cè)試方法和裝置,其中方法包括:S1、釋放文件解密工具對(duì)待測(cè)試注冊(cè)表監(jiān)控軟件的注冊(cè)表監(jiān)控規(guī)則進(jìn)行解密,得到所監(jiān)控的注冊(cè)表路徑、所監(jiān)控的邏輯組合以及對(duì)邏輯組合所執(zhí)行的動(dòng)作;S2、查找注冊(cè)表中與所述注冊(cè)表路徑相匹配的對(duì)象條目;S3、利用所述所監(jiān)控的邏輯組合以及對(duì)邏輯組合所執(zhí)行的動(dòng)作,對(duì)步驟S2查找到的對(duì)象條目進(jìn)行組合邏輯測(cè)試,得到測(cè)試結(jié)果。本發(fā)明實(shí)現(xiàn)了注冊(cè)表監(jiān)控軟件測(cè)試的自動(dòng)化,相比較手工采樣對(duì)各測(cè)試點(diǎn)進(jìn)行測(cè)試的方式,本發(fā)明能夠覆蓋所有注冊(cè)表監(jiān)控規(guī)則的測(cè)試點(diǎn),測(cè)試效率和準(zhǔn)確性更高。
【專利說明】一種注冊(cè)表監(jiān)控軟件的自動(dòng)化測(cè)試方法和裝置
【【技術(shù)領(lǐng)域】】
[0001]本發(fā)明涉及計(jì)算機(jī)應(yīng)用【技術(shù)領(lǐng)域】,特別涉及一種注冊(cè)表監(jiān)控軟件的自動(dòng)化測(cè)試方法和裝置。
【【背景技術(shù)】】
[0002]注冊(cè)表是widows操作系統(tǒng)中的一個(gè)核心數(shù)據(jù)庫(kù),其中存放著各種參數(shù),直接控制著windows的啟動(dòng)、硬件驅(qū)動(dòng)程序的裝載以及一些windows應(yīng)用程序的運(yùn)行,從而在整個(gè)系統(tǒng)中起著核心作用。這些作用包括了軟、硬件的相關(guān)配置和狀態(tài)信息,比如注冊(cè)表中保存有應(yīng)用程序和資源管理器外殼的初始條件、首選項(xiàng)和卸載數(shù)據(jù)、聯(lián)網(wǎng)計(jì)算機(jī)的整個(gè)系統(tǒng)的設(shè)置和各種許可、文件擴(kuò)展名與應(yīng)用程序的關(guān)聯(lián)、硬件部件的描述、狀態(tài)和屬性、性能記錄和其他底層的系統(tǒng)狀態(tài)信息等等。因此出于安全方面考慮對(duì)注冊(cè)表的監(jiān)控就十分重要,也逐漸出現(xiàn)了各種注冊(cè)表監(jiān)控軟件,隨之而來的需求就是對(duì)注冊(cè)表監(jiān)控軟件的監(jiān)控效果進(jìn)行測(cè)試。
[0003]現(xiàn)有的注冊(cè)表監(jiān)控軟件的測(cè)試方法是純手工測(cè)試或者借助工具進(jìn)行手工測(cè)試,然而一般注冊(cè)表的測(cè)試點(diǎn)就達(dá)到上千個(gè),手工測(cè)試顯然效率低下,通常采用的方式是采樣式測(cè)試,即從大量的測(cè)試點(diǎn)中采樣出一部分進(jìn)行手工測(cè)試,顯然采樣式測(cè)試很難做到全面驗(yàn)證所有的監(jiān)控規(guī)則,準(zhǔn)確性無(wú)法保證。
【
【發(fā)明內(nèi)容】
】
[0004]有鑒于此,本發(fā)明提供了一種注冊(cè)表監(jiān)控軟件的自動(dòng)化測(cè)試方法和裝置,以便于提高測(cè)試效率和準(zhǔn)確性。
[0005]具體技術(shù)方案如下:
[0006]一種注冊(cè)表監(jiān)控軟件的自動(dòng)化測(cè)試方法,該方法包括:
[0007]S1、釋放文件解密工具對(duì)待測(cè)試注冊(cè)表監(jiān)控軟件的注冊(cè)表監(jiān)控規(guī)則進(jìn)行解密,得到所監(jiān)控的注冊(cè)表路徑、所監(jiān)控的邏輯組合以及對(duì)邏輯組合所執(zhí)行的動(dòng)作;
[0008]S2、查找注冊(cè)表中與所述注冊(cè)表路徑相匹配的對(duì)象條目;
[0009]S3、利用所述所監(jiān)控的邏輯組合以及對(duì)邏輯組合所執(zhí)行的動(dòng)作,對(duì)步驟S2查找到的對(duì)象條目進(jìn)行組合邏輯測(cè)試,得到測(cè)試結(jié)果。
[0010]根據(jù)本發(fā)明一優(yōu)選實(shí)施例,在所述步驟SI中還包括:如果所述解密工具執(zhí)行超時(shí),則提示出錯(cuò),結(jié)束流程。
[0011 ] 根據(jù)本發(fā)明一優(yōu)選實(shí)施例,解密后得到的注冊(cè)表監(jiān)控規(guī)則中包含所監(jiān)控的注冊(cè)表路徑的類正則表達(dá)式;
[0012]在所述步驟S2中采用類正則匹配算法查找注冊(cè)表中與所述類正則表達(dá)式相匹配的對(duì)象條目。
[0013]根據(jù)本發(fā)明一 優(yōu)選實(shí)施例,在所述步驟SI進(jìn)行解密后還得到要監(jiān)控的值;
[0014]在所述步驟S2中從查找到的對(duì)象條目中進(jìn)一步查找與所述要監(jiān)控的值對(duì)應(yīng)的對(duì)象條目。
[0015]根據(jù)本發(fā)明一優(yōu)選實(shí)施例,所述所監(jiān)控的邏輯組合由以下操作中的至少一種組成:修改注冊(cè)表項(xiàng),讀取注冊(cè)表項(xiàng),枚舉注冊(cè)表項(xiàng),刪除注冊(cè)表項(xiàng),創(chuàng)建注冊(cè)表項(xiàng),重命名注冊(cè)表項(xiàng),刪除注冊(cè)表值,恢復(fù)注冊(cè)表項(xiàng),設(shè)置注冊(cè)表項(xiàng)的訪問權(quán)限,設(shè)置注冊(cè)表項(xiàng)的值;
[0016]所述對(duì)邏輯組合所執(zhí)行的動(dòng)作包括:拒絕或允許。
[0017]根據(jù)本發(fā)明一優(yōu)選實(shí)施例,所述步驟S3具體包括:
[0018]對(duì)步驟S2查找到的對(duì)象條目分別執(zhí)行所述所監(jiān)控的邏輯組合,判斷待測(cè)試注冊(cè)表監(jiān)控軟件是否執(zhí)行所述對(duì)邏輯組合所執(zhí)行的動(dòng)作,如果是,則確定對(duì)當(dāng)前對(duì)象條目測(cè)試通過,否則確定對(duì)當(dāng)前對(duì)象條目測(cè)試失敗。
[0019]根據(jù)本發(fā)明一優(yōu)選實(shí)施例,該方法還包括:
[0020]通過面向用戶的接口獲取用戶以命令行的形式對(duì)所述所監(jiān)控的邏輯組合進(jìn)行的設(shè)置。
[0021]根據(jù)本發(fā)明一優(yōu)選實(shí)施例,該方法還包括:
[0022]S4、將測(cè)試結(jié)果轉(zhuǎn)換成可進(jìn)行篩選的格式,對(duì)測(cè)試通過或測(cè)試失敗的對(duì)象條目進(jìn)行篩選。
[0023]一種注冊(cè)表監(jiān)控軟件的自動(dòng)化測(cè)試裝置,該裝置包括:
[0024]解密單元,用于釋放文件解密工具對(duì)待測(cè)試注冊(cè)表監(jiān)控軟件的注冊(cè)表監(jiān)控規(guī)則進(jìn)行解密,得到所監(jiān)控的注冊(cè)表路徑、所監(jiān)控的邏輯組合以及對(duì)邏輯組合所執(zhí)行的動(dòng)作;
[0025]展開單元,用于查找注冊(cè)表中與所述注冊(cè)表路徑相匹配的對(duì)象條目;
[0026]測(cè)試單元,用于利用所述所監(jiān)控的邏輯組合以及對(duì)邏輯組合所執(zhí)行的動(dòng)作,對(duì)所述展開單元查找到的對(duì)象條目進(jìn)行組合邏輯測(cè)試,得到測(cè)試結(jié)果。
[0027]根據(jù)本發(fā)明一優(yōu)選實(shí)施例,該裝置還包括:超時(shí)判斷單元,用于判斷所述解密工具執(zhí)行是否超時(shí),如果是,則提示出錯(cuò)。
[0028]根據(jù)本發(fā)明一優(yōu)選實(shí)施例,解密后得到的注冊(cè)表監(jiān)控規(guī)則中包含所監(jiān)控的注冊(cè)表路徑的類正則表達(dá)式;
[0029]所述展開單元采用類正則匹配算法查找注冊(cè)表中與所述類正則表達(dá)式相匹配的對(duì)象條目。
[0030]根據(jù)本發(fā)明一優(yōu)選實(shí)施例,所述解密單元進(jìn)行解密后還得到要監(jiān)控的值;
[0031]所述展開單元還用于從查找到的對(duì)象條目中進(jìn)一步查找與所述要監(jiān)控的值對(duì)應(yīng)的對(duì)象條目。
[0032]根據(jù)本發(fā)明一優(yōu)選實(shí)施例,所述所監(jiān)控的邏輯組合由以下操作中的至少一種組成:修改注冊(cè)表項(xiàng),讀取注冊(cè)表項(xiàng),枚舉注冊(cè)表項(xiàng),刪除注冊(cè)表項(xiàng),創(chuàng)建注冊(cè)表項(xiàng),重命名注冊(cè)表項(xiàng),刪除注冊(cè)表值,恢復(fù)注冊(cè)表項(xiàng),設(shè)置注冊(cè)表項(xiàng)的訪問權(quán)限,設(shè)置注冊(cè)表項(xiàng)的值;
[0033]所述對(duì)邏輯組合所執(zhí)行的動(dòng)作包括:拒絕或允許。
[0034]根據(jù)本發(fā)明一優(yōu)選實(shí)施例,所述測(cè)試單元在進(jìn)行所述組合邏輯測(cè)試時(shí),具體執(zhí)行:對(duì)所述展開單元查找到的對(duì)象條目分別執(zhí)行所述所監(jiān)控的邏輯組合,判斷待測(cè)試注冊(cè)表監(jiān)控軟件是否執(zhí)行所述對(duì)邏輯組合所執(zhí)行的動(dòng)作,如果是,則確定對(duì)當(dāng)前對(duì)象條目測(cè)試通過,否則確定對(duì)當(dāng)前對(duì)象條目測(cè)試失敗。
[0035]根據(jù)本發(fā)明一優(yōu)選實(shí)施例,該裝置還包括:面向用戶的接口,用于獲取用戶以命令行的形式對(duì)所述所監(jiān)控的邏輯組合進(jìn)行的設(shè)置。
[0036]根據(jù)本發(fā)明一優(yōu)選實(shí)施例,該裝置還包括:篩選單元,用于將測(cè)試結(jié)果轉(zhuǎn)換成可進(jìn)行篩選的格式,對(duì)測(cè)試通過或測(cè)試失敗的對(duì)象條目進(jìn)行篩選。
[0037]由以上技術(shù)方案可以看出,本發(fā)明實(shí)現(xiàn)了注冊(cè)表監(jiān)控軟件測(cè)試的自動(dòng)化,相比較手工采樣對(duì)各測(cè)試點(diǎn)進(jìn)行測(cè)試的方式,本發(fā)明能夠覆蓋所有注冊(cè)表監(jiān)控規(guī)則的測(cè)試點(diǎn),測(cè)試效率和準(zhǔn)確性更高。
【【專利附圖】
【附圖說明】】
[0038]圖1為本發(fā)明實(shí)施例一提供的自動(dòng)化測(cè)試方法流程圖;
[0039]圖2為本發(fā)明實(shí)施例二提供的自動(dòng)化測(cè)試裝置結(jié)構(gòu)圖。
【【具體實(shí)施方式】】
[0040]為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)描述。
[0041]實(shí)施例一、
[0042]圖1為本發(fā)明實(shí)施例一提供的方法流程圖,如圖1所示,該方法可以包括以下步驟:
[0043]步驟101:釋放文件解密工具對(duì)待測(cè)試注冊(cè)表監(jiān)控軟件的注冊(cè)表監(jiān)控規(guī)則進(jìn)行解
LU O
[0044]通常為了保證注冊(cè)表監(jiān)控軟件的安全性,注冊(cè)表監(jiān)控軟件都有各自的加密方式,如果注冊(cè)表監(jiān)控軟件的提供方有測(cè)試需求,需要同時(shí)提供注冊(cè)表監(jiān)控軟件的解密工具。然后在本發(fā)明實(shí)施例中,利用待測(cè)試注冊(cè)表監(jiān)控軟件的解密工具對(duì)監(jiān)控規(guī)則進(jìn)行解密,得到明文的注冊(cè)表監(jiān)控規(guī)則。
[0045]解密后的注冊(cè)表監(jiān)控規(guī)則通常符合一定標(biāo)準(zhǔn),該標(biāo)準(zhǔn)本質(zhì)上是xml規(guī)范,解密后的注冊(cè)表監(jiān)控規(guī)則本質(zhì)上也是xml規(guī)范,舉一個(gè)例子,某注冊(cè)表監(jiān)控規(guī)則解密后得到:
[0046]〈Mon i torRu I e>
[0047]<MID>9</MID>
[0048]<Path>\REGISTRY\*\SOFTWARE\Microsoft\Windows\CurrentVersion\Run〈/Path〉
[0049]<Value>360Safe</Value>
[0050]<0peration>520</0peration>
[0051]<Child>0</Child>
[0052]〈DefAction〉I〈/DefAction〉
[0053]</MonitorRule>
[0054]其中,MID指示監(jiān)控規(guī)則編號(hào);
[0055]Path指示監(jiān)控的注冊(cè)表路徑的類正則表達(dá)式,*代表所有路徑;
[0056]Value指示需要監(jiān)控的值,*代表所有值;
[0057]Operation指示監(jiān)控的邏輯組合,將在后續(xù)詳細(xì)說明;
[0058] Child指示是否監(jiān)控注冊(cè)表子項(xiàng);[0059]DefAction指示待測(cè)試注冊(cè)表監(jiān)控軟件對(duì)惡意軟件符合Operation的邏輯組合所執(zhí)行的動(dòng)作。
[0060]也就是說,通常注冊(cè)表監(jiān)控規(guī)則中會(huì)包含上述信息。
[0061]在完成解密處理之后,為了清除測(cè)試環(huán)境,可以將解密工具刪除。這種解密功能的集成便于在任何環(huán)境下實(shí)時(shí)對(duì)注冊(cè)表監(jiān)控軟件進(jìn)行一鍵式測(cè)試。
[0062]另外,由于解密工具是待測(cè)試的注冊(cè)表監(jiān)控軟件自行提供的,不同的解密工具解密時(shí)間是不同的,對(duì)于這種外部植入的解密工具不能確定其是否有問題,比如卡死,因此如果解密工具執(zhí)行超時(shí),在本發(fā)明實(shí)施例中可以提示出錯(cuò),結(jié)束本發(fā)明的流程,以便于該解密工具的提供者改進(jìn)解密工具。
[0063]步驟102:利用類正則匹配算法查找注冊(cè)表中與解密后得到的注冊(cè)表監(jiān)控規(guī)則所監(jiān)控的注冊(cè)表路徑相匹配的對(duì)象條目。
[0064]由于在注冊(cè)表監(jiān)控規(guī)則中,監(jiān)控的注冊(cè)表路徑采用的是類正則表達(dá)式的方式即Path的內(nèi)容,因此在本本步驟中采用類正則匹配算法快速地查找注冊(cè)表,確定待測(cè)試的對(duì)象條目,即注冊(cè)表中與解密后得到的注冊(cè)表監(jiān)控規(guī)則所監(jiān)控的路徑相匹配的對(duì)象條目。
[0065]采用類正則匹配算法在查找注冊(cè)表過程中,首先將注冊(cè)表路徑進(jìn)行分割、從頂向下通過展開父路徑的方法確定子項(xiàng),依次遞歸直至符合規(guī)則,這樣做能夠大大縮小遍歷范圍。鑒于類正則匹配算法是已有算法,在此不再贅述。
[0066]接續(xù)上述實(shí)例,
[0067]<Path>\REGISTRY\*\SOFTWARE\Microsoftffindows\CurrentVersion\Run</Path>通過查找注冊(cè)表,得到如下幾條符合上述規(guī)則的對(duì)象條目:
[0068]HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ffindows\CurrentVersion\Run
[0069]HKEY_CURRENT_USER\Software\Microsoft\ffindows\CurrentVersion\Run
[0070]HKEY_USERS\S-l-5-18\Software\Microsoft\ffindows\CurrentVersion\Run
[0071]這三條分別是系統(tǒng)默認(rèn)的開機(jī)啟動(dòng)項(xiàng)配置、當(dāng)前用戶的開機(jī)啟動(dòng)項(xiàng)配置、編號(hào)為S-1-5-18的開機(jī)啟動(dòng)項(xiàng)配置。
[0072]上面僅是一個(gè)實(shí)例,每一條注冊(cè)表監(jiān)控規(guī)則通常得到的對(duì)象條目在5000條以上,通過手工是不可能實(shí)現(xiàn)的,通過類正則匹配算法查找注冊(cè)表的過程僅需10秒。本步驟實(shí)際上就是實(shí)現(xiàn)了注冊(cè)表監(jiān)控規(guī)則的測(cè)試點(diǎn)快速展開。
[0073]更進(jìn)一步地,如果在注冊(cè)表監(jiān)控規(guī)則中包含具體的要監(jiān)控的值,則在依據(jù)注冊(cè)表路徑進(jìn)行匹配查找到的對(duì)象條目中進(jìn)一步查找與該要監(jiān)控的值對(duì)應(yīng)的對(duì)象條目。在注冊(cè)表中表項(xiàng)是可能對(duì)應(yīng)不同的值(value)的,因此如果監(jiān)控規(guī)則中包含該要監(jiān)控的值,說明該注冊(cè)表監(jiān)控軟件僅負(fù)責(zé)該值對(duì)應(yīng)的對(duì)象條目的監(jiān)控,在測(cè)試過程中也僅需要針對(duì)該值對(duì)應(yīng)的對(duì)象條目。
[0074]步驟103:利用注冊(cè)表監(jiān)控規(guī)則所監(jiān)控的邏輯組合以及對(duì)邏輯組合所執(zhí)行的動(dòng)作對(duì)步驟102查找到的對(duì)象條目進(jìn)行組合邏輯測(cè)試,得到測(cè)試結(jié)果。
[0075]監(jiān)控的邏輯組合實(shí)際上就是監(jiān)控惡意程序修改注冊(cè)表的操作組合,該操作組合由以下操作中的至少一種組成:
[0076]0P_WRITE=0xl, // 修改注冊(cè)表項(xiàng)
[0077]0P_READ=0x2, // 讀取注冊(cè)表項(xiàng)[0078]0P_ENUM=0x4, // 枚舉注冊(cè)表項(xiàng)
[0079]0P_DELETE=0x8, //刪除注冊(cè)表項(xiàng),特別是安全軟件的注冊(cè)表項(xiàng),刪掉了安全軟件就工作不正常了
[0080]0P_CREATE=0xl0, // 創(chuàng)建注冊(cè)表項(xiàng)[0081 ] 0P_RENAME=0x20, // 重命名注冊(cè)表項(xiàng)
[0082]0P_DELETE_VALUE=0x40, // 刪除注冊(cè)表值
[0083]0P_REST0RE_KEY=0x80, // 恢復(fù)注冊(cè)表項(xiàng)
[0084]0P_SET_SECURITY_KEY=0xl00,// 設(shè)置注冊(cè)表項(xiàng)的訪問權(quán)限
[0085]0P_SET_VALUE_KEY=0x200, // 設(shè)置注冊(cè)表項(xiàng)的值
[0086]以上不同操作的組合對(duì)不同的注冊(cè)表項(xiàng)影響是不一樣的,因此對(duì)操作系統(tǒng)的功能影響也是不一樣的,所以通常采用監(jiān)控邏輯組合的方式對(duì)待測(cè)試注冊(cè)表監(jiān)控軟件的監(jiān)控行為進(jìn)行測(cè)試,即判斷待測(cè)試注冊(cè)表監(jiān)控軟件對(duì)各邏輯組合所執(zhí)行的動(dòng)作是否符合監(jiān)控規(guī)則。
[0087]對(duì)邏輯組合所執(zhí)行的動(dòng)作主要分為兩類:拒絕和允許,基于這兩類會(huì)存在更細(xì)致的動(dòng)作,例如:無(wú)論操作都被拒絕,針對(duì)某一操作被拒絕,允許某一操作,通知用戶選擇是允許還是拒絕某個(gè)操作等等。例如某注冊(cè)表監(jiān)控規(guī)則中對(duì)邏輯組合所執(zhí)行的動(dòng)作為:
[0088]DA_SELF_PR0TECT=1, //注冊(cè)表監(jiān)控軟件的自我保護(hù)項(xiàng)目,無(wú)論是怎么修改都應(yīng)該被拒絕的
[0089]DA_DENY=1, //拒絕此修改操作
[0090]DA_ALL0ff=2,//允許此修改操作,當(dāng)確認(rèn)此操作是安全的時(shí)候
[0091]DA_NEED_N0TIFY=4, //通知用戶選擇是允許還是拒絕這個(gè)操作,例如360安全衛(wèi)士的彈窗,當(dāng)你修改瀏覽器主頁(yè)的時(shí)候,會(huì)提示你讓你選擇。
[0092]本步驟實(shí)際上就是對(duì)查找到的各對(duì)象條目分別執(zhí)行注冊(cè)表監(jiān)控規(guī)則中所監(jiān)控的邏輯組合,獲取待測(cè)試注冊(cè)表監(jiān)控軟件是否執(zhí)行注冊(cè)表監(jiān)控規(guī)則中對(duì)邏輯組合所執(zhí)行的動(dòng)作,如果是,則確定對(duì)當(dāng)前對(duì)象條目測(cè)試通過,否則確定對(duì)當(dāng)前對(duì)象條目測(cè)試失敗。
[0093]接續(xù)上述注冊(cè)表監(jiān)控規(guī)則的實(shí)例,<MID>9〈/MID>中,規(guī)則編號(hào)9是一個(gè)編號(hào),只要保證不重復(fù)即可。需要監(jiān)控的值是360safe,是360安全衛(wèi)士的開機(jī)啟動(dòng)項(xiàng)。在本步驟中利用的是如下內(nèi)容:
[0094]<0peration>520</0peration>
[0095]<DefAction>I</DefAction)
[0096]其中,Operation指示的邏輯組合是520,轉(zhuǎn)換成16進(jìn)制是0x208,這是兩個(gè)操作的二進(jìn)制加法得到的值,即0x200和0x8,即代表設(shè)置注冊(cè)表項(xiàng)的值與刪除注冊(cè)表項(xiàng)這兩個(gè)操作的組合。
[0097]DefAction為I指示待測(cè)試注冊(cè)表監(jiān)控軟件對(duì)上述邏輯組合執(zhí)行拒絕操作,即當(dāng)未知程序?qū)Σ襟E102查找到的對(duì)象條目執(zhí)行刪除或者設(shè)置值時(shí)進(jìn)行拒絕。
[0098]在本步驟中進(jìn)行組合邏輯測(cè)試時(shí),就對(duì)查找到的對(duì)象條目執(zhí)行上述邏輯組合的操作,獲取待測(cè)試注冊(cè)表監(jiān)控軟件對(duì)這些邏輯組合的操作是否拒絕的結(jié)果作為測(cè)試結(jié)果,對(duì)于拒絕的測(cè)試點(diǎn)(即對(duì)象條目)說明測(cè)試通過,對(duì)于允許的測(cè)試點(diǎn)說明測(cè)試失敗(說明存在bug),這是拒絕性測(cè)試。[0099]上面是依據(jù)實(shí)例進(jìn)行的測(cè)試,如果注冊(cè)表監(jiān)控規(guī)則中對(duì)邏輯組合所執(zhí)行的動(dòng)作是允許,例如<DefAction>2〈/DefAction>,則進(jìn)行組合邏輯測(cè)試時(shí),對(duì)查找到的對(duì)象條目執(zhí)行注冊(cè)表監(jiān)控規(guī)則所監(jiān)控的邏輯組合的操作,獲取待測(cè)試注冊(cè)表監(jiān)控軟件對(duì)這些邏輯組合的操作是否允許的結(jié)果作為測(cè)試結(jié)果,對(duì)于允許的測(cè)試點(diǎn)說明測(cè)試通過,對(duì)于拒絕的測(cè)試點(diǎn)說明測(cè)試失敗(說明存在bug),這是放行性測(cè)試。
[0100]另外,本發(fā)明還可以支持命令行的操作,即提供面向用戶(測(cè)試人員)的接口,用戶可以通過該接口以命令行的形式對(duì)所監(jiān)控的邏輯組合進(jìn)行設(shè)置,這一接口能夠方便實(shí)現(xiàn)業(yè)內(nèi)標(biāo)準(zhǔn)測(cè)試,即人工設(shè)置監(jiān)控的邏輯組合,對(duì)待測(cè)試注冊(cè)表監(jiān)控軟件對(duì)用戶設(shè)置的邏輯組合所執(zhí)行的動(dòng)作進(jìn)行測(cè)試。
[0101]在得到測(cè)試結(jié)果之后,可以直接導(dǎo)出測(cè)試結(jié)果,例如以報(bào)表或繪圖的形式導(dǎo)出測(cè)試結(jié)果。但為了方便直觀方便地篩選測(cè)試結(jié)果,可以進(jìn)一步執(zhí)行以下步驟:
[0102]步驟104:將測(cè)試結(jié)果轉(zhuǎn)換成可進(jìn)行篩選的格式,對(duì)測(cè)試通過或測(cè)試失敗的對(duì)象條目進(jìn)行篩選。
[0103]測(cè)試后通常得到的測(cè)試結(jié)果為xml格式,為了方便篩選可以將xml格式轉(zhuǎn)換為可進(jìn)行篩選的格式,例如Excel格式,從中篩選出測(cè)試通過或測(cè)試失敗的測(cè)試點(diǎn)。
[0104]以上是對(duì)本發(fā)明提供的方法進(jìn)行的詳細(xì)描述,下面通過實(shí)施例二對(duì)本發(fā)明提供的裝置進(jìn)行詳細(xì)描述。
[0105]實(shí)施例二、
[0106]圖2為本發(fā)明實(shí)施例二提供的自動(dòng)化測(cè)試裝置結(jié)構(gòu)圖,如圖2所示,該裝置可以包括:解密單元01、展開單元02和測(cè)試單元03。
[0107]解密單元01用于釋放文件解密工具對(duì)待測(cè)試注冊(cè)表監(jiān)控軟件的注冊(cè)表監(jiān)控規(guī)則進(jìn)行解密,得到所監(jiān)控的注冊(cè)表路徑、所監(jiān)控的邏輯組合以及對(duì)邏輯組合所執(zhí)行的動(dòng)作。
[0108]通常為了保證注冊(cè)表監(jiān)控軟件的安全性,注冊(cè)表監(jiān)控軟件都有各自的加密方式,如果注冊(cè)表監(jiān)控軟件的提供方有測(cè)試需求,需要同時(shí)提供注冊(cè)表監(jiān)控軟件的解密工具。然后在本發(fā)明實(shí)施例中,解密單元01利用待測(cè)試注冊(cè)表監(jiān)控軟件的解密工具對(duì)監(jiān)控規(guī)則進(jìn)行解密,得到明文的注冊(cè)表監(jiān)控規(guī)則。
[0109]當(dāng)然,解密后的注冊(cè)表監(jiān)控規(guī)則除了包含上述的所監(jiān)控的注冊(cè)表路徑、所監(jiān)控的邏輯組合以及對(duì)邏輯組合所執(zhí)行的動(dòng)作之外,還可能會(huì)包含:監(jiān)控規(guī)則編號(hào)、需要監(jiān)控的值、是否監(jiān)控注冊(cè)表子項(xiàng)等。
[0110]該裝置中的解密單元01實(shí)際上是提供了一種面向被測(cè)試方的接口,用于獲取被測(cè)試注冊(cè)表監(jiān)控規(guī)則中包含的所監(jiān)控的注冊(cè)表路徑、所監(jiān)控的邏輯組合以及對(duì)邏輯組合所執(zhí)行的動(dòng)作。
[0111]解密單元01在完成解密處理之后,為了清除測(cè)試環(huán)境,可以將解密工具刪除。另夕卜,由于解密工具是待測(cè)試的注冊(cè)表監(jiān)控軟件自行提供的,不同的解密工具解密時(shí)間是不同的,對(duì)于這種外部植入的解密工具不能確定其是否有問題,比如卡死,因此該裝置還可以包括:超時(shí)判斷單元04,用于判斷解密工具執(zhí)行是否超時(shí),如果是,則提示出錯(cuò)。
[0112]展開單元02用于查找注冊(cè)表中與注冊(cè)表路徑相匹配的對(duì)象條目。具體地,解密單元01解密后得到的注冊(cè)表監(jiān)控規(guī)則中包含所監(jiān)控的注冊(cè)表路徑的類正則表達(dá)式,因此展開單元02采用類正則匹配算法查找注冊(cè)表中與類正則表達(dá)式相匹配的對(duì)象條目。[0113]采用類正則匹配算法在查找注冊(cè)表過程中,是首先將路徑進(jìn)行分割、從頂向下通過展開父路徑的方法確定子項(xiàng),依次遞歸直至符合規(guī)則,這樣做能夠大大縮小遍歷范圍。鑒于類正則匹配算法是已有算法,在此不再贅述。
[0114]更進(jìn)一步地,如果在注冊(cè)表監(jiān)控規(guī)則中包含具體的要監(jiān)控的值,則展開單元02在依據(jù)注冊(cè)表路徑進(jìn)行匹配查找到的對(duì)象條目中進(jìn)一步查找與該要監(jiān)控的值對(duì)應(yīng)的對(duì)象條目。在注冊(cè)表中表項(xiàng)是可能對(duì)應(yīng)不同的值(value)的,因此如果監(jiān)控規(guī)則中包含該要監(jiān)控的值,說明該注冊(cè)表監(jiān)控軟件僅負(fù)責(zé)該值對(duì)應(yīng)的對(duì)象條目的監(jiān)控,在測(cè)試過程中也僅需要針對(duì)該值對(duì)應(yīng)的對(duì)象條目。
[0115]測(cè)試單元03利用所監(jiān)控的邏輯組合以及對(duì)邏輯組合所執(zhí)行的動(dòng)作,對(duì)展開單元查找到的對(duì)象條目進(jìn)行組合邏輯測(cè)試,得到測(cè)試結(jié)果。
[0116]所監(jiān)控的邏輯組合可以由以下操作中的至少一種組成:修改注冊(cè)表項(xiàng),讀取注冊(cè)表項(xiàng),枚舉注冊(cè)表項(xiàng),刪除注冊(cè)表項(xiàng),創(chuàng)建注冊(cè)表項(xiàng),重命名注冊(cè)表項(xiàng),刪除注冊(cè)表值,恢復(fù)注冊(cè)表項(xiàng),設(shè)置注冊(cè)表項(xiàng)的訪問權(quán)限,設(shè)置注冊(cè)表項(xiàng)的值;
[0117]以上不同操作的組合對(duì)不同的注冊(cè)表項(xiàng)影響是不一樣的,因此對(duì)操作系統(tǒng)的功能影響也是不一樣的,所以通常采用監(jiān)控邏輯組合的方式。對(duì)邏輯組合所執(zhí)行的動(dòng)作包括:拒絕或允許。基于這兩類會(huì)存在更細(xì)致的動(dòng)作,例如:無(wú)論操作都被拒絕、針對(duì)某一操作被拒絕、允許某一操作、通知用戶選擇是允許還是拒絕某個(gè)操作等等。
[0118]實(shí)際上測(cè)試單元03在進(jìn)行組合邏輯測(cè)試時(shí),具體執(zhí)行:對(duì)展開單元02查找到的對(duì)象條目分別執(zhí)行所監(jiān)控的邏輯組合,判斷待測(cè)試注冊(cè)表監(jiān)控軟件是否執(zhí)行對(duì)邏輯組合所執(zhí)行的動(dòng)作,如果是,則確定對(duì)當(dāng)前對(duì)象條目測(cè)試通過,否則確定對(duì)當(dāng)前對(duì)象條目測(cè)試失敗(說明存在bug)。
[0119]另外,本發(fā)明還可以提供面向用戶(測(cè)試人員)的接口(圖2中未示出),用戶可以通過該接口以命令行的形式對(duì)所監(jiān)控的邏輯組合進(jìn)行設(shè)置,這一接口能夠方便實(shí)現(xiàn)業(yè)內(nèi)標(biāo)準(zhǔn)測(cè)試,即人工設(shè)置監(jiān)控的邏輯組合,對(duì)待測(cè)試注冊(cè)表監(jiān)控軟件對(duì)用戶設(shè)置的邏輯組合所執(zhí)行的動(dòng)作進(jìn)行測(cè)試。
[0120]最終將測(cè)試得到的測(cè)試結(jié)果可以導(dǎo)出,例如以報(bào)表或繪圖的形式導(dǎo)出測(cè)試結(jié)果。但為了方便直觀方便地篩選測(cè)試結(jié)果,該裝置還包括:篩選單元05,用于將測(cè)試結(jié)果轉(zhuǎn)換成可進(jìn)行篩選的格式,對(duì)測(cè)試通過或測(cè)試失敗的對(duì)象條目進(jìn)行篩選。測(cè)試后通常得到的測(cè)試結(jié)果為xml格式,為了方便篩選可以將xml格式轉(zhuǎn)換為可進(jìn)行篩選的格式,例如Excel格式,從中篩選出測(cè)試通過或測(cè)試失敗的測(cè)試點(diǎn)(即對(duì)象條目)。之后導(dǎo)出的篩選后測(cè)試結(jié)果更加一目了然,例如將測(cè)試失敗的對(duì)象條目匯總后輸出,也避免了用戶從海量的對(duì)象條目中逐一篩選的工作。
[0121]上述實(shí)施例均是針對(duì)一個(gè)注冊(cè)表測(cè)試規(guī)則為例進(jìn)行的描述,然而在通常情況下,待測(cè)試注冊(cè)表監(jiān)控軟件會(huì)采用一個(gè)以上的注冊(cè)表測(cè)試規(guī)則,這對(duì)這種情況,則可以分別針對(duì)各注冊(cè)表測(cè)試規(guī)則使用本發(fā)明實(shí)施例中提供的方式,這種情況下測(cè)試點(diǎn)的數(shù)量更加海量,使用手工測(cè)試的方式就不可能完成全部測(cè)試,只能采用準(zhǔn)確率較低的采樣測(cè)試,因此使用本發(fā)明實(shí)施例所提供方法和裝置所帶來的效果更加明顯。
[0122]在本發(fā)明所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的方法和裝置在本發(fā)明的精神和原則內(nèi)可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式。另夕卜,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。
[0123]上述以軟件功能單元的形式實(shí)現(xiàn)的集成的單元,可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。上述軟件功能單元存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(Read-Only Memory, ROM)、隨機(jī)存取存儲(chǔ)器(Random Access Memory, RAM)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0124]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
【權(quán)利要求】
1.一種注冊(cè)表監(jiān)控軟件的自動(dòng)化測(cè)試方法,其特征在于,該方法包括: S1、釋放文件解密工具對(duì)待測(cè)試注冊(cè)表監(jiān)控軟件的注冊(cè)表監(jiān)控規(guī)則進(jìn)行解密,得到所監(jiān)控的注冊(cè)表路徑、所監(jiān)控的邏輯組合以及對(duì)邏輯組合所執(zhí)行的動(dòng)作; S2、查找注冊(cè)表中與所述注冊(cè)表路徑相匹配的對(duì)象條目; S3、利用所述所監(jiān)控的邏輯組合以及對(duì)邏輯組合所執(zhí)行的動(dòng)作,對(duì)步驟S2查找到的對(duì)象條目進(jìn)行組合邏輯測(cè)試,得到測(cè)試結(jié)果。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述步驟SI中還包括:如果所述解密工具執(zhí)行超時(shí),則提示出錯(cuò),結(jié)束流程。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,解密后得到的注冊(cè)表監(jiān)控規(guī)則中包含所監(jiān)控的注冊(cè)表路徑的類正則表達(dá)式; 在所述步驟S2中采用類正則匹配算法查找注冊(cè)表中與所述類正則表達(dá)式相匹配的對(duì)象條目。
4.根據(jù)權(quán)利要求1或3所述的方法,其特征在于,在所述步驟SI進(jìn)行解密后還得到要監(jiān)控的值; 在所述步驟S2中從查找到的對(duì)象條目中進(jìn)一步查找與所述要監(jiān)控的值對(duì)應(yīng)的對(duì)象條目。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述所監(jiān)控的邏輯組合由以下操作中的至少一種組成:修改注冊(cè)表項(xiàng),讀取注冊(cè)表項(xiàng),枚舉注冊(cè)表項(xiàng),刪除注冊(cè)表項(xiàng),創(chuàng)建注冊(cè)表項(xiàng),重命名注冊(cè)表項(xiàng),刪除注冊(cè)表值,恢復(fù)注冊(cè)表項(xiàng),設(shè)置注冊(cè)表項(xiàng)的訪問權(quán)限,設(shè)置注冊(cè)表項(xiàng)的值; 所述對(duì)邏輯組合所執(zhí)行的動(dòng)作包括:拒絕或允許。
6.根據(jù)權(quán)利要求1或5所述的方法,其特征在于,所述步驟S3具體包括: 對(duì)步驟S2查找到的對(duì)象條目分別執(zhí)行所述所監(jiān)控的邏輯組合,判斷待測(cè)試注冊(cè)表監(jiān)控軟件是否執(zhí)行所述對(duì)邏輯組合所執(zhí)行的動(dòng)作,如果是,則確定對(duì)當(dāng)前對(duì)象條目測(cè)試通過,否則確定對(duì)當(dāng)前對(duì)象條目測(cè)試失敗。
7.根據(jù)權(quán)利要求1或5所述的方法,其特征在于,該方法還包括: 通過面向用戶的接口獲取用戶以命令行的形式對(duì)所述所監(jiān)控的邏輯組合進(jìn)行的設(shè)置。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,該方法還包括: S4、將測(cè)試結(jié)果轉(zhuǎn)換成可進(jìn)行篩選的格式,對(duì)測(cè)試通過或測(cè)試失敗的對(duì)象條目進(jìn)行篩選。
9.一種注冊(cè)表監(jiān)控軟件的自動(dòng)化測(cè)試裝置,其特征在于,該裝置包括: 解密單元,用于釋放文件解密工具對(duì)待測(cè)試注冊(cè)表監(jiān)控軟件的注冊(cè)表監(jiān)控規(guī)則進(jìn)行解密,得到所監(jiān)控的注冊(cè)表路徑、所監(jiān)控的邏輯組合以及對(duì)邏輯組合所執(zhí)行的動(dòng)作; 展開單元,用于查找注冊(cè)表中與所述注冊(cè)表路徑相匹配的對(duì)象條目; 測(cè)試單元,用于利用所述所監(jiān)控的邏輯組合以及對(duì)邏輯組合所執(zhí)行的動(dòng)作,對(duì)所述展開單元查找到的對(duì)象條目進(jìn)行組合邏輯測(cè)試,得到測(cè)試結(jié)果。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,該裝置還包括:超時(shí)判斷單元,用于判斷所述解密工具執(zhí)行是否超時(shí),如果是,則提示出錯(cuò)。
11.根據(jù)權(quán)利要求9所述的裝置,其特征在于,解密后得到的注冊(cè)表監(jiān)控規(guī)則中包含所監(jiān)控的注冊(cè)表路徑的類正則表達(dá)式; 所述展開單元采用類正則匹配算法查找注冊(cè)表中與所述類正則表達(dá)式相匹配的對(duì)象條目。
12.根據(jù)權(quán)利要求9或11所述的裝置,其特征在于,所述解密單元進(jìn)行解密后還得到要監(jiān)控的值; 所述展開單元還用于從查找到的對(duì)象條目中進(jìn)一步查找與所述要監(jiān)控的值對(duì)應(yīng)的對(duì)象條目。
13.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述所監(jiān)控的邏輯組合由以下操作中的至少一種組成:修改注冊(cè)表項(xiàng),讀取注冊(cè)表項(xiàng),枚舉注冊(cè)表項(xiàng),刪除注冊(cè)表項(xiàng),創(chuàng)建注冊(cè)表項(xiàng),重命名注冊(cè)表項(xiàng),刪除注冊(cè)表值,恢復(fù)注冊(cè)表項(xiàng),設(shè)置注冊(cè)表項(xiàng)的訪問權(quán)限,設(shè)置注冊(cè)表項(xiàng)的值; 所述對(duì)邏輯組合所執(zhí)行的動(dòng)作包括:拒絕或允許。
14.根據(jù)權(quán)利要求9或13所述的裝置,其特征在于,所述測(cè)試單元在進(jìn)行所述組合邏輯測(cè)試時(shí),具體執(zhí)行:對(duì)所述展開單元查找到的對(duì)象條目分別執(zhí)行所述所監(jiān)控的邏輯組合,判斷待測(cè)試注冊(cè)表監(jiān)控軟件是否執(zhí)行所述對(duì)邏輯組合所執(zhí)行的動(dòng)作,如果是,則確定對(duì)當(dāng)前對(duì)象條目測(cè)試通過,否則確定對(duì)當(dāng)前對(duì)象條目測(cè)試失敗。
15.根據(jù)權(quán)利要求9或13所述的裝置,其特征在于,該裝置還包括:面向用戶的接口,用于獲取用戶以命令行的形式對(duì)所述所監(jiān)控的邏輯組合進(jìn)行的設(shè)置。
16.根據(jù)權(quán)利要求9所述的裝置,其特征在于,該裝置還包括:篩選單元,用于將測(cè)試結(jié)果轉(zhuǎn)換成可進(jìn)行篩選的格式,對(duì)測(cè)試通過或測(cè)試失敗的對(duì)象條目進(jìn)行篩選。
【文檔編號(hào)】G06F11/36GK103914369SQ201210591420
【公開日】2014年7月9日 申請(qǐng)日期:2012年12月31日 優(yōu)先權(quán)日:2012年12月31日
【發(fā)明者】陳鴻威 申請(qǐng)人:百度國(guó)際科技(深圳)有限公司