51Testing软件测试论坛

标题: 如何针对数据库进行有效性测试?(09-04-20)(获奖名单已公布) [打印本页]

作者: 默默巫    时间: 2009-4-20 15:33
标题: 如何针对数据库进行有效性测试?(09-04-20)(获奖名单已公布)
如何针对数据库进行有效性测试?

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



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



相关文章:

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

Robot进行数据库的并发测试

数据库设计中的敏捷方法

更多内容请点击>>>
作者: icilwendyzhou    时间: 2009-4-20 22:32
标题: 回复 1# 的帖子
对数据库的测试,指的是对表的测试吗?
sql 可以正确的做insert/update/delete table操作。
数据库的表可以保存所定义的长度.
作者: o06v90o    时间: 2009-4-21 09:18
标题: 占个位置等大家回答
貌似对能力要求很高.
作者: yolander    时间: 2009-4-21 11:53
原帖由 icilwendyzhou 于 2009-4-20 22:32 发表
对数据库的测试,指的是对表的测试吗?
sql 可以正确的做insert/update/delete table操作。
数据库的表可以保存所定义的长度.

除了简单的增删改查,对表的每个字段还有定义的字符类型和精度的测试呢,对字符类型就需要区分有效等价类和无效等价类,对精度测试需要考虑边界值分析
没有单独针对数据库进行过测试,但是之前测试过的系统是有使用oracle数据库的,不清楚单独测试数据库的有效性是怎么个概念,很想学习一下
作者: dream_cui    时间: 2009-4-21 16:43
先占个座,总结完了发上来
作者: kewangwang    时间: 2009-4-21 21:15
测试新手,来学习前辈们的经验来了
作者: yzylion    时间: 2009-4-22 09:52
先占个座位,慢慢看,写好了发上来
作者: ANDYL    时间: 2009-4-22 16:49
新来的,学习您们的经验
作者: carry1986    时间: 2009-4-22 17:34
针对数据库进行有效的测试
个人感觉应该是数据的正确性,增删改查是必需的,还要检查每个字段中的边界值.
呵呵 这是个人理解,让高手评价...
作者: rolei    时间: 2009-4-22 17:36
标题: 数据库?
是数据库产品?还是数据库应用?

1、数据库产品
接触过不少数据库产品,没测过,不敢妄言;

2、数据库应用--应用数据库的目的在于对于数据存取的有效管理

针对数据库的操作:增、删、改、查,以及基于此的数据库性能表现。

不论是C/S还是B/S结构的系统,使用到数据库时,对于测试人员来讲,一般采用的测试方法是黑盒测试,也就是通过页面展现对数据库数据的管理进行验证,这样的做的优点是省时省力,缺点是针对数据不能有效的发现深层次的问题,特别是在大量运用到数据分析统计的系统中。

可采用的改进方法:
数据库测试尽可能早的进行,不要等到系统实现了才去跟据页面测试数据库的应用。
数据操作由简到繁,数据验证采用页面展现和直接操作底层数据库的方式,以验证数据正确性。

对测试人员的要求也相对较高。

1)了解数据库特性。
a、了解数据库的特性,跟据系统数据管理的需要选择正确的数据库做为系统支持;
b、了解数据库的安装、连接、配置。如果不会这些,也就谈不上去测试数据库的应用;
c、熟悉数据库的参数设置及调优,不同的数据库差别很大。这些特性会对数据库的使用,特别是性能方面造成很大的影响;(性能测试最用得着)
d、熟练操作SQL,可以方便的进行数据库数据的查询和修改;(造假数据时最用得着)
e、如果可能,了解数据库固有的问题,会能帮助你暴露问题、有效进行测试;数据库本身就是个系统,其稳定性比较高,但是问题总是会存在。

2)进行有效的数据库设计评审--首先得有数据库设计
a、主要是针对设计的有效性,如字段长度是否合适,有没有主、外键,主外键约束是不是合理等;(对数据库技能方面的要求比较高,请数据库设计方面的专家典评下,再不行就找本数据库方面的书恶补下)(曾见过某个系统用到的一个字段在数据库的十几张表中都存在,结果造成数据更新操作异常繁琐且数据一致性混乱)
b、数据库设计与页面展现的一致性,也就是页存取操作的数据属性与数据库中的定义是否一致,主要是异常处理;(建议采用页面错误处理和库据库自身设计处理两种方式进行)

3)测试数据库的性能
数据库的性能调试会严得影响到系统相关的应用,也就需要针对数据库进行相应的性能测试和性能调优。
如果你不是数据库方面的专家,建议不要改动数据库默认设置,这一部分的工作最好是和数据库系统方面的专家一起进行。因为数据库的性能不是将某一个参数加大就能解决的,参数设置不当反而会造成系统性能更差。

