A-K*_*A-K 46 database sql-server unit-testing sql-server-2005 sql-server-2008
你如何对你的T-SQL进行单元测试?您使用哪些库/工具?
单元测试涵盖了多少百分比的代码,如何衡量?您如何确定首先进行单元测试的模块?
您认为您在单元测试线束上投入的时间和精力是否得到了回报?
如果您不使用单元测试,可以解释原因吗?
Kub*_*aun 21
你如何对你的T-SQL进行单元测试?您使用哪些库/工具?
我已尝试在许多语言中使用一些不同的框架来测试T-SQL,例如junit或nunit.我走这条路的原因是为了利用这些其他语言的丰富测试环境.例如,如果您使用nunit,它有一个很好的命令行和gui查看器来查看测试的状态,因为您使用.net编写测试它很容易挂钩到sql server.JUnit与许多商业和开源IDE环境(如NetBeans和IDEA)有很好的集成,并使T-SQL测试更像Java代码测试,这非常丰富.否定的是你不仅要编写T-SQL,还要编写java或.net来测试你的T-SQL.
我还使用了Ruby with Rake(它就像make或ant),并对sqlcmd进行了系统调用,以执行sql脚本,这些脚本在转换包含的测试中.脚本将值和字符串返回给ruby以通过或未通过测试.我最喜欢这种方法,因为它非常精简,容易让其他人接受.上面提到的其他路由要求开发人员使用.net或java,如果你有所有DBA类型可能很难克服,使用sql脚本方法的ruby更容易从我的经验中销售.DBA类型往往是开放的,能够像语言一样轻松获取脚本,而Ruby的学习曲线较低,脚本相对于.net或java类很容易运行.
单元测试涵盖了多少百分比的代码,如何衡量?
可能只有20%只是因为大多数数据库系统历史上都没有为它们创建测试,所以我正在创建复制过程中积极添加测试并添加测试,因为新的缺陷和增强功能出现了.
您认为您在单元测试线束上投入的时间和精力是否得到了回报?
数据库是大多数企业的基础.在我看来,它总是得到回报.如果您的企业容忍客户的垃圾和高故障率,那么没有任何测试可能不值得,因为它不是免费的.
如果您不使用单元测试,可以解释原因吗?
我很乐意看到是否有人想出一个不荒谬的答案.有点像你为什么不把你的孩子放在汽车座椅上开车..."他们花了太多钱"......"花太多时间把孩子放进去"......"没有它他是安全的"......"有什么可能出错的理由"......"没有足够的时间"所有这些都是bs.
是的,我知道可能有点极端,但是如果你有一个系统并且它带来了公司的价值,它应该联合测试,以帮助在问题成为生产问题之前解决.单元测试不是灵丹妙药,但它是我们必须尽力做到的一个工具.
总的来说,在结构化测试方面,大多数人都会给数据库一个免费的通行证.我不知道为什么会这样,但我已经在公司后见过它了.我很想看到这种变化.
| 归档时间: |
|
| 查看次数: |
8957 次 |
| 最近记录: |