这些天我正在写一些商业情报报告。数据是通过普通SQL SELECT语句获取的。语句变得越来越复杂。
我要报告的数据部分是业务关键型的。所以,如果我能做点什么来证明SQL语句的正确性和质量,我会感觉更好。
我知道对于应用程序代码,有一些方法可以做到这一点。但是,我可以做些什么来在SQL级别上实现这些目标呢?
提前谢谢。
发布于 2010-02-03 22:18:18
我不知道您可以做任何SQL级别的QA证明,因为您正在寻找查询的意图(语义),而不是语法上的正确性。
我会编写一个小的测试工具,它接受SQL语句并在已知的测试数据库上运行它,然后将结果与一组预期的参考数据(电子表格、简单的CSV文件等)进行比较。
为了获得额外的好处,请将其封装在单元测试中,并使其成为连续构建过程的一部分。
如果您使用电子表格或CSV作为参考数据,则可以与业务用户一起演练,以便在编写SQL之前捕获他们的需求(即测试驱动开发)。
发布于 2010-02-03 22:19:55
测试语句的正确性需要详细描述生成报告需求的逻辑,然后独立于SQL创建适当的测试数据集,根据需求构建,以确保正确的数据,并且只为每个测试用例选择正确的数据。
然而,在越来越复杂的条件下构建这些案例将变得非常困难-报告因不断变化的需求而臭名昭著。
发布于 2010-02-03 22:29:19
您还可以考虑捕获指标,例如运行每条语句的持续时间。您可以在应用程序级别执行此操作,也可以在每个SQL语句的开头和结尾写入审核表。如果您的语句封装在存储过程中,这将变得更容易,并且还可以用来监视谁在一天中的什么时间以及从哪里调用该过程。
https://stackoverflow.com/questions/2192496
复制相似问题