微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

您使用哪些最佳实践来测试数据库查询?

我目前正在测试我们的解决方案,该解决方案具有完整的“色域”层:UI,中间和无所不在的数据库.

在我到达当前团队之前,查询测试是由测试人员手动制作查询,理论上会返回一个结果集,存储过程应根据各种相关性规则返回,排序,你有什么.

这会产生针对测试人员查询错误的副作用,而不是针对相关的实际查询.

我建议实际使用一个已知的结果集,你可以推断它应该如何返回,因为你控制了存在的数据 – 以前,数据是从生产中提取,消毒,然后填充在我们的测试数据库中.

人们仍然坚持创建自己的查询来测试开发人员创建的内容.我怀疑还有很多人.在我看来,这根本不理想,只是不必要地增加了我们的测试足迹.

所以,我很好奇,您使用哪种做法来测试这样的场景,以及在不引入混乱数据的情况下,您可以获得最佳端到端覆盖的理想选择?

我遇到的问题是进行测试的最佳位置.我是否只是直接戳服务,并将该数据集与我可以从存储过程中提取的数据进行比较?我有一个粗略的想法,并且到目前为止已经取得了足够的成功,但我觉得我们仍然缺少一些重要的东西,所以我希望社区能够看到他们是否有任何有价值的见解可能有助于制定我的测试方法更好.

解决方法

测试存储过程将要求每个测试人员都有一个单独的db实例.这是一项要求.如果您共享环境,则无法依赖测试结果.他们将毫无价值.

您还需要确保在每次测试后将数据库回滚到其先前的状态,以使结果可预测且稳定.由于需要在每次测试后回滚状态,这些测试比标准单元测试需要更长的时间才能完成,所以它们可能是你想要运行一夜的东西.

有一些工具可以帮助您解决这个问题. DbUnit就是其中之一,我也相信微软有一个Visual Studio for Database Professionals工具,它包含对数据库测试的一些支持.

原文地址:https://www.jb51.cc/mssql/79030.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