清风随雨 发表于 2009-8-17 15:07:32

MIS系统数据库测试方法

针对项目的数据库进行测试,如何通过测试得到项目真正需要的数据库。
我只能谈下个人的工作经验,如有不同意见,还请指出。
我个人认为,数据库测试应从以下几个方面入手:
1、数据库的一致性
   首先,是对数据库基础数据结构的验证工作,即数据库脚本是否满足数据库设计说明书、是否满足行业标准,检查项包括:表名、字段名、数据类型、数据长度、数据精度、主外键约束等;
   其次,数据库的一致性是指数据在数据库的各个表中是否一致。如,多表中同一字段的值是否一致。尤其是要注意对于同一数据是否存在多入口现象;
   最后,要注意数据的修改和删除等操作,数据库中的同一数据是否能够同步更新,有主外键关系、归属关系的数据是否能够同步删除(如:上级数据删除,而下级数据仍然存在于数据库中,将形成垃圾数据,甚至因统计算法不同而造成系统输出错误的运算结果);
2、防止数据过多的冗余
数据冗余在系统实现中是不可避免的问题,有时会为了提高系统的运行效率或降低复杂度而人为的增加数据冗余;但如果冗余过大,将严重影响系统性能以及增加破坏数据一致性的风险;
3、数据安全性
数据安全性分为两种,其一,指在正常的业务操作中,是否会出现误删、误修改数据的情况;其二,是否存在数据的非法访问,包括业务逻辑的权限限制以及数据库用户的权限限制问题;
4、大数据量测试
主要考虑在大数据量的情况下,是否会出现数据丢失,事物是否回滚,数据一致性能否得到保障,系统响应时间等问题;
5、针对数据存储、数据中间结果的验证
面对复杂的系统,往往数据处理不是一步到位的,而是通过多个步骤,分布计算存储,这时就要去验证数据是否按照设计要求存放在指定位置,是否正确,有无缺失,中间结果是否能够按设计要求生成并存储等;
6、结合业务逻辑验证数据库的合理性
   主要包括,数据类型、长度、精度是否满足业务需要,各种标示性字段,是否能够按照设计要求判别等;
7、数据库的性能测试
   主要包括数据库的物理调优,索引类型是否合理、各种sql语句的优化、数据的存储应用能否按照业务使用频率以及业务逻辑规则而设计等等,这条需要有深厚的数据库应用及设计分析能力。

   数据库是信息管理系统的基础,一个管理系统的成败,可以说取决于数据库的优良,因此,数据库知识应该是我们测试人员必须掌握的技能,在此,我希望能够把自己的经验与大家分享,也期待大家针对不同的意见与我交流,谢谢!

[ 本帖最后由 清风随雨 于 2009-9-4 10:42 编辑 ]

maoyanhuabihai 发表于 2009-8-18 22:46:34

楼主总结的很好,看了很是受益,谢谢楼主!顶一下!

Jenny_lin 发表于 2009-8-19 09:34:51

很详细,谢谢分享

彦羽de心 发表于 2009-8-19 10:45:14

测试时还需要对数据库进行测试吗?
不过觉得LZ写得很仔细,谢谢,支持一下!

清风随雨 发表于 2009-8-19 12:16:32

回复 4# 的帖子

如果是简单的界面测试,就不需要测试数据库。
但是深入的功能测试,则必须关注数据库中的各种问题,你会发现好多Bug是由于数据库中的数据不正确、标识字段值不正确、数据不一致、表丢失、字段丢失等原因造成的。与其在后续工作中通过界面发现此类Bug,不如直接控制Bug产生的源头。

投缘 发表于 2009-8-19 12:27:21

不错,学习

lu663 发表于 2009-8-19 14:14:58

问题是1不知道数据库的标准2直接用数据库语言的话与程序的所用的是不是对数据库有同样的负载这个怎么判断啊

lu663 发表于 2009-8-19 14:15:40

有时候根本不知道一个搜索时放在数据库还是在前台,不好每个都问开发的?

月上百合 发表于 2009-8-19 14:32:27

数据库的确是需要测,但是,说实话我没有涉及到楼主说的哪些。有时候发现问题呢,是牵扯到数据库的时候也是开发去处理啦。

清风随雨 发表于 2009-8-19 16:48:05

回复 7# 的帖子

答问题1:要求提供数据库设计说明书以及数据流文档
答问题2:看业务的复杂度了。如果是简单的查询语句看不出来差别。如果一项独立完成业务涉及大量数据频繁交互,如:需要从多表中提取数据,并将数据进行加工,之后根据加工结果再次从数据库中提取数据并加工,如此往复。这中间不但要考虑查询代码量同时要考虑返回结果集,如果交互过多,势必造成网络传输量增大。遇到这种业务就建议使用存储过程。其一,可以降低网络传输量,整个业务处理过程全部在服务器完成,仅对客户端返回最终结果集;其二,为保证数据的一致性和正确性,如果该项业务在执行中发生中断,可以回滚事务。但是如果所有业务逻辑在程序中实现,发生中断后将破坏数据的一致性。

无_花_果 发表于 2009-8-20 16:02:47

学习中

宝宝测试 发表于 2009-8-27 17:51:40

我觉得一个ERP软件最需要测试的就是数据库,
有些开发人员频繁的连接数据库,会导致数据库的负担无限的增加,从而软件运行奇慢无比。

fengyingwel 发表于 2009-8-27 20:00:25

学习中~~~~·

清风随雨 发表于 2009-9-4 10:46:44

原标题为“如何对数据库进行测试”,好像有点求助的意思,结果竟然没几个人进来,难道是不知道怎么回答数据库测试方面的问题?
没办法,改下标题,希望更多的同行能够进来,大家一起讨论。

mipHD 发表于 2009-9-10 21:07:31

学习~~~不过还是不清楚~~~

goopy 发表于 2010-4-7 13:39:08

:lol

jidianzixuan 发表于 2010-5-6 11:28:15

是在数据库中改数据,执行SQL语句来测试吗?
能不能针对每一种方法,列举一列啊。最好是带测试用例那种~
努力学习中……

peag 发表于 2010-5-6 12:05:15

学到了一些东西,谢了Lz

msnshow 发表于 2010-5-6 23:31:33

全理论

yttself 发表于 2012-6-13 10:53:58

学习了,谢谢分享
页: [1]
查看完整版本: MIS系统数据库测试方法