何秋蕓
(廣州杰賽科技股份有限公司,廣東廣州,510310)
基于圖像處理提高GUI程序自動化測試效率
何秋蕓
(廣州杰賽科技股份有限公司,廣東廣州,510310)
隨著軟件系統(tǒng)的規(guī)模和復(fù)雜度的增加,軟件測試在軟件開發(fā)中的作用也越來越重要,強(qiáng)化和簡化軟件測試更利于軟件質(zhì)量的提高。軟件測試自動化在軟件測試的地位越來越重要,自動化測試是降低測試成本的重要途徑之一,同時在自動化程度、測試覆蓋率、測試成本等方面都具有優(yōu)勢。本文針對自動化測試過程中鼠標(biāo)空點擊、錯誤點擊的現(xiàn)象,提出利用圖像處理技術(shù)來精確鎖定鼠標(biāo)點擊位置,減少其空點擊、錯點擊的概率的方法;進(jìn)一步提高軟件的測試質(zhì)量和測試效率,對軟件自動化測試技術(shù)的深入研究具有一定的借鑒意義。
GUI應(yīng)用程序;自動化測試;錄制回放;圖像處理;圖像分割
通常,在設(shè)計了測試用例并通過評審之后,由測試人員根據(jù)測試用例中描述的流程一步步執(zhí)行測試,得到實際結(jié)果與期望結(jié)果的比較。在此過程中,為了節(jié)省人力、時間或硬件資源,提高測試效率,便引入了自動化測試的概念;即把以人為驅(qū)動的測試行為轉(zhuǎn)化為機(jī)器執(zhí)行的一種過程。
隨著軟件系統(tǒng)的規(guī)模和復(fù)雜度的增加,軟件測試在軟件開發(fā)中的作用也越來越重要,在保質(zhì)保量地完成測試任務(wù)的同時、盡可能做到降低人力成本、縮短測試周期讓很多企業(yè)認(rèn)識到了軟件測試自動化的重要性,并漸漸將其納入日常生產(chǎn)。
軟件測試的自動化是軟件測試的發(fā)展趨勢[1]軟件自動化測試是使用計算機(jī)執(zhí)行測試行為的軟件測試技術(shù),即通過自動測試工具或者用某種程序設(shè)計語言編制的自動測試程序,控制被測軟件中的各種類和對象,模擬手動測試步驟,完成測試工作[2]軟件自動化測試的實現(xiàn)離不開自動化測試工具的輔助比如:基于GUI應(yīng)用程序自動化測試的類似方案有WinRunner、Rational Robot、Macro Recorder等自動化測試軟件;相對于手工測試來說 , 自測試工具具有如下優(yōu)點。
(1)提高了測試效率
在軟件測試中對于回歸測試中的動作和用例是已經(jīng)完全設(shè)計好的,同時可以完全預(yù)知測試期望和結(jié)果,從而可以極大提高測試效率,縮短回歸測試時間。
(2)可以運(yùn)行更多更繁瑣的測試
許多不可能同時讓足夠多的測試人員同時進(jìn)行測試的大量用戶測試,實行自動化測試可模擬出同一時間的許多用戶,更好的利用資源,同時達(dá)到測試的目的。
(3)具有一致性和可重復(fù)性
由于測試是自動執(zhí)行的,每次測試的結(jié)果和執(zhí)行的內(nèi)容的一致性是可以得到保障的,從而達(dá)到測試的可重復(fù)效果。自動化測試還存在著復(fù)用性的優(yōu)點,自動測試通常采用腳本技術(shù),只需要對腳本做少量的甚至不做修改,實現(xiàn)在不同的測試過程中使用相同的用例。
本文在自動化測試工具的基礎(chǔ)上優(yōu)化了鼠標(biāo)點擊數(shù)據(jù)的保存和使用,進(jìn)一步提高自動化測試質(zhì)量和效率。該方法是基于圖像處理的為提高GUI應(yīng)用程序自動化測試過程中鼠標(biāo)點擊精確度的方法就是在這個場景下提出來的:在完成自動化測試腳本錄制的情況下,進(jìn)一步提高腳本回放(重復(fù)測試)的有效執(zhí)行率、減少鼠標(biāo)無效點擊錯誤點擊事件的出現(xiàn)。
1.1 自動化測試腳本錄制和回放中圖像處理插件的詳細(xì)流程
目前的自動化測試軟件的自動化測試過程是:根據(jù)設(shè)計好的測試用例錄制好自動化測試腳本,然后使用錄制完成的腳本進(jìn)行重復(fù)性測試;但在使用過程中發(fā)現(xiàn):錄制好的腳本在回放過程中,鼠標(biāo)空點擊、錯點擊經(jīng)常出現(xiàn);特別是回放過程中新窗口的絕對位置、窗口大小和錄制時的絕對位置、窗口大小不一致時,錄制腳本就失去了測試意義。
而現(xiàn)有的幾種相關(guān)的自動化測試工具或鼠標(biāo)自動點擊工具,其鼠標(biāo)的點擊位置確定是單一的參照物(基于桌面),所有當(dāng)桌面大小發(fā)生變化或者彈出窗口位置發(fā)生變化時,制作好的腳本進(jìn)行回放時就會出現(xiàn)無效點擊、錯誤點擊等狀況。
受限于錄制腳本時作者使用的算法:錄制過程中,鼠標(biāo)點擊位置的坐標(biāo)記錄可能是基于桌面(窗口)的絕對位置等。
本文的優(yōu)化方法就是在窗口位置發(fā)生變化時、鼠標(biāo)能夠找到變化后的相應(yīng)點擊位置,以進(jìn)一步提高回放腳本的有效執(zhí)行率。
(1)腳本錄制過程中,遇到鼠標(biāo)點擊事件時,調(diào)用本方法。
(2)本方法設(shè)計成一個獨立的模塊,只提供簡單的輸入和輸出接口,以方便加載到軟件的錄制功能模塊。
(3)本方法的流程是:根據(jù)輸入的窗口名稱、大小和鼠標(biāo)點擊位置在窗口中的絕對位置;首先截取窗口圖像,分割出鼠標(biāo)點擊位置所在的按鈕圖像,同時以相同大小分割出毗鄰按鈕圖像的上、下、左、右;然后根據(jù)圖像處理得出按鈕、上、下、左、右圖像的直方圖;最后輸出按鈕、上下左的直方圖數(shù)值備用。
(4)錄制完成后,在腳本回放過程中時,遇到鼠標(biāo)點擊事件時,先驗證鼠標(biāo)點擊所在按鈕的直方圖,如果一致(在誤差范圍內(nèi)),就執(zhí)行點擊;如果不一致,就進(jìn)行圖像處理窗口,分割窗口截圖,找到其上、下、左的分割圖像都和對應(yīng)鼠標(biāo)操作的上、下、左的直方圖一致的分割圖像塊,然后返回其在窗口中的絕對位置;最后操作點擊操作。
1.2 圖像處理插件在自動化測試流程中的邏輯關(guān)系
圖像處理插件的關(guān)鍵點是在鼠標(biāo)點擊事件發(fā)生前確認(rèn)點擊位置的準(zhǔn)確度,誤差過大時進(jìn)行糾正處理,從而在保證鼠標(biāo)點擊事件的有效性,進(jìn)一步提高自動化測試的質(zhì)量;圖二為圖像處理插件在錄制流程中的邏輯位置。
圖2 圖像處理插件在自動化測試中的邏輯位置
圖1 腳本錄制和回放時點擊事件的圖像處理插件的位置確認(rèn)流程圖
軟件技術(shù)的發(fā)展迅速,針對現(xiàn)在程序的規(guī)模及復(fù)雜度,正確使用軟件測試工具可以增強(qiáng)軟件測試的自動化程度。借助自動化測試工具 , 可以助軟件開發(fā)和測試人員提高測試效率和軟件的質(zhì)量[3],降低測試成本,更好地輔助完成軟件開發(fā)工作; 從而彌補(bǔ)手工測試時重復(fù)勞動的缺點。
自動化測試軟件有很多都是完整的開源軟件測試套件,具有腳本錄制功能,并且能很方便地將腳本轉(zhuǎn)換成編程語言,生成這些語言開發(fā)環(huán)境下的測試用例。本文通過研究自動化測試軟件的內(nèi)部邏輯及其缺點,研究出基于圖像處理的在腳本回放過程中確認(rèn)和糾正鼠標(biāo)點擊位置的方法:根據(jù)多個分割圖像信息保存鼠標(biāo)點擊位置的信息,在回放時根據(jù)多個分割圖像信息進(jìn)一步確認(rèn)(誤差過大時糾正)鼠標(biāo)點擊位置,從而減少了自動化測試中腳本回放時鼠標(biāo)無效點擊、錯誤點擊事件的發(fā)生,提高自動化測試的效率和質(zhì)量。
[1]孫惠杰,楊曉紅.軟件測試的自動化[J].哈爾濱師范大學(xué)自然科學(xué)學(xué)報,2003,19( 5) : 47-49.
[2]宋波,張忠能.基于系統(tǒng)功能測試的軟件自動化測試可行性分析[J].計算機(jī)應(yīng)用與軟件,2005,22( 12) :31-33.
[3]韓麗娜.黑盒測試及測試工具 Rational Robot 的應(yīng)用[J].計算機(jī)工程與設(shè)計,2006,27( 2) : 359-361.
Improving the efficiency of GUI program’s automated testing by Image processing
He Qiuyun
(Guangzhou GCI Science & Technology Co., Ltd.,Guangzhou Guangdong,510310)
With the increasing of scale and complexity of software systems, software testing was becoming more and more important in software development, strengthened and simplified the software testing was more conducive for the improvement of software’s quality Automated Testing was important in software testing,Automated Testing was one of the important ways to reduce the test cost, at the same time had advantages in such aspects such as the degree of automation, test coverage, and test cost. For the empty click of the mouse in the process of automated testing, and the phenomenon of error click, the image processing technology was proposed to lock the mouse to click position precision, reduce the probability of the empty click,click on the wrong solution, improved the quality of software testing and test efficiency, in-depth study of software Automated Testing technology had a certain reference significance
GUI Application;Automated Testing;Record-Playback;Image Processing;Image Segmentation