亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種圖形界面自動化測試方法

文檔序號:10593998閱讀:640來源:國知局
一種圖形界面自動化測試方法
【專利摘要】本發(fā)明涉及一種圖形界面自動化測試方法,包括以下步驟:對待測試軟件自動生成隨機測試用例,并對每個測試軟件的功能模塊生成操作序列的記錄,保存運行截圖;根據(jù)操作序列的記錄計算操作序列之間的相似度,給出操作序列間操作的匹配關系;根據(jù)操作序列相似度對操作序列進行聚類;在每個類別中,任選一條序列人為標記對錯;在每個類別中,將同類其他序列與標記序列進行圖像比對;比對結果一致則可直接判定對錯,否則視為待定;若存在待定序列,則返回聚類。本發(fā)明運用圖像對比算法結合OCR對同類的操作進行圖像比對,根據(jù)結果判定功能存在缺陷或重復迭代過程。用機器學習、圖像比較技術減少人工干預,實現(xiàn)測試的自動化,提高軟件測試的效率。
【專利說明】
一種圖形界面自動化測試方法
技術領域
[0001]本發(fā)明涉及軟件測試技術,及機器學習、圖像技術在自動化軟件測試中的應用。
【背景技術】
[0002]目前,軟件測試一般需要大量的人為干預。測試工程師需要設計繁多的測試用例,而且大部分工作是重復、乏味、繁瑣的;需求或設計變更時,就需要修改或重新設計測試用例;而且人工測試也難以對測試范圍覆蓋完全,還需要重復的回歸測試。將繁重的測試任務自動化,就可以提高測試的準確性和測試人員的積極性,擴大測試的覆蓋度,將測試人員解脫出來,節(jié)省人員、時間成本。
[0003]現(xiàn)在有不少自動測試工具,這些工具可以提高測試效率,代替人工輸入。它們具有錄制腳本、回放等功能,可以復用測試用例,來執(zhí)行重復的自動化測試,讓回歸測試,或測試同一軟件的新版本更加方便。但是這類工具不能自動生成測試用例,測試人員要手動錄制腳本或按照測試用例編寫腳本,再利用工具進行回放。
[0004]近年來,機器學習逐漸興起。機器學習旨在讓計算機能夠模擬人類的學習行為。面對軟件測試中情況的多樣性、軟件系統(tǒng)的復雜性,就需要讓計算機自動“學習”。為了實現(xiàn)自動化測試,測試系統(tǒng)要能夠處理不同類型的輸入,實現(xiàn)智能化。機器學習就是人工智能的核心。機器學習具有幾種類型:監(jiān)督學習、無監(jiān)督學習、半監(jiān)督學習、增強學習。無監(jiān)督學習是指訓練集不需要人為標注,常見的無監(jiān)督學習算法有聚類。這有助于減少人工干預、增強測試系統(tǒng)的自動性。
[0005]大部分的軟件應用是基于圖形界面的,而黑盒測試時,根據(jù)界面的顯示結果就可以判斷應用是否正確完成了相應的功能。當人工進行功能測試時,依靠人眼去觀察界面識別錯誤容易讓人疲勞,且十分枯燥。有很多圖像匹配算法、OCR(光學字符識別)技術,可以實現(xiàn)比較圖像及其中內容的相似度。圖像匹配是一種對影像內容、特征、結構、關系、紋理及灰度等的對應關系,相似性和一致性的分析,尋求相似影像目標的方法;OCR能夠對圖像文件中進行分析識別處理,獲取其中的文字及版面信息。結合這兩種技術,就能夠計算圖像之間像素關系和文字內容的相似度。

【發(fā)明內容】

