何秋蕓
(廣州杰賽科技股份有限公司,廣東廣州,510310)
基于圖像處理提高GUI程序自動(dòng)化測(cè)試效率
何秋蕓
(廣州杰賽科技股份有限公司,廣東廣州,510310)
隨著軟件系統(tǒng)的規(guī)模和復(fù)雜度的增加,軟件測(cè)試在軟件開(kāi)發(fā)中的作用也越來(lái)越重要,強(qiáng)化和簡(jiǎn)化軟件測(cè)試更利于軟件質(zhì)量的提高。軟件測(cè)試自動(dòng)化在軟件測(cè)試的地位越來(lái)越重要,自動(dòng)化測(cè)試是降低測(cè)試成本的重要途徑之一,同時(shí)在自動(dòng)化程度、測(cè)試覆蓋率、測(cè)試成本等方面都具有優(yōu)勢(shì)。本文針對(duì)自動(dòng)化測(cè)試過(guò)程中鼠標(biāo)空點(diǎn)擊、錯(cuò)誤點(diǎn)擊的現(xiàn)象,提出利用圖像處理技術(shù)來(lái)精確鎖定鼠標(biāo)點(diǎn)擊位置,減少其空點(diǎn)擊、錯(cuò)點(diǎn)擊的概率的方法;進(jìn)一步提高軟件的測(cè)試質(zhì)量和測(cè)試效率,對(duì)軟件自動(dòng)化測(cè)試技術(shù)的深入研究具有一定的借鑒意義。
GUI應(yīng)用程序;自動(dòng)化測(cè)試;錄制回放;圖像處理;圖像分割
通常,在設(shè)計(jì)了測(cè)試用例并通過(guò)評(píng)審之后,由測(cè)試人員根據(jù)測(cè)試用例中描述的流程一步步執(zhí)行測(cè)試,得到實(shí)際結(jié)果與期望結(jié)果的比較。在此過(guò)程中,為了節(jié)省人力、時(shí)間或硬件資源,提高測(cè)試效率,便引入了自動(dòng)化測(cè)試的概念;即把以人為驅(qū)動(dòng)的測(cè)試行為轉(zhuǎn)化為機(jī)器執(zhí)行的一種過(guò)程。
隨著軟件系統(tǒng)的規(guī)模和復(fù)雜度的增加,軟件測(cè)試在軟件開(kāi)發(fā)中的作用也越來(lái)越重要,在保質(zhì)保量地完成測(cè)試任務(wù)的同時(shí)、盡可能做到降低人力成本、縮短測(cè)試周期讓很多企業(yè)認(rèn)識(shí)到了軟件測(cè)試自動(dòng)化的重要性,并漸漸將其納入日常生產(chǎn)。
軟件測(cè)試的自動(dòng)化是軟件測(cè)試的發(fā)展趨勢(shì)[1]軟件自動(dòng)化測(cè)試是使用計(jì)算機(jī)執(zhí)行測(cè)試行為的軟件測(cè)試技術(shù),即通過(guò)自動(dòng)測(cè)試工具或者用某種程序設(shè)計(jì)語(yǔ)言編制的自動(dòng)測(cè)試程序,控制被測(cè)軟件中的各種類和對(duì)象,模擬手動(dòng)測(cè)試步驟,完成測(cè)試工作[2]軟件自動(dòng)化測(cè)試的實(shí)現(xiàn)離不開(kāi)自動(dòng)化測(cè)試工具的輔助比如:基于GUI應(yīng)用程序自動(dòng)化測(cè)試的類似方案有WinRunner、Rational Robot、Macro Recorder等自動(dòng)化測(cè)試軟件;相對(duì)于手工測(cè)試來(lái)說(shuō) , 自測(cè)試工具具有如下優(yōu)點(diǎn)。
(1)提高了測(cè)試效率
在軟件測(cè)試中對(duì)于回歸測(cè)試中的動(dòng)作和用例是已經(jīng)完全設(shè)計(jì)好的,同時(shí)可以完全預(yù)知測(cè)試期望和結(jié)果,從而可以極大提高測(cè)試效率,縮短回歸測(cè)試時(shí)間。
(2)可以運(yùn)行更多更繁瑣的測(cè)試
許多不可能同時(shí)讓足夠多的測(cè)試人員同時(shí)進(jìn)行測(cè)試的大量用戶測(cè)試,實(shí)行自動(dòng)化測(cè)試可模擬出同一時(shí)間的許多用戶,更好的利用資源,同時(shí)達(dá)到測(cè)試的目的。
(3)具有一致性和可重復(fù)性
由于測(cè)試是自動(dòng)執(zhí)行的,每次測(cè)試的結(jié)果和執(zhí)行的內(nèi)容的一致性是可以得到保障的,從而達(dá)到測(cè)試的可重復(fù)效果。自動(dòng)化測(cè)試還存在著復(fù)用性的優(yōu)點(diǎn),自動(dòng)測(cè)試通常采用腳本技術(shù),只需要對(duì)腳本做少量的甚至不做修改,實(shí)現(xiàn)在不同的測(cè)試過(guò)程中使用相同的用例。
本文在自動(dòng)化測(cè)試工具的基礎(chǔ)上優(yōu)化了鼠標(biāo)點(diǎn)擊數(shù)據(jù)的保存和使用,進(jìn)一步提高自動(dòng)化測(cè)試質(zhì)量和效率。該方法是基于圖像處理的為提高GUI應(yīng)用程序自動(dòng)化測(cè)試過(guò)程中鼠標(biāo)點(diǎn)擊精確度的方法就是在這個(gè)場(chǎng)景下提出來(lái)的:在完成自動(dòng)化測(cè)試腳本錄制的情況下,進(jìn)一步提高腳本回放(重復(fù)測(cè)試)的有效執(zhí)行率、減少鼠標(biāo)無(wú)效點(diǎn)擊錯(cuò)誤點(diǎn)擊事件的出現(xiàn)。
1.1 自動(dòng)化測(cè)試腳本錄制和回放中圖像處理插件的詳細(xì)流程
目前的自動(dòng)化測(cè)試軟件的自動(dòng)化測(cè)試過(guò)程是:根據(jù)設(shè)計(jì)好的測(cè)試用例錄制好自動(dòng)化測(cè)試腳本,然后使用錄制完成的腳本進(jìn)行重復(fù)性測(cè)試;但在使用過(guò)程中發(fā)現(xiàn):錄制好的腳本在回放過(guò)程中,鼠標(biāo)空點(diǎn)擊、錯(cuò)點(diǎn)擊經(jīng)常出現(xiàn);特別是回放過(guò)程中新窗口的絕對(duì)位置、窗口大小和錄制時(shí)的絕對(duì)位置、窗口大小不一致時(shí),錄制腳本就失去了測(cè)試意義。
而現(xiàn)有的幾種相關(guān)的自動(dòng)化測(cè)試工具或鼠標(biāo)自動(dòng)點(diǎn)擊工具,其鼠標(biāo)的點(diǎn)擊位置確定是單一的參照物(基于桌面),所有當(dāng)桌面大小發(fā)生變化或者彈出窗口位置發(fā)生變化時(shí),制作好的腳本進(jìn)行回放時(shí)就會(huì)出現(xiàn)無(wú)效點(diǎn)擊、錯(cuò)誤點(diǎn)擊等狀況。
受限于錄制腳本時(shí)作者使用的算法:錄制過(guò)程中,鼠標(biāo)點(diǎn)擊位置的坐標(biāo)記錄可能是基于桌面(窗口)的絕對(duì)位置等。
本文的優(yōu)化方法就是在窗口位置發(fā)生變化時(shí)、鼠標(biāo)能夠找到變化后的相應(yīng)點(diǎn)擊位置,以進(jìn)一步提高回放腳本的有效執(zhí)行率。
(1)腳本錄制過(guò)程中,遇到鼠標(biāo)點(diǎn)擊事件時(shí),調(diào)用本方法。
(2)本方法設(shè)計(jì)成一個(gè)獨(dú)立的模塊,只提供簡(jiǎn)單的輸入和輸出接口,以方便加載到軟件的錄制功能模塊。
(3)本方法的流程是:根據(jù)輸入的窗口名稱、大小和鼠標(biāo)點(diǎn)擊位置在窗口中的絕對(duì)位置;首先截取窗口圖像,分割出鼠標(biāo)點(diǎn)擊位置所在的按鈕圖像,同時(shí)以相同大小分割出毗鄰按鈕圖像的上、下、左、右;然后根據(jù)圖像處理得出按鈕、上、下、左、右圖像的直方圖;最后輸出按鈕、上下左的直方圖數(shù)值備用。
(4)錄制完成后,在腳本回放過(guò)程中時(shí),遇到鼠標(biāo)點(diǎn)擊事件時(shí),先驗(yàn)證鼠標(biāo)點(diǎn)擊所在按鈕的直方圖,如果一致(在誤差范圍內(nèi)),就執(zhí)行點(diǎn)擊;如果不一致,就進(jìn)行圖像處理窗口,分割窗口截圖,找到其上、下、左的分割圖像都和對(duì)應(yīng)鼠標(biāo)操作的上、下、左的直方圖一致的分割圖像塊,然后返回其在窗口中的絕對(duì)位置;最后操作點(diǎn)擊操作。
1.2 圖像處理插件在自動(dòng)化測(cè)試流程中的邏輯關(guān)系
圖像處理插件的關(guān)鍵點(diǎn)是在鼠標(biāo)點(diǎn)擊事件發(fā)生前確認(rèn)點(diǎn)擊位置的準(zhǔn)確度,誤差過(guò)大時(shí)進(jìn)行糾正處理,從而在保證鼠標(biāo)點(diǎn)擊事件的有效性,進(jìn)一步提高自動(dòng)化測(cè)試的質(zhì)量;圖二為圖像處理插件在錄制流程中的邏輯位置。

