絕非浮云——手機(jī)自動(dòng)化測(cè)試技術(shù)漫談及OPhone自動(dòng)化測(cè)試概覽
掃描二維碼
隨時(shí)隨地手機(jī)看文章
近年來(lái),隨著智能手機(jī)操作系統(tǒng)的快速發(fā)展,在技術(shù)和需求層面上為手機(jī)自動(dòng)化測(cè)試提供了豐富土壤,手機(jī)自動(dòng)化測(cè)試越發(fā)成為廣受矚目的熱門技術(shù)和重要研究領(lǐng)域。
筆者在從事OPhone自動(dòng)化測(cè)試工作過(guò)程中,對(duì)業(yè)內(nèi)開展自動(dòng)化測(cè)試的情況進(jìn)行過(guò)一些粗淺的研究和總結(jié)??傮w來(lái)說(shuō),目前手機(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ā)過(guò)程中所做的單元測(cè)試即屬于此類型。第二種則是結(jié)合手機(jī)軟件自身特點(diǎn),對(duì)傳統(tǒng)概念做了一些延伸。它指的是通過(guò)解析、控制和校驗(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è)試框架足夠好,也可用來(lái)做自動(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框架可供使用。總得來(lái)看,各個(gè)系統(tǒng)采用的都是xUnit這一業(yè)界廣泛接受的理念。
圖1 Android開發(fā)環(huán)境中集成的JUnit測(cè)試框架
第二種類型的白盒測(cè)試實(shí)現(xiàn)起來(lái)要比第一種類型復(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è)試腳本往往采用編程語(yǔ)言(Android/OPhone的白盒測(cè)試腳本使用java語(yǔ)言開發(fā))、腳本開發(fā)技術(shù)門檻高,同時(shí)會(huì)受到操作系統(tǒng)本身特性的限制,跨進(jìn)程測(cè)試實(shí)現(xiàn)困難(在Android/OPhone上,如在編輯彩信時(shí)跳轉(zhuǎn)到文件管理器里挑選附件,后續(xù)測(cè)試腳本是無(wú)法執(zhí)行的,因?yàn)槲募芾砥骱筒市挪辉谕粋€(gè)進(jìn)程中)。
黑盒測(cè)試
相對(duì)于白盒測(cè)試而言,黑盒測(cè)試指的是通過(guò)外部指令驅(qū)動(dòng)手機(jī)并通過(guò)外部方式進(jìn)行測(cè)試結(jié)果校驗(yàn)的測(cè)試方式,即不考慮系統(tǒng)本身提供的自動(dòng)化測(cè)試能力,所有的測(cè)試行為均在系統(tǒng)外部進(jìn)行。比較典型的自動(dòng)化黑盒測(cè)試方案是:通過(guò)手機(jī)操作系統(tǒng)對(duì)外提供的接口向手機(jī)發(fā)送觸屏、按鍵等指令控制手機(jī)執(zhí)行各種操作,同時(shí)將特定操作步驟執(zhí)行后的手機(jī)當(dāng)前屏幕顯示做截圖,再將截圖數(shù)據(jù)通過(guò)圖像對(duì)比或OCR的方式進(jìn)行結(jié)果校驗(yàn)。
黑盒測(cè)試方式多被手機(jī)廠商或獨(dú)立的手機(jī)自動(dòng)化測(cè)試工具提供商所采用。像諾基亞在S40平臺(tái)上使用的Austere C、在S60平臺(tái)上使用的ART2、摩托羅拉在非智能機(jī)平臺(tái)上使用的FlexAuto、索愛在多個(gè)產(chǎn)品平臺(tái)上使用的BRAT、獨(dú)立軟件開發(fā)商BSQUARE公司的CountDown均屬于黑盒自動(dòng)化測(cè)試系統(tǒng)。
圖3 BSQUARE公司的CountDown
黑盒測(cè)試方式不受操作系統(tǒng)內(nèi)部特性的限制(如可以避免跨進(jìn)程操作的限制),對(duì)手機(jī)操作系統(tǒng)本身是否具備高級(jí)的自動(dòng)化測(cè)試能力也沒有很高的要求;測(cè)試腳本可以采用描述性語(yǔ)言,而且可以提供簡(jiǎn)單易用的圖形化操作界面,降低了使用門檻,有利于自動(dòng)化測(cè)試在測(cè)試團(tuán)隊(duì)中的大范圍推廣。但由于使用圖像對(duì)比或OCR的方式做結(jié)果校驗(yàn),測(cè)試腳本受UI變動(dòng)的影響較大,腳本維護(hù)成本會(huì)比較高;在執(zhí)行效率、不同規(guī)格的手機(jī)適配便利性方面也不如白盒測(cè)試方式。
由于白盒測(cè)試和黑盒測(cè)試各有利弊,一般來(lái)說(shuō),在實(shí)際測(cè)試項(xiàng)目中,兩種測(cè)試方式會(huì)配合使用、各取所長(zhǎng)。
OPhone的自動(dòng)化測(cè)試
OPhone走的是Android+ 路線,自然繼承了Android在自動(dòng)化測(cè)試方面的能力。目前OPhone在白盒自動(dòng)化測(cè)試方面使用的也是JUnit+Instrumentation框架,對(duì)上述兩種白盒測(cè)試類型都能很好的支持。黑盒自動(dòng)化測(cè)試方面,OPhone目前有兩套自己的黑盒測(cè)試系統(tǒng)A-Tool和OSTT,分別用于平臺(tái)測(cè)試的各環(huán)節(jié)(如功能測(cè)試、壓力測(cè)試、交互測(cè)試等)和OPhone專項(xiàng)測(cè)試中的MTBF(平均無(wú)故障時(shí)間)測(cè)試?;趦商诇y(cè)試框架共開發(fā)出近萬(wàn)個(gè)測(cè)試腳本,覆蓋了大多數(shù)應(yīng)用層模塊和部分底層模塊?;谝陨峡蚣荛_發(fā)的分布式測(cè)試系統(tǒng)和多框架集成測(cè)試系統(tǒng)已經(jīng)投入使用或即將完成研發(fā)。同時(shí)OPhone還具有自行開發(fā)或引進(jìn)的各類自動(dòng)化測(cè)試工具24款,類型涵蓋了功能測(cè)試工具、壓力測(cè)試工具、性能測(cè)試工具、MTBF穩(wěn)定性測(cè)試工具、測(cè)試輔助工具和系統(tǒng)監(jiān)控工具。
通過(guò)構(gòu)建自動(dòng)化測(cè)試框架、開發(fā)自動(dòng)化測(cè)試腳本、構(gòu)建自動(dòng)化測(cè)試系統(tǒng)和開發(fā)自動(dòng)化測(cè)試工具,OPhone已經(jīng)初步形成了較為完善的自動(dòng)化測(cè)試體系。自動(dòng)化測(cè)試已經(jīng)應(yīng)用在OPhone平臺(tái)開發(fā)流程中的各個(gè)環(huán)節(jié),例如每日構(gòu)建出來(lái)后自動(dòng)執(zhí)行版本檢查,對(duì)各軟件模塊進(jìn)行單元測(cè)試,對(duì)系統(tǒng)進(jìn)行自動(dòng)化功能測(cè)試和自動(dòng)化系統(tǒng)測(cè)試,產(chǎn)品上市前還有自動(dòng)化的MTBF測(cè)試。
由于手機(jī)產(chǎn)品與用戶有密切的交互,很多功能需要以測(cè)試人員的主觀感受作為檢驗(yàn)結(jié)果的依據(jù),所以人工測(cè)試仍會(huì)在手機(jī)測(cè)試工作中占主導(dǎo)地位。但隨著自動(dòng)化測(cè)試技術(shù)的發(fā)展,會(huì)有越來(lái)越多的人工測(cè)試可以被自動(dòng)化測(cè)試所替代,也會(huì)有越來(lái)越多的人工無(wú)法完成的測(cè)試任務(wù)被自動(dòng)化測(cè)試所實(shí)現(xiàn)。如何更好的實(shí)施自動(dòng)化測(cè)試,仍將會(huì)是業(yè)內(nèi)關(guān)注的熱點(diǎn)。OPhone團(tuán)隊(duì)也將繼續(xù)在此方面進(jìn)行有益的探索和實(shí)踐,以此提升OPhone測(cè)試水平,更好的保障OPhone產(chǎn)品的質(zhì)量。