移動(dòng)端App測試實(shí)用指南

2 評論 11488 瀏覽 44 收藏 24 分鐘

譯者注:本文從測試人員的角度出發(fā),提出了100多個(gè)在測試移動(dòng)App過程中需要考慮的問題。不管你是測試人員、開發(fā)、產(chǎn)品經(jīng)理或是交互設(shè)計(jì)師,在進(jìn)行移動(dòng)App開發(fā)時(shí),這些問題都很有參考價(jià)值。我和Queen合力譯出此文,分享給大家,希望有所幫助和啟發(fā)。

?英文原文:?http://mobile.smashingmagazine.com/2012/10/22/a-guide-to-mobile-app-testing/

-----------------------------------

?測試人員常被看作bug尋找者,但你曾想過他們實(shí)際是如何開展測試的嗎?你是否好奇他們究竟都做些什么,以及他們?nèi)绾卧谝粋€(gè)典型的技術(shù)項(xiàng)目中體現(xiàn)價(jià)值?

?作者將帶你經(jīng)歷測試人員的思維過程,探討他們測試移動(dòng)app時(shí)的各種考慮。本文的目的在于揭示測試人員的這一思維過程,并展示他們通常所考慮內(nèi)容的廣度和深度。

測試人員需要詢問問題

?測試人員的核心能力在于提出有挑戰(zhàn)性的相關(guān)問題。如果你能將調(diào)查、詢問技巧和技術(shù)、產(chǎn)品的知識結(jié)合起來,漸漸地,你也會(huì)成為一個(gè)好的測試人員。

?比如,測試人員可能會(huì)問:

?· 這個(gè)App應(yīng)該在什么平臺上使用?

?· 這個(gè)App到底是干什么的?

?· 如果我這樣做,會(huì)發(fā)生什么情況?

諸如此類。

?測試人員能從各種場景中發(fā)現(xiàn)問題,它們可能來自對話、設(shè)計(jì)、文檔、用戶反饋或者是產(chǎn)品本身。這些可能性太多了……因此,讓我們一探究竟吧!

從哪里開始測試

理想情況下,測試人員應(yīng)該掌握所測產(chǎn)品的所有最新細(xì)節(jié)資料。但事實(shí)上這很少見,因此,像其他人一樣,測試人員只能將就使用手上有限的資料。但這不是不能測試的借口!測試人員其實(shí)是可以從內(nèi)部和外部多種不同的來源處收集信息的。

這個(gè)階段,測試人員可以問這些問題:

·? 有哪些信息:規(guī)格?項(xiàng)目會(huì)議?用戶文檔?知識淵博的團(tuán)隊(duì)成員?有支持論壇或者是公司在線論壇提供幫助?有現(xiàn)存Bug的記錄嗎?

· 該應(yīng)用是在什么系統(tǒng)、平臺和設(shè)備上進(jìn)行運(yùn)作和測試?

· 該應(yīng)用是處理什么類型的數(shù)據(jù)(比如個(gè)人信息、信用卡等等)?

· 該應(yīng)用有整合外部應(yīng)用(比如API和數(shù)據(jù)來源)嗎?

· 該應(yīng)用需要用到特定的移動(dòng)端網(wǎng)頁嗎?

· 現(xiàn)有消費(fèi)者如何評價(jià)這個(gè)產(chǎn)品?

· 有多少時(shí)間可用于測試?

· 測試的優(yōu)先級和風(fēng)險(xiǎn)是什么?

· 哪些用戶使用起來不愉快,為什么?

· 如何發(fā)布和更新?

基于以上收集的信息,測試人員可以制定測試計(jì)劃了。通常預(yù)算決定測試方法,一天測完,一個(gè)星期或一個(gè)月測完的方法肯定不同。當(dāng)你逐漸熟悉團(tuán)隊(duì)、工作流程以及這類問題的解決方式時(shí),你就更容易預(yù)測結(jié)果了。

案例:Facebook App的社會(huì)評論

當(dāng)作為一名測試人員收集信息時(shí),我喜歡選用Facebook App作為案例,因?yàn)橛脩舻谋г沟教幎际?。以下僅僅展示了部分遇到難題的用戶在iTunes App Store中發(fā)表的評論,網(wǎng)絡(luò)上還有很多。