4)结合页面展现,直接操作数据库验证数据的有效性和正确性。

[ 本帖最后由 rolei 于 2009-4-28 15:52 编辑 ]
作者: 七明芝    时间: 2009-4-22 20:46
不太明白什么叫针对数据库进行有效性测试?
不过,SQL的增删改查,数据字段的定义 之类的测试应该是做数据库软件人的事情吧?跟我们所测的软件没什么关系的吧??
我想有效性是不是指在所测应用程序上做了关于数据的操作,数据库中的数据能否发生正确的改变。比如,插入一个订单,那要查看数据库中插入后的订单信息是否和录入的信息一致。
作者: 七明芝    时间: 2009-4-22 21:00
如果是这样的话,可以在有数据增删改查操作的用例 加上查看数据库的步骤。可以用相应的SQL操作,人工查看数据库中显示的数据和所测应用程序显示的是否一致,是否符合需求。
自动化测试中,可以插入数据库检查点。
作者: 佐伊    时间: 2009-4-23 13:45
学习一下。
作者: jiyan111    时间: 2009-4-23 14:07
数据库的有效性测试不是很明白,是测试数据的完整性和一致性吗?望高手们出来指点指点
作者: wadextzy    时间: 2009-4-23 16:49
原帖由 七明芝 于 2009-4-22 20:46 发表
不太明白什么叫针对数据库进行有效性测试?
不过,SQL的增删改查,数据字段的定义 之类的测试应该是做数据库软件人的事情吧?跟我们所测的软件没什么关系的吧??
我想有效性是不是指在所测应用程序上做了关于数据 ...

同意,初级的数据库测试就是测数据是否正确的录入数据库内,高级一点的嘛,那就涉及的东西比较多了,我对数据库也就了解这么点
作者: 51whl    时间: 2009-4-23 16:53
标题: 对数据库测试应该分类
对数据库测试明确你要测试的系统的体系架构是什么样,是C/S还是B/S的,他们有共同点和不同点,比如对用户的增删改查,验证数据库是不是里是不是成功修改了,增加一条数据,数据库是不是增加了一条数据,还有对数据库一些事务的验证,比如对银行来说你取钱没有成功数据库是不是有回滚操作啊,再就是性能的测试了
作者: Darling晚安    时间: 2009-4-23 17:13
新人,学习下...
作者: komado    时间: 2009-4-23 23:24
原帖由 七明芝 于 2009-4-22 20:46 发表
不太明白什么叫针对数据库进行有效性测试?
不过,SQL的增删改查,数据字段的定义 之类的测试应该是做数据库软件人的事情吧?跟我们所测的软件没什么关系的吧??
我想有效性是不是指在所测应用程序上做了关于数据 ...


这一定是与某一软件相关的数据库。
“有效性”就指的是可用性,要可用就必须保证合法性和正确性。
数据库的有效性测试就是相应数据库中的所有内容,包括
它与相关软件是否能有效关联(这是重点要测的);
在数据库中对相应软件信息的所有操作是否能正常进行(包括 增、删、改、查、备份与还原等);
不同用户访问数据库的的权限等(安全性也是保证有效性的的一个重要方面)。
作者: 猫猫的拖鞋    时间: 2009-4-24 09:04
页面的操作直接影响数据库。

一般手工测试人员,都会在页面在对数据库进行操作,返回的结果即可看到是否正确(这个不能绝对,因为有些数据不一定显示在页面上),这个方法是对数据库进行最简单的操作了。
深层次点的会研究数据库结构,主外键关联?使用的类型是否过大或者过小?表结构是否合理,是否用最少的表建立实现一系列操作?哪些地方需要用到存储过程,哪些地方又需要用到索引?存储字符长度?
更深层次点的恐怕就是专业到不行的DBA了,通过经验和专业的软件去分析和得出数据库结构的性能,查找瓶颈漏洞来优化和填补,防止大数据量导致数据库性能低下活DOWN机从而影响用户操作。
作者: lzpcn    时间: 2009-4-24 10:44
标题: 数据库测试
最近做一些数据库方面的测试,主要对数据索引方面(insert、select),数据不同表结构测试(主要考虑不同表结构下的数据库大小),表结构不同占用磁盘空间也不一样,有近40倍的差距,同时也会影响表的查询反映时间
作者: 七明芝    时间: 2009-4-25 01:49
学习了,我也是新手,谢谢各位。。。
真不好意思在前面大放厥词,我悔过,悔过。。。。

