互帮互助 开发提测一个存储过程,验收是检查是否正确,一般大家怎么测试?

匿名 · 2020年01月17日 · 3090 次阅读

开发提测一个存储过程,验收是检查是否正确,一般大家怎么测试?
1、测试点
2、检验方法
3、测试策略

最佳回复
匿名 #1 · 2020年01月23日
EasilyTest 回复

就是这么测试的;
然后具体看了下逻辑,发现了个边界问题,数组边界错误;
接口层其实也提测了,但是作为另一条需求,对于存过的提测之前也比较少,所以没有一个相对标准的做法,才抛出来问问大家,至于性能方面,因为这个调用的频率是每日一次,应该还好的。

在另一个地方看到有这个回复,感觉还比较完整:
sql 存储过程测试:1,校验入参和出参;2,校验 SQL 逻辑;3,优化 SQL 性能。
楼主文章涉及了第一点,其实我们最重要是第二点,最难得是第三点。
我的理解和测试是,在充分读懂要测试的 SQL 存储过程,将它的 SQL 逻辑,一点点分解,然后自己写 SQL 校验所测试得到的数据是否和开发的 SQL 逻辑得到的数据能一致,这个还是要多提高 SQL 能力。
至于 SQL 性能,很多开发的 SQL 存储过程有可能会出现冗长,在你的能力范围内给出响应更快的 SQL,尤其是当 SQL 出现索引要重点注意。

共收到 10 条回复 时间 点赞

数据库调存过呗,看结果和预期是否一致

看业务吧,如果业务不稳定,迭代很快,又有分布式高并发。我会丢一句 “【强制】禁止使用存储过程,存储过程难以调试和扩展,更没有移植性。” 给开发。(前提是开发不是数据库大神哈,是大神你会被打死)
如果比较稳定的领域模型,看存储过程做的是什么功能,有没有什么性能指标,再根据需求来。

很少有单独甩个存储过程来给你测试的,如果有,说明你们测试资源很丰富。。

开发自测

理解业务是解决一切问题的根源,我不信懂业务逻辑还需要问测试点,无非就是让开发讲清楚入参出参分别是什么意思而已

槽神 回复

业务不是万能的,如果懂业务就能测试的话,那产品经理就可以直接干测试的活了。有些代码方面注意的点时需要开发提出来的

王加 回复

业务不是万能,但是没有业务万万不能;代码方面注意的点也是需要结合业务角度出发分析。

王加 回复

产品经理不能直接干测试的活的原因大约就是缺乏断章取义来 dis 别人观点的能力吧

还有直接提测存储过程的,如果你是做单元测试,当我没说。如果要测试的话:
1、看读写的数据是否正确
2、数据是否可以重复读写
3、存储过程执行中报错,是否会回档
4、各种类型的参数
5、分布式读写
实际上这样测试意义不是很大,投入/付出不成正比。应该怼回去。收益最高的,是以接口为单位的提测。

1、对调用如参数组合进行覆盖,观察数据表读写是都正常(功能验收)
2、尝试输入错误入参数,注入异常,观察数据的一致性和事务的是否正常(异常验收)
3、尝试高频调用,观察 DB 测内存 CPU 开销,及早发现定位性能瓶颈,这样可以为上层调用推荐合理的并发和隔离策略(性能验收)

匿名 #1 · 2020年01月23日
EasilyTest 回复

就是这么测试的;
然后具体看了下逻辑,发现了个边界问题,数组边界错误;
接口层其实也提测了,但是作为另一条需求,对于存过的提测之前也比较少,所以没有一个相对标准的做法,才抛出来问问大家,至于性能方面,因为这个调用的频率是每日一次,应该还好的。

在另一个地方看到有这个回复,感觉还比较完整:
sql 存储过程测试:1,校验入参和出参;2,校验 SQL 逻辑;3,优化 SQL 性能。
楼主文章涉及了第一点,其实我们最重要是第二点,最难得是第三点。
我的理解和测试是,在充分读懂要测试的 SQL 存储过程,将它的 SQL 逻辑,一点点分解,然后自己写 SQL 校验所测试得到的数据是否和开发的 SQL 逻辑得到的数据能一致,这个还是要多提高 SQL 能力。
至于 SQL 性能,很多开发的 SQL 存储过程有可能会出现冗长,在你的能力范围内给出响应更快的 SQL,尤其是当 SQL 出现索引要重点注意。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册