iPhone上的Facebook App有很多負(fù)面的評論

如果我接受挑戰(zhàn)去測試Facebook這個(gè)App,我肯定會(huì)考慮這些反饋,否則就是傻子。

測試人員的創(chuàng)造力

你可能知道這個(gè)App原本想做的事,但是它究竟可以做什么事呢?用戶實(shí)際上是如何使用它的?測試人員擅長作為旁觀者來思考,嘗試不同的事物,以及不斷地詢問“如果……會(huì)怎么樣”和“為什么”的問題。

比如,移動(dòng)端的測試人員常常以不同的用戶角色進(jìn)行測試——當(dāng)然有點(diǎn)夸張,但是,這種把自己當(dāng)成不同用戶進(jìn)行思考、分析和設(shè)想的能力對測試是備受啟發(fā)的。

測試人員可能會(huì)設(shè)想自己是以下用戶:

· 毫無經(jīng)驗(yàn);

· 很有經(jīng)驗(yàn);

· 愛好者;

· 黑客;

· 競爭對手。

當(dāng)然還有更多可選的角色,這主要取決于你們所開發(fā)的產(chǎn)品是什么。其實(shí)除了角色特點(diǎn)外,其操作行為和工作流程也很重要。人們使用產(chǎn)品方式常常很奇怪,比如:

· 在不應(yīng)該返回的時(shí)候返回了;

· 不耐心而且多次敲按鍵;

· 輸入錯(cuò)誤的數(shù)據(jù);

· 不理解該怎么做;

· 可能沒有按要求進(jìn)行設(shè)置;

· 可能會(huì)自以為是地認(rèn)為自己知道該怎做什么(比如通常不閱讀說明)。

測試人員遇到這些問題時(shí),也常常發(fā)現(xiàn)意料之外的Bug。有時(shí)候,這些Bug微不足道,但是更深入的調(diào)查就會(huì)發(fā)現(xiàn)更嚴(yán)重的問題

很多問題是可以被預(yù)先確定和測試的。測試移動(dòng)端App時(shí),以下的問題并不都有關(guān),但是也可以嘗試問問:

· 是否按照所說的來做呢?

· 是按設(shè)計(jì)完成任務(wù)的嗎?

· 不是按設(shè)計(jì)完成任務(wù)的嗎?

· 如果處于一直被使用或者負(fù)荷情況下,狀況會(huì)怎么樣?會(huì)反應(yīng)遲鈍嗎?會(huì)崩潰嗎?會(huì)更新嗎?有反饋嗎?

· 崩潰報(bào)告會(huì)反饋到App嗎?

· 用戶可能有哪些創(chuàng)造性的、邏輯性的或是消極的導(dǎo)航方式?用戶相信你的品牌嗎?

· 用戶的數(shù)據(jù)安全如何?

· 有可能被中斷或是被破解嗎?

· 運(yùn)行到極限時(shí)會(huì)發(fā)生什么狀況?

· 會(huì)要求打開相關(guān)服務(wù)嗎(如GPS、Wi-Fi)?如果用戶打開會(huì)怎樣?沒打開又會(huì)怎樣?

· 將用戶重新引向哪兒?去網(wǎng)頁?還是從網(wǎng)頁到App?這會(huì)導(dǎo)致問題出現(xiàn)嗎?

· 溝通過程和市場反饋是否符合該App的功能、設(shè)計(jì)和內(nèi)容?

· 登錄流程是怎樣的?能在App上直接登錄還是要去網(wǎng)頁端?

· 登錄是否整合了其他服務(wù),比如用Facebook和Twitter帳號登錄?

案例:Run Keeper’s gy Update

RunKeeper,是一款能跟蹤你健身活動(dòng)的App,最新發(fā)布的版本里有個(gè)“目標(biāo)設(shè)置”的功能,對此我很感興趣去體驗(yàn)一下,一部分從測試人員的角度來看,更多的是作為一個(gè)真心喜歡產(chǎn)品的用戶來體驗(yàn)。但我發(fā)現(xiàn)了一些問題:

1.???默認(rèn)單位是英鎊,我卻想要把公斤作為重量單位;

2.???英鎊和公斤間的切換根本不好用;

3.???當(dāng)設(shè)定目標(biāo)后,會(huì)導(dǎo)致展示錯(cuò)誤的數(shù)據(jù)和圖表,這讓我很迷惑;

4.???由于第3條,我想刪除目標(biāo),但卻根本找不到刪除的地方;

5.???為了解決這一問題,我不得不改變的個(gè)人體重的值,直到?“目標(biāo)設(shè)置“范圍之內(nèi),這樣目標(biāo)達(dá)到了,就能重新設(shè)定目標(biāo)了;

6.???我會(huì)再次嘗試添加目標(biāo);

正因?yàn)橐陨弦苫?,我花了更長的時(shí)間把玩它,看能不能找到其他的問題;

以下是一些發(fā)現(xiàn)問題的屏幕截圖:

該App的最新版本包含了一個(gè)新的“目標(biāo)”部分。設(shè)置日期的時(shí)候,我發(fā)現(xiàn)開始和結(jié)束的日期都可以從公元1年開始,另外,為什么有兩個(gè)1年可選(譯者注:年份那列從上往下應(yīng)該顯示為“1、2、3”)?

另一個(gè)Bug,是“當(dāng)前體重”部分的一個(gè)拼寫錯(cuò)誤,當(dāng)清空數(shù)據(jù)時(shí)會(huì)出現(xiàn)拼寫錯(cuò)誤的“Enter“(應(yīng)用中用的是Etner),這只是一個(gè)小Bug,但是看上去非常不專業(yè)。

發(fā)現(xiàn)問題沒有捷徑,你只能反復(fù)的慢慢的試用。每個(gè)App及其團(tuán)隊(duì)都會(huì)面臨很多不同的挑戰(zhàn)。但是,測試人員的典型的特點(diǎn)就是:超越極限,做一些非常規(guī)的、可以改變周圍事物的事情,保持長時(shí)間的測試(測試幾天、幾個(gè)星期甚至幾月,而不是幾分鐘就測完),即使明明知道這些事情是不可能發(fā)生的。這些也正是可以找到和引出的場景所在。

哪兒有所有的數(shù)據(jù)?

測試人員喜歡從數(shù)據(jù)上找問題,這讓開發(fā)人員有時(shí)候很郁悶。事實(shí)上,用戶或者是軟件開發(fā)人員在信息流中確實(shí)太容易迷惑了,因?yàn)榭赡軙?huì)出現(xiàn)很多錯(cuò)誤,所以基于數(shù)據(jù)和云的服務(wù)更為重要

也許你可以嘗試在以下場景中檢查出問題:

· 移動(dòng)設(shè)備數(shù)據(jù)已滿;

· 測試人員移除了所有的數(shù)據(jù);

· 測試人員刪除了App,那數(shù)據(jù)怎么辦?

· 測試人員刪除并重裝了App,數(shù)據(jù)怎么辦?

· 過多或者過少的內(nèi)容導(dǎo)致設(shè)計(jì)和布局的改變;

· 在不同的時(shí)間段和時(shí)區(qū)使用;

· 數(shù)據(jù)不同步;

· 同步被中斷;

· 數(shù)據(jù)更新影響其他的服務(wù)(比如網(wǎng)頁和云端服務(wù));

· 快速處理數(shù)據(jù)或是處理大量的數(shù)據(jù);

· 使用無效的數(shù)據(jù)

案例:Soup.me的錯(cuò)誤

我試用過的Soup.me,?是一個(gè)可以通過地圖和顏色將個(gè)人Instagram?中的照片進(jìn)行分類的網(wǎng)頁服務(wù),但是我卻沒用多久。當(dāng)注冊時(shí),它提示我Instagram上的照片不夠多,然而我的賬號中明明有500多張照片。我并不清楚問題出在哪兒,也許是數(shù)據(jù)問題,也許是表現(xiàn)層的問題,也有可能是該App出錯(cuò)提示的問題。

另一個(gè)案例:Quicklytics

Quickytics是一個(gè)iPad上的網(wǎng)頁分析應(yīng)用。在使用過程中,盡管我已經(jīng)從Google Analytics中刪除了網(wǎng)站配置,但它仍然存在。這里有一些問題:

· 我已經(jīng)刪除了網(wǎng)站配置,為什么還是有這些信息?
· 左邊模塊沒有解釋為什么“該操作無法完成”,那么是不是可以改進(jìn)以避免迷惑用戶呢?

測試人員也很喜歡測試極限數(shù)據(jù)下的情況。他們常常是作為典型用戶來了解這個(gè)App,所以極限下的測試并不會(huì)花很長的時(shí)間。數(shù)據(jù)是混亂的,所以測試人員要考慮到軟件的用戶類型,以及在不同的數(shù)據(jù)場景下如何進(jìn)行測試。
比如,他們可能嘗試以下場景:

· 測試用戶可輸入的極限值;

· 用重復(fù)的數(shù)據(jù)進(jìn)行測試;

· 在全新無數(shù)據(jù)的手機(jī)里測試;

· 在老手機(jī)上測試;

· 預(yù)先安裝不同類型的數(shù)據(jù);

· 考慮聚集大家的資源來進(jìn)行測試;

· 讓一些測試自動(dòng)化;

· 用一些超出預(yù)期的數(shù)據(jù)去測試,看它是怎么處理的;

· 分析信息和數(shù)據(jù)是怎么影響用戶體驗(yàn)的;

· 不管用戶看到的是否正確,都要一直問問題。

創(chuàng)建出錯(cuò)提醒和消息

這里,我不是從設(shè)計(jì)師的角度來要談?wù)摵玫腻e(cuò)誤消息的設(shè)計(jì),而是想從用戶或是測試者的角度來看這個(gè)問題。出錯(cuò)提醒和消息是測試人員很容易發(fā)現(xiàn)問題的地方。

關(guān)于錯(cuò)誤信息要問的問題:

請考慮以下問題:

· 出錯(cuò)提醒的UI設(shè)計(jì)可以接受嗎?

· 錯(cuò)誤信息內(nèi)容可以理解嗎?

· 錯(cuò)誤信息是否保持一致?

· 這些錯(cuò)誤信息有幫助嗎?

· 錯(cuò)誤信息內(nèi)容是否合適?

· 這些錯(cuò)誤是否符合慣例和標(biāo)準(zhǔn)?

· 這些錯(cuò)誤信息本身是否安全?

· 運(yùn)行記錄和崩潰是否能被用戶和開發(fā)者獲得?

· 是否所有的錯(cuò)誤都被測試過?

· 用戶處理完錯(cuò)誤信息后,將處于什么狀態(tài)

· 是否在用戶應(yīng)該接受錯(cuò)誤信息時(shí),卻沒有錯(cuò)誤信息彈出?

錯(cuò)誤信息會(huì)影響用戶體驗(yàn)。然而,不好或無用的出錯(cuò)提醒無處不在。雖最理想的狀態(tài)是避免用戶遭遇錯(cuò)誤信息,但這幾乎不可能。出錯(cuò)情況的設(shè)計(jì)、實(shí)現(xiàn)和確認(rèn)可能與預(yù)期相反,但是,測試者往往善于發(fā)現(xiàn)意料外的Bug,并能仔細(xì)考究是否改進(jìn)它們。?

錯(cuò)誤信息的案例

我非常喜歡舉iPhone上Facebook App這個(gè)例子。這些冗長又晦澀的文字不僅僅試圖涵蓋了許多不同的場景,而且還可能無端地丟失。

 

可能如下的消息提示框可以列入反例“名人堂”了?

看看這款iPad上的The Guardian應(yīng)用,如果我不想“重試”,該怎么辦呢?

特定平臺上的注意事項(xiàng)

對于任何項(xiàng)目團(tuán)隊(duì)成員來說,了解相關(guān)平臺的業(yè)務(wù)、技術(shù)和設(shè)計(jì)上的限制,都是至關(guān)重要的。

