- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于数据库应用系统的数据库测试
摘 要 数据库管理系统经历了30多年的发展演变,已经取得了辉煌的成就,发展成了一门内容丰富的学科。我国数据库系统已经具备了普通应用所需的基本数据库管理功能,也具有一定的扩展性,能够满足一般的应用需求。数据库应用系统是在数据库管理系统(dbms)支持下建立的计算机应用系统,以数据库为基础的财务管理系统、人事管理系统、图书管理系统等等为代表,其数据库测试甚为重要。
关键词 数据库;测试;应用系统;完整性
就数据库领域测试而言,目前国际上的tpc组织虽然提出了性能测试标准,然而由于数据库应用的领域不同、运行的环境不同,加上数据库管理系统功能、结构日趋复杂、度量特性繁多等诸多因素,目前国际上并没有被普遍接受的数据库结合评测体系。
随着市场对软件系统的要求越来越高,软件产品结构也越来越复杂,从以前的单层结构进入了目前的双层,三层甚至多次架构的设计。同时,由于对数据存储,分析,安全,性能和稳定性的要求越来越高,数据库也从以前一个默默无闻的后台仓库,逐渐成为了数据库系统。同时数据库开发设计人员和数据库系统管理员成为各个公司不可或缺的重要人物。
针对于数据库应用系统的数据库的设计与实现,其测试内容大致包括:数据备份与恢复测试;故障转移和恢复测试。
从测试过程的角度来说我们也可以把数据库测试分为:
1)系统测试。传统软件系统测试的测试重点是需求覆盖,而对于我们的数据库测试同样也需要对需求覆盖进行保证。那么数据库在初期设计中也需要对这个进行分析,测试。例如存储过程,视图,触发器,约束,规则等我们都需要进行需求的验证确保这些功能设计是符合需求的。另一方面我们需要确认数据库设计文档和最终的数据库相同,当设计文档变化时我们同样要验证改修改是否落实到数据库上。
2)集成测试。集成测试是主要针对接口进行的测试工作,从数据库的角度来说和普通测试稍微有些区别对于数据库测试来说,需要考虑的是数据项的修改操作、数据项的增加操作、数据项的删除操作、数据表增加满、数据表删除空、删除空表中的记录、数据表的并发操作、针对存储过程的接口测试、结合业务逻辑做关联表的接口测试。
同样我们需要对这些接口考虑采用等价类、边界值、错误猜测等方法进行测试。
3)单元测试。单元测试侧重于逻辑覆盖,相对对于复杂的代码来说,数据库开发的单元测试相对简单些,可以通过语句覆盖和走读的方式完成。
系统测试相对来说比较困难,这要求有很高的数据库设计能力和丰富的数据库测试经验。而集成测试和单元测试就相对简单了。
而我们也可以从测试关注点的角度对数据库进行分类。
4)功能测试。对数据库功能的测试我们可以依赖与工具进行。
dbunit:一款开源的数据库功能测试框架,可以使用类似与junit的方式对数据库的基本操作进行白盒的单元测试,对输入输出进行校验。
qtp:大名鼎鼎的自动测试工具,通过对对象的捕捉识别,我们可以通过qtp来模拟用户的操作流程,通过其中的校验方法或者结合数据库后台的监控对整个数据库中的数据进行测试。个人觉得比较偏向
灰盒。
datafactory:一款优秀的数据库数据自动生成工具,通过它你可以轻松的生成任意结构数据库,对数据库进行填充,帮助你生成所需要的大量数据从而验证我们数据库中的功能是否正确。这是属于黑盒测试。
数据库性能虽然我们的硬件最近几年进步很快,但是我们需要处理的数据以更快的速度在增加。几亿条记录的表格在现在是司空见惯的,如此庞大的数据量在大量并发连接操作时,我们不能像以前一样随意的使用查询,连接查询,嵌套查询,视图,这些操作如果不当会给系统带来非常巨大的压力,严重影响系统性能。
5)性能测试。我们如何对性能方面进行测试呢,业界也提供了很多工具通过数据库系统的sql语句分析工具,我们可以分析得到数据库语句执行的瓶颈,从而优化sql语句。
loadrunner:这个不用多说,我们可以通过对协议的编程来对数据库做压力测试。
swingbench:(这是一个重量级别的feature,类似lr,而且非常强大,只不过专门针对oracle而已)数据库厂商也意识到这点,例如oracle11g已经提供了real applicationtest,提供数据库性能测试,分析系统的应用瓶颈。
还有很多第三方公司开发了sql语句优化工具来帮助你自动的进行语句优化工作从而提高执行效率。
6)安全测试。软件日益复杂,而数据又成为了系统中重中之重的核心,从以往对系统的破坏现在更倾向于对数据的获取和破坏。而数据库的安全被提到了最前端自从sql注入攻击被发现,
在基于数据库应用系统的数据库测试中数据库完整性对于数据库应用系统非常关键,其作用主要体现在以下几个方面:
1)数据库完整性约束能够防止合法用户使用数据库时向数据库中添加不合语义的数据。
2)利用基于dbms的完整性控
文档评论(0)