我正在写一个简单的Web应用程序,使用Linq to Sql作为我的数据层,因为我非常喜欢Linq2Sql。我最近一直在阅读关于DDD和TDD的一些信息,并希望能够一蹴而就。TDD,你有什么技术可以找到好的测试?
首先,最让我感到惊讶的是Linq2Sql和DDD不太好。我的另一个问题是找到测试,我发现它很难定义好测试,所以我想问一下,发现好测试用例的最佳技术是什么?
我正在写一个简单的Web应用程序,使用Linq to Sql作为我的数据层,因为我非常喜欢Linq2Sql。我最近一直在阅读关于DDD和TDD的一些信息,并希望能够一蹴而就。TDD,你有什么技术可以找到好的测试?
首先,最让我感到惊讶的是Linq2Sql和DDD不太好。我的另一个问题是找到测试,我发现它很难定义好测试,所以我想问一下,发现好测试用例的最佳技术是什么?
测试案例发现更多的是一门艺术而不是科学。然而简单的指导方针包括:
你知道有关于如何编写测试用例在那里的几本书,但除非你是在一个大的组织,需要记录的测试用例的工作,最好的办法是想在你的代码的所有部分你不要不喜欢(不是“纯”),并确保您可以彻底测试这些模块。
那么,通过TDD的标准解释是,测试驱动器您的发展。所以,本质上你是从测试开始的。它会失败,你会写代码,直到测试通过。所以这是由你的要求驱动的,但你要去收集这些东西。你决定你的应用/功能需要做什么,编写测试,然后编码,直到它通过。当然,还有很多其他的技术,但这只是关于TDD世界中典型思想的一个简短陈述。
我经常为第三方API编写测试。这样,当API更新时,我知道我是否会打破。
认为。阅读代码。自问:例如这个指针可以在这里永远不为NULL吗?如果在初始化之前调用此方法会发生什么?
不要做出假设如“这个文件将永远在那里”。测试。
想想边缘的情况下,边界,负值,溢出...
错误往往是由集群进行分组。当你找到一个时,环顾四周。在其他位置寻找同样的错误。
将您的想法设定为测试的实际目标:查找错误。
在想象什么可能会导致您的程序失败时很有创意。
您的测试必须找到错误,而不是确认您的程序是否正常。
我认为这是一个有用的技术:
参考:丽莎(陵)刘,伯特兰·迈耶和 贝恩德·舍勒,使用合同和布尔查询,提高 质量自动测试生成,在的程序中TAP:测试 和证明,ETH苏黎世,2007年2月5-6日,编辑。尤里·古列维奇和 伯特兰·迈耶,计算机科学,Springer- 出版社讲义,2007年
THX,我想建立最常见的usecases应该帮助我很多 – terjetyl 2009-01-07 00:26:37