比如:数据冗余,功能和性能方面存在的问题已经严重影响应用软件的使用
软件测试人员往往重视对软件功能和编码的测试,而忽略对软件性能,特别是数据库访问并发测试
因为,他们固有的思想中认为数据库设计存在问题对系统性能影响不大,或从根本上忽略了数据库在软件开发中的地位,直到出现了问题,才想到对数据库的测试,但往往也是仅仅通过对编码的测试工作中捎带对数据库进行一定的测试,这远远是不够的
目前,中铁网上订票系统在大用户同时在线订票中系统频频瘫痪,就是最好的佐证
所以,在应用软件的测试工作中,应该将数据库作为一个独立的部分进行充分的测试,这样才可以得到应用软件所需要的性能优化的数据库
那么,应该对哪些内容进行测试,如何进行测试呢2、数据库设计的测试数据库是应用的基础,其性能直接影响应用软件的性能
为了使数据库具有较好的性能,需要对数据库中的表进行规范化设计
规范化的范式可分为第一范式、第二范式、第三范式、BCNF范式、第四范式和第五范式
一般来说,逻辑数据库设计应满足第三范式的要求,这是因为满足第三范式的表结构容易维护,且基本满足实际应用的要求
因此,实际应用中一般都按照第三范式的标准进行规范化
但是,规范化也有缺点:由于将一个表拆分成为多个表,在查询时需要多表连接,降低了查询速度
故数据库设计的测试包括前期需求分析产生数据库逻辑模型和后期业务系统开发中的测试两部分(这里指的是后者),我在这里称为实体测试
数据库是由若干的实体组成的,包括(表,视图,存储过程等),数据库最基本的测试就是实体测试,通过对这些实体的测试,可以发现数据库实体设计得是否充分,是否有遗漏,每个实体的内容是否全面,扩展性如何
实体测试,可以用来发现应用软件在功能上存在的不足,也可以发现数据冗余的问题
经过测试,测试人员对有异议的问题要及时和数据库的设计人员进行沟通解决
3、数据一致性测试在进行实体测试后,应进一步检查下面的内容以保障数据的一致性:3
1表的主键测试根据应用系统的实际需求,对每个表的主键进行测试,验证是否存在记录不唯一的情况,如果有,则要重新设置主键,使表中记录唯一
3
2表之间主外键关系的测试数据库中主外键字段在名称,数据类型,字段长度上的一致性测试
3
3级联表,删除主表数据后,相应从报表数据应同时删除的问题例如学生表和学生成绩表,学生数据已经删除,成绩表中相应学生的成绩记录应同时删除
3
4存储过程和触发器的测试存储过程可以人工执行,但触发器不能人工处理,所以在对存储过程和触发器执行的过程中针对SQLSERVER2005及以上版本可以使用MicrosoftSQLServerProfiler性能测试工具进行测试
MicrosoftSQLServerProfiler是SQL跟踪的图形用户界面,用于监视数据库引擎或AnalysisServices的实例
测试人员可以捕获有关每个事件的数据并将其保存到文件或表中供以后分析
例如:可以对生产环境进行监视,了解哪些存储过程由于执行速度太慢影响了性能
4、数据库的容量测试随着数据库系统的使用,数据量在飞速增长,如何在使用前对数据容量的增长情况进行初步估算,为最终用户提供参考,这在数据库使用和维护过程中,是非常重要的
可以通过对数据库设计中基本表的数据大小,和每天数据表的数据产生量进行初步估算
记录数据量=各个字段所占字节数的总和表的数据量=记录数据量记录数数据库大小=各表数据量的总和当然,数据库的大小不仅仅只是基本表的大小,还有系统表,视图,存储过程等其它实体所占的容量,但最基本的数据是表的数据
另外,数据库的容量还包括数据库日志文件的容量,一般应预留数据库文件的2倍左右
5、数据库的性能测试应用软件除了功能外,很重要的一部分就是软件的性能,而对于数据库系统,数据库性能的好坏会直接影响应用软件的性能,这部分的测试,一般手工测试就显得无能为力了,这时就要借助自动化的测试软件,例如:DataFactory,DataFactory是一种强大的数据产生器,它允许开发人员和测试人员很容易产生百万行有意义的正确的测试数据库,该工具支持DB2、Oracle、Sybase、SQLServer数据库
这样,就可以模拟出应用软件长期使用后,海量数据存储的数据库的性能状况
从而尽早发现问题,进行数据库性能的优化
这里要注意,进行性能测试的时候,一定要注意测试环境的一致性,包括: *** 作系统、应用软件的版本以及硬件的配置等,而且在进行数据库方面的测试的时候一定要注意数据库的记录数、配置等要一致,只有在相同条件下进行测试,才可以对结果进行比较
否则无法和用户对软件的性能的观点达成一致
6、数据库的压力测试说起测试,我们首先想到的就是软件正确性的测试,即常说的功能测试
软件功能正确仅是软件质量合格指标之一
在实际开发中,还有其它的非功能因素也起着决定性的因素,例如软件的响应速度
影响软件响应速度的因素有很多,有些是因为算法不够高效;还有些可能受用户并发数的影响
在众多类型的软件测试中,压力测试正是以软件响应速度为测试目标,尤其是针对在较短时间内大量并发用户的访问时,软件的抗压能力
但压力测试往往是手工难以测试的,必须借助自动化测试工具
常用的压力测试有:Web测试、数据库测试等
数据库在大多数软件项目中是不可缺少的,对于它进行压力测试是为了找出数据库对象是否可以有效地承受来自多个用户的并发访问
这些对象主要是:索引、触发器、存储过程和锁
通过对SQL语句和存储过程的测试,自动化的压力测试工具可以间接的反应数据库对象是否需要优化
这些自动化的测试工具很多,各有特点,基于Java的项目可以使用JMeter,Net项目可以采用
Net集成开发环境中提供的测试方案
7、结束语总之,在应用系统的测试中,把数据库应当作为独立的系统来测试,这无疑会为应用软件的质量增加可靠的保障,同时还必须结合应用软件进行集成测试,只有二者有机结合起来,才能最大限度的发挥数据库和应用软件的功能
首先你要学习包括:软件测试基础(测试工作基本原则)、软件测试管理、软件测试工具、缺陷管理(缺陷的分类)、测试方法、测试策略 其次是文档:测试计划、测试用例、测试报告(单元、集成、系统)、缺陷报告。 再次:版本测试工具(svn),缺陷管理工具QC…… 还要了解一些测试根据:QTP、loadrunner……
一、软件测试员自身素质培养
(1)
首先,应对软件测试感兴趣和对自己有自信,如果具备了这两点,那么在开发过程中不管遇到什么样的困难,我相信你一定能克服。
(2)
善于怀疑,世界上没有绝对正确的,总有错误的地方,具有叛逆心理,别人认为不可能发生的事,我却认为可能发生。别人认为是对的,我却认为不是对的。
(3) 打破砂锅问到底的精神,对于只出现过一次的bug,一定找出原因,不解决誓不罢休。
(4) 保持一个良好的心情,否则可能无法把测试作好。不要把生活中的不愉快的情绪带到工作中来。
(5) 做测试时要细心,不是所有的bug都能很容易的找出,一定要细心才能找出这些bug。
(6) 灵活一些,聪明一点,多制造一些容易产生bug的例子。
(7) 在有条件的情况下,多和客户沟通,他们身上有你所需要的。
(8) 设身处地为客户着想,从他们的角度去测试系统。
(9)
不要让程序员,以“这种情况不可能发生”这句话说服你,相反,你应该去说服他,告诉他在客户心里,并不是这样的。
(10) 考虑问题要全面,结合客户的需求、业务的流程、和系统的构架,等多方面考虑问题。
(11)
提出问题不要复杂化,这一点和前面的有点矛盾,如果你是一新手,暂时不要管这一点,因为最终将有你的小组成员讨论解决。
(12)
追求完美,对于新测试员来说,努力的追求完美,这对你很好,尽管有些事无法做到,但你应该去尝试。
(13)
幽默感,能和开发小组很好的沟通是关键,试着给你的开发小组找一个“BUG杀手”,或对他们说“我简直不敢相信,你写的程序居然到现在没有找到BUG”。
(14)
到此是不是对测试很有兴趣呢不过我要告诉你,测试过程中有酸甜苦辣,其中的滋味只有你知道,也许你会感到枯燥,要学会放松自己,去溜冰或做你喜欢做的事,不过,别放弃,因为你的自信告诉过你“你会是很优秀的测试员”不是吗
二、浅谈软件测试之技巧
软件测试虽然辛苦,但是掌握了一定的技巧之后将使你事半功倍。
(1) 边界测试,测试用户输入框中的数值的最大数和最小数,以及为空时的情况。
(2) 非法测试,例如在输入数字的地方输入字母。
(3) 跟踪测试,跟踪一条数据的流程,保证数据的正确性。
(4) 在开始测试时应保证数据的正确性,然后在从系统中找出各种BUG。
(5) 接口测试,程序往往在接口的地方很容易发生错误,要在此模块测试勿掉以轻心。
(6)
代码重用测试,在开发过程中有些模块功能几乎相同,程序员在重用代码时可能忘记在原有代码上修改或修改不全面,而造成的错误。
(7) 突发事件测试,服务器上可能发生意外情况的测试。
(8) 外界环境测试,有些系统在开发时依赖于另外一个系统,当另外一个系统发生错误时,
这个系统所受到的影响的情况。
(9)
在程序员刚修复Bug之后的地方,再找一找,往往程序员只修复报告出来的缺陷而不去考虑别的功能在修改时可能会重新造成错误。
(10)
认真做好测试记录在做完一天的测试记录之后,第二天再根据第一天的测试记录重复测试你会发现有未修正的错误。
(11) 文字测试,如果在系统中有用词不当的地方,我想这是不应该的。
(12)
系统兼容测试,例如有些程序在IE6能运行正常,到IE5下不能运行。有些程序在WIN2000下能运行,而到WIN98却不能运行。像一些很特别的用户去使用系统,你很有可能发现BUG。
(13)
用户的易用性测试,往往用户的需求是不断的变化的,而其中的一部份变化的原因,是有用户 *** 作上不方便引起的。
1介绍一下测试流程(重点,常见!)
2介绍一下测试方法
3介绍一下测试用例设计方法(用例设计方法&测试方法需要分清楚)
4设计一个登录页面的用例(提供某个场景的设计用例,重点!)
5举例说明项目推进的能力(针对个人评价的举例说明)
6考试中遇到的比较难的一个项目是?(掌握自己简历上的项目)
7印象深刻的一个bug?
8你们公司是不是敏捷开发?介绍一下敏捷开发?
9复盘会议的主要内容有哪些?
10App 的兼容性怎么测,App 的接口测试怎么测?
11Web 端测试和 App 端测试有何不同(常见)
1 工作中常使用的 SQL 语法有哪些?
2数据库存储过程
3SQL 常见查询语句编写(此处仅举例常见的查询语句,如有更多坑,希望补充)
a查询所有学生的数学成绩,显示学生姓名 name, 分数, 由高到低。
b统计每个学生的总成绩(由于学生可能有重复名字),显示字段:学生 id,姓名,总成绩。
c列出各门课程成绩最好的学生, 要求显示字段: 学号,姓名,科目,成绩
4慢查询是什么意思?
5导致数据库性能差的可能原因有哪些?
6Redis 缓存应用场景
7怎么定位 Redis 缓存失效问题(缓存坏了)
1 工作中常用的 Linux 命令有哪些?
2什么命令可以帮助 Linux 执行 Windows 上传的脚本
3简述 Linux 三剑客
4如何通命令定位 Linux 服务器下的日志?
5简述项目中的环境搭建和维护
1 自动化代码中,用到了哪些设计模式?
2 什么是断言?
3 UI 自动化测试中,如何做集群?
4 怎么对含有验证码的功能进行自动化测试?
5 如何优化和提高 Selenium 脚本的执行速度?
6 接口测试能发现哪些问题?
7 Selenium 中隐藏元素如何定位?
8 如何判断一个页面上元素是否存在?
9 如何提高脚本的稳定性?
10 如何定位动态元素?
11 如何通过子元素定位父元素
12 平常遇到过哪些问题 如何解决的
13 一个元素明明定位到了,点击无效(也没报错),如果解决?
14 测试的数据你放在哪
15 什么是数据驱动,如何参数化?
16 其他接口都需要登录接口的信息,怎么去让这个登录的接口只在其他接口调用一次?
17 接口产生的垃圾数据如何清理?
18 怎么用接口案例去覆盖业务逻辑?
1 性能测试指标包括哪些
2 如果一个需求没有明确的性能指标,要如何开始进行性能测试?
3 介绍 JMeter 聚合报告包括哪些内容?
4 如果有一个页面特别卡顿,设想一下可能的原因?
5 说一说项目中的实际测试内容
6 介绍一下 JMeter 进行性能测试的过程
7 介绍一下 JMeter 和 LoadRunner 的区别
全套软件测试/自动化测试海量资料免费领取
软件测试基础免费下载
3gd9
《软件测试基础(英文版)》融入了最新的测试技术,包括现代软件方法(如面向对象)、Web应用程序阳嵌入式软件。另外,《软件测试基础(英文版)》包含了大量的实例。
软件测试属于IT行业中容易入门的岗位,代码量较少。0基础进入IT行业,完全是ok的,IT行业分好几种有开发,测试,UI,自动化,测开,运维等这些岗位。在这些岗位里面测试相对来说还是比较容易上手学会的。因为开发、运维、自动化这些都对代码的要求挺高,0基础的话对代码认识不是一、两天就可以学好的。
课程内容主要有:
搭建Windows测试环境,JAVA编程,软件测试基础,数据库技术,用户界面技术,高效设计测试用例,阶段项目实训,搭建 Linux 测试环境,白盒测试,WEB技术,高效使用自动测试工具,软件质量保证,流行测试基础,企业级项目实训用例等!
学完可以从事:
功能测试工程师,性能测试工程师,安全测试工程师,白盒测试工程师,自动化测试工程师,接口测试工程师,测试开发工程师等。
互联网行业目前还是最热门的行业之一,学习IT技能之后足够优秀是有机会进入腾讯、阿里、网易等互联网大厂高薪就业的,发展前景非常好,普通人也可以学习。
想要系统学习,你可以考察对比一下开设有相关专业的热门学校,好的学校拥有根据当下企业需求自主研发课程的能力,能够在校期间取得大专或本科学历,中博软件学院、南京课工场、南京北大青鸟等开设相关专业的学校都是不错的,建议实地考察对比一下。
祝你学有所成,望采纳。
第一阶段(软件测试理论及基础)
Windows *** 作系统及网络基础:软件测试概念、计算机层次、软件分类、 互联网概述、 IP地址、虚拟机使用、 *** 作系统安装
软件测试基础理论:软件开发阶段划分,软件测试阶段划分,模型和分类、软件测试主要原则、测试用例概念、 测试方法选择、 TestDirector概述、软件测试计划编写
功能测试项目实践:熟悉软件需求、编写测试计划、编写测试用例、 执行测试用例、提交bug、 编写测试总结报告
第二阶段(编程开发技术)
Java程序设计:Java开发环境变量的配置, Java程序的基本结构变量、常量、基本数据类型、流程控制,Java面向对象编程的基本概念,Java I/O核心技术, Java网络编程技术,Java的事件处理模型、Swing组件模型, HTML技术、Servlet/JSP技术
数据库基础:数据库系统的基本概念,基本SQL语句, 数据完整性约束,索引的创建和使用,视图的创建和使用,高级查询,存储过程的定义和使用, Oracle及SQL Server2008基本 *** 作, SQL Plus的基本使用,PLSQL Developer的使用, 序列,索引,视图,函数和存储过程
第三阶段(测试工具)
功能测试工具QTP:QTP的基本使用流程, 使用QTP录制应用程序及Web程序,QTP的测试对象管理机制、对象仓库的使用, 标准检查点、文本检查点、文本域检查点、图像检查点、数据库检查点、其他检查点, 脚本参数化, 使用模拟录制模式、使用低级录制模式、使用QTP进行回归测试, VBScript基本语法结构
性能测试工具LoadRunner:自动化工具分类,性能测试简介,Loadrunner概述;负载/压力测试计划的编写;开发脚本VuGenerator; 设计和运行场景---Controller;分析结果Analysis,LoadRunner数据池技术剖析; >
以上就是关于软件测试跟数据库有什么关系吗全部的内容,包括:软件测试跟数据库有什么关系吗、软件测试需要学习数据库么、软件测试面试宝典「Linux 数据库 测试工具 自动化 性能测试」等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)