測試程序結構
為了進行自動測試,所有測試用例必須符合下面的程序結構。注意:下面這些步驟的順序不能改變。
- 初始化 Lotus Notes 運行時。運行任何 Lotus C API 之前都要初始化 Lotus Notes 運行時。Lotus C API NotesInit 或 NotesInitExtended 可用于在各種環境下初始化 Lotus Notes 運行時系統。Lotus C API 應用程序在測試其他任何功能之前應該首先調用 NotesInit 或 NotesInitExtended。
- 創建和準備測試數據。測試目標 API 之前,首先要創建和準備必要的測試數據。比如,如果 Lotus C API 創建了一個表單字段,那么在測試該 API 之前應該首先創建并打開一個 Lotus Notes 文檔。
- 執行測試 API。調用要測試的目標 Lotus C API。為了測試不同的參數組合,API 可執行多次。
- 檢驗測試結果。為了完成自動化測試,應該通過編程而不是手工檢驗 API 的執行結果。檢驗 API 執行結果有兩種辦法:根據預期的結果檢查或者成對調用 API 進行檢查。
- 測試數據恢復。如果測試用例創建測試數據,測試之后應用程序應該刪除這些數據以免影響后續的測試。數據移除過程也是自動測試的關鍵步驟。
- 記錄測試結果。在 failed.log 和 suite.log 文件中記錄測試結果,在 output.log 文件中記錄輸出信息。
![]() ![]() |
![]()
|
對 NoteSQL 應用自動測試
如前所述,Lotus C API 自動測試框架已經被成功應用于其他 Lotus 工具箱產品,比如 Lotus C++ API 工具箱和 NotesSQL。這一節我們討論 NotesSQL 自動測試,看看如何將 Lotus C API 工具箱自動測試框架應用于其他 API 測試產品。
NotesSQL 是 Lotus Notes 和 Domino 數據庫的 Open Database Connectivity (ODBC) 驅動程序,實現了 ODBC 2.0 或者更新版本的 API 規范?捎糜趶 Notes and Domino 數據庫(即 NSF 文件)查詢數據。所謂編程測試 NoteSQL 就是測試 NotesSQL 驅動程序中實現的 ODBC 2.0(或更新的)API。
NotesSQL 自動測試由一個 kshell 腳本 nsqln.ksh 控制(類似于 Lotus C API 自動測試腳本 tapi.ksh)。NotesSQL 開發人員建立了 646 個自動測試用例,使用 nsqln.ksh 自動構建和運行這些用例。通過自動測試腳本,測試人員只需要在 kshell 環境下啟動 nsqln.ksh 腳本,然后等待 NotesSQL 測試結果就行了。nsqln.ksh 完成后將創建 suite.log 和 problem.log 文件(類似于 Lotus C API 的 failed.log),測試人員可通過這些日志文件查看測試用例的運行狀態。
與 Lotus C API 自動測試框架相比,NotesSQL 有兩個主要的不同之處:
- 構建和運行是分開的。NotesSQL 自動測試腳本將構建和運行過程分開并通過參數控制。因此,為了執行 NotesSQL 自動測試,用戶應該先使用 nsqln.ksh build 命令構建所有的用例,然后使用 nsqln.ksh test 運行測試用例。構建和運行生成不同的日志文件。
- 運行狀態。Lotus C API 工具箱測試有兩種運行狀態:pass 和 fail。NotesSQL 增加了兩種新的狀態:same as gold file 和 reconciliation error。在 Lotus C API 自動測試框架中檢查 API 執行結果,可以比較預期值和測試 API 的返回值。但在 NotesSQL 測試中,SQL 語句可能返回大量的數據,如果比較取得的數據和預期結果會使程序非常復雜。因此 NotesSQL 采用另一種辦法檢驗取得的數據。它創建一個 file.gld 文件保存預期的數據,NotesSQL 測試用例創建 data.log 文件保存返回的數據。NotesSQL 測試用例的最后一步是比較 file.gld 和 data.log 文件。如果所有的數據都一致,則返回狀態 “same as gold file”。否則返回 reconciliation error 并使用 diff.log 文件記錄它們之間的差別。
文章來源于領測軟件測試網 http://www.kjueaiud.com/