那么,移動(dòng)端App的測試人員應(yīng)該找出哪些平臺相關(guān)的問題呢?

· 是否遵照了這個(gè)特定平臺的設(shè)計(jì)規(guī)范?

· 與競爭對手以及行業(yè)內(nèi)的設(shè)計(jì)相比如何?

· 是否適應(yīng)外圍設(shè)備?

· 觸摸屏支持手勢嗎,如:輕拍、雙擊、長按、拖動(dòng)、搖動(dòng)、夾捏、輕拂、滑動(dòng)?

· 這個(gè)App可以被理解嗎?

· 當(dāng)轉(zhuǎn)動(dòng)設(shè)備的方向時(shí),有什么變化?

· 可以使用地圖和GPS嗎?

· 有用戶指南嗎?

· 電子郵件的工作流程友好嗎?

· 通過網(wǎng)絡(luò)分享時(shí),它運(yùn)行得流暢嗎?是否整合了其他社交應(yīng)用或網(wǎng)站?

· 當(dāng)用戶正在進(jìn)行多任務(wù)工作,并在不同App間切換的時(shí)候,它還運(yùn)行正常嗎?

· 當(dāng)用戶更新它時(shí),它是否會(huì)顯示時(shí)間進(jìn)度?

· 默認(rèn)設(shè)置如何?有經(jīng)過調(diào)整嗎?

· 使用音效會(huì)有不同嗎?

案例:ChimpStats

ChimpStats是iPad上一個(gè)查看郵件廣告詳情的應(yīng)用。我第一次使用這個(gè)應(yīng)用是處于橫屏模式。當(dāng)我需要輸入API密碼的時(shí)候,我被困住了。我根本不能在水平模式中輸入API密碼,直到切換成豎屏模式,才輸入成功。

連接和中斷的問題當(dāng)連接斷斷續(xù)續(xù)或是意外中斷時(shí),很多有趣的事情就可能發(fā)生了。

你是否嘗試過在以下場景中使用App:

· 走動(dòng)環(huán)境下?

· Wi-Fi連接下?

· 沒有Wi-Fi的情況下?

· 3G模式下?

· 間歇性地連接?

· 設(shè)置為飛行模式?

· 一個(gè)電話打進(jìn)來時(shí)?

· 接收到一條信息時(shí)?

· 接收到一個(gè)提醒通知時(shí)?

· 在電量很低甚至自動(dòng)關(guān)機(jī)時(shí)?

· 被強(qiáng)制更新時(shí)?

· 收到一條語音留言時(shí)?

這類測試最容易發(fā)現(xiàn)錯(cuò)誤和Bug。我強(qiáng)烈建議你在這些情況下進(jìn)行測試(不僅僅只是開機(jī)、確認(rèn)它可以正常工作,還要嘗試用戶使用的整個(gè)流程,并在特定的時(shí)間間歇內(nèi)強(qiáng)制連接和中斷)。

· 這個(gè)App提供了足夠多的反饋嗎?

· 數(shù)據(jù)傳輸為用戶所知嗎?

· 它會(huì)慢慢停止,然后崩潰嗎?

· 開啟時(shí)會(huì)發(fā)生什么?

· 任務(wù)完成中會(huì)發(fā)生什么?

· 是否可能丟失未保存的操作?

· 你可以忽視通知提醒嗎?忽視后會(huì)發(fā)生什么?

· 你可以對通知提醒做出響應(yīng)嗎?響應(yīng)后會(huì)發(fā)生什么?

· 對某些問題,使用錯(cuò)誤信息是否恰當(dāng)?

· 當(dāng)?shù)卿涍^期或超時(shí)會(huì)發(fā)生什么?

App的維護(hù)

想要加快整個(gè)測試的過程很簡單,只需測試一次就一勞永逸了,對嗎?請三思。

此刻我遇到的一個(gè)問題是:?iPad上的一些App在更新后,再也不能下載了。對于一個(gè)用戶來說,這是非常令人沮喪的。