[ 本帖最后由 七明芝 于 2009-4-25 01:53 编辑 ]
作者: wldtzzming    时间: 2009-4-28 09:40
study
作者: 贝贝酷    时间: 2009-4-28 09:57
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进行测试。
作者: bently    时间: 2009-4-28 22:44
是指对数据库产品还是数据库应用的测试,如果是对产品,就不敢说了,国内貌似没有这样的厂家吧?如果是对数据库应用,则主要关注:
功能方面:
表数据的增、删、改、查是否正确;数据之间的关联是否遗漏;是否符合字段定义规则
性能方面:
是否存在死锁;程序是否采用正确的索引;数据文件定义是否考虑自动扩展、分part等等
安全方面:
是否屏蔽超级用户;数据库用户是否有权限控制;数据库用户密码是否加密
作者: wackyboy    时间: 2009-5-20 10:59
学习了 呵呵
作者: 清风随雨    时间: 2009-8-17 12:35
标题: 如何针对数据库进行有效性测试
这个题目比较笼统,我个人理解的就是针对项目的数据库进行测试,如何通过测试得到项目真正需要的数据库。
我只能谈下个人的工作经验,如有不同意见,还请指出。
我个人认为,数据库测试应从以下几个方面入手:
1、数据库的一致性
   首先,是对数据库基础数据结构的验证工作,即数据库脚本是否满足数据库设计说明书、是否满足行业标准,检查项包括:表名、字段名、数据类型、数据长度、数据精度、主外键约束等;
   其次,数据库的一致性是指数据在数据库的各个表中是否一致。如,多表中同一字段的值是否一致。尤其是要注意对于同一数据是否存在多入口现象;
   最后,要注意数据的修改和删除等操作,数据库中的同一数据是否能够同步更新,有主外键关系、归属关系的数据是否能够同步删除(如:上级数据删除,而下级数据仍然存在于数据库中,将形成垃圾数据,甚至因统计算法不同而造成系统输出错误的运算结果);
2、防止数据过多的冗余
  数据冗余在系统实现中是不可避免的问题,有时会为了提高系统的运行效率或降低复杂度而人为的增加数据冗余;但如果冗余过大,将严重影响系统性能以及增加破坏数据一致性的风险;
3、数据安全性
  数据安全性分为两种,其一,指在正常的业务操作中,是否会出现误删、误修改数据的情况;其二,是否存在数据的非法访问,包括业务逻辑的权限限制以及数据库用户的权限限制问题;
4、大数据量测试
  主要考虑在大数据量的情况下,是否会出现数据丢失,事物是否回滚,数据一致性能否得到保障,系统响应时间等问题;
5、针对数据存储、数据中间结果的验证
  面对复杂的系统,往往数据处理不是一步到位的,而是通过多个步骤,分布计算存储,这时就要去验证数据是否按照设计要求存放在指定位置,是否正确,有无缺失,中间结果是否能够按设计要求生成并存储等;
6、结合业务逻辑验证数据库的合理性
   主要包括,数据类型、长度、精度是否满足业务需要,各种标示性字段,是否能够按照设计要求判别等;
7、数据库的性能测试
   主要包括数据库的物理调优,索引类型是否合理、各种sql语句的优化、数据的存储应用能否按照业务使用频率以及业务逻辑规则而设计等等,这条需要有深厚的数据库应用及设计分析能力。

   数据库是信息管理系统的基础,一个管理系统的成败,可以说取决于数据库的优良,因此,数据库知识应该是我们测试人员必须掌握的技能,在此,我希望能够把自己的经验与大家分享,也期待大家针对不同的意见与我交流,谢谢!
作者: dlh2002    时间: 2010-7-7 17:32
啊,天啊,我又来晚了,这个测试用Perl来做比较好,感觉很多人理论熟的一塌糊涂啊,羡慕中,CMMI看来很牛
上面很多人谈到测试插入什么,那不是测试范围,那是人家数据库厂商的事
作者: k111-7    时间: 2010-11-19 00:01
工具为先,架构决定策略
作者: 51yunwu321    时间: 2011-1-19 14:18
学习,有什么专用工具没
作者: lvweijue2006    时间: 2011-2-15 14:50
最近负责的项目数据库出现严重问题,导致应用访问慢甚至当掉。原因有二:数据库服务器资源不足,导致配置不合理;应用程序有bug,产生大量冗余数据。
作者: lvweijue2006    时间: 2011-2-15 15:00
最近负责的项目数据库出现严重问题,导致应用访问慢甚至当掉。原因有二:数据库服务器资源不足,导致配置不 ...
lvweijue2006 发表于 2011-2-15 14:50

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




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2