Cody Blog

Software development

Testopia 測試案例管理系統簡介

Why Testopia ?

最近想研究一些時下流行的測試案例(Test Case)管理系統,之前有稍微裝一下Test Link來玩看看。因為看到《How Google Tests Software》裡面有提到一點,就是在Gogole裡,如果自動化測試測試沒過的話,會直接自動新增一筆Bug Tacker給相關人員,可見其相當重視自動化測試的品質,讓Automation的Bug提升到跟Product Bug相等重要。這也讓我重新思考 Bug Tracking System 對於Automation們的重要性。所以這讓我注意到另一套 Test Case Management System: Testopia。我覺得Testopia最大的特色,就是他是一套Bug Tracking System: Bugzilla 的延伸套件。也就是如果我們採用了Testopia來當我們的測試案例管理系統的話。也就相當於能直接擁有一套 Bug Tracking System了。這成為我想玩玩看 Testopia 的最大理由 :)

安裝 Testopia:

要玩 Testopia 之前要先安裝 Bugzilla,關於 Bugzilla 的安裝,這邊有記錄,安裝 Testopia 其實很簡單,下載 Testopia 的 tarball file : 當下最新的版本是2.5版

  1. 解壓縮︰ tar zxvf testopia-2.5-BUGZILLA-4.2.tar.gz

  2. 把裡面的內容丟到 bugzilla 的根目錄,例如 /var/www/html/bugzilla

  3. 執行 checksetup 的 perl 檔 : ./checksetup.pl

這樣就安裝完成了。

Testopia 的架構

Testopia 手冊裡面有一張圖很清楚地表達整個 Testopia 的架構︰

img

基本的使用流程如下︰

  • 新增一個 Product 以及多個 Components : Administration > Product
  • 新增一個 Test Plan
  • 新增多個 Test Cases : 要注意的是狀態要 CONFIRMED 之後才能被挑選來執行。
  • 新增一個 Build : ex 1001
  • 新增一個 Environemnt : 這邊的 Environemnt,通常是指一些像是OS,Browser,Hardware等等不同的執行環境。
  • 新增一個 Test Run : 選擇要執行的 Test Plan,以及選擇要跑的Build,挑選 Test Case
  • 執行 Test Run : 把相
  • 產成 Report,在 Test Run 上按右鍵,就可以把相關的的報告展現在 Dashboard上面

編輯 Test Case

一個 Test Case Management System 最重要的就是要很方便新增修改 Test Case,目前我只有少量輸入過,不過感覺還算及格,我曾經有使用過一套Test Case System,是每新增一個 Test Step 就要換頁一次。用起來就頗不方便。另外,官方建議在 Firefox 使用,編輯的介面如下︰

img

跟 Jenkins 整合 執行自動化測試

目前 Jenkins 有一個 Testopia 的 Plugin: https://wiki.jenkins-ci.org/display/JENKINS/Testopia+Plugin。這個Plugin在設定好之後,在Build Step 只需要指定 RunID,如圖

img

目前 1.0 版僅支援三個Environment Variable TESTOPIA_TESTCASE_ID TESTOPIA_TESTCASE_SCRIPT TESTOPIA_TESTCASE_ALIAS

有了Script名稱,接下來就可依照不同的測試框架,實際執行測試了,這邊只單純echo 出 ID 跟 Script 名稱。至於 Test Report,目前僅支援 TAP 格式。而測試案例跟測結結果的配對是使用TESTOPIA_TESTCASE_ALIAS。舉例,測試通過的TAP︰

1..1
ok 1 It is passed

而測試失敗的TAP:

1..1
not ok 1 It is failed , oh no ~

例如 Testcase A 的 TESTOPIA_TESTCASE_ALIAS1,那麼我們就可以準備一個1.tap,放在這個 Jenkins Job 的跟目錄裡面,這樣 Jenkins 就可以把測試結果直接回傳回Testopia。

這個是 Jenkins 的結果︰ img

這個則是 Testopia 的結果︰

img

這樣就可以完成透過 Jenkins 來執行 Testpoia 的自動化測試了。

PS : 測試案例必需是有勾選自動化,還必須要有Tester,這才會被Jenkins找到。

接下來?

但是要達到更高程度的自動化,其實還少了幾個部份︰

  1. Jenkins 如果看到有新 Build,自動新增 Testopia 的 Build

  2. 自動複製/新增 Test Run for new build

  3. Jenkins 要知道新的 Test Run ID 是多少

  4. 傳送 Failed test result log 到 Testopia or Bugzilla

  5. 如果 Automation Fail,自動 Submit 一個 Bug 到 Bugzilla

如果要達到以上幾點,光靠 Jenkins 的 Plug-in 就不夠了。目前有看到 PyZilla 有 Wrap Bugzilla 的 XML-RPC API。而 Testpoia 也有自己的 XMLRPC 可用,看了一下,基本上可以完成大部份任務所需。

所以,還有很多事情可以弄 :)

Related Posts

Comments