SQL存储过程测试
文章平均质量分 82
测试道
这个作者很懒,什么都没留下…
展开
-
SQL存储过程测试(1)
许多基于Windows的系统都使用了SQL Server作为后台组件。待测程序(AUT:Application Under Test)或者待测系统(SUT:System Under Test)经常通过存储过程来访问数据库。对于这些应用场景,可以把SQL存储过程想象成应用程序的辅助函数。有两种基本的方法可以用来编写针对SQL存储过程的轻量级的自动化测试。 第一种方法是原创 2009-10-13 13:35:00 · 469 阅读 · 0 评论 -
SQL存储过程测试——使用BCP工具导入测试用例数据
问题 如何使用BCP从一个文本文件把测试用例数据导入到SQL表 设计 创建一个BCP格式的文件用于把想导入的文本文件信息映射到目标SQL表,然后把上述格式的文件作为参数传给命令行工具bcp.exe。 方案 假设SQL表定义如下: create table tblTestCases( caseID原创 2009-10-14 09:28:00 · 853 阅读 · 0 评论 -
SQL存储过程测试(4)——创建T-SQL测试套件
问题 如何创建一个T-SQL测试套件用于测试SQL存储过程。 设计 首无,通过插入大量测试平台数据准备好一个包含待测存储过程的底层数据库。接下来,使用一个SQL游标(cursor)遍历这个测试用例数据表。针对每个测试用例,调用待测存储过程并且取得它的返回值,把实际返回值与期望值进行比较,从而判定测试结果是通过与否,然后显示或保存测试结果。 方原创 2009-10-14 10:35:00 · 662 阅读 · 1 评论 -
SQL存储过程测试(2)——创建测试用例以及测试结果存储
问题 如何创建SQL数据库以及表结构以用来保存测试用例的输入数据和测试结果。 设计 编写T-SQL脚本,创建一个数据库然后创建一些表用来保存测试用例的输入数据和测试结果。如果想通过SQL认证的方式连接到上一步创建的数据库,则要创建一个专用的SQL登录账号,然后在查询分析器里或者通过osql.exe运行T-SQL脚本。 方案原创 2009-10-13 13:47:00 · 991 阅读 · 0 评论 -
SQL存储过程测试(5)——从T-SQL测试套件里把测试结果直接写入文本文件
问题 如何让T-SQL测试套件把测试用例结果直接写入文本文件 设计 使用ActiveX技术实例化一个FileSystemObject对象,然后通过OpenTextFile()和WriteLine()方法直接把测试结果写入文件。 方案 declare @fsoHandle int,@fileID int exec sp_OACr原创 2009-10-26 09:58:00 · 691 阅读 · 0 评论 -
SQL存储过程测试(6)——当待测存储过程返回行集的时候 如何判断测试结果是否通过
问题 当待测试存储过程返回SQL行集的时候,如何判断测试结果是否通过。 设计 首先,创建一个临时数据库表,然后,调用待测存储过程并取回返回的行数,把它放到临时表里,计算临时表的聚合校验和(aggregate checksum),并把这个值与期望的校验值进行比较。 方案 设想有一个名为usp_HireAfter()的待测存储原创 2009-10-26 10:33:00 · 719 阅读 · 0 评论 -
SQL存储过程测试(7)——当待测存储过程返回out参数时 如何判断测试结果是否通过
问题 如何测试返回一个out参数的存储过程。 设计 声明一个合适类型的变量,用于接受out参数,然后使用out参数调用待测存储过程。 方案 例如,设想包含待测存储的数据库有一个数据库表,这个表定义如下: create table tb1Employees( empID char(3) primary原创 2009-10-26 13:41:00 · 1172 阅读 · 0 评论 -
SQL存储过程测试(8)——当待测存储过程没有返回值的时候 如何判断测试结果是否通过
问题 如何测试没有返回值的存储过程。 设计 调用待测存储过程,然后计算该存储过程影响的对象的聚合校验和。把计算出来的校验和与期望的校验和进行比较。 方案 例如,设想待测存储过程要从tb1Employees表中删除特定的雇员记录: create procedure usp_DeleteEmployee @e原创 2009-10-26 14:27:00 · 1418 阅读 · 0 评论 -
SQL存储过程测试(9)——示例程序
此部分内容创建一个轻量级T-SQL测试套件,总共有3个脚本: 用于创建测试平台数据和待测存储过程的脚本 --======================--makeDbTestAndResults.sqluse mastergoif exists (select * from sysdatabases where name = DbTestAndResults原创 2009-10-26 20:31:00 · 454 阅读 · 0 评论