您的位置:軟件測(cè)試 >> 測(cè)試技術(shù) >> 測(cè)試精品文章
移動(dòng)App測(cè)試中的佳做法
作者:Daniel Knott(澤眾軟件原創(chuàng)翻譯) 發(fā)布時(shí)間:[ 2014/11/20 9:27:08 ] 推薦標(biāo)簽:移動(dòng)app測(cè)試 軟件測(cè)試
  Daniel Knott 用過(guò)各種不同編程語(yǔ)言和軟件質(zhì)量保證工具。他在軟件開(kāi)發(fā)和測(cè)試方面干了七年,自2010年起,他一直在德國(guó)漢堡的XING AG公司職,幾個(gè)項(xiàng)目里,比如XING調(diào)查和XING建議,他負(fù)責(zé)測(cè)試管理,測(cè)試自動(dòng)化和測(cè)試執(zhí)行。Daniel現(xiàn)在是XING移動(dòng)和XING API團(tuán)隊(duì)的質(zhì)量保證團(tuán)隊(duì)負(fù)責(zé)人。在XING移動(dòng)團(tuán)隊(duì)中,他還負(fù)責(zé)XING安卓和iPhone Apps的測(cè)試管理和測(cè)試自動(dòng)化。Daniel在包括像Robotium, KIF (Keep It Functional), Selenium and Java一類(lèi)工具的軟件測(cè)試自動(dòng)化方面經(jīng)驗(yàn)豐富。他還在各類(lèi)敏捷大會(huì)上作了陳述且定期發(fā)表到他的博客上和XING博客上。

 

  一提到軟件測(cè)試,測(cè)試員基本想到的是去檢查文件,功能,API,性能并確定軟件是否安全,以及關(guān)于軟件特定部分的其他事項(xiàng)。而對(duì)于移動(dòng)測(cè)試,測(cè)試員不得不基于用戶(hù)移動(dòng)使用模式考慮移動(dòng)相關(guān)的功能。
  本文是基于我的工作經(jīng)驗(yàn)而寫(xiě)的。作為一名敏捷軟件開(kāi)發(fā)團(tuán)隊(duì)的軟件質(zhì)量保證經(jīng)理,我一心投入iPhone, Android, Windows Phone 7的移動(dòng)apps和移動(dòng)web apps。在XING移動(dòng)團(tuán)隊(duì)的日常工作以及與其他移動(dòng)測(cè)試專(zhuān)家交流的過(guò)程中,我深刻了解了移動(dòng)測(cè)試工作的困難。漸漸地,我明確了什么是幫助改進(jìn)同事們和我的測(cè)試工作并為用戶(hù)提供更高質(zhì)量app的移動(dòng)佳做法。

  功能測(cè)試
  每項(xiàng)開(kāi)發(fā)的新功能都需要進(jìn)行測(cè)試。移動(dòng)app測(cè)試中功能測(cè)試是一個(gè)重要方面,移動(dòng)測(cè)試員應(yīng)該要進(jìn)行手動(dòng)測(cè)試和自動(dòng)化測(cè)試。剛開(kāi)始測(cè)試時(shí),測(cè)試員必須把移動(dòng)app 當(dāng)做“黑盒”一樣進(jìn)行手動(dòng)測(cè)試,看看提供的功能是否正確并如設(shè)計(jì)的一樣正常運(yùn)作。除了經(jīng)典軟件測(cè)試,像點(diǎn)擊按鈕看看會(huì)發(fā)生什么,測(cè)試員還必須執(zhí)行更多功能的移動(dòng)設(shè)備專(zhuān)門(mén)的測(cè)試。
  如今,現(xiàn)代移動(dòng)設(shè)備都有觸摸屏,要求多點(diǎn)觸控動(dòng)作來(lái)與它們互動(dòng)。設(shè)備可以是縱向或橫向顯示屏。它們提供動(dòng)作,傾斜和螺旋傳感器。它們有不同的接口可以連接其他設(shè)備或服務(wù),比如GPS,NFC,照相機(jī),LED等等。
  移動(dòng)軟件測(cè)試員必須確保app的所有特定設(shè)備功能在app里都能用。移動(dòng)設(shè)備的種類(lèi)這么多,測(cè)試時(shí)要將所有的覆蓋是不可能的,所以功能測(cè)試時(shí)測(cè)試員要專(zhuān)注于他們app的關(guān)鍵之處。什么是真的簡(jiǎn)單有效的呢?設(shè)備旋轉(zhuǎn)。我測(cè)試工作期間發(fā)現(xiàn)有許多bug僅需將設(shè)備從縱向旋轉(zhuǎn)為橫向再旋轉(zhuǎn)回來(lái)好了。
  除了整個(gè)手動(dòng)測(cè)試過(guò)程,測(cè)試自動(dòng)化對(duì)移動(dòng)app也很重要。每個(gè)代碼變化或新功能都可能影響現(xiàn)存功能及它們的狀態(tài)。通常手動(dòng)回歸測(cè)試時(shí)間不夠,所以測(cè)試員不得不找一個(gè)工具去進(jìn)行自動(dòng)化回歸測(cè)試,F(xiàn)在市面上有很多移動(dòng)測(cè)試自動(dòng)化工具,有商業(yè)的也有開(kāi)源額,面向各個(gè)不同平臺(tái),如Android,iPhone,Windows Phone 7, BlackBerry以及移動(dòng)web app。根據(jù)開(kāi)發(fā)策略和結(jié)構(gòu),質(zhì)量保證專(zhuān)家需要找出適合他們環(huán)境的自動(dòng)化工具。
  安卓的話,有Robotium[ROB01], Robolectric [ROB02], Roboguice [ROB03], MonkeyTalk [MON01],Monkeyrunner [MON02], NativeDriver [NAT01] and Calabash for Android[CAL01]等開(kāi)源工具。自動(dòng)化工具Robotium已經(jīng)變成開(kāi)源界的實(shí)際標(biāo)準(zhǔn)。它用起來(lái)很簡(jiǎn)單且是基于安卓測(cè)試設(shè)備的。
  iPhone的測(cè)試自動(dòng)化工具包括KIF (Keep It Functional) [KIF01],UIAutomation [UIA01], MonkeyTalk [MON01], Calabash for iOS [CAL02],F(xiàn)rank [FRA01], Zucchini [Zuc01]等等。所有這些工具也可以在設(shè)備或iOS模擬器上模擬真實(shí)用戶(hù)互動(dòng)。選擇一個(gè)工具對(duì)測(cè)試自動(dòng)化并不容易,但做決定時(shí)有一點(diǎn)要牢記,因?yàn)楹苤匾? 測(cè)試自動(dòng)化應(yīng)該使用同樣的編程語(yǔ)言作為產(chǎn)品代碼。如果測(cè)試和產(chǎn)品代碼用一樣的語(yǔ)言去寫(xiě),那對(duì)測(cè)試員和開(kāi)發(fā)員都有好處,因?yàn)檫@使得他們做配對(duì)代碼時(shí)可以輕松些。測(cè)試員可以和開(kāi)發(fā)員在同一水平進(jìn)行交流,他們可以執(zhí)行測(cè)試和產(chǎn)品代碼的代碼審查。對(duì)于測(cè)試自動(dòng)化,開(kāi)發(fā)員可以用他們習(xí)慣的語(yǔ)言編寫(xiě)他們自己的腳本。

  總結(jié):
  ▪▪把a(bǔ)pp作為“黑盒”進(jìn)行測(cè)試并試著中斷它。
  ▪▪打開(kāi)移動(dòng)app的每個(gè)屏幕并將設(shè)備從縱屏變?yōu)闄M屏再變回縱屏。
  ▪▪別忘了去測(cè)試設(shè)備特定的功能,比如傳感器和通信接口。
  ▪▪為移動(dòng)app編寫(xiě)測(cè)試自動(dòng)化腳本。
  ▪▪選擇一個(gè)適應(yīng)公司策略和結(jié)構(gòu)的測(cè)試自動(dòng)化工具。
  ▪▪測(cè)試和產(chǎn)品代碼應(yīng)該用同一種語(yǔ)言。

  非功能測(cè)試
  移動(dòng)app測(cè)試的另一重要方面是移動(dòng)app的非功能需求。移動(dòng)app在推出市場(chǎng)或進(jìn)行進(jìn)一步開(kāi)發(fā)前,移動(dòng)測(cè)試員有許多需要測(cè)試的問(wèn)題。
  早期開(kāi)發(fā)階段要進(jìn)行的第一個(gè)測(cè)試應(yīng)該是實(shí)用性測(cè)試。通常是由alpha用戶(hù)或同事進(jìn)行的。走進(jìn)一家咖啡館或餐廳,問(wèn)問(wèn)里面的人他們的app使用情況。讓他們看看現(xiàn)階段開(kāi)發(fā)的第一個(gè)版本并收集反饋,看看用戶(hù)是否能很好地使用新功能,以便得出第一印象。
  檢查app的性能。將推出的版本與當(dāng)前版本做一番比較,看看性能是一樣?更好?還是更差?將app安裝到舊的設(shè)備上,看看該app在舊設(shè)備上是否仍能運(yùn)作,無(wú)論硬件設(shè)備好或差。先進(jìn)的設(shè)備也一樣要這么做。
  測(cè)試電話,短信,彩信,微博或其他通知進(jìn)來(lái)時(shí)app的反應(yīng)。使用app時(shí)檢查一下電量。確保測(cè)試過(guò)程測(cè)試設(shè)備是充滿(mǎn)電的并每十分鐘檢查一下電池使用情況,看看該app有沒(méi)有太耗電。在低電量時(shí)把a(bǔ)pp安裝到設(shè)備上看看會(huì)發(fā)生什么。檢查app的內(nèi)存使用情況。如果app在本地文件系統(tǒng)中存儲(chǔ)數(shù)據(jù),測(cè)測(cè)不同內(nèi)存卡的使用情況。想想看本地存儲(chǔ)快滿(mǎn)時(shí)會(huì)發(fā)生什么呢——app會(huì)崩潰或彈出出錯(cuò)提醒框來(lái)通知用戶(hù)嗎?
  測(cè)試app的安裝和刪除過(guò)程。更重要的是,測(cè)試從老版本升級(jí)為新版本的過(guò)程;蛟S本地?cái)?shù)據(jù)庫(kù)已經(jīng)改變了,這樣會(huì)引起一些嚴(yán)重的遷移問(wèn)題。
  App被本地化了嗎?測(cè)試員需要用不同的語(yǔ)言測(cè)試app。記得在不同的網(wǎng)絡(luò)載體上以不同的網(wǎng)速進(jìn)行測(cè)試。確定該app在GPRS, EDGE, UMTS, LTE和WiFi環(huán)境下都能運(yùn)作。
  別忘了檢查網(wǎng)絡(luò)連接不好或完全掉了時(shí)app會(huì)怎么反應(yīng)。飛行模式下使用該app看看如果一個(gè)請(qǐng)求失敗了會(huì)發(fā)生什么。將測(cè)試設(shè)備連接到電腦上并檢查開(kāi)發(fā)日志文件有沒(méi)有例外、警告或其他奇怪的異常之處。這些只是移動(dòng)測(cè)試員和開(kāi)發(fā)員開(kāi)發(fā)和測(cè)試一個(gè)app時(shí)應(yīng)該考慮的非功能需求中的一部分。每方面都檢查到位是絕不可能的,因此整體團(tuán)隊(duì)?wèi)?yīng)該支持QA成員盡量覆蓋更多方面以防用戶(hù)得到不好的體驗(yàn)。 

  總結(jié):
  ▪▪做實(shí)用性測(cè)試。
  ▪▪比較app已推出版本和新版本的性能。
  ▪▪檢查電話,短信,彩信或微博或進(jìn)來(lái)時(shí)app的反應(yīng)。
  ▪▪檢查測(cè)試設(shè)備的電量。
  ▪▪測(cè)試app的內(nèi)存使用情況。
  ▪▪安裝并刪除app。
  ▪▪測(cè)試從舊版本升級(jí)到新版本的過(guò)程。
  ▪▪檢查語(yǔ)言的轉(zhuǎn)換。
  ▪▪在不同的載體和網(wǎng)絡(luò)連接,如GPRS,WiFi, or LTE,環(huán)境中使用app。
  ▪▪檢查日志文件的錯(cuò)誤或例外。

上一頁(yè)123下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd