【測試基礎】App測試要點總結

測試工做過程當中思惟過程:
測試人員常被看做Bug尋找者,程序的破壞者。android


一、好的測試工程師所具有的能力:ios

  • 細心的觀察能力
  • 有效的提問能力
  • 產品的業務能力
  • 好奇心

二、測試人員須要詢問問題:
測試人員的核心能力在於提出有挑戰性的相關問題。若是你能將調查、詢問技巧和技術、產品的知識結合起來,漸漸地,你也會成爲一個好的測試人員。數據庫

好比,測試人員可能會問:緩存

  • 這個App應該在什麼平臺上使用?
  • 這個App究竟是幹什麼的?
  • 若是我這樣作,會發生什麼狀況?

諸如此類。安全

 

三、從哪裏開始測試
理想狀況下,測試人員應該掌握所測產品的全部最新細節資料。但事實上這不多見,所以,像其餘人同樣,測試人員只能將就使用手上有限的資料。但這不是不能測試的藉口!測試人員實際上是能夠從內部和外部多種不一樣的來源處收集信息的。
這個階段,測試人員能夠問這些問題:服務器

  • 有哪些信息:規格?項目會議?用戶文檔?知識淵博的團隊成員?現有的缺陷記錄?
  • 該應用是在什麼系統、平臺和設備上進行運做和測試?
  • 該應用有整合外部應用(好比API和數據來源)嗎?
  • 該應用須要用到特定的移動端網頁嗎?
  • 有多少時間可用於測試?
  • 測試的優先級和風險是什麼?
  • 何時發佈?

基於以上收集的信息,測試人員能夠制定測試計劃了。一般預算決定測試方法,一天測完,一個星期或一個月測完的方法確定不一樣。當你逐漸熟悉團隊、工做流程以及這類問題的解決方式時,你就更容易預測結果了。微信

看成爲一名測試人員收集信息時,第一個信息來源用戶反饋網絡

 

四、測試人員的創造力
你可能知道這個App本來想作的事,可是它究竟能夠作什麼事呢?用戶其實是如何使用它的?測試人員擅長做爲旁觀者來思考,嘗試不一樣的事物,以及不斷地詢問「若是。。。會怎麼樣」和「爲何」的問題。
把本身當成不一樣用戶進行思考、分析和設想的能力對測試是備受啓發的。
測試人員可能會設想本身是如下用戶:session

  • 毫無經驗;
  • 頗有經驗;
  • 愛好者;
  • 黑客;
  • 競爭對手;

 

固然還有更多可選的角色,這主要取決於大家所開發的產品是什麼。其實除了角色特色外,其操做行爲和工做流程也很重要。app


人們使用產品方式經常很奇怪,好比:

  • 在不該該返回的時候返回了;
  • 不耐心並且屢次敲按鍵;
  • 輸入錯誤的數據;
  • 不理解該怎麼作;
  • 可能沒有按要求進行設置;
  • 可能會自覺得是地認爲本身知道該作什麼(好比一般不閱讀說明)。

 

測試人員遇到這些問題時,也經常發現意料以外的Bug。有時候,這些Bug微不足道,可是更深刻的調查就會發現更嚴重的問題。


不少問題是能夠被預先肯定和測試的。測試移動端App時,如下的問題並不都有關,可是也能夠嘗試問問:

  • 崩潰報告會反饋到App嗎?
  • 用戶的數據安全如何?
  • 會要求打開相關服務嗎(如GPS、Wi-Fi)?若是用戶打開會怎樣?沒打開又會怎樣?
  • 登陸流程是怎樣的?能在App上直接登陸仍是要去網頁端?
  • 登陸是否整合了其餘服務,微信,QQ
  • 哪兒有全部的數據?

 

測試人員喜歡從數據上找問題,這讓開發人員有時候很鬱悶。事實上,用戶或者是軟件開發人員在信息流中確實太容易迷惑了,由於可能會出現不少錯誤,因此基於數據和雲的服務更爲重要。


也許你能夠嘗試在如下場景中檢查出問題:

  • 移動設備數據已滿;
  • 測試人員移除了全部的數據;
  • 測試人員刪除了App,那數據怎麼辦?
  • 測試人員刪除並重裝了App,數據怎麼辦?
  • 數據不一樣步;
  • 同步被中斷;
  • 快速處理數據或是處理大量的數據;
  • 使用無效的數據;

 

測試人員也很喜歡測試極限數據下的狀況。他們經常是做爲典型用戶來了解這個App,因此極限下的測試並不會花很長的時間。數據是混亂的,因此測試人員要考慮到軟件的用戶類型,以及在不一樣的數據場景下如何進行測試。


