4

我正在编写一个简单的 Web 应用程序,使用 Linq to Sql 作为我的数据层,因为我非常喜欢 Linq2Sql。我最近读了一些关于 DDD 和 TDD 的文章,想试一试。

首先让我感到震惊的是,Linq2Sql 和 DDD 并没有很好。我的另一个问题是寻找测试,我实际上发现很难定义好的测试所以我想问,你发现好的测试用例的最佳技术是什么。

4

6 回答 6

5

好吧,按照 TDD 的标准解释,测试驱动你的开发。所以,本质上你是从测试开始的。它会失败,您将编写代码直到测试通过。所以它是由你的需求驱动的,但是你去收集那些。你决定你的应用程序/功能需要做什么,编写测试,然后编码直到它通过。当然,还有许多其他技术,但这只是对 TDD 世界中典型想法的简要说明。

于 2009-01-07T00:11:19.170 回答
5

测试用例发现更像是一门艺术而不是一门科学。然而,简单的指导方针包括:

  • 您知道脆弱/脆弱/可能会破坏的代码
  • 跟随用户场景(你的用户将要做什么),看看它将如何接触你的代码(通常这意味着调试它,有时是分析,有时它只是意味着考虑场景)——你的代码中的任何点都会被触及对用户来说,这些是编写测试的最高优先级。
  • 在您自己的开发过程中,您运行的测试会导致您发现错误 - 编写测试以避免代码再次以相同的行为回归。

有几本关于如何编写测试用例的书,但除非你在一个需要记录测试用例的大型组织中工作,否则最好的办法是考虑代码中你不喜欢的所有部分(即't "pure") 并确保您可以彻底测试这些模块。

于 2009-01-07T00:20:16.873 回答
1

想想。阅读代码。问问自己:例如,这个指针在这里永远不会是 NULL 吗?如果在初始化之前调用此方法会发生什么?

不要做出诸如“此文件将永远存在”之类的假设。测试。

想想边缘情况、边界、负值、溢出......

错误通常按集群分组。当你找到一个时环顾四周。还要在其他位置寻找相同类型的错误。

于 2009-01-07T12:45:17.930 回答
1

把你的注意力放在测试的实际目标上:发现错误。

创造性地想象可能导致您的程序失败的原因。

您的测试必须找到错误,而不是确认您的程序是否正常。

于 2009-01-08T11:12:54.433 回答
0

我经常为第三方 API 编写测试。这样,当 API 更新时,我就知道我是否会中断。

于 2009-01-07T00:54:32.390 回答
0

我认为这是一个有用的技术:

使用合同和布尔查询来提高自动测试生成的质量


参考资料:Lisa (Ling) Liu、Bertrand Meyer 和 Bernd Schoeller,使用合同和布尔查询来提高自动测试生成的质量,在TAP:测试和证明的过程中,苏黎世联邦理工学院,2007 年 2 月 5-6 日,编辑。Yuri Gurevich 和 Bertrand Meyer,计算机科学讲义,Springer-Verlag,2007。

于 2009-01-08T11:16:07.220 回答