2010-08-17 191 views
2

我正在編寫聊天客戶端(MSN Messenger樣式),並且在編寫發送/接收功能的驗收測試時遇到了一些問題。聊天客戶端的驗收測試

例如考慮用戶故事「用戶可以發送消息給其他用戶」。

1-我應該測試客戶端sw是否正確地與服務器交互?在這種情況下,我應該如何表示這種互動?

2-我應該測試第二個客戶端是否實際收到該消息嗎?在這種情況下,我應該依靠服務器來證明我的軟件工作正常。這種假設在驗收測試中是否正確?

我想寫我的測試與concordion或健身,但每一個幫助真的很感激。

謝謝

回答

1

當你寫驗收測試,應該在最高水平,如果用戶使用軟件來編寫。它通常是一個黑匣子測試。在您的用戶故事中,「用戶可以向其他用戶發送消息」,您將啓動2個客戶端和聊天服務器,從一個客戶端發送消息並確保另一個客戶端收到消息。這個故事沒有說明服務器應該如何處理它,而只是說用戶可以向另一個用戶發送消息。

儘管客戶端能夠正確地與服務器進行交互,但您也想測試各個部分。這些是更多的集成和功能測試(你也應該有單元測試來單獨測試單個組件)。

+0

我認爲這種方法有不止一個缺陷。如果服務器或接收方客戶端(可能是另一個實現)無法正常工作,我的測試可能會失敗,但我的客戶端實現仍然完美。 但是我認爲這個解決方案可能有效。在你看來,fitnesse或concordion可以讓你測試像這樣的東西嗎? – TheSENDER 2010-08-17 19:19:43

+0

如果客戶端或服務器在驗收測試中失敗,並且測試正在測試兩個客戶端之間通過服務器進行的通信,則測試應該失敗。我不確定你的意思是「它可能是另一種實現」,除非你爲人們開發客戶端提供了一個客戶端API。我想你會提供至少一個可以工作的客戶端,所以使用它。至於Fitnesse/Concordion,我沒有Concordion的經驗,但您應該可以使用Fitnesse。 http://strumtheworld.com/blog/2010/02/lessons-in-using-fitnesse-for-testing-networking-systems/ – 2010-08-17 23:12:26