工程師的自我測試通常有個盲點:你無法自己執行 100% 測試。

若程式及測試都是你寫的,是無法達到 100% 完美的測試。即使非常努力追求完美,最後沒測試到的部分不是非常愚蠢的錯誤,也會是嚴重到你沒想到的錯誤。

公司也因為 RD 人力短缺,沒有專職的 DevOps 及 QA,而工程師自我驗證的結果就會遇到前述我指出的問題。

去年公司開始導入下一代架構,其中有針對 DevOps/QA 進行解套,但我們仍持續徵求 PM / RD / DevOps,歡迎有興趣的朋友與我聯絡。

Selenium (Selenium WebDriver)

利用真實瀏覽器進行測試,其它的工具都只是偽瀏覽器。支援全部常見瀏覽器的工具:IE / Firefox / Chrome / Safari / Opera / Android / iOS。缺點是安裝及運行環境比較棘手,進入門檻較高,適合給專職 QA 或 DevOps 負責。

Watir (Watir WebDriver)

與 Selenium 同樣用真實且支援一樣多的瀏覽器。不同的是,接口程式語言只支持 Ruby,但因為本身也是 Ruby 寫的,所以通常會是 Ruby 愛好者的首選。

PhantomJS

利用 WebKit 瀏覽器引擎模擬,不是實際執行瀏覽器。所以省資源但測試可能有誤差,對瀏覽器的一些特定行為也無法模擬。而因為是 WebKit 引擎,所以只能測 WebKit 類的瀏覽器。

SlimerJS

立志與 PhantomJS 做到一樣的功能,只是瀏覽器引擎換成 Gecko (Firefox)。

Zombie.js

不採用真實瀏覽器,也不用瀏覽器引擎,完全以 JavaScript 模擬行為。應該是速度最快,但測試誤差最大的工具。

結語

以上的工具還有很多優缺點就不列出了。公司未來從架構面上採用了某一種微妙的平衡策略,目的當然是希望給我們的客戶享有更高品質的服務。

Image