2011-03-01 81 views
2

假設我有一個名爲PlaceOrder的函數,它在調用時將訂單詳細信息插入本地數據庫並將消息(訂單詳細信息)放入TIBCO EMS隊列中。如何爲異步交互的系統編寫集成測試

收到消息後,TIBCO BW將調用其他系統(例如ExternalSystem)傳遞訂單詳情。

現在,我寫我的集成測試的方法是

  1. 電話下訂單
  2. 睡眠,併爲您的詳細信息存在於本地數據庫
  3. 睡眠和檢查細節存在於ExternalSystem。

上述方法是否正確?以上測試讓我相信,端到端集成工作正常,但是有沒有更好的方法來測試上述情況?

回答

1

你描述的問題是相當普遍的,你的方法是一個非常典型的解決方案。

該解決方案的問題是,如果延遲太短,您的測試有時可能會通過,有時會失敗,但如果延遲很長,那麼您只是浪費時間等待,並且有很多測試,它可以添加很多延遲。但是除非你能得到一些信號告訴你訂單到達數據庫,否則你只需等待。

您可以通過短時間間隔進行大量檢查來減少延遲。如果您的訂單在超時後不存在,那麼您將無法通過測試。

在「成長中的面向對象軟件,以測試爲指導」*中,有關於這個主題的一章,所以如果您要進行大量的這類測試,您可能需要獲得一份副本。

「有兩種方法的測試可以觀察系統:通過採樣其顯着 狀態或通過監聽,它發出事件其中,採樣 往往是唯一的選擇,因爲許多系統不發送任何監控 事件。這是很常見的一個測試,包括這兩種技術進行交互 與不同的系統」

(*)http://my.safaribooksonline.com/book/software-engineering-and-development/software-testing/9780321574442

的「末端」
相關問題