Mithun Sridharan是Blue Ocean Solutions(BlueOS)公司的總經(jīng)理,BlueOS是一家德國的專注于技術(shù)公司的集客營銷和數(shù)字轉(zhuǎn)化公司。他有十多年的業(yè)務(wù)開發(fā)、市場、全球交付和咨詢方面的國際經(jīng)驗。他擁有ESMT學(xué)院管理和技術(shù)專業(yè)的MBA證書和德國基爾大學(xué)的理學(xué)碩士證書。他是哈佛管理導(dǎo)師及研究生,一名項目管理專業(yè)人員(PMP)以及一名認(rèn)證信息系統(tǒng)審計師(CISA)。2013年他還擔(dān)任過本部在德國埃施博恩的德國外包協(xié)會的通訊主席。
根據(jù)Pinch媒體數(shù)據(jù)2009年進行的研究,一個移動應(yīng)用程序的平均生命周期只有30天。此后移動應(yīng)用程序的數(shù)量激增,生命周期變得更短了。這些變化趨勢要求軟件質(zhì)量保證團隊重新改進他們的軟件測試方法,并將之與移動應(yīng)用程序開發(fā)團隊和客戶群緊密相連?蛻粜枰嗟膽(yīng)用程序和功能,因此保證移動應(yīng)用程序的質(zhì)量對維護現(xiàn)有客戶群并獲取新客戶都是必不可少的。鑒于軟件開發(fā)和質(zhì)量保證(測試)的時間很短,即使有替代策略存在,軟件測試自動化從一定程度上在公司的生命周期中是必要的。
一家app開發(fā)公司會因為各種原因(內(nèi)部和外部的都有)而決定將其測試工作自動化。不論深層原因,一旦一家公司決定將其測試工作自動化,需要一個系統(tǒng)的方法來定下自動化流程的工具。測試自動化的成功很大程度上取決于所使用的工具。如今市場上有各種自動化工具,選擇正確的工具滿足公司特定的測試需求算得上是一個蠻有壓力的任務(wù)。
一個剛開發(fā)的產(chǎn)品,相對來說還是不太穩(wěn)定。在那些階段,手動測試是一個快速驗證產(chǎn)品是否如期運行的好方法。為了驗證和確認(rèn)(V&V),軟件測試員應(yīng)該利用這個階段熟悉產(chǎn)品規(guī)格并編寫測試用例。產(chǎn)品規(guī)格一完成,測試員應(yīng)該開始思考他們該如何將測試用例自動化了。軟件開發(fā)公司經(jīng)常要在為特定短期客戶項目挑選工具并投資挑選工具和為長期項目/產(chǎn)品挑選工具間做出調(diào)解,以避免重新加工或后期浪費大筆費用。移動應(yīng)用程序短暫的生命周期里在形成一個連貫的工具策略時提出了一個管理難題。這種情況下,基于場景的方法可以幫助管理者對連貫的需求投資負(fù)責(zé),為他們公司的移動測試自動化做準(zhǔn)備,并為戰(zhàn)術(shù)和戰(zhàn)略項目投資正確的工具。
1.支持移動平臺
無論要求規(guī)范是什么,你都需要挑選正確的工具,不僅要支持目標(biāo)操作系統(tǒng)如iOS,Android,Windows以及它們的不同版本,還要支持底層硬件配置。質(zhì)量保證團隊安排其測試工作時需要考慮許多移動應(yīng)用程序特有的難題。根本的問題之一是搞明白一個應(yīng)用程序(代碼庫)如何在不同的操作系統(tǒng),界面上運行。盡管移動平臺市場的玩家主要是Google和Apple,但開發(fā)者仍需要將Symbian和Windows Phone用戶考慮在內(nèi)。即使是在單個平臺內(nèi),也有一堆軟件版本等因素要考慮。因此,檢查老和新的平臺支持版本極其重要。
2.支持應(yīng)用程序類型
一旦初始自動化工具入選,你需要檢查可以用這些工具所管理的應(yīng)用程序的類型。多數(shù)工具都是特定的不能同時支持本地,混合和web應(yīng)用程序。多數(shù)移動測試進程并不是萬全之策。因此,很有可能需要在自動化流程鏈中挑選一些工具。根據(jù)被測應(yīng)用程序的類型,至少80%的測試活動可以被自動化(按照帕累托定律算)。然而考慮到一堆平臺上的應(yīng)用程序的功能,需要一些特別的手動測試。使用正確的工具可以幫助提高效率,減少成本,同時可以在部署應(yīng)用程序或服務(wù)時,提供一個客觀環(huán)境來評估應(yīng)用程序的質(zhì)量并預(yù)測實際環(huán)境中的用戶體驗。
3.源代碼要求
為了獲得佳測試質(zhì)量,本地移動應(yīng)用程序應(yīng)該在安裝程序內(nèi)隨附一些工具特定框架,這樣軟件測試員可以向設(shè)備/仿真器發(fā)送一些指令直接用本地應(yīng)用程序執(zhí)行任務(wù)。多數(shù)常規(guī)瀏覽器都有它們自己的網(wǎng)絡(luò)驅(qū)動程序,所以測試員可以在這些特定瀏覽器網(wǎng)絡(luò)驅(qū)動程序的幫助下測試應(yīng)用程序。在多數(shù)情況下,移動應(yīng)用程序不會帶著它們的源代碼或框架被交付給測試團隊,也是說,它們可以在不同移動平臺上模擬同樣的功能。在一些情況下,有用于iOS的App Package一類的方法,盡管該模塊并不以和擁有源訪問的流程一樣的方式提供測試覆蓋率,但它卻為測試提供比精易應(yīng)用程序安裝本身更多的容量。于是源代碼和平臺框架是需要考慮在內(nèi)的重要指南,因為不是總能夠獲得測試用的源代碼,尤其是當(dāng)測試工作被外包給第三方時。
4.應(yīng)用程序重構(gòu)要求
移動測試自動化的另一個障礙是修改應(yīng)用程序的要求,即重構(gòu)使之可以被自動化工具測試。重構(gòu)的技巧是能夠驗證功能被保留了。測試專業(yè)需要確保所有變化在重構(gòu)前后都被驗證了。盡管將這個流程自動化沒必要,但這在隨后的回歸中或許有幫助。重構(gòu)復(fù)雜的應(yīng)用程序或代碼模塊是一門藝術(shù),將這些元素自動化應(yīng)該盡大的努力。挑選的工具應(yīng)該滿足在不同粒度水平交付預(yù)期結(jié)果所需的可擴展性要求;或許有必要將第三方庫包含在測試項目中,建立你的產(chǎn)品的測試版本或改善現(xiàn)有交付測試的app版本。
5.測試腳本生成
對于需要大量測試覆蓋的移動應(yīng)用程序,創(chuàng)建實時測試腳本或許會提出一個極大的挑戰(zhàn)。盡管測試自動化大大地提高了執(zhí)行效率,但這些效率提高都伴隨著巨大的成本,尤其是開發(fā)測試腳本庫以確保測試覆蓋需求的時候。自動化測試用例腳本生成工具也許能通過幫助創(chuàng)建關(guān)于運行需求的腳本測試場景進一步提高效率并擴大測試范圍。關(guān)于可擴展性,所挑選用來自動化生成測試腳本的工具應(yīng)該要支持腳本參數(shù)。然而該方法通常受限于工具能力且無法交付和編程方法一樣的覆蓋度,它使用power coding和基本編程語言。編程選項沒有自動化測試腳本方法那么快,但是其結(jié)果更有效更靈活。因此,有必要評估可用資源以便在工具評估過程中挑選一個方法。