移動應用測試——打造完美應用的秘訣

作者: Matt McComb  來源: infoQ  發布時間: 2015-04-13 22:02  閱讀: 2275 次  推薦: 1   原文鏈接   [收藏]  

  英文原文:Mobile App Testing - The Secret to the Perfect App

  打造完美移動應用的關鍵

  上個季度,你剛剛花了大半個季度的時間,開發最新版本的移動應用程序。這是一項必須完成的工作。最近的主流移動操作系統升級讓你的應用具備了新的能力。你的競爭對手已經通過擴展他們的應用功能完成了資本運作。他們對最新版本應用功能的宣傳攻勢已經開始。在各個商業廣告里,你的應用看起來越來越像是石器時代的遺物。

  你的工作是要保證你們公司的應用不要掉隊。盡快發布最新版本的壓力是移動應用開發中最大的風險。這是為什么大多數應用一度星光閃耀,但用了幾次就被刪除的原因。它們總是出現各種問題。

  通過移動應用測試過程,你可以先于客戶捕捉到移動應用所有的功能或者性能方面的問題。即使你在上市時間上擊敗了你的競爭對手,如果應用上的一些問題被終端用戶發現時,你會希望你沒有這么快發布應用。它導致的后果就是一個憤怒的用戶和其背后龐大的社交網絡,以及被浪費的數以千計的工時和數百萬美元。

  這就是為什么移動應用測試成為移動應用開發過程中最關鍵的環節。他就像一顆跳動的心臟一樣。平常你不太會感知到它的存在,但是如果它不能正常工作,就會導致災難性的后果。

  新時代的應用

  桌面應用的測試矩陣相對來說比較簡單。桌上電腦的位置是固定的,屏幕尺寸是標準的,操作系統通常也都是相同的。移動化讓所有的規則都發生了變化。

  “互聯網可以讓公司‘一直處于營業中’。現在,移動互聯網則讓公司有機會能夠‘隨時隨地處于營業狀態。’為了支撐這個更加宏偉的口號,會增加許多額外的工作。”Expertitest的首席執行官Tal Barmeir如是說。

  移動應用的測試矩陣更加復雜。智能手機,以及其上所承載的所有應用不停地變換位置,本地網絡也隨之不停變化。從北京去往巴塞羅那的商務人士會帶著他的應用跨越大洲。如果某個應用在一些位置比在另外一些位置運行更加平滑,有可能會激怒它的用戶。為了讓應用在不同位置的性能相對平均,需要根據不同級別的帶寬、延遲、抖動以及其他隨著網絡情況變化的變量,進行全面的測試。

  從可穿戴設備到平板電腦,移動設備的形狀和大小各不相同。屏幕的分辨率也是各種各樣。這也為移動應用開發帶來新的挑戰。在桌面電腦上看起來不錯的應用在平板電腦上可能不那么好看,在智能手機上的表現甚至會更糟。即使是功能也需要在不同尺寸的設備上測試。如果按鈕太小用戶的手指無法點擊怎么辦?如果由于移動設備屏幕壓縮導致重要信息無法顯示怎么辦?由于用戶手中的移動設備數量龐大,這些問題變得更加復雜。據OpenSignal 2014年8月發布的報告指出,僅安卓一個品牌的設備就有大約20000種不同尺寸和分辨率。

  此外還有4種有著完全不同配置的主流操作系統。一個標準的移動應用測試的測試集可能是一個包含成千上萬的位置、設備型號、尺寸和操作系統組合的多維矩陣。

  時間緊,任務急

  這個復雜的矩陣就是為什么移動測試是整個開發過程中運行最緩慢的階段的原因。測試團隊必須要保證移動應用的每個功能在任何一個位置都能平滑并且正常的工作,不會出現停頓、崩潰或者過多的緩沖。完成這樣的工作需要大量的時間。

  然而,移動應用開發的性質導致測試團隊不可能有足夠的時間開展工作。競爭如此激烈,每天競爭對手都會在市場上發布最新版本的應用,其中包括你的應用尚未實現的功能,導致你的應用一直處于過時的邊緣。日積月累的技術優勢會讓你的應用慢慢消失直到被遺忘。

  這讓開發運維團隊陷入兩難的境地。如果測試充分,就會面臨晚于競爭對手發布產品的風險。這會誘導團隊抄近路,走捷徑。經理可以做出縮減測試流程的決策。他可以決定只測試原有測試范圍的一部分以加快應用進入市場的速度。

  這就好像俄羅斯輪盤賭。其中的風險在于,客戶成為“輔助QA團隊”,代替質量保證團隊捕捉應用程序中的缺陷。任何未經測試或修復的功能都可能是用戶刪除應用再不與應用開發公司打交道的原因。

  測試目的

  應用的兩個主要的組成部分就是功能和性能。應用的每個功能是否都能夠正常工作?在哪些場景下,以某種方式使用應用時,應用會崩潰,返回一條錯誤信息,或者未按照期望執行?性能即速度,而速度會逐漸成為新的功能。如果應用的某個區域運行過慢,在最終用戶的眼中這就是程序崩潰的表現。這會讓應用開發變得更具挑戰,因為如果應用無法正常工作或者由于開發者無法控制的因素變得遲緩,都會歸咎于開發人員。用戶會認為問題出在移動應用上,并會考慮刪除它。這可能并不公平,但這就是商業規則。

  測試人員需要測試每一個他們可以控制的場景,而且還要盡可能多地測試那些他們無法控制的場景。他們需要模擬地球上各種各樣的本地網絡情況,調節帶寬、延時和接收。測試人員必須保證應用在這些情況下應用都能夠有效運轉。除了要測試地點以外,還需要測試位置。如果用戶正在進入電梯或者穿過隧道會發生什么情況?

  不斷發展的測試環境

  移動測試的發展非常迅速,所有這些發展的目標只有一個,就是要縮短測試的時間周期。最初的測試類型是手工測試。用戶會將應用下載到移動設備并的的確確使用這個應用。測試人員會像用戶一樣通過用手輸入文字、點擊按鈕來執行每一個功能點的測試,這是一個非常緩慢的過程。測試人員同時只能在一部設備上進行測試。手工測試現在已經發展到可以將設備插到電腦上,然后用鼠標和鍵盤操控設備進行測試。

  下一個階段是測試自動化。通過自動化,可以同時在多個設備上進行測試。測試人員選擇一個設備創建測試腳本。用鍵盤和鼠標在反射到電腦上的移動設備屏幕開始執行一系列的測試步驟。完成錄制后,測試軟件會將測試步驟序列轉化成一個測試腳本。然后就可以在全部設備上運行該腳本并為每一次的測試結果生成報告。最好的測試工具能夠用所有主流的測試腳本語言生成腳本,而且能夠即時完成測試腳本語言的轉換。

  生成測試腳本后,我們可以編輯腳本來創建循環、條件語句或任何附加程序流程,以提升測試的價值。將測試腳本集成到持續集成(CI)服務器上,只需要少量的手工操作就可以將測試步驟整合到開發過程中。

  云測試幫你提前完成任務

  目前為止,在擴展測試覆蓋度和減少測試時間方面最大的飛躍就是云測試的引入。在云端設置一個移動測試工具,手工測試和自動化測試的生產力,都能夠大大提高,而且還能夠增進敏捷開發過程的影響。

  云測試的具體工作方式如下:首先將云測試工具加載到一臺服務器上。一系列連接著移動設備的機器會連接到這臺服務器上。通過這些機器,可以連接很多設備。通過這種方式可以創建一個內部移動設備實驗室,測試人員可以訪問任何連接著的設備。就是這么簡單。

  這讓每一個移動應用測試人員都可以訪問所有業務所需的設備。可能是20個設備,也可能是200個設備,甚至更多。這些擁有不同尺寸、版本和操作系統的設備,組成了一個大型的組合矩陣,可以覆蓋相當大的測試區域。

  對于敏捷開發來說,云測試非常完美。可以將測試人員和一些來自于開發運維部門各個部分的成員一同分配到某個指定的遠程項目中。通過云端訪問,測試人員可以對公司中所有的設備信手拈來。即使測試人員從一處辦公地點搬遷到令一處辦公地點時,所有這些移動測試裝備都隨時可以使用。

  云測試擴展了手工測試和自動化測試的規模。測試人員不再限于只能使用連接到他個人電腦上的設備,他們可以遠程連接到設備然后用桌面電腦上的設備屏幕映像來操作設備,通過這種方式,在云端的任意一臺設備上進行手工測試或自動化測試。如果需要在某臺指定設備上使用某個指定操作系統的指定版本進行測試,也不需要費盡心思在辦公室尋找測試設備或者購買新的測試設備。只需要查看一下云端的可用設備列表,然后訪問相應的設備即可。如果所需要的設備正在使用中,測試人員可以預定這臺設備,并且可以根據所需測試的周期,保留對設備的獨占訪問。

  通過壓縮總體測試時間,云測試大大縮減了移動應用發布到市場的周期。質量保證經理可以通過將項目和設備分派給在不同的公司辦公場所的測試人員,管理移動實驗室中的所有設備。他們可以將一個任務分派給香港的測試人員。換班時,他們可以將該項目的后續工作分派給位于加利福尼亞的團隊。再之后,剩余的工作將會安排給倫敦的團隊。跨越不同的時區,測試團隊可以創造一個永不停歇的測試流程,來自不同時區的測試人員將持續不斷地進行應用測試,直到應用發布到市場上為止。

  擁有適當的移動云測試工具的關鍵是安全。內部設備實驗室應該在公司的防火墻保護之下,并且點與之間的信息傳輸也應該處于公司的VPN環境中。

  破冰之錘

  利用合適的測試工具集,企業可以全面并有效地進行移動應用測試,這會大大降低由于資源不足而縮減測試范圍的壓力。如果移動應用的功能和性能有了保障,在與競爭對手的對抗中,你就已經成功了一半。測試也許不是移動開發過程中最具魅力的部分,但是好的測試策略所帶來的成效卻著實令人著迷。高質量的移動測試計劃是移動化成功的隱形財富。

  Experitest的SeeTest測試套件可以滿足目前移動應用所有必要的測試需求。

  • SeeTest Manual是用鼠標和鍵盤進行手工測試的產品。該產品是免費的,隨時可以下載并立即開始測試。
  • SeeTest Automation通過讓用戶創建腳本并在多臺設備上同時進行測試,可以加速測試的進程。這些腳本可以被轉換成任何一種主流的測試語言,而且還可以將其整合到持續集成過程中。
  • SeeTest Network Virtualization可以模擬任何本地網絡,其中包括一些特殊的場景設計,例如用戶進入電梯時或者火車通過隧道時。
  • SeeTest Cloud可以利用上述這些工具在所有連接到個人電腦或者內部設備實驗室的移動設備上進行測試。所有的測試工作都在公司的防火墻內部完成,保證安全性。

  從這本移動銀行測試的白皮書中,你可以看到一個關于大型企業如何部署SeeTest產品套件的案例研究(該案例研究位于第29頁)。

  所有的SeeTest產品都可以通過getDeviceLog命令捕捉設備日志。如果只想要捕捉特定部分的日志,可以用SeeTest命令清空定制的事件跟蹤日志。如果想要獲取SeeTest應用的日志或者測試工具正在設備上跟蹤的日志,可以用getLog命令。

  SeeTest還可以用于CPU、內存和電池使用情況的監控。利用getMonitors命令可以通過測試了解應用程序對設備的電池和內存的影響程度。

  移動化是一個新興的產業,帶給我們前所未見的機遇和挑戰。出色的工具能夠快速適應變化的環境并且可以讓你在這個快速擴張的市場中時刻準備好下一次飛躍。

1
0
 
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()