[0006]本發(fā)明的目的在于,提供一種基于圖形界面的自動化測試方法,以減少人為干預,提高軟件測試的效率。
[0007]為了實現(xiàn)上述目的,本發(fā)明的技術方案是,一種圖形界面自動化測試方法,其特征在于,所述方法包括以下步驟:
[0008]對待測試軟件自動生成隨機測試用例,并對每個測試軟件的功能模塊生成操作序列的記錄,保存運行截圖;
[0009]根據(jù)操作序列的記錄計算操作序列之間的相似度,給出操作序列間操作的匹配關系;
[0010]根據(jù)操作序列相似度對操作序列進行聚類;
[0011 ]在每個類別中,任選一條序列人為標記對錯;
[0012]在每個類別中,將同類其他序列與標記序列進行圖像比對;
[0013]比對結果一致則可直接判定對錯,否則視為待定;
[0014]若存在待定序列,則返回聚類。
[0015]進一步,所述操作序列相似度的計算,由于序列長度可以不相同,重點在于序列間操作的匹配關系;這里使用DTW(Dynamic Time Warping,動態(tài)時間規(guī)整)將兩條序列的操作進行對齊,DTW遵循邊界性原則(兩條序列的第一個和最后一個操作需要對齊)、單調性原則(某個操作對齊的操作必須是前個操作所對操作及之后的操作);一個操作可以對應多個操作,將所有對應操作之間的距離求和得到這兩條序列的距離;通過動態(tài)調整上述的操作匹配方式找到最小的操作的序列距離,即操作序列的相似度。
[0016]進一步,所述操作序列的聚類,根據(jù)操作序列之間的距離,運用名稱為DBSCAN機器學習算法進行聚類。DBSCAN是一個基于密度的聚類算法,需要兩個參數(shù):eps(掃描半徑)、minPts(最小包含點數(shù)),聚類過程包括如下步驟:
[0017]I)任選一個未被訪問過的對象(一條操作序列)p,檢查其距離為eps的鄰域,若包含的對象不小于minPts,建立新簇C,將其中所有的點加入候選集N;否則將P記為噪聲;
[0018]2)對候選集N中所有未被處理的對象q,檢查其鄰域,若至少包含minPts個對象,則將這些對象加入N;如果q未被歸入任何一個簇,則將q加入C;
[0019]3)重復步驟2),繼續(xù)檢查N中未處理的對象,當前候選集N為空;
[0020]4)重復步驟I)?3),直到所有對象都歸入了某個簇或標記為噪聲。
[0021]所述圖像的比對,包括如下步驟:
[0022]I)首先比較運行截圖基于兩幅圖像對應位置像素的強度值與各自圖像整體強度值的差值計算出兩幅圖相似度的值,與預定閾值比較后,低于閾值則判定為圖像不相似;
[0023]2)高于閾值再通過OCR手段比較對應位置字符,對應位置字符相似個數(shù)的比例大于閾值則判定為相似,否則判定為不相似。
[0024]進一步,所述操作序列間操作的匹配關系,由于動態(tài)調整后的匹配關系可以有一對多的關系,需要根據(jù)這些關系,找出兩條序列中操作最相似的一對一關系,以便后續(xù)的圖像比對。
[0025]進一步,運用圖像對比算法結合OCR對匹配的操作進行圖像比對,根據(jù)結果判定功能存在缺陷或重復迭代過程。與標記正確的序列的圖像比對結果一致的序列判定為正確,與錯誤序列圖像一致的序列則判定為錯誤,與正確序列或錯誤序列不一致的均視為待定(有一個圖像比對不一致則為比對結果不一致)。
[0026]進一步,所述序列中單個操作的距離,利用編輯距離(Edit Distance)的方法計算。編輯距離又稱Levenshtein距離,是指兩個字符串之間,一個變?yōu)榱硪粋€所需要的最少編輯次數(shù)。這里的編輯操作包括替換一個字符、添加一個字符、刪除一個字符。
[0027]本發(fā)明有益效果,通過采用迭代的方式來發(fā)現(xiàn)錯誤的序列:待定的序列返回聚類一步,重新聚類、標記、比對,反復迭代,直至沒有待定序列??赡艽嬖谛蛄幸恢北粯擞洖榇ā㈦y以判定的少數(shù)情況,這時需要人為進行判定。迭代過程提高了測試結果的準確性。本發(fā)明通過對待測試軟件自動生成測試用例,并對每個功能模塊生成操作記錄、運行截圖。運用圖像對比算法結合OCR對同類的操作進行圖像比對,根據(jù)結果判定功能存在缺陷或重復迭代過程。本發(fā)明運用機器學習、圖像比較技術減少人工干預,實現(xiàn)測試的自動化,提高軟件測試的效率。
【附圖說明】
[0028]圖1為本發(fā)明的圖形界面自動化測試方法實施例一的結構示意圖。
[0029]圖2為本發(fā)明的圖形界面自動化測試方法實施例二的結構示意圖。
[0030]圖3為本發(fā)明的圖形界面自動化測試方法實施例一的流程圖。
[0031]圖4為本發(fā)明的圖形界面自動化測試方法實施例三的執(zhí)行流程圖。
【具體實施方式】
[0032]下面通過附圖和實施例,對本發(fā)明的技術方案做進一步的詳細描述。
[0033]如圖1所示,為本發(fā)明的圖形界面自動化測試方法實施例一的結構示意圖。生成測試部分主要由QTP(Quicktest Profess1nal)完成。在QTP中生成整個系統(tǒng)需要的數(shù)據(jù)和圖像。處理數(shù)據(jù)部分將QTP中產(chǎn)生的數(shù)據(jù)進行聚類等處理。比對結果部分接受聚類結果,結合人工標記,判定圖像的正確性。
[0034]如圖2所示,為本發(fā)明的圖形界面自動化測試方法實施例二的結構示意圖。
[0035]生成測試部分使用QTP運行隨機觸發(fā)軟件功能的腳本,腳本自動保存操作序列的記錄,在每次操作后保存截屏。
[0036]處理數(shù)據(jù)部分的輸入時QTP產(chǎn)生的操作序列,使用DBSCAN機器學習算法對操作序列進行聚類。聚類時需要計算序列間的距離,又基于操作字符串的距離。最后結合序列距離和操作距離給出序列操作間的一對一匹配關系。
[0037]比對結果部分首先接受人工輸入對聚類結果每類中一條進行標記,接著將同類的序列與已標記序列進行圖像比較,來判定軟件在某個功能上的正確性。
[0038]如圖3所示,為本發(fā)明的圖形界面自動化測試方法實施例一的流程圖,包括如下步驟:
[0039]步驟101,利用自動測試工具QTP生成隨機測試用例,記錄操作序列,并保存運行截圖:
[0040]在待測軟件中,隨機選擇一個功能點(將屬于一個彈出框內的操作視為一個功能點),使用描述性編程的方式在其中隨機選擇控件,進行觸發(fā)(如按鈕)、或隨機選擇(如下拉選擇框),重復隨機觸發(fā)控件若干次后,就產(chǎn)生了使用這個功能的一條連續(xù)操作序列。循環(huán)隨機測試不同的功能點,直到完成預設的次數(shù)。
[0041]每次腳本觸發(fā)一個控件或執(zhí)行一個操作時,自動產(chǎn)生一條描述序列的記錄。記錄內容包括操作對應的window窗體名稱、dialog窗體名稱(可能有多個)、觸發(fā)控件的類型(13111:1:011、01601^)(?等)、觸發(fā)控件的名稱、操作的名稱((:1;[01^、361601:等)和操作的內容(如選擇的內容、輸入的內容等)。同時每進行一步操作后,腳本會截屏并保存圖片。
[0042]步驟102,根據(jù)記錄的操作序列,利用DTW(動態(tài)時間規(guī)整)將序列進行對齊,即將兩條序列中的操作一對一匹配。同一個操作可能與多個操作匹配,但匹配規(guī)則遵從邊界性原貝1J(頭尾操作匹配)、單調性原則(如第一條序列的操作I與第二條序列的操作2匹配,則第一條序列的操作2只能與第二條序列的操作2及之后的操作匹配)。動態(tài)規(guī)整后,使得相互匹配的操作的距離累積最小。這里操作之間的距離,使用編輯距離方式計算,即兩個字符串之間,一個變?yōu)榱硪粋€所需要的最少編輯次數(shù)。
[0043]步驟103,運用機器學習算法DBSCAN對所有序列進行聚類。根據(jù)所有序列相互之間的距離,利用DBSCAN將足夠高密度的區(qū)域內的序列劃為一個簇。沒有被劃到簇中的序列視為噪聲。
[0044]步驟104,在聚類后的每類操作序列中,任選一條人為標記對錯;
[0045]步驟105,取得未處理序列與同類已標記的序列相匹配操作的對應圖像,使用corr2算法比較圖像之間的相似度,若整體相似度低于閾值,視為圖像不一致;否則再使用OCR比較圖像內對應位置文字是否一致,若文字相似個數(shù)比例也高于閾值,則視為圖像一致,否則不一致。
[0046]步驟106,接受圖像比較結果,若結果一致,執(zhí)行步驟107,否則執(zhí)行步驟108;
[0047]步驟107,若與之比較的已標記序列為正確,則該序列判定為正確,否則判定為錯誤,即軟件系統(tǒng)可能存在的缺陷;
[0048]步驟108,無法判定該序列的正確性,將其加入待定列表;
[0049]步驟109,判斷是否存在未處理序列,若是,執(zhí)行步驟105,否則執(zhí)行步驟110;
[0050]步驟110,判斷是否存在待定序列,若是,將所有待定序列作為未處理序列,執(zhí)行步驟103,否則流程結束。
[0051]如圖4所示,為本發(fā)明的圖形界面自動化測試方法實施例三的執(zhí)行流程圖,包括如下步驟:
[0052]步驟201,任選未被處理過的序列p,檢查與其鄰域內(距離不大于eps)的序列;
[0053]步驟202,判斷鄰域內的序列數(shù)量是否不小于minPts,若是,執(zhí)行步驟204,否則執(zhí)行步驟203;
[0054]步驟203,將P對象標記為噪聲;
[0055]步驟204,建立新簇C;
[0056]步驟205,將鄰域內所有對象加入候選集N;
[0057]步驟206,檢查候選集中未被處理對象q的鄰域;
[0058]步驟207,判斷鄰域內的序列數(shù)量是否不小于minPts,若是,執(zhí)行步驟208,否則執(zhí)行步驟209;
[0059 ]步驟208,將鄰域內所有對象加入候選集N ;
[0060]步驟209,檢查q對象是否已歸入某個簇,若是,執(zhí)行步驟211,否則執(zhí)行步驟210;[0061 ] 步驟210,將q對象歸入簇C;
[0062]步驟211,檢查候選集N是否為空,若不為空,返回步驟206,否則執(zhí)行步驟212;
[0063]步驟212,檢查是否所有對象已處理,若是,流程結束,否則返回步驟201。
【主權項】
1.一種圖形界面自動化測試方法,其特征在于,包括以下步驟: 對待測試軟件自動生成隨機測試用例,并對每個測試軟件的功能模塊生成操作序列的記錄,保存運行截圖; 根據(jù)操作序列的記錄計算操作序列之間的相似度,給出操作序列間操作的匹配關系; 根據(jù)操作序列相似度對操作序列進行聚類; 在每個類別中,任選一條序列人為標記對錯; 在每個類別中,將同類其他序列與標記序列進行圖像比對; 比對結果一致則可直接判定對錯,否則視為待定; 若存在待定序列,則返回聚類。2.根據(jù)權利要求1所述的圖形界面自動化測試方法,其特征在于,所述操作序列相似度的計算,由于序列長度可能不相同,重點在于序列間操作的匹配關系;這里使用DTW即動態(tài)時間規(guī)整將兩條序列的操作進行對齊,DTW遵循邊界性原則是:I)兩條序列的第一個和最后一個操作需要對齊;2)單調性原則、某個操作對齊的操作必須是前個操作所對操作及之后的操作;一個操作能夠對應多個操作,將所有對應操作之間的距離求和得到這兩條序列的距離;通過動態(tài)調整上述的操作匹配方式找到最小的序列距離,即操作序列的相似度。3.根據(jù)權利要求1所述的圖形界面自動化測試方法,其特征在于,所述序列間操作的匹配關系,由于動態(tài)調整后的匹配關系能夠有一對多的關系,需要根據(jù)這些關系,找出兩條序列中操作最相似的一對一關系,以便后續(xù)的圖像比對。4.根據(jù)權利要求1所述的圖形界面自動化測試方法,其特征在于,所述操作序列的聚類,根據(jù)操作序列之間的距離,運用DBSCAN基于密度的機器學習聚類算法進行聚類,需要兩個參數(shù):掃描半徑eps、最小包含點數(shù)minPts;聚類過程包括如下步驟: 1)任選一個未被訪問過的對象即一條操作序列P,檢查其距離為掃描半徑eps的鄰域,若包含的對象不小于minPts,建立新簇C,將其中所有的點加入候選集N;否則將P記為噪聲; 2)對候選集N中所有未被處理的對象q,檢查其鄰域,若至少包含minPts個對象,則將這些對象加入N;如果q未被歸入任何一個簇,則將q加入C; 3)重復步驟2),繼續(xù)檢查N中未處理的對象,當前候選集N為空; 4)重復步驟I)?3),直到所有對象都歸入了某個簇或標記為噪聲;5.根據(jù)權利要求3所述的圖形界面自動化測試方法,其特征在于,所述后續(xù)圖像的比對,包括如下步驟: 1)首先比較運行截圖基于兩幅圖像對應位置像素的強度值與各自圖像整體強度值的差值計算出兩幅圖相似度的值,與預定閾值比較后,低于閾值則判定為圖像不相似; 2)高于閾值再通過光學字符識別OCR手段比較對應位置字符,對應位置字符相似個數(shù)的比例大于閾值則判定為相似,否則判定為不相似。6.根據(jù)權利要求1所述的圖形界面自動化測試方法,其特征在于,與標記正確的序列的圖像比對結果一致的序列判定為正確,與錯誤序列圖像一致的序列則判定為錯誤,與正確序列或錯誤序列不一致的均視為待定。7.根據(jù)權利要求2所述的操作序列相似度的計算,其特征在于,所述序列中單個操作的距離,利用編輯距離(Edit Distance)的方法計算;編輯距離又稱Levenshtein距離,是指兩個字符串之間,一個變?yōu)榱硪粋€所需要的最少編輯次數(shù);這里的編輯操作包括替換一個字符、添加一個字符、刪除一個字符。
【文檔編號】G06F11/36GK105955889SQ201610309279
【公開日】2016年9月21日
【申請日】2016年5月11日
【發(fā)明人】潘敏學, 黃嘉偉, 程成, 湯恩義
【申請人】南京大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1