真不好意思在前面大放厥词,我悔过,悔过。。。。
[ 本帖最后由 七明芝 于 2009-4-25 01:53 编辑 ] :lol study 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进行测试。 是指对数据库产品还是数据库应用的测试,如果是对产品,就不敢说了,国内貌似没有这样的厂家吧?如果是对数据库应用,则主要关注:
功能方面:
表数据的增、删、改、查是否正确;数据之间的关联是否遗漏;是否符合字段定义规则
性能方面:
是否存在死锁;程序是否采用正确的索引;数据文件定义是否考虑自动扩展、分part等等
安全方面:
是否屏蔽超级用户;数据库用户是否有权限控制;数据库用户密码是否加密 学习了 呵呵
如何针对数据库进行有效性测试
这个题目比较笼统,我个人理解的就是针对项目的数据库进行测试,如何通过测试得到项目真正需要的数据库。我只能谈下个人的工作经验,如有不同意见,还请指出。
我个人认为,数据库测试应从以下几个方面入手:
1、数据库的一致性
首先,是对数据库基础数据结构的验证工作,即数据库脚本是否满足数据库设计说明书、是否满足行业标准,检查项包括:表名、字段名、数据类型、数据长度、数据精度、主外键约束等;
其次,数据库的一致性是指数据在数据库的各个表中是否一致。如,多表中同一字段的值是否一致。尤其是要注意对于同一数据是否存在多入口现象;
最后,要注意数据的修改和删除等操作,数据库中的同一数据是否能够同步更新,有主外键关系、归属关系的数据是否能够同步删除(如:上级数据删除,而下级数据仍然存在于数据库中,将形成垃圾数据,甚至因统计算法不同而造成系统输出错误的运算结果);
2、防止数据过多的冗余
数据冗余在系统实现中是不可避免的问题,有时会为了提高系统的运行效率或降低复杂度而人为的增加数据冗余;但如果冗余过大,将严重影响系统性能以及增加破坏数据一致性的风险;
3、数据安全性
数据安全性分为两种,其一,指在正常的业务操作中,是否会出现误删、误修改数据的情况;其二,是否存在数据的非法访问,包括业务逻辑的权限限制以及数据库用户的权限限制问题;
4、大数据量测试
主要考虑在大数据量的情况下,是否会出现数据丢失,事物是否回滚,数据一致性能否得到保障,系统响应时间等问题;
5、针对数据存储、数据中间结果的验证
面对复杂的系统,往往数据处理不是一步到位的,而是通过多个步骤,分布计算存储,这时就要去验证数据是否按照设计要求存放在指定位置,是否正确,有无缺失,中间结果是否能够按设计要求生成并存储等;
6、结合业务逻辑验证数据库的合理性
主要包括,数据类型、长度、精度是否满足业务需要,各种标示性字段,是否能够按照设计要求判别等;
7、数据库的性能测试
主要包括数据库的物理调优,索引类型是否合理、各种sql语句的优化、数据的存储应用能否按照业务使用频率以及业务逻辑规则而设计等等,这条需要有深厚的数据库应用及设计分析能力。
数据库是信息管理系统的基础,一个管理系统的成败,可以说取决于数据库的优良,因此,数据库知识应该是我们测试人员必须掌握的技能,在此,我希望能够把自己的经验与大家分享,也期待大家针对不同的意见与我交流,谢谢! 啊,天啊,我又来晚了,这个测试用Perl来做比较好,感觉很多人理论熟的一塌糊涂啊,羡慕中,CMMI看来很牛
上面很多人谈到测试插入什么,那不是测试范围,那是人家数据库厂商的事 工具为先,架构决定策略 学习,有什么专用工具没 最近负责的项目数据库出现严重问题,导致应用访问慢甚至当掉。原因有二:数据库服务器资源不足,导致配置不合理;应用程序有bug,产生大量冗余数据。 最近负责的项目数据库出现严重问题,导致应用访问慢甚至当掉。原因有二:数据库服务器资源不足,导致配置不 ...
lvweijue2006 发表于 2011-2-15 14:50 http://bbs.51testing.com/images/common/back.gif
所以对数据库进行有效性测试是必需的,个人觉得针对三方面:
1.数据一致性。由于数据是应项目而产生,因此在项目功能测试上必须把严。
2.大数据测试。项目每天产生的数据量较大,因此必要对数据库做相应的压力测试。
3.性能测试。90%数据库问题都是sql引起的,目前项目出现访问慢、数据冗余,原因就是sql语句性能不够好。因此针对sql设计、表设计作分析是很关键的。
页:
1
[2]