27條自查Web應用缺陷的建議
譯文【51CTO.com快譯】無論您是為了個人用途、還是為了客戶需求、或是根據組織公司的任務,去開發與構建一個Web應用,安全、穩定且不“暗藏”bug都是必須具備的一些基本特征。毫不夸張地說,那些應用自帶的bug或缺陷,不但會破壞其可用性與用戶體驗,而且會影響到您作為開發人員的聲譽。在本文中,我們將逐條提供并討論一份測試要點的基本建議,幫助您在生產環境中盡量減少產品bug的出現。
移動兼容性測試
現如今,由于大多數人都經常使用移動設備來瀏覽與訪問各類網站或應用,因此為了擴大目標受眾的規模,您的產品有必要能夠無縫地兼容各種移動智能設備,并能做到實時響應。您可以從如下方面入手:
- 通過使用Google Analytics(譯者注:網站分析或網站流量跟蹤工具。請參見https://marketingplatform.google.com/about/analytics/)并進行搜索,建立一張可能運行到的移動平臺與設備列表。
- 當然,您也可以在電腦的瀏覽器中,使用移動設備的模擬器,來測試Web應用的運行效果。
- 鑒于模擬器可能會經常出現各種奇怪的錯誤,因此如果項目預算充沛的話,您還可以為自己的測試團隊提供一些,基于不同操作系統類型的移動設備,以便他們能夠在相對真實的環境內開展全面的測試。
- 特別需要注意的是:應用界面的顯示大小是否合適。不應出現需要用戶手動橫向滑動,才能看到超出屏幕之外的內容。并且要確保文字字體的可讀性、按鈕位置的友好可觸性、以及圖像與內容占比的合理性。
跨瀏覽器測試
眾所周知,現在已經不是IE一統瀏覽器“江湖”的時代了。幾乎每天都有瀏覽器的新秀從世界各個角落冒出來。不過,我們也時常能夠聽到諸如:某個Web應用雖然能夠完美地運行在Google Chrome上,卻在Opera、Safari、以及其他內核的瀏覽器上“跑”不起來的案例。
- 顯然,我們針對每一種瀏覽器開展兼容性測試是不可能的,因此我們需要針對的是那些主要瀏覽器,以及在那些采用了特殊內核的瀏覽器中,測試自己的應用運行效果。
- 根據DevOps的思想,您應該在開發的早期階段,就引入跨瀏覽器的兼容性測試工具。也就是說,一旦設計準備就緒,我們便可以立即啟動單元測試了。
- 當然,在整個開發階段完畢之后,請不要忘了執行各種事先設計好的測試用例。
輔助功能測試
有著軟件開發經驗的讀者一定知道:在啟用Web應用之前,W3C早就為我們制定和準備好了各類組織或個人必須遵守的一系列準則和標準。正如我們在Windows操作系統中經常能看到的輔助顯示功能那樣,W3C規定了:每個人(包括殘疾人)都享有訪問與使用目標應用的權力。因此,我們需要做好如下方面的測試工作:
- 如果您的Web應用想走國際化路線的話,不要忽視了針對是否符合Section 508(譯者注:美國勞工復健法的改進,強調電子信息技術要考慮到殘障人士的使用)、ADA(Americans with Disabilities Act)和其他法案準則的測試。
- 運行縮放測試,以確保在網站上的圖像、及字體在放大的情況下依然可讀。
- 執行屏幕閱讀器(screen reader)的場景測試,以確保視力不佳的人可以通過使用屏幕閱讀器來瀏覽頁面。
- 您的Web應用需要能夠支持用戶在僅使用鍵盤的情況下,順利地實現導航與互動操作。
- 應當在重要的流媒體內容中加入字幕,以確保聽障人士能夠通過觀看,來理解音頻與視頻所傳達的內容。
通用HTML和CSS檢查
- 通過使用W3C的標記驗證(Markup Validation,這是萬維網聯盟的官方驗證工具),檢查您的HTML或XHTML代碼是否存在任何語法錯誤。
- 您還可以使用諸如HTML Tidy和Google Webmaster等工具,來檢索代碼中各種重復的元標記(meta tags)、損壞的鏈接、缺少的標題、以及其他類型的錯誤。
- 使用由W3C所提供的CSS驗證服務(Validation Service),來查找CSS中的任何錯誤、以及違規之處。
- 在完成了代碼檢查之后,您可以“祭出”CSS Compressor之類的工具。它們能夠將CSS文件的整體代碼縮減到一行之中。這對于包含有數千行CSS的大頁面來說,可以有效地縮短加載的時間。
網站登錄的安全測試
如果您的網站涉及到了在線購物、銀行業務、以及任何需要對用戶數據進行保密的服務,那么安全測試是必不可少的。具體請參見如下方面:
- 請確保具有密碼輸入錯誤次數限制,以及在必要時鎖定用戶帳戶的安全機制。
- 確保在用戶登錄的環節中,能夠通過OTP(One-Time Password)驗證、以及驗證碼(CAPTCHA)的技術,防御攻擊者使用自動化登錄工具,對Web應用進行入侵。
- 檢查Cookie和緩存是否啟用了加密服務。
- 在用戶從網站中注銷、或是按下了后退按鈕之后,確保瀏覽器的會話能夠及時過期與失效。
應用程序的性能測試
除了可用性和安全性之外,您的Web應用還必須能經得起大流量、高負載的考驗。因此,為了避免在訪問量激增的情況下,Web應用不會出現崩潰的局面,您應當做好如下測試:
- 通過執行壓力測試,以了解網站及應用在高負載時的真實表現狀況。
- 通過模擬多個用戶的登錄會話、以及產生并發性的訪問請求,以確定應用能正常運行并提供服務。
- 采取抗壓(壓力)測試,找到Web應用的工作負載臨界點。
- 在低網速和高延遲的網絡環境中,計算并檢測應用的加載時間。
真實用戶的Beta測試
正所謂“是騾子是馬,拉出來溜溜”,我們在測試階段,就是將應用發布到平臺上,讓最終用戶進行真實環境的體驗與測試。其中值得注意的是:
- 由于用戶傾向于從他們的角度來發現目標應用的缺陷與漏洞,因此Beta測試是非常重要的。
- 測試團隊往往習慣于按照一系列的規則執行單元測試,而真實用戶則可能直接“開箱即用(out of the box)”,甚至采取“不按常理出牌”的使用操作方式,因此各種被忽略的問題更容易被他們所暴露出來。
總結
除了上述提到的測試要點之外,我們還需要通過文檔級別的測試,以檢查Web應用是否遵循了所有必需的設計規范、以及客戶所要求的業務邏輯。因此,您的Web應用只有“高分”通過了本文所提到的各種測試案例、并能協同開發人員修復了所有發現的bug,才能夠被順利地部署到生產環境之中,供各類用戶全面使用。
原文標題:27 Tips for Finding Bugs on Your Website ,作者:Arnab Roy
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】