Web端應用測試主要障礙之一就是在不一樣的瀏覽器上「測試他們的網站/應用程序」,也稱爲「跨瀏覽器測試」或者「兼容性測試」。 瀏覽器和瀏覽器版本不少(Google Chrome,Mozilla Firefox,Internet Explorer,Microsoft Edge,Opera,Yandex等),能夠經過多種設備(經過臺式機,筆記本,智能手機,平板電腦等)訪問網站/應用。 )以及可能用於訪問網站的多種操做系統(Windows,MacOS,Linux,Android,iOS等)。java
要確保網站的UI/UX及其功能正常運行,而且在「瀏覽器+瀏覽器版本+操做系統+設備配置」的組合上沒有任何BUG,則將須要大量的開發,測試和維護工做。手動跨瀏覽器測試的主要痛點是,測試人員可能須要花費大量時間來測試不一樣的網頁,跨瀏覽器跨愈來愈多的「複雜」組合中的不一樣斷點測試Web應用程序。算法
測試人員要確保在不影響迭代週期的狀況下,保持測試流程覆蓋到位以提升執行測試的速度。下面是改善手動跨瀏覽器測試(兼容測試)的一些方法和技巧。數據庫
無論測試策略是否涉及自動化測試,衆所周知的事實是,與串行開發/串行測試相比,並行模塊開發/並行測試將始終更快。能夠經過開發測試腳原本實現並行測試,該腳本將容許跨不一樣瀏覽器,操做系統和設備的源代碼進行跨瀏覽器測試。您可使用Selenium WebDriver開發有效測試腳本。編程
創建能夠兼容性設備,瀏覽器和操做系統組合的測試基礎架構是一項昂貴的事情。例如,若是您必須在不一樣版本的Android上測試網站功能;您將須要具備這些Android版本的設備,而且還須要從不一樣的智能手機供應商處購買設備。所以,這種方法是不可行且不可持續的。理想的方法是在雲測試服務上測試功能,以便您能夠專一於測試而沒必要擔憂基礎架構。也能夠經過下載相應的WebDriver for Selenium使用Selenium編寫自動測試腳本。瀏覽器
按期測試可避免在開發週期的後期階段纔會遇到錯誤。做爲開發人員,應該針對不一樣的組合測試功能。即便您不習慣測試模塊,也應該改變思惟方式,並將測試做爲工做的一部分。若是您正在使用複雜的功能,則能夠將測試計劃劃分爲不一樣的階段,以便對其進行解耦。架構
單元測試是在「單元級別」執行的,而回歸測試是在產品的端到端功能的狀況下進行的。理想狀況下,進行迴歸測試以確保新的代碼更改不會對現有功能產生影響。在某些狀況下,功能中可能包含視覺元素,例如使用JavaScript的按鈕單擊;而在某些狀況下,接口上沒有更新,例如,單擊按鈕後,將更新數據庫中的某些字段。所以,建議及時開發和維護測試腳本,並應按優先級對測試腳本進行分組。框架
一旦完成了負責爲您的網站帶來流量的瀏覽器的分析,接下來就能夠經過對瀏覽器進行分類來對其進行優先級排序,以下所述:性能
跨瀏覽器兼容性列表將幫助您實現執行跨瀏覽器測試時切勿錯過的瀏覽器。經過清楚地說明未提供結果的瀏覽器,還能夠幫助您減小測試工做。使用跨瀏覽器兼容性列表,能夠更有效地執行跨瀏覽器測試策略。單元測試
瀏覽器也是一個軟件,與其餘任何軟件同樣,它們也有錯誤。瀏覽器公司會按期修復錯誤,並經過更新將其推送給用戶。修復的版本可能不會對您實現的功能產生任何影響。但因爲存在許多操做系統,所以應該關注瀏覽器版本的更新日誌,再決定將哪一種瀏覽器版本和系統版本進行組合。若是瀏覽器在這些操做系統之間的變化很小,須要跳過。當執行手動跨瀏覽器測試時,應該專一於那些差別更大的的測試組合。測試
若是您沒法在內部找到測試資源,則可使用衆包測試服務。對於衆包測試網站,您能夠選擇適合條件的測試人員。根據產品的性質,您能夠得到由測試人員簽署的NDA(保密協議),以便保護有關產品的機密信息。愈來愈多(規模不一樣)的公司正在使用衆包測試,由於它具備良好的成本優點。
前面咱們討論了在重要的瀏覽器上進行測試的重要性,由於這些瀏覽器在市場上最爲流行。所以,在開始設計和編碼網站/ Web應用程序以前,務必先了解不一樣瀏覽器支持的功能差別。您須要收集各個瀏覽器在目前地區的份額,並根據這些發現肯定功能開發和測試的優先級。
「屏幕抓取」功能可用於驗證渲染輸出,這是圖像迴歸測試的重要組成部分。整個方法很是簡單。在執行特定功能期間進行屏幕抓取,並使用圖像差別算法來驗證屏幕抓取質量與預期輸出之間的差別。自動截圖,可捕獲大量屏幕截圖,以快速跟蹤跨瀏覽器的測試工做。在一個測試周期中,能夠從各類瀏覽器,瀏覽器版本,操做系統和設備中捕獲多個屏幕截圖進行對比驗證。
手動測試易於驗證與用戶體驗緊密相關的功能。早期的重點應該放在用戶體驗測試上,而且應該在產品測試的不一樣階段繼續進行。若是您的產品具備本地化功能,例如以其餘文字向客戶顯示網站內容,則在產品達到必定的成熟階段後,必須對這些功能進行嚴格測試。