我正在编写一个简单的Web应用程序,使用Linq to Sql作为我的数据层,因为我非常喜欢Linq2Sql。我最近一直在读DDD和TDD,想要试一试。
首先,我发现Linq2Sql和DDD并不太好。我的另一个问题是找到测试,我实际上发现很难定义好测试,所以我想问一下,发现好测试用例的最佳技术是什么。
答案 0 :(得分:5)
嗯,按照TDD的标准解释,测试驱动您的开发。所以,从本质上讲,你从测试开始。它将失败,您将编写代码,直到该测试通过。所以它是由你的要求驱动的,但是你要去收集它们。您决定您的应用程序/功能需要做什么,编写测试,然后编码直到它通过。当然,还有很多其他技术,但这只是关于TDD世界中通常所想的内容的简短陈述。
答案 1 :(得分:5)
测试案例发现更像是一门艺术而非科学。然而,简单的指导方针包括:
有几本关于如何编写测试用例的书籍,但除非您在需要记录测试用例的大型组织中工作,否则最好的办法是考虑代码中您不喜欢的所有部分(这不是“纯粹的”)并确保您可以彻底测试这些模块。
答案 2 :(得分:1)
<强>思即可。阅读代码。问自己:例如这个指针在这里永远不会是NULL吗?如果在初始化之前调用此方法会发生什么?
不要做出假设,例如“此文件将始终存在”。测试。
考虑边缘情况,边界,负值,溢出......
Bug通常按群集分组。当你找到一个时环顾四周。还要在其他位置查找相同类型的错误。
答案 3 :(得分:1)
将您的想法设定为测试的实际目标:查找错误。
想象一下会导致你的程序失败的事情,具有创造性。
您的测试必须找到错误,而不是确认您的程序是否正常。
答案 4 :(得分:0)
我经常为第三方API编写测试。这样,当API更新时,我知道我是否会破坏。
答案 5 :(得分:0)
我认为这是一种有用的技术:
Using contracts and boolean queries to improve quality of automatic test generation
参考:Lisa(Ling)Liu,Bertrand Meyer和 Bernd Schoeller,使用契约和布尔查询来改进 在 TAP:测试的程序中,自动测试生成的质量 和证据,苏黎世联邦理工学院,2007年2月5日至6日,编辑。 Yuri Gurevich和 Bertrand Meyer,计算机科学讲义,Springer- Verlag,2007。