系统测试
传统软件系统测试的测试重点是需求覆盖,而对于我们的数据库测试同样也需要对需求覆盖进行保证。那么数据库在初期设计中也需要对这个进行分析,测试。例如存储过程,视图,触发器,约束,规则等我们都需要进行需求的验证确保这些功能设计是符合需求的另一方面我们需要确认数据库设计文档和最终的数据库相同,当设计文档变化时我们同样要验证改修改是否落实到数据库上。
这个阶段我们的测试主要通过数据库设计评审来实现。
集成测试
集成测试是主要针对接口进行的测试工作,从数据库的角度来说和普通测试稍微有些区别对于数据库测试来说,需要考虑的是数据项的修改 *** 作、数据项的增加 *** 作、数据项的删除 *** 作、数据表增加满、数据表删除空、删除空表中的记录、数据表的并发 *** 作、针对存储过程的接口测试、结合业务逻辑做关联表的接口测试。
同样我们需要对这些接口考虑采用等价类、边界值、错误猜测等方法进行测试。
单元测试
单元测试侧重于逻辑覆盖,相对对于复杂的代码来说,数据库开发的单元测试相对简单些,可以通过语句覆盖和走读的方式完成。
系统测试相对来说比较困难,这要求有很高的数据库设计能力和丰富的数据库测试经验。而集成测试和单元测试就相对简单了。
而我们也可以从测试关注点的角度对数据库进行分类:
功能测试
对数据库功能的测试我们可以依赖与工具进行:
DBunit:一款开源的数据库功能测试框架,可以使用类似与Junit的方式对数据库的基本 *** 作进行白盒的单元测试,对输入输出进行校验。
QTP:大名鼎鼎的自动测试工具,通过对对象的捕捉识别,我们可以通过QTP来模拟用户的 *** 作流程,通过其中的校验方法或者结合数据库后台的监控对整个数据库中的数据进行测试。个人觉得比较偏向灰盒。
DataFactory:一款优秀的数据库数据自动生成工具,通过它你可以轻松的生成任意结构数据库,对数据库进行填充,帮助你生成所需要的大量数据从而验证我们数据库中的功能是否正确。这是属于黑盒测试。
数据库性能虽然我们的硬件最近几年进步很快,但是我们需要处理的数据以更快的速度在增加。几亿条记录的表格在现在是司空见惯的,如此庞大的数据量在大量并发连接 *** 作时,我们不能像以前一样随意的使用查询,连接查询,嵌套查询,视图,这些 *** 作如果不当会给系统带来非常巨大的压力,严重影响系统性能。
性能优化分4部分:
1、物理存储方面
2、逻辑设计方面
3、数据库的参数调整
4、SQL语句优化
性能测试:
我们如何对性能方面进行测试呢,业界也提供了很多工具通过数据库系统的SQL语句分析工具,我们可以分析得到数据库语句执行的瓶颈,从而优化SQL语句。
Loadrunner:这个不用多说,我们可以通过对协议的编程来对数据库做压力测试。
Swingbench:(这是一个重量级别的feature,类似LR,而且非常强大,只不过专门针对oracle而已)数据库厂商也意识到这点,例如oracle11g已经提供了real applicationtest,提供数据库性能测试,分析系统的应用瓶颈。
还有很多第三方公司开发了SQL语句优化工具来帮助你自动的进行语句优化工作从而提高执行效率。
安全测试:
软件日益复杂,而数据又成为了系统中重中之重的核心,从以往对系统的破坏现在更倾向于对数据的获取和破坏。而数据库的安全被提到了最前端自从SQL 注入攻击被发现,冒失万无一失的数据库一下从后台变为了前台,而一旦数据库被攻破,整个系统也会暴露在黑客的手下,通过数据库强大的存储过程,黑客可以轻松的获得整个系统的权限。而SQL的注入看似简单缺很难防范,对于安全测试来说,如何防范系统被注入是测试的难点。
业界也有相关的数据库注入检测工具,来帮助用户对自身系统进行安全检测。
对于这点来说业界也有标准,例如ISO IEC 21827,也叫做SSE CMM 30,是CMM和ISO的集成的产物,专门针对系统安全领域的另外一方面,数据库的健壮性,容错性和恢复能力也是我们测试的要点
我们也可以发现功能测试,性能测试,安全测试,是一个由简到繁的过程,也是数据库测试人员需要逐步掌握的技能,这也是以后公司对数据库测试人员的要求。
方法如下:
在桌面上右键创建个文本,然后改后缀名为udl以后保存(1udl),至于udl是什么各位可以百度下这里就不细说了。
注:udl(Universal Data Link)是通用数据连接文件,使用通用数据链接 (UDL) 文件来保存连接字符串。
2打开这个文件以后输入服务器的ip(因为我是本机所以用了实例名)和用户名密码就可以测试连接了,是不是很方便。
数据库测试的主要目标是:确保数据库访问方法和进程正常运行,数据不会遭到损坏。
测试方法:
• 分别测试记录的新增、修改、删除等 *** 作,以验证前台与后台数据的一致性为主。
• 测试记录的查找功能,检查返回的数据是否正确,并测试相关功能。
• 测试数据的不同显示方式。
• 测试有效和无效数据对数据库的影响。
完成标准: 所有的数据库访问方法和进程都按照设计的方式运行,数据没有遭到损坏。
/// 测试连接数据库是否成功/// </summary/// <returns</returnspublic static bool ConnectionTest(){//获取数据库连接字符串ConnectionString = ConnectionInfoConnectionString();//创建连接对象mySqlConnection = new SqlConnection(ConnectionString);//ConnectionTimeout 在net 1x 可以设置 在net 20后是只读属性,则需要在连接字符串设置//如:server=;uid=sa;pwd=;database=PMIS;Integrated Security=SSPI; Connection Timeout=30//mySqlConnectionConnectionTimeout = 1;//设置连接超时的时间try{//Open DataBase//打开数据库mySqlConnectionOpen();IsCanConnectioned = true;}catch{//Can not Open DataBase//打开不成功 则连接不成功IsCanConnectioned = false;}finally{//Close DataBase//关闭数据库连接mySqlConnectionClose();}//mySqlConnection is a SqlConnection objectif (mySqlConnectionState == ConnectionStateClosed || mySqlConnectionState == ConnectionStateBroken){//Connection is not availablereturn IsCanConnectioned;}else{//Connection is availablereturn IsCanConnectioned;}}}其中数据库字符串调用了类ConnectionInfo的方法ConnectionStringpublic class ConnectionInfo{public ConnectionInfo() { }/// <summary/// 从配置文件中读取数据库联接字符串/// </summary
以上就是关于数据库中视图怎么进行软件测试全部的内容,包括:数据库中视图怎么进行软件测试、怎样快速检测与sql数据库是否能正常连接、数据库测试的主要目的是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)