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

 

  一提到軟件測試,測試員基本想到的是去檢查文件,功能,API,性能并確定軟件是否安全,以及關(guān)于軟件特定部分的其他事項(xiàng)。而對于移動(dòng)測試,測試員不得不基于用戶移動(dòng)使用模式考慮移動(dòng)相關(guān)的功能。
  本文是基于我的工作經(jīng)驗(yàn)而寫的。作為一名敏捷軟件開發(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)測試專家交流的過程中,我深刻了解了移動(dòng)測試工作的困難。漸漸地,我明確了什么是幫助改進(jìn)同事們和我的測試工作并為用戶提供更高質(zhì)量app的移動(dòng)佳做法。

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

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

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

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

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