存储过程的测试心得

上一篇 / 下一篇  2012-03-28 20:19:33 / 天气: 大风 / 心情: 郁闷 / 精华(1) / 置顶(1) / 个人分类:测试技术

    昨天看到51testing上有个帖子说讨论下存储过程的测试。在存储过程这一方面,我算是做得不少了,基本上70%的工作是关于存储过程测试的。于是第一次在51testing上发表了自己的第一份见解。在帖子上简单的说下了存储过程测试的进行和需要注意的几个地方。

    今晚,趁着这难得的闲暇稍微详细说下存储过程测试的过程吧!

    存储过程测试主要有两方面内容。一个是业务逻辑,也就是实现功能。其次是性能方面,寻求最优的SQL语句。

     ⑴:业务逻辑

     给你一堆存储过程放在数据库里,你需要去测试它是否实现了该实现的功能,未出现多余的“功能”;获取到了想要的数据,未得到冗余的数据。由于数据获取到后是需要进行传输的,如果有冗余的数据,虽然在获取的时候能够处理掉,但是会给服务器造成很大的压力,久而久之,难免会出现瓶颈。再者,对于一系列的存储过程,你需要看它是否按照需求完成了所需要的功能,是否能够把一系列的流程跑通。


对于业务逻辑方面的测试,能够在数据库里执行该语句,通过传入一些参数后能够进行手动的测试。说到这,大家肯定会问是否能够实现自动话测试吧?当然,这里有一定的技巧。我是通过C#语言来简单的实现了。通过ADO.NET调用存储过程,传入一些参数,执行存储过程就能够通过点击一个按钮就把所有的存储过程跑完了。在这个过程,需要收集的数据是一个难点,因为你需要这条数据一直能用下去。测试数据库并不是你一个人在用,所以这条数据得很灵活,需要仔细了哦,不然会经常跑不通。

为了再智能点,就是不需要自己去点某个按钮就能自动执行所有的存储过程。当然就是利用开机自动运行了。有个第三方工具:Nunit。你只需要把存储过程代码写好,编译好后,加载进去,点击执行就能够一次性跑完代码,跑不通的会有颜色提示。这个工具其实看似简单,里面还有很多的功能,本人不才,未能发掘到更多,只是简单的利用了跑代码而已。把Nunit结合另外几个插件使用,如:Nant、NUnit2Report、nantcontrib。这几个一起使用完全可以架构出一套自动话测试平台。具体如何进行,请看下回。

     ⑵:存储过程的性能。

     存储过程是由SQL语句经过一些修饰而来的,说到性能,也就是sql语句的性能了。一条SQL语句的性能有很多地方能得出来。有经验的同志可以一眼就能看出大部分SQL语句的性能高低。所以,很简单的一个方法就是肉眼观看。如今,很多软件都支持查看SQL语句运行的时间,从时间上也可以很直观的看出SQL语句的性能。在相同的外界环境下,时间越短,显然效率是越高的。依稀记得在51testing上有一篇短文上介绍了一条语句,可以直接在oracle是sqlplus上执行后可以直接查看出SQL运行的时间,哎,记性不好,忘记了,大家应该可以搜出来。

查看SQL语句的执行时间,有很多方法,PL/sql就会显示SQL语句的执行时间。你也可以通过ado来调用存储过程来查看SQL语句的执行时间,也是很容易实现的。

     在测试领域工作了一年多了,终于发现自己有点作为了。如今还在为工作的事情感到担心,其实,有时间可以多做些总结什么的。所以,潜水这么久,第一发文来记录自己的测试工作和发表自己的工作心得吧。希望能找到份好工作,也希望能早点走出阴影。


TAG: 存储过程测试

心与梦的会晤的个人空间 引用 删除 秋爽   /   2013-07-26 15:39:28
5
引用 删除 fangxin456   /   2013-06-22 00:14:46
5
xiaoshi_2011的个人空间 引用 删除 xiaoshi_2011   /   2012-05-22 14:34:17
我对数据库的知识仅限于增删改查,对存储过程还是不懂,看来还是要下功夫
引用 删除 cyqmickey   /   2012-05-21 17:16:43
1、通过C#语言实现通过ADO.NET调用存储过程,实现点击一个按钮执行所有的存

在数据库里调用所有的存储过程可以将写好的存储过程放到一个package里,在包里调用每个存储过程时带上该存储过程的参数,最后执行该package就可以达到调用所有的存储过程
zhangying51test的个人空间 引用 删除 zhangying51test   /   2012-05-21 11:32:13
1
NINA_Leong的个人空间 引用 删除 NINA_Leong   /   2012-05-17 13:25:45
5
阿默的个人空间 引用 删除 amo666   /   2012-05-13 11:36:53
5
Zeech_Lee的个人空间 引用 删除 591745293   /   2012-05-11 21:12:27
多谢支持。多谢。。。
原帖由545511360于2012-05-07 10:55:09发表
好文章就要顶
545511360的个人空间 引用 删除 545511360   /   2012-05-07 10:55:09
好文章就要顶
引用 删除 mick   /   2012-04-01 12:42:18
很好,但是把下面两个问题详细讲解就好了:
1、通过C#语言实现通过ADO.NET调用存储过程,实现点击一个按钮执行所有的存储过程。
2、Nunit结合另外几个插件使用,如:Nant、NUnit2Report、nantcontrib。这几个一起使用完全可以架构出一套自动话测试平台
还有C#通过ADO.NET 调用存储过程,执行之后在那里能看到执行结果呢?
Zeech_Lee的个人空间 引用 删除 591745293   /   2012-04-01 09:38:08
时间有限啊!最近忙死了。期待下篇吧!
原帖由fuwu527751246于2012-03-31 20:06:10发表
能来点实际的吗?比如弄个实际过程中的存储过程,然后实际分析下,相信这是大多数人的心声,希望小小的满.
^_^往事随风^_^ 引用 删除 fuwu527751246   /   2012-03-31 20:06:10
能来点实际的吗?比如弄个实际过程中的存储过程,然后实际分析下,相信这是大多数人的心声,希望小小的满足下
^_^往事随风^_^ 引用 删除 fuwu527751246   /   2012-03-31 20:03:42
3
耐心的个人空间 引用 删除 耐心   /   2012-03-31 15:18:08
写的挺好的,但是不会学以致用啊,还望指导
carry1986的个人空间 引用 删除 carry1986   /   2012-03-31 10:37:17
写的挺好的,还真没有那么深入的测试过存储过程。
学习学习。。
carry1986的个人空间 引用 删除 carry1986   /   2012-03-31 10:36:36
5
abbott 引用 删除 dj7491916   /   2012-03-30 21:22:25
支持
abbott 引用 删除 dj7491916   /   2012-03-30 21:22:11
5
xin_晴的个人空间 引用 删除 xin_晴   /   2012-03-30 13:52:40
您好,我是51Testing软件测试网的编辑,您的本篇博文被推荐至51Testing软件测试网首页发表:http://www.51testing.com/html/12/n-810712.html
感谢您关注并支持51Testing博客,期待您更多的优秀原创博文。
尤尤 引用 删除 abc530303519   /   2012-03-29 15:18:38
5
 

评分:0

我来说两句

我的栏目

日历

« 2024-03-25  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 5366
  • 日志数: 4
  • 建立时间: 2011-07-27
  • 更新时间: 2018-09-13

RSS订阅

Open Toolbar