51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 23114|回复: 30
打印 上一主题 下一主题

如何针对数据库进行有效性测试?(09-04-20)(获奖名单已公布)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-4-20 15:33:54 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
如何针对数据库进行有效性测试?

如果你也有问题想提出来和大家一起讨论,请点击此处>>
说不定下期讨论的问题就是由你提出的哦,请快快参与吧!



获奖名单
奖项
获奖名单
奖励
答案链接
三等奖
rolei
100论坛积分
10#



相关文章:

数据库性能问题的定位方法之一

Robot进行数据库的并发测试

数据库设计中的敏捷方法

更多内容请点击>>>
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

31#
发表于 2011-2-15 15:00:51 | 只看该作者
最近负责的项目数据库出现严重问题,导致应用访问慢甚至当掉。原因有二:数据库服务器资源不足,导致配置不 ...
lvweijue2006 发表于 2011-2-15 14:50

所以对数据库进行有效性测试是必需的,个人觉得针对三方面:
1.数据一致性。由于数据是应项目而产生,因此在项目功能测试上必须把严。
2.大数据测试。项目每天产生的数据量较大,因此必要对数据库做相应的压力测试。
3.性能测试。90%数据库问题都是sql引起的,目前项目出现访问慢、数据冗余,原因就是sql语句性能不够好。因此针对sql设计、表设计作分析是很关键的。
回复 支持 反对

使用道具 举报

该用户从未签到

30#
发表于 2011-2-15 14:50:46 | 只看该作者
最近负责的项目数据库出现严重问题,导致应用访问慢甚至当掉。原因有二:数据库服务器资源不足,导致配置不合理;应用程序有bug,产生大量冗余数据。
回复 支持 反对

使用道具 举报

该用户从未签到

29#
发表于 2011-1-19 14:18:29 | 只看该作者
学习,有什么专用工具没
回复 支持 反对

使用道具 举报

该用户从未签到

28#
发表于 2010-11-19 00:01:23 | 只看该作者
工具为先,架构决定策略
回复 支持 反对

使用道具 举报

该用户从未签到

27#
发表于 2010-7-7 17:32:01 | 只看该作者
啊,天啊,我又来晚了,这个测试用Perl来做比较好,感觉很多人理论熟的一塌糊涂啊,羡慕中,CMMI看来很牛
上面很多人谈到测试插入什么,那不是测试范围,那是人家数据库厂商的事
回复 支持 反对

使用道具 举报

该用户从未签到

26#
发表于 2009-8-17 12:35:10 | 只看该作者

如何针对数据库进行有效性测试

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

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

使用道具 举报

该用户从未签到

25#
发表于 2009-5-20 10:59:46 | 只看该作者
学习了 呵呵
回复 支持 反对

使用道具 举报

该用户从未签到

24#
发表于 2009-4-28 22:44:14 | 只看该作者
是指对数据库产品还是数据库应用的测试,如果是对产品,就不敢说了,国内貌似没有这样的厂家吧?如果是对数据库应用,则主要关注:
功能方面:
表数据的增、删、改、查是否正确;数据之间的关联是否遗漏;是否符合字段定义规则
性能方面:
是否存在死锁;程序是否采用正确的索引;数据文件定义是否考虑自动扩展、分part等等
安全方面:
是否屏蔽超级用户;数据库用户是否有权限控制;数据库用户密码是否加密
回复 支持 反对

使用道具 举报

该用户从未签到

23#
发表于 2009-4-28 09:57:05 | 只看该作者
1.数据库完整性测试
    数据库完整测试是指测试关系型数据库完整性原则以及数据合理性测试。
    数据库完整性原即:
   主码完整性:主码不能为空;
        外码完整性:外码必须等于对应的主码或者为空。
    数据合理性指数据在数据库中的类型,长度,索引等是否建的比较合理。
    在项目名称中,数据库和数据库进程应作为一个子系统来进行测试。在测试这些子系统时,不应将测试对象的用户界面用作数据的接口。对于数据库管理系统(DBMS),还需要进行深入的研究,以确定可以支1持测试的工具和技术。
   比如,有两张表:部门和员工。部门中有部门编号,部门名称,部门经理等字段,主码为部门编号;员工表中有员工编号,员工所属部门编号,员工名称,员工类型等字段,主码为员工编号,外码为员工所属部门编号,对应部门表。如果在某条部门记录中部门编号或员工记录员工编号为空,他就违反主码完整性原则。如果某个员工所属部门的编号为##,但是##在部门编号中确找不到,这就违反外码完整性原则。
   员工类型如下定义:0:职工,1:职员,2:实习生。但数据类型为Int,我们都知道Int占有4个字节,如果定义成char(1).就比原来节约空间。
