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