Web應用程式完全測試指南

csdn發表於2013-12-02

  隨著Web技術和移動網際網路的發展,越來越多的應用被遷移到了雲端,這也使得使用者可以隨時隨地使用它們。目前大量的優質應用,逐漸提升了使用者的品味,也降低了使用者的容忍度,如果你的Web應用無法使使用者滿意,那麼很快就會有其他的應用來代替。

  對於開發者來說,建立良好的客戶口碑才是最有意義的事情。在完成了Web應用的設計和開發工作後,並不意味著你就可以直接釋出了,你還需要從各方面來對其進行測試,以便讓使用者在使用過程中,不會出現各種各樣的問題,比如效能、使用體驗、安全問題等等。

  那麼對於Web應用來說,該測試哪些方面,該如何測試呢?來看看作者 Abhimanyu Ghoshal給出的這些建議。

  一、首先應該測試什麼?

  當測試Web應用的時候,首先要明確你的應用要用來做什麼,比如幫助使用者編輯照片、傳送票據、聯絡朋友或跟蹤社交媒介等。你通常需要著眼於這四大領域:

  1.  功能性測試

  幾乎所有的使用者都期望自己所使用的Web應用功能準確、迅速、一致。這就意味著開發者必須精益求精,幫助使用者實現某種形式上的結果。下面是一些需要全面測試的常見的功能元素:

  • 表單:無論是反饋調查、建立任務計劃,還是訂閱新聞,都需要用到表單。你需要檢查提交操作是否正常,是否能夠提交連線並提交到你的資料中,所有欄位是否能夠接收輸入的內容。
  • 檔案操作和計算:這其中涉及影象和文件的上傳、編輯、計算功能和正確的輸出值。首先,要確保你能想象得到會有多少使用者會使用你的應用,並儘可能地針對他們進行調節。另外,要考慮一下如何使你的App更有效地計算並顯示出結果,給使用者提供一個更加流暢的使用者體驗。
  • 搜尋:如果你的應用允許使用者搜尋內容、文件或檔案,那麼就要保證你的搜尋引擎能夠索引這些資訊,並定期更新,以便能夠讓使用者實現快速查詢,並根據查詢條件快速顯示相關結果。
  • 媒體播放元件:測試音訊、視訊、動畫和互動媒體播放元件(如遊戲和圖形工具)的時候,這些元件應該像預期的功能效果一樣,在載入和執行的時候不能影響(暫停或減緩)其他應用的執行。
  • 指令碼和類庫:確保你的指令碼(比如影象顯示或Ajax頁面載入)在各種瀏覽器之間是相互相容的,因為不同的使用者可能會使用不同的瀏覽器訪問你的應用,同時你可以測量不同瀏覽器的載入時間來進行效能優化。如果你的指令碼只能和某些瀏覽器相互相容,那麼就要確保應用中的其他元件有更好的效能,這樣所有的使用者就能得到最好的應用體驗。

  最後,就是要全面檢查其他元件的功能,包括提示系統、使用者配置檔案和管理儀表板等。

  2.  使用者介面和可用性測試

  你的Web應用不但要像加滿油的機器一樣執行,還要能夠為所有的使用者提供一個高質量的前端體驗。為了達到這個目標,你還需要考慮你的使用者可能會遇到的所有的視覺和文字元素方面的問題,在Web應用釋出之前,儘可能地測試這些元素,以確保它們正確而有效地顯示。

  • 導航:主頁面上的導航連結以及返回主頁面的連結都應該明顯的突出出來,並指向正確的目標頁面。
  • 可訪問性:盡最大可能的確保你的Web應用易於操作、使用,哪怕是對那些有視力障礙或行為障礙的人來說,簡易的使用步驟是最受歡迎的。W3C有一篇文章 《Web Content Accessibility Guidelines》能夠幫助你很好的定義這一點,並指出瞭如何讓你的Web應用在廣大使用者群裡成為“使用者友好型”的應用。
  • 跨瀏覽器測試:使用者很有可能會從多種瀏覽器和作業系統中訪問你的站點,不要讓你的應用在不同的環境下無法顯示同樣的效果,所以你需要儘可能多地測試這些瀏覽器和作業系統組合,以確保你的Web應用能夠按照計劃執行,為更廣泛的使用者提供一致的體驗。
  • 錯誤訊息和警告資訊:在很多情況下,你的Web應用在某種程度上一定會崩潰,但這不是你的錯。你所要做的就是:當使用者遇到例如404頁或無法成功上傳資料的問題的時候,要確保應用程式中顯示的訊息是描述性的、對使用者來說對解決問題是很有幫助的。
  • 幫助和文件:並不是所有的使用者在使用你的Web應用時都能感覺很順暢,有些使用者在剛開始的幾次可能需要幫助;而其他人即使是很熟悉這款產品,也可能在使用該過程中會遇到一些問題。這時候你需要做的事是執行你的應用,檢查文件,確保在任何模組或頁面中都有渠道讓使用者快速獲得幫助資訊。
  • 佈局:測試你的Web應用以確保它能夠在儘可能多的瀏覽器和不同解析度的螢幕中正確、一致地顯示。

  你還可以繼續檢查一下所有的動畫和互動操作(例如拖放特性和模態視窗)、字型和字形(尤其是Web字型)。當然,還有前端效能(頁面渲染速度、圖片和指令碼載入時間)等。

  3.  安全性測試

  大多數Web應用都會從使用者那裡獲取並儲存資料,包括使用者的個人資訊、計費資訊和工作/個人檔案——這些資料都是使用者在信任你的應用安全性的基礎上才會輸入的,所以你的Web應用應該做到下面這幾點:

  • 對私人資料進行加密
  • 在授予訪問許可權之前堅持進行身份驗證,並對資料訪問進行限制
  • 確保資料完整性,尊重使用者的要求

  黑客可以在任何時間任何地方攻擊你的應用,但是,如果你能熟悉Web應用漏洞的種類以及黑客常用手段的話,那這也是一個很好的避免被攻擊的好方法。攻擊Web站點和應用的方法通常包括:

  • 跨站指令碼:當一個網站被以誘騙的方式接受了惡意程式碼,它就會向使用者傳播這個惡意程式碼。
  • SQL隱碼攻擊:如果黑客通過一個使用者輸入漏洞執行一段SQL命令,就可能導致使用者資料遭到損壞或被竊。這些情況通常發生的原因是:Web應用允許在SQL命令或系統命令中使用特殊元素。
  • DDoS(分散式拒絕服務)攻擊:當一個Web應用無法呈現給使用者的時候,通常它會向伺服器發出大量請求,會逐漸拖慢伺服器並導致最終無法響應。

  另外就是一定要對常見的、容易引起安全漏洞的程式設計錯誤進行測試,它們可能會讓你的Web應用存在潛在的危險。這些常見的程式設計錯誤包括:缺少認證檢查、使用硬編碼憑證、沒有加密敏感資料、沒有鎖定Web伺服器目錄訪問。

  除了對上面所述的內容進行測試以外,你還可以尋求正義的安全專家的幫助,或者是尋找一些專門針對安全測試的自動化工具。

  4.  載入測試

  當你的Web應用的使用者人數從10個增加到100個的時候,速度肯定是會慢下來的。另外,你還可能會發現,在某一天、某一月或者是某一個時刻,流量會劇增,這有可能是因為你的優惠政策吸引了病毒,或者是你的App出現在了某著名刊物上了,引來了眾多的使用者。

  在載入測試環節,需要測試你的應用和伺服器環境,以確保在不管有多少使用者登入的情況下產品都能夠順利執行。大多數高質量的Web主機都提供了實時的、大範圍的問題解決方案,所以在購買主機的時候一定要貨比三家。

  二、如何測試你的應用

  測試是構建Web專案不可分割的一部分,你需要通過一個系統化的方法來最大化有限時間和資源的使用。下面所列舉的就是測試一個典型的Web應用所涉及到的步驟。

  1. 設定目標

  在大多數情況下,測試是一個有時限的檢驗過程,尤其是當Web應用準備發行的時候,這也就是為什麼要考慮哪些功能需要優先測試。例如,如果你正在構建一個允許使用者建立線上商店的App,你可能會優先測試支付閘道器連線這一功能,之後才會測試文字對齊問題。

  目標優先不僅可以幫助你確保你的應用的主要功能完備,還可以讓你在正確的方向上為整個開發團隊制定清晰的計劃流程表。

  2. 定義流程和使用案例

  在開始測試Web應用之前,為你和你的團隊制定一個合理的流程非常重要。先收集所有可用的文件,和你的測試人員分享一下觀點。接下來,設想多個使用者在使用你的應用時可能會遇到的場景,比如應用在使用過程中崩潰了該怎麼辦。

  一定要設定一個bug跟蹤工具,測試人員可以用它來報告問題,開發人員和設計人員可以用它來識別和修復bug。

  3. 設定一個測試環境

  在測試你的Web應用之前,要將它部署在跟上線後的環境一致的伺服器上,這樣才能測試出各種真實使用情況下的問題。

  有些問題在本地伺服器上是測試不出來的。例如,在一個地圖Web應用上,地圖中大量的SVG影象可能需要很長時間的載入過程,如果移動使用者使用你的應用,會導致他陷入困境,無法獲知前進的路線。

  4. 真實的單元測試

  Flow專案(一個致力於線上任務管理和協作的應用)的QA專家Jeremy Petter表示:

