数据库测试总结

数据库开发既然在软件开发的比重逐步提高,随之而来的问题也突出。我们以前往往重视对代码的测试工作,随着流程技术的日益完善,软件质量得到了大幅度的提高,但数据库方面的测试仍然处于空白。我们从来没有真正将数据库作为一个独立的系统进行测试,而是通过对代码的测试工作间接对数据库进行一定的测试。随着数据库开发的日益升温,数据库测试也需要独立出来进行符合自身特点的测试工作。数据库开发和应用开发并没有实质上的区别,所以软件测试的方法同样适用于数据库测试。

从测试过程的角度来说我们也可以把数据库测试分为:

系统测试

传统软件系统测试的测试重点是需求覆盖,而对于我们的数据库测试同样也需要对需求覆盖进行保证。那么数据库在初期设计中也需要对这个进行分析,测试.例如存储过程,视图,触发器,约束,规则等我们都需要进行需求的验证确保这些功能设计是符合需求的.另一方面我们需要确认数据库设计文档和最终的数据库相同,当设计文档变化时我们同样要验证改修改是否落实到数据库上。    这个阶段我们的测试主要通过数据库设计评审来实现。

集成测试

集成测试是主要针对接口进行的测试工作,从数据库的角度来说和普通测试稍微有些区别对于数据库测试来说,需要考虑的是:

数据项的修改操作;

数据项的增加操作;

数据项的删除操作;

数据表增加满;

数据表删除空;

删除空表中的记录;

数据表的并发操作;

针对存储过程的接口测试;

结合业务逻辑做关联表的接口测试;

同样我们需要对这些接口考虑采用等价类、边界值、错误猜测等方法进行测试。

单元测试

单元测试侧重于逻辑覆盖,相对对于复杂的代码来说,数据库开发的单元测试相对简单些,可以通过语句覆盖和走读的方式完成系统测试相对来说比较困难,这要求有很高的数据库设计能力和丰富的数据库测试经验。而集成测试和单元测试就相对简单了。

而我们也可以从测试关注点的角度对数据库进行分类:

功能测试

对数据库功能的测试我们可以依赖与工具进行。   DBunit    一款开源的数据库功能测试框架,可以使用类似与Junit的方式对数据库的基本操作进行白盒的单元测试,对输入输出进行校验。

DataFactory

一款优秀的数据库数据自动生成工具,通过它你可以轻松的生成任意结构数据库,对数据库进行填充,帮助你生成所需要的大量数据从而验证我们数据库中的功能是否正确。这是属于黑盒测试。   数据库性能    虽然我们的硬件最近几年进步很快,但是我们需要处理的数据以更快的速度在增加。几亿条记录的表格在现在是司空见惯的,如此庞大的数据量在大量并发连接操作时,我们不能像以前一样随意的使用查询,连接查询,嵌套查询,视图,这些操作如果不当会给系统带来非常巨大的压力,严重影响系统性能。

性能优化分4部分:

1.物理存储方面   2.逻辑设计方面    3.数据库的参数调整   4.SQL语句优化

我们如何对性能方面进行测试呢,业界也提供了很多工具。

通过数据库系统的SQL语句分析工具,我们可以分析得到数据库语句执行的瓶颈,从而优化SQL语句。

Loadrunner    这个不用多说,我们可以通过对协议的编程来对数据库做压力测试。    Swingbench(这是一个重量级别的feature,类似LR,而且非常强大,只不过专门针对oracle而已)    数据库厂商也意识到这点, 还有很多第三方公司开发了SQL语句优化工具来帮助你自动的进行语句优化工作从而提高执行效率。

安全测试

软件日益复杂,而数据又成为了系统中重中之重的核心,从以往对系统的破坏现在更倾向于对数据的获取和破坏。而数据库的安全被提到了最前端。自从SQL 注入攻击被发现,冒失万无一失的数据库一下从后台变为了前台,而一旦数据库被攻破,整个系统也会暴露在黑客的手下,通过数据库强大的存储过程,黑客可以轻松的获得整个系统的权限。而SQL的注入看似简单缺很难防范,对于安全测试来说,如何防范系统被注入是测试的难点。业界也有相关的数据库注入检测工具,来帮助用户对自身系统进行安全检测。    对于这点来说业界也有标准,例如ISO IEC 21827,也叫做SSE CMM 3.0,是CMM和ISO的集成的产物,专门针对系统安全领域的另外一方面,数据库的健壮性,容错性和恢复能力也是我们测试的要点,我们也可以发现功能测试,性能测试,安全测试,是一个由简到繁的过程,也是数据库测试人员需要逐步掌握的技能,这也是以后公司对数据库测试人员的要求。

时间: 2024-11-07 14:40:58

数据库测试总结的相关文章

MySQL数据库之数据类型BOOL/BOOLEAN与TINYINT测试总结

From: http://database.51cto.com/art/201203/323863.htm 网络上很多人咨询mysql是否提供布尔类型?MySQL数据库确实提供布尔类型,此数据类型的关键字可以写成:布尔类型BOOL或布尔类型BOOLEAN,但是MySQL数据库数据类型的布尔类型是否也像其他数据库产品一样呢?本文揭开mysql布尔类型的真实面目. AD:51CTO 网+ 第十二期沙龙:大话数据之美_如何用数据驱动用户体验 [导读] 网络上很多人咨询mysql是否提供布尔类型?MyS

