本文探討 Genero 應用程式可搭配使用的各種測試工具,並釐清常見的術語誤用問題。

「支援」與「相容」的區別

Four Js 在此特別說明用詞的差異:「這裡誤用了『支援』一詞,我們支援的是我們自己的產品。更正確的問法應該是『Selenium 與 Genero 相容嗎?』或『Genero 能與 Selenium 搭配使用嗎?』」

也就是說,Four Js 不直接「支援」第三方測試工具,但 Genero 應用程式確實可以與多種測試工具相容運作,端視應用程式的架構而定。

Genero Ghost Client(GGC)

Genero Ghost Client 是專為 Genero 設計的測試工具,在架構中扮演前端角色,取代桌面客戶端(GDC)或瀏覽器客戶端(GBC)。它「能夠用來測試 AUI Tree 中的節點是否具有特定的屬性與值」。

GGC 的重點在於測試應用程式的業務邏輯,而非畫面的視覺細節(例如像素位置或字型大小)。

相關文章參考:第 65 篇(GGC 實作說明)

桌面應用程式的測試(GDC)

原生 GDC 應用程式使用 Qt 函式庫進行渲染,這使得一般的桌面測試工具無法直接存取視窗元素。專為 Qt 設計的測試工具(例如 Squish)可以解決這個問題,因為它們能夠存取 Qt 函式庫的呼叫。

相關文章參考:第 113 篇(Qt 函式庫討論)

瀏覽器客戶端應用程式的測試(GBC)

基於網頁的 Genero 應用程式(GBC)理論上可以與 Selenium 等標準網頁測試工具搭配使用,但開發者必須了解幾個關鍵差異:

單頁應用程式(SPA)架構

GBC 採用單頁應用程式架構,URL 格式類似 /ua/sua,其中包含會隨每次執行而改變的 Session ID,不應將這些 URL 視為獨立的網頁來處理。

HTML 元素識別方式

在 GBC 中,HTML 元素的 id 屬性(如 id="w_493")可能會隨開發者修改而改變,不應用來唯一識別資料值。應改用 data-aui-name 屬性,因為它會保留欄位名稱,更為穩定:

<div class="mt-field ..." id="w_493" data-aui-id="89"
     data-aui-name="formonly.r1" aria-selected="true">
  <input type="text" class="gbc-label-text-container" ...>
</div>

其中 data-aui-name="formonly.r1" 對應到欄位名稱,比 id 更穩定可靠。

不建議使用的測試方式

作者不建議使用像素比對類的測試工具,認為它們「不夠強健」,也不適合用於測試業務邏輯的結果。

測試設計的通用考量

無論使用何種測試工具,在設計測試案例時都應考慮以下問題:

  1. 資料庫初始狀態:每次測試開始時,資料庫的資料應處於什麼狀態?重複執行測試是否會耗盡資源?
  2. 測試絕對值還是相對值:測試「資料庫中的值」還是「值的變化量」?後者讓測試更靈活,不受資料庫初始狀態影響。
  3. 驗證方式:直接查詢資料庫的 SQL,還是驗證應用程式畫面上顯示的值?
  4. 停用不必要的功能:測試時是否應停用自動寄信、列印等功能,以免產生不必要的副作用?
  5. 執行頻率:各個測試案例的執行頻率為何?有些測試適合每晚執行,有些則是每週或每月執行一次。

作者也強調,4GL 開發者與測試人員之間的緊密協作,對於提高網頁測試工具的準確度至關重要。

原文:https://4js.com/ask-reuben/ig-140/  ·  有任何 Genero 技術問題或翻譯疑問,歡迎來信 support@t100.app