圖2 圖像處理插件在自動(dòng)化測(cè)試中的邏輯位置

圖1 腳本錄制和回放時(shí)點(diǎn)擊事件的圖像處理插件的位置確認(rèn)流程圖
軟件技術(shù)的發(fā)展迅速,針對(duì)現(xiàn)在程序的規(guī)模及復(fù)雜度,正確使用軟件測(cè)試工具可以增強(qiáng)軟件測(cè)試的自動(dòng)化程度。借助自動(dòng)化測(cè)試工具 , 可以助軟件開(kāi)發(fā)和測(cè)試人員提高測(cè)試效率和軟件的質(zhì)量[3],降低測(cè)試成本,更好地輔助完成軟件開(kāi)發(fā)工作; 從而彌補(bǔ)手工測(cè)試時(shí)重復(fù)勞動(dòng)的缺點(diǎn)。
自動(dòng)化測(cè)試軟件有很多都是完整的開(kāi)源軟件測(cè)試套件,具有腳本錄制功能,并且能很方便地將腳本轉(zhuǎn)換成編程語(yǔ)言,生成這些語(yǔ)言開(kāi)發(fā)環(huán)境下的測(cè)試用例。本文通過(guò)研究自動(dòng)化測(cè)試軟件的內(nèi)部邏輯及其缺點(diǎn),研究出基于圖像處理的在腳本回放過(guò)程中確認(rèn)和糾正鼠標(biāo)點(diǎn)擊位置的方法:根據(jù)多個(gè)分割圖像信息保存鼠標(biāo)點(diǎn)擊位置的信息,在回放時(shí)根據(jù)多個(gè)分割圖像信息進(jìn)一步確認(rèn)(誤差過(guò)大時(shí)糾正)鼠標(biāo)點(diǎn)擊位置,從而減少了自動(dòng)化測(cè)試中腳本回放時(shí)鼠標(biāo)無(wú)效點(diǎn)擊、錯(cuò)誤點(diǎn)擊事件的發(fā)生,提高自動(dòng)化測(cè)試的效率和質(zhì)量。
[1]孫惠杰,楊曉紅.軟件測(cè)試的自動(dòng)化[J].哈爾濱師范大學(xué)自然科學(xué)學(xué)報(bào),2003,19( 5) : 47-49.
[2]宋波,張忠能.基于系統(tǒng)功能測(cè)試的軟件自動(dòng)化測(cè)試可行性分析[J].計(jì)算機(jī)應(yīng)用與軟件,2005,22( 12) :31-33.
[3]韓麗娜.黑盒測(cè)試及測(cè)試工具 Rational Robot 的應(yīng)用[J].計(jì)算機(jī)工程與設(shè)計(jì),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