2009年11月10日 星期二

Selenium Docs (4) - Selenium Grid

原文:Selenium Grid - How It Works

Selenium-RC 的問題
  • RC 控制 browser 很慢,除非你的網路或者網站本來就慢,否則 RC 會變成測試上的瓶頸(bottleneck)。
  • 一個 RC 上面能「同時執行」的測試有限,實際上開啟超過 6 個瀏覽器就會影響效能。(在 IE 上更慘)
  • 如果要開很多個 RC 來避開上述問題當然也是可以,不過維護這麼多個 RC 會很困難。

Selenium Grid 繼承 RC 的好處
  • 測試程式、測試網站、RC/瀏覽器是透過 http 聯繫的,所以可以在不同機器上面。
  • 測試程式跟網站是跟某個專案有關,但是 RC 跟瀏覽器與專案無關,所以架設起來之後可以很多個專案共用。
(... 閱讀「Selenium Docs (4) - Selenium Grid」全文)

2009年11月4日 星期三

Selenium Docs (3) - 測試設計考量與自訂功能

靜態頁面與動態頁面
存取靜態頁面上面的元件時,可以直接利用 id 定址,而動態頁面則因為每次載入的內容不同,element id 可能會跟著變動,因此必須依靠程式拿到頁面內容過濾後,找出要存取的元件。

AJAX 頁面測試
對於含有 AJAX 的頁面進行測試時,因為其資料是非同步更新,也不會造成頁面 reload,因此在存取元件時要特別小心。設定一個等待時間中止整個測試 thread 並不是一個好方法,因為無法時間是預期的。應該要時時去偵測想要存取的元素是否已經出現,會比較好。

UI Mapping
對於一些常用的網頁元件,例如登入欄位/按鈕,可以用 property 檔案來描述它們,避免直接在程式碼中定位(locator)它們,好處是:
  1. 避免這些常用元件散落在程式中。
  2. 承上,集中管理易於維護。
  3. 元件可以重新命名為較容易看懂的名稱,增加程式可讀性。
直接看原本的例子會更清楚。

Data Driven Testing
自動測試可以輔助手動測試,但當輸入資料有多筆時,要把資料跟程式內容分開,另外寫到一個檔案中。

資料庫驗證
可以直接利用程式存取資料庫的內容,作為測試的資料來源。例如做登入頁面測試時,可以拿資料庫已經註冊的帳號登入看看是否可以登入,或者拿未註冊成功的資料登入看看是否無法登入。

自訂功能
Selenium 允許自訂一些動作或定址方式,只要在他們的 object prototype 裡面加入自訂的 JavaScript 函數,並把函數依照規定命名。可以自訂的有:action、Accessors/Assertions、locator。
(... 閱讀「Selenium Docs (3) - 測試設計考量與自訂功能」全文)

2009年11月3日 星期二

[轉錄] 軟體測試基於 Web 的系統測試方法


原文依據:Web Testing: Complete guide on testing web applications
本文原文:软件测试基于Web的系统测试方法

基於 Web 的系統測試與傳統的軟體測試既有相同之處,也有不同的地方,對軟體測試提出了新的挑戰。基於 Web 的系統測試不但需要檢查和驗證是否按照設計的要求運行,而且還要評價系統在不同用戶的流覽器端的顯示是否合適。重要的是,還要從最終用戶的角度進行安全性和可用性測試。

本文從功能、性能、可用性、用戶端相容性、安全性等方面討論了基於 Web 的系統測試方法。
(... 閱讀「[轉錄] 軟體測試基於 Web 的系統測試方法」全文)