可能,這也是開發(fā)者控制不了的。誰知道呢?我只知道它對于用戶來講是不能用的。我也嘗試卸載App,然后重裝,但這個(gè)問題始終未能解決。我在網(wǎng)上大量的搜索,除了找到一些關(guān)于更新操作系統(tǒng)的建議外,沒有任何其他解決方式??赡?,下次有空時(shí)候,我還會(huì)再試試看。

關(guān)鍵問題在于:如果一個(gè)應(yīng)用只被測試過一次,且只有一次(或僅在很短的一段時(shí)間內(nèi)測試過),很多問題你都發(fā)現(xiàn)不了。一個(gè)App自身可能不會(huì)發(fā)現(xiàn)變化,但外界條件卻可以讓這些問題發(fā)生。

當(dāng)外界環(huán)境持續(xù)變化時(shí),App又會(huì)受到哪些影響呢?讓我們問問自己:

· 我可以下載這個(gè)App嗎?

· 我可以下載并安裝更新嗎?

· 更新之后還能使用嗎?

· 當(dāng)很多App處于等待更新狀態(tài)時(shí),我能更新它嗎?

· 系統(tǒng)更新后,它會(huì)發(fā)生什么?

· 系統(tǒng)未更新,它又會(huì)發(fā)生什么?

· 它會(huì)通過iTunes自動(dòng)同步下載到其他設(shè)備嗎?

· 它自動(dòng)執(zhí)行任務(wù)或測試有意義嗎?

· 它會(huì)連接到網(wǎng)絡(luò)服務(wù)嗎?這會(huì)帶來什么不同?

移動(dòng)端的App每一個(gè)版本發(fā)布后,最好都去測試一下。每次發(fā)布新版本時(shí),先定義最高優(yōu)先級測試,確保其能在各種條件下進(jìn)行(主要是在主流的平臺上)。隨著時(shí)間的推移,測試可以變得自動(dòng)化。但請記住,自動(dòng)化不是靈丹妙藥,發(fā)現(xiàn)問題,只能通過人的眼睛。

案例:iPhone上的Analytics應(yīng)用

我使用這個(gè)App已經(jīng)兩年了,之前它一直沒有什么問題。但是現(xiàn)在,它卻顯示出我某些網(wǎng)站數(shù)據(jù)為零(但實(shí)際上,不止一個(gè)人一個(gè)月內(nèi)訪問過我的網(wǎng)站?。腁pp Store的評論來看,我不是唯一一個(gè)遇到這個(gè)問題的人。

另外一個(gè)案例是iPhone上的Twitter。更新并啟動(dòng)這個(gè)App后,我瞬間看到了如下這個(gè)提示語:“你的時(shí)間線數(shù)據(jù)顯示為空,你至今沒有關(guān)注任何人”?(但我是擁有5年經(jīng)驗(yàn)的活躍用戶)。我擔(dān)心了一會(huì)兒,慶幸的是,這個(gè)消息很快就消失,然后加載出歷史數(shù)據(jù)。

測試不是對錯(cuò)判斷

我們討論了移動(dòng)測試的一些方面,但這些前提是:帶著問題,才能發(fā)現(xiàn)問題。

通常,測試被認(rèn)為是完全合乎邏輯的、可計(jì)劃的和可預(yù)測的,過程包括:測試腳本和測試計(jì)劃、通過和失敗、正確和錯(cuò)誤的反饋。走完這些測試流程就離真相不遠(yuǎn)了。

當(dāng)然,如果必要,我們可以用上述方法進(jìn)行測試,但這并不是測試的目的。我們不僅是為了創(chuàng)建測試用例、發(fā)現(xiàn)Bug,更重要的是找到關(guān)鍵的問題,為項(xiàng)目組決定什么時(shí)候發(fā)布App提供有價(jià)值的信息。而找到那些關(guān)鍵問題的最好方法就是:提問!

轉(zhuǎn)自:CDC翻客

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 這篇應(yīng)該是老文章了,之前就在這里看過。不過沒關(guān)系,多看一遍挺好。

    來自廣東 回復(fù)
  2. 這篇應(yīng)該是老文章了,之前就在這里看過。不過沒關(guān)系,多看一遍挺好。

    來自菲律賓 回復(fù)