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