這篇部落格文章最初發表於 cimetrix.com
這篇部落格文章是《SEMI E30 GEM 標準中自訂測試案例的識別》一文的結語,該文可在此處查閱。
「不幸路徑」測試
雖然這篇文章將著重探討所謂的「理想情況」(即沒有錯誤),但測試非理想情況同樣重要。
可能出現在「非預期路徑」測試中的情況包括:
- 讀卡機失去網際網路連線。
- 讀卡機斷電
- 自動販賣機與讀卡機失去通訊
正常流程測試案例
「理想執行路徑」是指當使用者(或在此情況下,設備)僅輸入有效資料時,程式所遵循的執行流程。我
在此簡單測試中,我們忽略錯誤/警報情況(轉換T2和T4)。
「理想情況」的過渡測試步驟
- 初始化T1=>
- Wait_PaymentT3=>
- Wait_SelectionT5=>
- 發放_項目T7=>
- while (使用者想購買更多商品 && 資金充足)
{
Dispense_ItemT6
Wait_SelectionT5
} - 交易完成T8
EquipmentTest 外掛程式設定
先決條件:
- 已安裝 EquipmentTest 1.0.3 或更新版本。
- Visual Studio 2019 或更新版本(針對 .NET Framework)
- .NET 4.8 SDK
- 一套具備 GEM 功能的設備(或同等設備),用以進行測試
- 請依照《EquipmentTest 開發人員指南》中標題為「使用 Visual Studio 建立外掛程式」一節的說明,
測試流程
我有時覺得,在資料產生時立即進行驗證是有幫助的。為了簡潔起見,這項測試將先收集所有資料,然後在測試結束時再進行驗證。
文件
文件是使用者在 EquipmentTest 使用者介面中會看到的一項內容。每個測試步驟都必須在外掛程式中記錄,以便使用者了解該測試的運作內容。
使用者參數
在 GEM 中,每個資料擷取事件、變數和警報都會有一個 ID。這些 ID 是進行主機端測試所必需的。大多數現代設備都允許我們透過特性分析訊息取得這些 ID。在此範例中,我們將允許測試(外掛程式)的使用者手動輸入這些值。
自訂測試概覽
HSMS 的設定是從使用者在 EquipmentTest 使用者介面中輸入的設定中擷取而來。
在步驟 1 中,將建立「處理狀態轉換」的事件報告及相關變數。
在步驟 2 中,測試會等待一個名為「timeOutWait」的自動重置事件。若結果超時,測試即告失敗;若測試接收到轉換 8,則測試繼續執行。
步驟 1-2
建立報表
CreateReports API 呼叫會傳送一則 S2F33 訊息,用以建立由使用者參數 ProcessState Report 指定的報告編號。該報告將包含狀態變數 ProcessState 和 PreviousProcessState。在此範例中,這兩者的值類型皆為 Ascii。
測試步驟 3-4
步驟 3 會檢查資料,以確保所有狀態轉換皆依預期順序發生。
前 4 個狀態應始終分別為 T1、T3、T5 和 T7。然而,後續的狀態將根據使用者的回應而有所不同。這需要測試能動態地驗證資料。
在測試步驟 4 中,我們提取變數值,然後採用與步驟 3 相同的方法,以確保先前與當前的流程狀態均已正確回報。
結論
雖然開發此測試需要具備 GEM 和 C# 的基礎知識,但執行此測試時,使用者無需具備這兩方面的知識。這意味著只要能使用相關設備並持有 EquipmentTest 執行時授權,任何人都能成功執行此測試。
Cimetrix EquipmentTest 讓開發人員能夠善用 .NET Framework 的可擴展性。此外,這些編寫精良且經過實證的 GEM 函式庫,大幅降低了撰寫 GEM 測試所涉及的學習門檻。