手機(jī)自動(dòng)化測(cè)試技術(shù)漫談及OPhone自動(dòng)化測(cè)試概覽
筆者在從事OPhone自動(dòng)化測(cè)試工作過程中,對(duì)業(yè)內(nèi)開展自動(dòng)化測(cè)試的情況進(jìn)行過一些粗淺的研究和總結(jié)。總體來說,目前手機(jī)自動(dòng)化測(cè)試技術(shù)大體可分為白盒測(cè)試和黑盒測(cè)試兩種。
白盒測(cè)試
在手機(jī)自動(dòng)化測(cè)試領(lǐng)域,白盒測(cè)試包括兩種類型,第一種是傳統(tǒng)軟件測(cè)試?yán)碚撝兴傅陌缀袦y(cè)試,即依賴被測(cè)對(duì)象的源代碼具體實(shí)現(xiàn)的測(cè)試方式。在手機(jī)軟件開發(fā)過程中所做的單元測(cè)試即屬于此類型。第二種則是結(jié)合手機(jī)軟件自身特點(diǎn),對(duì)傳統(tǒng)概念做了一些延伸。它指的是通過解析、控制和校驗(yàn)手機(jī)GUI控件元素對(duì)手機(jī)進(jìn)行測(cè)試的方式。這種方式不必一定依賴于被測(cè)對(duì)象的源代碼,但對(duì)于被測(cè)對(duì)象的GUI實(shí)現(xiàn)有較強(qiáng)的關(guān)聯(lián)性。這種類型的白盒測(cè)試一般用于驗(yàn)證應(yīng)用程序功能和界面顯示正確性的功能測(cè)試。如果測(cè)試框架足夠好,也可用來做自動(dòng)化的性能測(cè)試、壓力測(cè)試等。
目前幾大主流手機(jī)操作系統(tǒng)對(duì)上述兩種白盒測(cè)試方式都有很好的支持。例如,對(duì)于第一種類型:iOS在開發(fā)環(huán)境Xcode中提供了OCUnit框架;Android在SDK中集成了JUnit框架;Windows Phone 7可以使用Silverlight Unit Test Framework;Symbian在開發(fā)工具中提供了EUnit框架,同時(shí)還有Symbian OS Unit框架可供使用??偟脕砜?,各個(gè)系統(tǒng)采用的都是xUnit這一業(yè)界廣泛接受的理念。
圖1 Android開發(fā)環(huán)境中集成的JUnit測(cè)試框架
第二種類型的白盒測(cè)試實(shí)現(xiàn)起來要比第一種類型復(fù)雜,因?yàn)樗粌H要做到對(duì)界面組成元素的解析、識(shí)別、調(diào)用和比對(duì),更要做到對(duì)被測(cè)應(yīng)用所在進(jìn)程做諸如發(fā)送觸屏事件、發(fā)送按鍵事件這樣的操作控制。當(dāng)前,除Windows Phone 7尚不明確外,各主流系統(tǒng)均提供了這樣的能力,如iOS系統(tǒng)從4.0版本開始增加的UI Automation instrument、Android從發(fā)布伊始就提供的 JUit和Instrumentation、Windows Mobile 6在SDK中集成的WMTF框架、Symbian 3基于QT開發(fā)的Testability Driver框架。圖2 Symbian 3的Testability Driver框架基本架構(gòu)圖
圖2 Symbian 3的Testability Driver框架基本架構(gòu)圖
白盒測(cè)試具有測(cè)試效率高、測(cè)試運(yùn)行穩(wěn)定性好、不易受UI改動(dòng)影響等優(yōu)點(diǎn),但測(cè)試腳本往往采用編程語言(Android/OPhone的白盒測(cè)試腳本使用java語言開發(fā))、腳本開發(fā)技術(shù)門檻高,同時(shí)會(huì)受到操作系統(tǒng)本身特性的限制,跨進(jìn)程測(cè)試實(shí)現(xiàn)困難(在Android/OPhone上,如在編輯彩信時(shí)跳轉(zhuǎn)到文件管理器里挑選附件,后續(xù)測(cè)試腳本是無法執(zhí)行的,因?yàn)槲募芾砥骱筒市挪辉谕粋€(gè)進(jìn)程中)。
評(píng)論