測試人員的核心能力在於提出有挑戰性的相關問題。如果你能將調查、詢問技巧和技術、產品的知識結合起來,漸漸地,你也會成為乙個好的測試人員。
比如,測試人員可能會問:
· 如果我這樣做,會發生什麼情況?
諸如此類。
測試人員能從各種場景中發現問題,它們可能來自對話、設計、文件、使用者反饋或者是產品本身。
理想情況下,測試人員應該掌握所測產品的所有最新細節資料。但事實上這很少見,因此,像其他人一樣,測試人員只能將就使用手上有限的資料。但這不是不能測試的藉口!測試人員其實是可以從內部和外部多種不同的**處收集資訊的。
這個階段,測試人員可以問這些問題:
· 該應用是在什麼系統、平台和裝置上進行運作和測試?
· 該應用是處理什麼型別的資料(比如個人資訊、信用卡等等)?
· 該應用有整合外部應用(比如api和資料**)嗎?
· 該應用需要用到特定的移動端網頁嗎?
· 現有消費者如何評價這個產品?
· 有多少時間可用於測試?
· 測試的優先順序和風險是什麼?
· 哪些使用者使用起來不愉快,為什麼?
· 如何發布和更新?
移動端的測試人員常常以不同的使用者角色進行測試——當然有點誇張,但是,這種把自己當成不同使用者進行思考、分析和設想的能力對測試是備受啟發的。
測試人員可能會設想自己是以下使用者:
· 毫無經驗;
· 很有經驗;
· 愛好者;
· 黑客;
· 競爭對手。
· 在不應該返回的時候返回了;
· 不耐心而且多次敲按鍵;
· 輸入錯誤的資料;
· 不理解該怎麼做;
· 可能沒有按要求進行設定;
· 可能會自以為是地認為自己知道該怎做什麼(比如通常不閱讀說明)。
測試人員遇到這些問題時,也常常發現意料之外的bug。有時候,這些bug微不足道,但是更深入的調查就會發現更嚴重的問題。
· 是否按照所說的來做呢?
· 是按設計完成任務的嗎?
· 不是按設計完成任務的嗎?
· 如果處於一直被使用或者負荷情況下,狀況會怎麼樣?會反應遲鈍嗎?會崩潰嗎?會更新嗎?有反饋嗎?
· 使用者可能有哪些創造性的、邏輯性的或是消極的導航方式?使用者相信你的品牌嗎?
· 使用者的資料安全如何?
· 有可能被中斷或是被破解嗎?
· 執行到極限時會發生什麼狀況?
· 會要求開啟相關服務嗎(如gps、wi-fi)?如果使用者開啟會怎樣?沒開啟又會怎樣?
· 登入是否整合了其他服務,比如用facebook和twitter帳號登入?
測試人員喜歡從資料上找問題,這讓開發人員有時候很鬱悶。事實上,使用者或者是軟體開發人員在資訊流中確實太容易迷惑了,因為可能會出現很多錯誤,所以基於資料和雲的服務更為重要
也許你可以嘗試在以下場景中檢查出問題:
· 移動裝置資料已滿;
· 測試人員移除了所有的資料;
· 過多或者過少的內容導致設計和布局的改變;
· 在不同的時間段和時區使用;
· 資料不同步;
· 同步被中斷;
· 資料更新影響其他的服務(比如網頁和雲端服務);
· 快速處理資料或是處理大量的資料;
· 使用無效的資料;
比如,他們可能嘗試以下場景:
· 測試使用者可輸入的極限值;
· 用重複的資料進行測試;
· 在全新無資料的手機裡測試;
· 在老手機上測試;
· 預先安裝不同型別的資料;
· 考慮聚集大家的資源來進行測試;
· 讓一些測試自動化;
· 用一些超出預期的資料去測試,看它是怎麼處理的;
· 分析資訊和資料是怎麼影響使用者體驗的;
· 不管使用者看到的是否正確,都要一直問問題。
這裡,我不是從設計師的角度來要談論好的錯誤訊息的設計,而是想從使用者或是測試者的角度來看這個問題。出錯提醒和訊息是測試人員很容易發現問題的地方。
關於錯誤資訊要問的問題:
請考慮以下問題:
· 出錯提醒的ui設計可以接受嗎?
· 錯誤資訊內容可以理解嗎?
· 錯誤資訊是否保持一致?
· 這些錯誤資訊有幫助嗎?
· 錯誤資訊內容是否合適?
· 這些錯誤是否符合慣例和標準?
· 這些錯誤資訊本身是否安全?
· 執行記錄和崩潰是否能被使用者和開發者獲得?
· 是否所有的錯誤都被測試過?
· 使用者處理完錯誤資訊後,將處於什麼狀態
· 是否在使用者應該接受錯誤資訊時,卻沒有錯誤資訊彈出?
錯誤資訊會影響使用者體驗。然而,不好或無用的出錯提醒無處不在。雖最理想的狀態是避免使用者遭遇錯誤資訊,但這幾乎不可能。出錯情況的設計、實現和確認可能與預期相反,但是,測試者往往善於發現意料外的bug,並能仔細考究是否改進它們。
對於任何專案團隊成員來說,了解相關平台的業務、技術和設計上的限制,都是至關重要的。
· 是否遵照了這個特定平台的設計規範?
· 與競爭對手以及行業內的設計相比如何?
· 是否適應外圍裝置?
· 觸控螢幕支援手勢嗎,如:輕拍、雙擊、長按、拖動、搖動、夾捏、輕拂、滑動?
· 當轉動裝置的方向時,有什麼變化?
· 可以使用地圖和gps嗎?
· 有使用者指南嗎?
· 電子郵件的工作流程友好嗎?
· 通過網路分享時,它執行得流暢嗎?是否整合了其他社交應用或**?
· 當使用者更新它時,它是否會顯示時間進度?
· 預設設定如何?有經過調整嗎?
· 使用音效會有不同嗎?
連線和中斷的問題當連線斷斷續續或是意外中斷時,很多有趣的事情就可能發生了。
· 走動環境下?
· wi-fi連線下?
· 沒有wi-fi的情況下?
· 3g模式下?
· 間歇性地連線?
· 設定為飛行模式?
· 乙個**打進來時?
· 接收到一條資訊時?
· 接收到乙個提醒通知時?
· 在電量很低甚至自動關機時?
· 被強制更新時?
這類測試最容易發現錯誤和bug。我強烈建議你在這些情況下進行測試(不僅僅只是開機、確認它可以正常工作,還要嘗試使用者使用的整個流程,並在特定的時間間歇內強制連線和中斷)。
· 資料傳輸為使用者所知嗎?
· 它會慢慢停止,然後崩潰嗎?
· 開啟時會發生什麼?
· 任務完成中會發生什麼?
· 是否可能丟失未儲存的操作?
· 你可以忽視通知提醒嗎?忽視後會發生什麼?
· 你可以對通知提醒做出響應嗎?響應後會發生什麼?
· 對某些問題,使用錯誤資訊是否恰當?
· 當登入過期或超時會發生什麼?
· 更新之後還能使用嗎?
· 系統更新後,它會發生什麼?
· 系統未更新,它又會發生什麼?
· 它自動執行任務或測試有意義嗎?
· 它會連線到網路服務嗎?這會帶來什麼不同?
我們討論了移動測試的一些方面,但這些前提是:帶著問題,才能發現問題。
通常,測試被認為是完全合乎邏輯的、可計畫的和可**的,過程包括:測試指令碼和測試計畫、通過和失敗、正確和錯誤的反饋。走完這些測試流程就離真相不遠了。
做移動APP測試的思維過程
測試人員常被看作bug尋找者,但你曾想過他們實際是如何開展測試的嗎?你是否好奇他們究竟都做些什麼,以及他們如何在乙個典型的技術專案中體現價值?從 開始測試 理想情況下,測試人員應該掌握所測產品的所有最新細節資料。但事實上這很少見,因此,像其他人一樣,測試人員只能將就使用手上有限的資料。但這不是不能測...
Java物件導向的思維過程
面向過程 假設有乙個需求 求陣列中的最大值 定義乙個陣列,靜態初始化 定義乙個參照物 遍歷.給乙個需求,對需求分析,然後一步一步進行操作,最終得到某乙個結果,整個過程都是自己在完成.物件導向的思想概述 思想的特徵 1 物件導向更符合我們的生活中的行為思想習慣 2 物件導向將我們從執行者變成了指揮者,...
快速排序 Quick Sort 的 思維過程
實現公升序排序的 python def sort nums quit sort nums,0,len nums 1 return nums defquit sort nums,l,r if r l return 現在左右兩邊找到分割點,使得分割點左邊都比較小,分割點右邊都比較大 j partitio...