聊天客户端的验收测试

Posted

技术标签:

【中文标题】聊天客户端的验收测试【英文标题】:Acceptance testing for a chat client 【发布时间】:2010-08-17 17:30:22 【问题描述】:

我正在编写一个聊天客户端(msn messenger 风格),但在编写发送/接收功能的验收测试时遇到了一些问题。

例如考虑用户故事“一个用户可以向另一个用户发送消息”。

1- 我应该测试客户端软件是否正确地与服务器交互吗?在这种情况下,我应该如何表示这种交互?

2- 我是否应该测试第二个客户端是否真的收到了消息?在这种情况下,我应该依靠服务器来证明我的软件工作正常。这种假设在验收测试中是否正确?

我想用协和或健身来编写我的测试,但非常感谢每一个帮助。

谢谢

【问题讨论】:

【参考方案1】:

当您编写验收测试时,应该以***别编写,就好像用户正在使用该软件一样。它通常是一个黑盒测试。在您的用户故事“一个用户可以向另一个用户发送消息”中,您将启动 2 个客户端和聊天服务器,从一个客户端发送消息并确保另一个客户端收到它。这个故事没有说明服务器应该如何处理它,它只是说一个用户可以向另一个用户发送消息。

您也确实想测试各个部分,即客户端是否正确地与服务器交互。这些是更多的集成和功能测试(您还应该进行单元测试来单独测试各个组件)。

【讨论】:

我认为这种方法有不止一个缺陷。如果服务器或接收客户端(它可以是另一个实现)不能正常工作,我的测试可能会失败,但我的客户端实现仍然可以正常工作。但是我认为这个解决方案可能会奏效。在您看来,fitnesse 或 concordion 是否允许您测试这样的东西? 如果客户端或服务器在验收测试中失败,并且测试是通过服务器测试两个客户端之间的通信,那么测试应该失败。我不确定您所说的“它可以是另一种实现”是什么意思,除非您为人们提供客户端 API 来开发客户端。我想你会提供至少一个有效的客户端,所以使用它。至于 Fitnesse/Concordion,我没有使用 Concordion 的经验,但您应该可以使用 Fitnesse。 strumtheworld.com/blog/2010/02/…

以上是关于聊天客户端的验收测试的主要内容,如果未能解决你的问题,请参考以下文章

验收测试和系统测试的区别?

验收测试

客户验收测试应该有多详细?

如何为自动化验收测试创建测试数据? [关闭]

验收测试驱动开发介绍(ATDD)

Sql 或 Reports 的验收测试