好比,他們可能嘗試如下場景:

  • 測試用戶可輸入的極限值;
  • 用重複的數據進行測試;
  • 在全新無數據的手機裏測試;
  • 在老手機上測試;
  • 用一些超出預期的數據去測試,看它是怎麼處理的;
  • 分析信息和數據是怎麼影響用戶體驗的;

 

無論用戶看到的是否正確,都要一直問問題。
建立出錯提醒和消息


關於錯誤信息要問的問題請考慮如下問題:

  • 出錯提醒的UI設計一致嗎?
  • 錯誤信息內容能夠理解嗎?
  • 錯誤信息是否保持一致?
  • 這些錯誤信息有幫助嗎?
  • 錯誤信息內容是否合適?
  • 這些錯誤是否符合慣例和標準?
  • 這些錯誤信息自己是否安全?
  • 運行記錄和崩潰是否能被用戶和開發者得到?
  • 是否全部的錯誤都被測試過?
  • 用戶處理完錯誤信息後,將處於什麼狀態
  • 是否在用戶應該接受錯誤信息時,卻沒有錯誤信息彈出?


錯誤信息會影響用戶體驗。然而,很差或無用的出錯提醒無處不在。雖最理想的狀態是避免用戶遭遇錯誤信息,但這幾乎不可能。出錯狀況的設計、實現和確承認能與預期相反,可是,測試者每每善於發現意料外的Bug,並能仔細考究是否改進它們。


五、特定平臺上的注意事項
對於任何項目團隊成員來講,瞭解相關平臺的業務、技術和設計上的限制,都是相當重要的。

那麼,移動端App的測試人員應該找出哪些平臺相關的問題呢?

  • 是否遵守了這個特定平臺的設計規範?
  • 觸摸屏支持手勢嗎,如:輕拍、雙擊、長按、拖動、搖動、夾捏、輕拂、滑動?
  • 當轉動設備的方向時,有什麼變化?
  • 有用戶指南嗎?
  • 經過網絡分享時,它運行得流暢嗎?是否整合了其餘社交應用或網站?
  • 當用戶正在進行多任務工做,並在不一樣App間切換的時候,它還運行正常嗎?
  • 當用戶更新它時,它是否會顯示時間進度?
  • 默認設置如何?有通過調整嗎?

鏈接和中斷的問題當鏈接斷斷續續或是意外中斷時,不少有趣的事情就可能發生了。


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

  • 走動環境下?
  • Wi-Fi鏈接下?
  • 沒有Wi-Fi的狀況下?
  • 3G模式下?
  • 間歇性地鏈接?
  • 設置爲飛行模式?
  • 一個電話打進來時?
  • 接收到一條信息時?
  • 接收到一個提醒通知時?
  • 在電量很低甚至自動關機時?
  • 被強制更新時?
  • 收到一條語音留言時?

這類測試最容易發現錯誤和Bug。我強烈建議你在這些狀況下進行測試(不只僅只是開機、確認它能夠正常工做,還要嘗試用戶使用的整個流程,並在特定的時間間歇內強制鏈接和中斷)。


六、App的維護
想要加快整個測試的過程很簡單,只需測試一次就一勞永逸了,對嗎?請三思。

此刻我遇到的一個問題是:iPad上的一些App在更新後,不再能下載了。對於一個用戶來講,這是很是使人沮喪的。
可能,這也是開發者控制不了的。誰知道呢?我只知道它對於用戶來說是不能用的。我也嘗試卸載App,而後重裝,但這個問題始終未能解決。我在網上大量的搜索,除了找到一些關於更新操做系統的建議外,沒有任何其餘解決方式。可能,下次有空時候,我還會再試試看。
關鍵問題在於:若是一個應用只被測試過一次,且只有一次(或僅在很短的一段時間內測試過),不少問題你都發現不了。一個App自身可能不會發現變化,但外界條件卻可讓這些問題發生。


當外界環境持續變化時,App又會受到哪些影響呢?讓咱們問問本身:

  • 我能夠下載這個App嗎?
  • 我能夠下載並安裝更新嗎?
  • 更新以後還能使用嗎?
  • 系統更新後,它會發生什麼?
  • 系統未更新,它又會發生什麼?
  • 它會經過iTunes自動同步下載到其餘設備嗎?
  • 它自動執行任務或測試有意義嗎?
  • 它會鏈接到網絡服務嗎?這會帶來什麼不一樣?

移動端的App每個版本發佈後,最好都去測試一下。每次發佈新版本時,先定義最高優先級測試,確保其能在各類條件下進行(主要是在主流的平臺上)。隨着時間的推移,測試能夠變得自動化。但請記住,自動化不是靈丹妙藥,發現問題,只能經過人的眼睛。


