存储过程 (Stored Procedure) 是在大型数据库系统中 , 一组为了完成特定功能的 SQL 语句集 , 存储在数据库中 , 经过第一次编译后再次调用不需要再次编译 , 用户通过指定存储过程的名字并给出参数 (如果该存储过程带有参数) 来执行它 , 存储过程是数据库中的一个重要对象 ; 存储过程中可以包含 逻辑控制语句 和 数据操纵语句 , 它可以接受参数 , 输出参数 , 返回单个或多个结果集以及返回值 。
存储过程主要注意以下几点:
1、源数据正确性测试
⒉、落地表字段长度的检查是否大于等于源表字段长度
3、检查存储过程各个关联条件及数据的发散性测试
4、根据业务逻辑,各个业务场景正确性的测试
5、落地表数据发散性测试
6、存储过程性能测试
7、存储过程上下联动性测试
8、按存储过程输入输出字段值和逻辑要求全面严格覆盖。
9、从对其他数据和表影响的角度分析存储过程代码,涉及到了哪些表,操作过程是否影响其它数据,会否产生遗留数据。
10、从操作表涉及的数据量及性能要求,进行性能模拟真实测试。
从测试的真实性出发,尽量取得脱敏处理后的现网数据,很多意想不到的情况只能用现网千奇百怪的数据才能发现。你可能以为现网数据都是很规范的数据,现实可能会让你骨感到怀疑人生,但你的存储过程上线后就得生存在这种严酷的数据环境下。
存储过程的测试有其特殊性,表现在尽量将所有用例的预置数据都设置好,然后一次执行将所有用例结果都执行出来。这样做的目的也是为了尽量创造复杂的数据环境。如果一条条执行用例,发现复杂问题的机率基本与你无缘。所以测试的复杂性呈几何指数上升,也许你得自己写出一个长得多多多的测试存储过程,这涉及到造数据,各个用例数据的相互隔离......。
存储过程一般是软件的核心,慎重测试。