Skip Navigation Links首頁 > 產業觀察

產業觀察

HP ALM 半自動化測試工具 Sprinter 與 Sikuli 的比較

作者/葉翔騰

[發表日期:2012/7/31]半自動化測試的需求

使用自動化測試工具進行軟體或系統的功能性驗證時,常會遇到的情況是: 有一些功能測試無法使用自動化測試工具來進行驗證。而無法使用自動化測試工具進行功能驗證的可能原因,概述有以下情況:

    1.設計面
    ◎模組與模組之間,沒有留下任何處理過程相關資訊,因此無法進行模組個別功能驗證
    ◎只有人,才有能力判讀對錯

    2.技術面
    ◎使用特殊物件,導致自動化測試工具無法辨識
    ◎應用軟體使用特殊加/解密方式

    3.其他
    ◎或許該專案的特色,造成自動化測試的成本高過人工測試
    ◎單元測試涵蓋度非常高
    ◎或是,該專案的品管是由客戶負責

但是,如果我有一個測試工作,有一部分是重複性質的操作(如:login or點選特定按鈕),另外一部分則需要人工來處理,那麼重複的部份,我能不能藉由工具來協助進行測試?

一部分自動化,一部分人工,這就是半自動化測試工具出現的原因!


半自動化測試工具介紹

本文介紹兩種半自動化測試工具,一種是與專案軟體開發管理工具相互緊密整合,另一種是完全地獨立的軟體測試工具。
前者將以HP旗下的Sprinter產品進行介紹,它是一種半自動化測試工具,與ALM(Application Lifecycle Management)相互緊密整合;而後者,則以MIT所開發的Open Source- Sikuli為代表說明。
這兩種工具,立足點完全不同,拿來一起比,真的有失公允,本文主要的考量如下:

1.把這兩個工具拿來比,原本的動機就不是要比出個高下,而是要提供讀者有關:“那一種情況應該考慮使用那一種工具”的參考建議!

2.Sprinter 一開始是 base on ALM 的架構,但是新的版本,則提供單機版(意即:可以不用連接到 ALM Server的單機版)


HP 半自動化測試工具 Sprinter

Sprinter 的基本架構,很像迷你版的 QTP (Quick Test Professional),一樣有測試腳本(Test Script)錄製的功能、有讀取測試資料的功能、連接 ALM 主機的功能(回報測試結果與填寫測試所發現的缺失之用)。
完整的 Sprinter 標準作業程序如下:

    1.測試人員在 PC開啟 Sprinter
    2.連上 ALM 主機
    3.挑選所要進行的測試(回報測試結果之用)
    4.手動選擇先前已錄好的腳本(手動測試中,可重複執行的部份)
    5.手動挑選一筆測試資料(測試資料可以儲存在 Excel 內,可以多筆,但是 Sprinter 每次只會 run 一筆, 不像 QTP 可以自動跑完所有測試資料)
    6.人工判讀測試結果 or 手動測試其他無法用工具錄製腳本的測試步驟
    7.自動產生測試報告(Sprinter 會自動記錄測試步驟與截圖)
    8.回報測試結果(to ALM)
    9.進行缺失回報(to ALM)

而Sprinter 與 QTP 最大的不同,在於:

    1.測試資料放在外部的 Excel 檔案內,而不是內建的 Data Table
    2.Sprinter 一次只會 run 一筆測試資料
    3.人工驅動(符合半自動化功能測試工具的定位)
    4.自動產生測試報告(Word or PDF format)


MIT Sikuli Project

Sikuli 是由麻省理工學院(MIT)使用圖形辨識為基礎所延伸出來的專案,應用在錄製重複執行的電腦操作腳本。
可以用來錄製電腦操作腳本的專案不少,Sikuli之所以被世人所關注,就在於他使用不同於以往的辨識方式—圖形辨識。更特別的地方是,他連產生的腳本(Script)將辨識的標的,一併用圖形的方式呈現,真的把 WYSWYG 放到程式語言內了。
Sikuli 的 SOP 簡述如下:

    1.打開 Sikuli IDE
    2.利用 Sikuli腳本指令啟動待測程式
    3.點選截圖工具 & 拖拉截圖範圍
    4.利用 Sikuli 腳本指令編寫對截圖的動作(如: click)
    5.重複上述第3~第4步驟
舉一個描述在該專案網頁的有趣例子:
如果我想第一時間,馬上知道一個在 FaceBook 上特定的人所 update 的 status message,主要的 script 如下:


5.HP Spinter vs MIT Sikuli Project





總結

筆者認為,HP Sprinter 是拿來當功能測試的半自動化工具,比較適合給測試人員使用(QA 或是 SA 或是甲方資訊室人員);而,Sikuli 則比較適合讓程式設計師來使用,以進行比元件整合測試範圍更大的 UI 測試。

參考資料

http://www.youtube.com/watch?v=-G8C61PnlS0

http://update.external.hp.com/qualitycenter/qc110/mictools/sprinter/sprinter_11/Sprinter_User_Guide.pdf

http://sikuli.org/docx/devs/system-design.html

http://sikuli.org/

 

回上層