2010-08-17 144 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