数据库测试

数据库测试: 之前写的数据库测试代码稍微有点繁杂,现在我们将这些代码进行简化一下,将备份.还原数据的方法单独写在一个类里,然后测试类继承于这个类. 代码示例: 测试类代码示例: 测试类的代码稍微更改了一下,让测试的覆盖率提高 测试结果: 测量测试覆盖率: 测量测试覆盖率就是测量测试代码运行了多少个测试分支,如果测试代码的全部分支都被运行了,那么测试覆盖率就是100%. 打个比方就是一个猎人挖了100个不同的陷阱,猎人需要一个个的去触碰这些陷阱以确保陷阱没有问[学Java,到凯哥学堂kaige12

php操作memcache的使用测试总结

php操作memcache的使用测试总结 1.简介 memcache模块是一个高效的守护进程,提供用于内存缓存的过程式程序和面向对象的方便的接口,特别是对于设计动态web程序时减少对数据库的访问. memcache也提供用于通信对话(session_handler)的处理. 更多Memcache 模块相关信息可以到 http://www.danga.com/memcached/查阅. 1.1.memcache在php.ini中的配置项列表 memcache在php.ini中的配置项列表 名称 默

电子商务网站测试总结

从业电子商务网站测试一年多,很久没有进行测试的经验方面的总结了,今天对之前测试的电子商务网站进行了一次总结, 总体按照两种模式进行划分总结:1.按照测试类型    2.按照电子商务网站的系统架构 一.按照测试类型来划分 1. 兼容性 (1)主要是在浏览器兼容 (2)操作系统,主要体现在操作系统兼容 2.UI测试 (1)检查链接是否正确,是否存在空链接(可以使用xenu工具+手工查看)   (2)是否有文字错误信息 (3)产品价格是否有显示错误 (4)各个模块是否正常显示(侧栏.推荐商品.相似商品

基于http请求的web接口性能测试总结

基于http请求的web接口性能测试总结 压测的目的:对于Web接口压测的目的最终是要在对数据库造成压力的情况下观察压测服务器的cpu是否达到预警值.memory是否发生激变甚至泄露.响应结果的error率以及数据库服务器读写方面的情况是否正常等等情况. 测试环境的准备 我们要准备压测服务器和压力机,并建立二者之间的联系. 压测服务器 用来提供服务的,也就是我们的测试服务器,上面发布的是压测分支,我们首先要基于压测基准分支拉一个压测分支并push到远端,然后把开发的代码合到压测分支上再push到

互联网App应用程序测试流程及测试总结

近年来随着移动互联网发展迅猛,APP也进行了爆发式的增长,相应的APP的测试检测就摆在每家企业眼前,以下是由国内应用安全检测团队-爱内测(www.ineice.com)的CTO为我们介绍App应用程序测试流程及测试总结: 1. APP测试基本流程 1.1流程图 仍然为测试环境 Pass 1.2测试周期 测试周期可按项目的开发周期来确定测试时间,一般测试时间为两三周(即15个工作日),根据项目情况以及版本质量可适当缩短或延长测试时间.正式测试前先向主管确认项目排期. 1.3测试资源 测试任务开始前

jmeter性能测试总结

一.性能测试问题记录: Ⅰ.秒杀的失败率了在96.45%,原因 Query对于 活动的秒杀采用的是0.5秒,刷新缓存的策略在活动中优惠券被秒杀一空 下架前,短暂的时间内仍能够查询到 这个活动架构中采用了CQRS模式只保证了最终结果一直想,并不能保证实时一致性. Ⅱ.日志级别为Info,导致CPU很大一部分的是用来处理日志相关的功能, Ⅲ.异步输出日志能比同步输出的方式下,提升了接近100%的吞吐量 Ⅳ.代码中存在大量数据库连接使用未关闭的情况,导致后续事务无法获取数据库连接 Ⅴ.logstach

BI之报表测试总结

报表测试总结: 1.测试准备工作: 数据准备 保证足够多的有效数据 清楚报表中涉及到的算法.公式 清楚业务功能接口 2.报表测试点 基本测试点:界面.控件.格式.布局.明显的数据错误.js报错.报表标题,报表整体风格,翻页,友好性等 有效数据准确性验证:数据的来源.数据的对应关系.数据的格式.数据的排序.明细与合计的一致性 报表查询:覆盖所有的查询条件,输出结果准确 数据可控性测试验证 汇总,明细表数据间的关联以及多张报表之间的比较 性能测试:查询多少量的数据需要花费多少时间,需要明确定义,尽量

数据库介绍与分类

目录 数据库介绍与分类... 1 1.1 数据库介绍... 2 1.1.1什么是数据库... 2 1.2数据库的种类... 2 1.2.1关系型数据库介绍... 2 1.2.2非关系型数据库介绍... 3 1.3 常用关系型数据库产品介绍... 4 1.3.1 Oracle数据库... 4 1.3.2 MySQL数据库... 5 1.3.3 MariaDB数据库... 5 1.3.4 SqlServer数据库... 6 1.3.5 Access数据库... 6 1.3.6 其他不常用数据库...