七、測試不是對錯判斷
咱們討論了移動測試的一些方面,但這些前提是:帶着問題,才能發現問題。
一般,測試被認爲是徹底合乎邏輯的、可計劃的和可預測的,過程包括:測試腳本和測試計劃、經過和失敗、正確和錯誤的反饋。走完這些測試流程就離真相不遠了。
固然,若是必要,咱們能夠用上述方法進行測試,但這並非測試的目的。咱們不只是爲了建立測試用例、發現Bug,更重要的是找到關鍵的問題,爲項目組決定何時發佈App提供有價值的信息。而找到

那些關鍵問題的最好方法就是:提問!

(1)、登陸  ●登陸用戶名和密碼錯誤時,界面有提示信息  ●用戶主動退出登陸後,下次啓動APP時,應該進入登陸界面  ●對於支持自動登陸的APP,數據交換時 ,是否能自動登陸成功且數據庫操做無誤  ●密碼更改後,登陸時是否作到了有效數據的校驗  ●對於未登陸時一些頁面的操做,是否作了控制  ●切換帳號登陸,檢驗登陸的信息是否作到及時更新  ●對於多個端都進行操做時,確保數據庫操做無誤,且每一個端能夠及時看到數據的更新  ●對於一些軟件,支持一個帳號只容許登陸一臺機器,這時,須要檢查帳號登陸多個手機時,是否將原用戶剔除,且可以給出提示信息  ● APP切換到後臺時,再次切換到前臺的測試,如登陸時,有電話打進來(2)、離線  離線是應用程序在本地的客戶端會緩存一部分數據以功程序下次調用  ●對於一些程序,須要在登陸進來後,這時沒有網絡的狀況下能夠瀏覽本地數據  ●對於無網絡時,刷新獲取新數據時,不能獲取數據且能給出友好提示  ●切換到後臺,再次切換到前臺時,能夠正常查看  ●離線後又連上網,這時對數據有更新時,須要從服務器端獲取新數據來更新客戶端數據,且要更新本地緩存信息  ●對於一些界面的數據不提供離線查看,須要給出相應提示且界面更新後無任何數據(3)、經驗由於ios系統有不斷的更新,因此會出現這樣那樣兼容性的問題,其實咱們軟件中有一點,我記得很清楚,就是在送人彩票環節,贈送成功後會彈出一個舒適提示(問用戶是,否要提醒用戶領取),用戶一旦點了【好的】,會跳到一個短信提醒框,此時就會出錯,在iphone5上都沒事,一旦在4s上運行就有可能付出閃退。若是是同一個用戶,那麼她在android,ios上登陸後,記錄應該都是同樣的。一款手機軟件在android系統上測試要特別注意,android手機款式多,內存,分辨率不一,因此測試難過也比較大。咱們的軟件有一個問題一直走不去,就是在小手機上,若是應用開多,佔內存大了,就會出現閃退。有新的版本要上線前,必定要測舊的版本,不能由於新版本上線了,老版本就不能用了,用老版本的用戶仍是大有人在。有一次,我用新版本註冊的用戶去玩老版本,結果就有有錯過,固然這樣玩的人不多。若是一頁面裏有不少條記錄裏,要注意上下多滑動,我在測試過程當中,好幾回在上下滑動中又因爲數據出現錯誤,致使閃退,尤爲是android.到了某個頁面,忽然斷網了,而後你在不知情的狀況下,點擊某個按鈕想繼續往下走,此時,不能出現閃退的狀況,而要給出斷網提示。文本框校驗時採用等價類劃分法,邊界值法,錯誤推測法與場景法,至少這些方法的概念,本身網上去搜。不少手機app在打開後,通常用戶都不須要先註冊登陸,到了合適的地方,彈出合適的提示,很好友的讓用戶去登陸。固然有些頁面,並且有時沒有判斷,未登陸去點一些按鈕,有可能會閃退。未登陸與登陸顯示的頁面是徹底不同的,要仔細測。用戶登陸狀態過久,sessionId會過時,會出現「雖然是登陸狀態,系統會提示用戶沒有登陸。」外部軟件須要更新致使自家軟件閃退。我公司是一款博彩類軟件,用戶須要經過支付寶或財付通支付,有一次在用支付快捷支付時,提示我支付快捷支付須要更新,我就點了更新,更新完成後,咱們的軟件就異常退出了。輸入數據,點某顆按鈕,會出現錯誤提示,有時無論這個提示,繼續猛點這個按鈕,會出現出人意外的結果哦。上線前必定要測一下軟件更新,我好幾回這裏沒測,結果捱了批。這真是叫作「晚節不保」。全部功能都測了n遍了,大膽放心的上了,但是沒有在測試環境測軟件的更新。結果上線後,用戶更新了就出大問題了,大大影響用戶量。

相關文章
相關標籤/搜索