在大多數的Web應用測試過程中,困難是難以想象的,有可能要花一個星期的時間進行測試。不過也有捷徑,那就是將整個App分解成可管理的幾個塊進行測試。
在Flow專案中我使用一個列表來標記每個使用者在應用中進行互動的位置,以及它的一般形式和功能。因為這是一個模組化列表,你可以新增或刪除一些專案,或者對在開發過程中發生變化的專案進行標註。

Web應用程式完全測試指南

  5. 驗證你的程式碼

  為了提供一個清潔、無錯的使用者體驗,你應該對程式碼進行驗證,並確保它是建立在Web標準基礎之上的。這樣做不僅能增加跨瀏覽器相容性,而且還能提升Web應用的效能。

  6. 載入測試和效能調優

  測試你的Web應用和它的執行環境是否能經得起巨大的流量和激增的頻寬需求,並尋找可能會導致App效能問題的瓶頸。同時,你也可以考慮使用一些網上服務來監控使用者流量、伺服器利用率和因程式碼引起的問題,對App進行一些相應的微調,以提高App的速度和效率。

  7. 安全性測試

  最後,測試你的Web應用以確保它能夠對抗得了黑客的惡意攻擊。從基本的應用可用性和正常執行時間開始進行測試,直到使用者資料的完整性測試結束為止。

  三、對於測試的兩個小建議

  測試過程中,首先要考慮把使用者放在第一位,在測試之前要徹底想清楚使用者會怎麼使用這個Web應用。設身處境的把自己放在使用者的角度上思考一下,這會對制定切合實際的開發設計場景很有幫助。

  Jeremy Petter對測試人員的建議是:

測試是注重細節的工作,需要高度集中注意力。而且最富有成效的測試過程發生在第一個小時或者是剛開始的時候,所以,在測試的時候最好是按照規定的時間開始/關閉專案,以便測試人員的注意力和效率達到最大化。

  原文: A comprehensive guide to testing your Web app

相關文章