2.数据库容量测试
    数据库容量测试指通过存储过程往数据库表中插入一定数量的数据,看看相关页面是否能够及时显示数据。
    数据库容量测试使测试对象处理大量的数据,以确定是否达到了将使软件发生故障的极限。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。例如,如果测试对象正在为生成一份报表而处理一组数据库记录,那么容量测试就会使用一个大型的测试数据库,检验该软件是否正常运行并生成了正确的报表。做这种测试通常通过书写存储过程向数据库某个表中插入一定数量的记录,计算相关页面的调用时间。
    比如,在电子商务系统中,通过insert customer 往user表中插入10 000数据,看其是否可以正常显示顾客信息列表页面,如果要求达到最多可以处理100 000个客户,但是顾客信息列表页面不能够在规定的时间内显示出来,就需要调整程序中的SQL查询语句;如果在规定的时间内显示出来,可以将用户数分别提高到20 000 , 50 000, 100 000进行测试。
回复 支持 反对

使用道具 举报

该用户从未签到

22#
发表于 2009-4-28 09:40:25 | 只看该作者
study
回复 支持 反对

使用道具 举报

该用户从未签到

21#
发表于 2009-4-25 01:49:52 | 只看该作者
学习了,我也是新手,谢谢各位。。。
真不好意思在前面大放厥词,我悔过,悔过。。。。

[ 本帖最后由 七明芝 于 2009-4-25 01:53 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

20#
发表于 2009-4-24 10:44:56 | 只看该作者

数据库测试

最近做一些数据库方面的测试,主要对数据索引方面(insert、select),数据不同表结构测试(主要考虑不同表结构下的数据库大小),表结构不同占用磁盘空间也不一样,有近40倍的差距,同时也会影响表的查询反映时间
回复 支持 反对

使用道具 举报

该用户从未签到

19#
发表于 2009-4-24 09:04:38 | 只看该作者
页面的操作直接影响数据库。

一般手工测试人员,都会在页面在对数据库进行操作,返回的结果即可看到是否正确(这个不能绝对,因为有些数据不一定显示在页面上),这个方法是对数据库进行最简单的操作了。
深层次点的会研究数据库结构,主外键关联?使用的类型是否过大或者过小?表结构是否合理,是否用最少的表建立实现一系列操作?哪些地方需要用到存储过程,哪些地方又需要用到索引?存储字符长度?
更深层次点的恐怕就是专业到不行的DBA了,通过经验和专业的软件去分析和得出数据库结构的性能,查找瓶颈漏洞来优化和填补,防止大数据量导致数据库性能低下活DOWN机从而影响用户操作。
回复 支持 反对

使用道具 举报

该用户从未签到

18#
发表于 2009-4-23 23:24:29 | 只看该作者
原帖由 七明芝 于 2009-4-22 20:46 发表
不太明白什么叫针对数据库进行有效性测试?
不过,SQL的增删改查,数据字段的定义 之类的测试应该是做数据库软件人的事情吧?跟我们所测的软件没什么关系的吧??
我想有效性是不是指在所测应用程序上做了关于数据 ...


这一定是与某一软件相关的数据库。
“有效性”就指的是可用性,要可用就必须保证合法性和正确性。
数据库的有效性测试就是相应数据库中的所有内容,包括
它与相关软件是否能有效关联(这是重点要测的);
在数据库中对相应软件信息的所有操作是否能正常进行(包括 增、删、改、查、备份与还原等);
不同用户访问数据库的的权限等(安全性也是保证有效性的的一个重要方面)。
回复 支持 反对

使用道具 举报

该用户从未签到

17#
发表于 2009-4-23 17:13:47 | 只看该作者
新人,学习下...
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2009-4-23 16:53:08 | 只看该作者

对数据库测试应该分类

对数据库测试明确你要测试的系统的体系架构是什么样,是C/S还是B/S的,他们有共同点和不同点,比如对用户的增删改查,验证数据库是不是里是不是成功修改了,增加一条数据,数据库是不是增加了一条数据,还有对数据库一些事务的验证,比如对银行来说你取钱没有成功数据库是不是有回滚操作啊,再就是性能的测试了
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2009-4-23 16:49:21 | 只看该作者
原帖由 七明芝 于 2009-4-22 20:46 发表
不太明白什么叫针对数据库进行有效性测试?
不过,SQL的增删改查,数据字段的定义 之类的测试应该是做数据库软件人的事情吧?跟我们所测的软件没什么关系的吧??
我想有效性是不是指在所测应用程序上做了关于数据 ...

同意,初级的数据库测试就是测数据是否正确的录入数据库内,高级一点的嘛,那就涉及的东西比较多了,我对数据库也就了解这么点
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2009-4-23 14:07:05 | 只看该作者
数据库的有效性测试不是很明白,是测试数据的完整性和一致性吗?望高手们出来指点指点
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2009-4-23 13:45:59 | 只看该作者
学习一下。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-9-28 05:21 , Processed in 0.101858 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表