2009-01-07 54 views
4

我正在写一个简单的Web应用程序,使用Linq to Sql作为我的数据层,因为我非常喜欢Linq2Sql。我最近一直在阅读关于DDD和TDD的一些信息,并希望能够一蹴而就。TDD,你有什么技术可以找到好的测试?

首先,最让我感到惊讶的是Linq2Sql和DDD不太好。我的另一个问题是找到测试,我发现它很难定义好测试,所以我想问一下,发现好测试用例的最佳技术是什么?

回答

5

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

你知道
  • 代码为体弱/弱/有可能打破
  • 按照用户的场景(你的用户会做),看看它是如何触摸你的代码(通常这意味着调试它,其他时候分析和其他时候,它只是意味着考虑场景) - 用户触及代码中的任何点,这是编写测试的最高优先级。
  • 在您自己的开发过程中,您运行的测试会导致您发现的错误 - 编写测试以避免代码以相同的行为再次回归。

有关于如何编写测试用例在那里的几本书,但除非你是在一个大的组织,需要记录的测试用例的工作,最好的办法是想在你的代码的所有部分你不要不喜欢(不是“纯”),并确保您可以彻底测试这些模块。

+0

THX,我想建立最常见的usecases应该帮助我很多 – terjetyl 2009-01-07 00:26:37

5

那么,通过TDD的标准解释是,测试驱动器您的发展。所以,本质上你是从测试开始的。它会失败,你会写代码,直到测试通过。所以这是由你的要求驱动的,但你要去收集这些东西。你决定你的应用/功能需要做什么,编写测试,然后编码,直到它通过。当然,还有很多其他的技术,但这只是关于TDD世界中典型思想的一个简短陈述。

0

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

1

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

不要做出假设如“这个文件将永远在那里”。测试。

想想边缘的情况下,边界,负值,溢出...

错误往往是由集群进行分组。当你找到一个时,环顾四周。在其他位置寻找同样的错误。

1

将您的想法设定为测试的实际目标:查找错误。

在想象什么可能会导致您的程序失败时很有创意。

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

0

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


参考:丽莎(陵)刘,伯特兰·迈耶和 贝恩德·舍勒,使用合同和布尔查询,提高 质量自动测试生成,在的程序中TAP:测试 和证明,ETH苏黎世,2007年2月5-6日,编辑。尤里·古列维奇和 伯特兰·迈耶,计算机科学,Springer- 出版社讲义,2007年

相关问题