1. 程式人生 > >瀏覽器相容性測試應該如何做?

瀏覽器相容性測試應該如何做?

如今,市面上的瀏覽器種類越來越多(尤其是在平板和移動裝置上),這就意味著你所測試的站點需要在這些你聲稱支援瀏覽器上都能很好的工作。

同時,主流瀏覽器(IE,Firefox,Chrome,Opera,Safari)版本更新更加頻繁,終端使用者甚至不會感知這些瀏覽器版本的升級。

這兩點就導致了對於日益增多的瀏覽器做相容性測試顯示十分必要,但也使得這種相容性測試變得十分耗時。

通過全覆蓋的測試,你就可以明確的知道你的站點支援哪些瀏覽器,哪些有相容性問題。一個最簡單的減少瀏覽器相容性測試的辦法,就是停止對老版本瀏覽器的支援。這個策略對一些公司是適用的,但並不適用所用的公司。

停止對老版本瀏覽器的支援,並不意味這你的產品在這些老版本上就沒有

bug, 這僅僅是你可以忽略那些老版本上的潛在問題,把精力放在那些當前支援的瀏覽器版本上。

瀏覽器相容性測試應該如何來做?

分散風險

一個途徑就是在多瀏覽器環境中執行日常的測試工作。

舉個例子來講,你要測試這樣一個web應用:使用者登入,生成報表,傳送報表,退出系統。這個應用還包含一個管理功能,管理員或經理登入後可檢視哪些人做了哪些改動。

為了覆蓋更多的瀏覽器,你可以用一種瀏覽器來測試登入功能,在另一個瀏覽器中測試“傳送報表”的功能,用第三種瀏覽器測試“審計變動”的功能。

這是一個有效的方法,在日常的功能測試的過程中,同時覆蓋多瀏覽器相容性測試。上面這個例子還是存在一些問題的,比如講,如果

“審計變動”這個功能在第一種,或第二種瀏覽器裡是有問題,那麼就會發現不了。這種方法節省下來的時間,可以讓你在做相容性測試策略時,更有側重。

讓其他人來幫你做測試

對於一些明顯的頁面相容性問題,有一些線上工具可以幫著你檢查,例如Browser Shots,它可以將你的頁面載入到它所支援的瀏覽器中(它支援瀏覽器種類和版本很豐富),然後截圖,你可以檢視在這些瀏覽器下的載入情況了.

這是一個很棒的工具,但那些需要登入驗證的應用,或則你的應用中包含的頁面太多 ,這個工具就顯得有點力不從心了.

和標準進行比對

你可以對你的站點進行HTML語法標準檢查,如果通過了,在多瀏覽器相容性上,你可以更有自信一點了,但即使通過了,還是總有一些瀏覽器(比如萬惡的

360)渲染你的頁面是會有相容性問題。

自動化

Web UI的測試可以通過webdriver這個工具來實現自動化,可以使用selenium Grid自動化指令碼在多瀏覽器上執行。如果不會寫程式碼的話可以使用TestWriter,完全零編碼進行測試。

前提是你得有Web UI自動化的投入。Web UI自動化可以發現一些功能上的問題,但對於多瀏覽器頁面佈局方面的差異,通過它是很難發現的。

Fight Layout Bugs

你可以寫一些自動化指令碼來檢查頁面在不同瀏覽器下渲染效果。Fighting Layout bugs是一個開源的工具,可以用來檢查頁面佈局方面的bug

手工測試

你可以手工測試所有的瀏覽器版本,為了避免混淆,你可以將不同的瀏覽器安裝在不同的虛擬機器上(uedde的確這這樣做的),當有其他人需要用是,可以直接克隆這些虛擬機器,或則直接訪問這些虛擬機器。但這太耗時,費力了,但還是有必要做一次這樣的多瀏覽器手工測試的。

分類

你可以依據核心來劃分瀏覽器。

chrome & safari使用的是webkit核心,Firefox則是Gecko, IE系列的是Trident核心,Opera使用Presto核心。最新的Opera好像也開始使用webkit核心了。

這樣你就可以認為,如果在chrome上沒有問題,那麼“理應”在safari也應該沒問題。

模擬

市面上有一些工具可以模擬不同的瀏覽器,有一些瀏覽器也附帶了工具來相容老版本。但使用這些工具是要謹慎,這樣的模擬並不一定準確。慎重。

outsource selenium

如果你沒有條件搭建selenium grid測試環境,你可以嘗試著使用Sauce Labs testingbot 這樣的服務。

多瀏覽器的支援我們心中永遠的痛,特別是如今瀏覽器更新如此頻繁的狀況下。哎~ 你可以選擇上面的適合你的方法。

PS:有些瀏覽器有相容模式,可以通過相容模式來模擬老版本。有些瀏覽器,如chrome,提供了開發者工具可以幫著定位問題。