“零迭代” - 简单接触形式功能的端到端验收测试

时间:2010-09-26 16:09:54

标签: python django unit-testing tdd bdd

我最近正在阅读“不断增长的面向对象软件,以测试为导向”。 这本书的作者总是开始开发一个端到端验收测试功能( 开始TDD周期之前),以便不会松开进度轨道并确保你仍然在单元测试时的同一页面。

好的,所以我开始在python + django中编写一个简单的应用程序,只是为了尝试这种方法。我希望用户能够通过联系表格提出问题,然后问题应该存储在数据库中,完成后的信号应该发送给通知邮件,邮件将发送后续邮件。

问题是 - 在这种情况下,您将如何进行首次端到端测试?你是否已经在第一次测试中包含了所有可能性,或者我可能误解了整个技术。

任何例子都是最受欢迎的。

2 个答案:

答案 0 :(得分:1)

您根本不必包含验收测试中的所有可能性 - 您仍然会编写单元测试。所以我会说,单个测试“用户可以填写表格,保存并加载”就足够了。如果您认为系统的某个特定方面足够重要,需要进行验收测试,那么您可以添加更多测试。不要担心在这里处理所有可能性,你仍然会编写大量的单元测试来测试所有内容!

最简单的方法是与代码并行地增加验收测试:所以从测试开始,用户可以输入数据,实现它直到它停止失败,然后在测试中添加用户必须的条件在您开始编写生产代码之前,需要一段时间才能实现验收测试的初始基础架构,但无论如何都无法摆脱它,并且预先进行测试会有各种好处。 / p>

答案 1 :(得分:0)

此用例导致多个测试用例(每个测试都是专用的可能执行路径)。

编写测试时,重点关注一个可能的结果,经过一段时间的测试套件的增长。然后,第一个测试也为您提供安全网作为回归测试,以便不破坏您已成功实施的任何内容。

我的第一次测试将是:

  • 快乐路径第1部分前端形式+控制器层:用户传递正确的数据,控制器采取形式并登录到console / stdout
  • 快乐路径第二部分:不是记录到stdout,而是将内容存储到数据库
  • 快乐路径第3部分:用户发送和接收后续邮件
  • 验证错误处理(用户填写表单不正确,例如错过必填字段,错误的电子邮件模式)
  • ...

填写其余部分;)取决于更详细的要求...

请记住尽可能简单地实施上述内容。当所有测试都到位后,无情地重构以使“内部质量”变得更好。