软件测试面试sql一般有哪些下周有两个面试说要笔试,考SQL语句,...
从测试过程的角度来说我们也可以把数据库测试分为: 系统测试 传统软件系统测试的测试重点是需求覆盖,而对于我们的数据库测试同样也需要对需求覆盖进行保证。
那么数据库在初期设计中也需要对这个进行分析,测试。
例如存储过程,视图,触发器,约束,规则等我们都需要进行需求的验证确保这些功能设计是符合需求的.另一方面我们需要确认数据库设计文档和最终的数据库相同,当设计文档变化时我们同样要验证改修改是否落实到数据库上。
这个阶段我们的测试主要通过数据库设计评审来实现。
集成测试 集成测试是主要针对接口进行的测试工作,从数据库的角度来说和普通测试稍微有些区别对于数据库测试来说,需要考虑的是数据项的修改操作、数据项的增加操作、数据项的删除操作、数据表增加满、数据表删除空、删除空表中的记录、数据表的并发操作、针对存储过程的接口测试、结合业务逻辑做关联表的接口测试。
同样我们需要对这些接口考虑采用等价类、边界值、错误猜测等方法进行测试。
单元测试 单元测试侧重于逻辑覆盖,相对对于复杂的代码来说,数据库开发的单元测试相对简单些,可以通过语句覆盖和走读的方式完成。
系统测试相对来说比较困难,这要求有很高的数据库设计能力和丰富的数据库测试经验。
而集成测试和单元测试就相对简单了。
而我们也可以从测试关注点的角度对数据库进行分类: 功能测试 对数据库功能的测试我们可以依赖与工具进行: 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 3.0,是CMM和ISO的集成的产物,专门针对系统安全领域的另外一方面,数据库的健壮性,容错性和恢复能力也是我们测试的要点 我们也可以发现功能测试,性能测试,安全测试,是一个由简到繁的过程,也是数据库测试人员需要逐步掌握的技能,这也是以后公司对数据库测试人员的要求。
一道软件测试面试题中的sql题目,求解
展开全部 1.select * from student where score>80and s_id in(select sid from student_class where c_id=(select c_id from class where c_name='一班'))2.select c.c_name,女生人数=sum(s.s_id),平均分=avg(s.score)from classes cinner join student_class sc on sc.c_id=c.c_idinner join students s on s.s_id=sc.s_idwhere s.sex='女' group by c.c_name...
你好, 作为一名软件测试工程师要学习的数据库 学什么样的数据库好...
因为不同的软件可能使用不同的数据库,所以,一个软件测试工程师要能使用各种不同数据库,因此需要学习各种不同的数据库,这样,才能很好的适应自己的工作。
(1)可以先从较易入门的小型数据库学起。
比如,可以先学习微软的Access数据库。
(2)再学习大型数据库。
目前常用的大型数据库主要有Oracle数据库、SQL Server数据库、DB2数据库及Sybase数据库等。
(3)重点应该学会本单位常使用的数据库。
想学习SQL语言,该用什么软件来练习SQL语句
展开全部使用Navicat作为辅助,对于学习SQL语句将会大有裨益。
Navicat 里面的SQL 创建工具,可视觉化 SQL ,创建和编辑查询或视图,不必担心语法和正确命令的用法。
选择需要在表中执行的操作,自动编写 SQL 语句。
自动完成代码:使用自动完成代码功能,能快速地在 SQL 编辑器中创建 SQL 语句。
无论选择数据库对象的属性或 SQL 关键字,只需从下拉列表中选择。
Navicat软件下载地址可参考Navicat官网。
...
软件开发数据库如何进行测试
展开全部 比如:数据冗余,功能和性能方面存在的问题已经严重影响应用软件的使用。
软件测试人员往往重视对软件功能和编码的测试,而忽略对软件性能,特别是数据库访问并发测试。
因为,他们固有的思想中认为数据库设计存在问题对系统性能影响不大,或从根本上忽略了数据库在软件开发中的地位,直到出现了问题,才想到对数据库的测试,但往往也是仅仅通过对编码的测试工作中捎带对数据库进行一定的测试,这远远是不够的。
目前,中铁网上订票系统在大用户同时在线订票中系统频频瘫痪,就是最好的佐证。
所以,在应用软件的测试工作中,应该将数据库作为一个独立的部分进行充分的测试,这样才可以得到应用软件所需要的性能优化的数据库。
那么,应该对哪些内容进行测试,如何进行测试呢? 2、数据库设计的测试 数据库是应用的基础,其性能直接影响应用软件的性能。
为了使数据库具有较好的性能,需要对数据库中的表进行规范化设计。
规范化的范式可分为第一范式、第二范式、第三范式、BCNF范式、第四范式和第五范式。
一般来说,逻辑数据库设计应满足第三范式的要求,这是因为满足第三范式的表结构容易维护,且基本满足实际应用的要求。
因此,实际应用中一般都按照第三范式的标准进行规范化。
但是,规范化也有缺点:由于将一个表拆分成为多个表,在查询时需要多表连接,降低了查询速度。
故数据库设计的测试包括前期需求分析产生数据库逻辑模型和后期业务系统开发中的测试两部分(这里指的是后者),我在这里称为实体测试。
数据库是由若干的实体组成的,包括(表,视图,存储过程等),数据库最基本的测试就是实体测试,通过对这些实体的测试,可以发现数据库实体设计得是否充分,是否有遗漏,每个实体的内容是否全面,扩展性如何。
实体测试,可以用来发现应用软件在功能上存在的不足,也可以发现数据冗余的问题。
经过测试,测试人员对有异议的问题要及时和数据库的设计人员进行沟通解决。
3、数据一致性测试 在进行实体测试后,应进一步检查下面的内容以保障数据的一致性: 3.1 表的主键测试根据应用系统的实际需求,对每个表的主键进行测试,验证是否存在记录不唯一的情况,如果有,则要重新设置主键,使表中记录唯一。
3.2 表之间主外键关系的测试数据库中主外键字段在名称,数据类型,字段长度上的一致性测试。
3.3 级联表,删除主表数据后,相应从报表数据应同时删除的问题例如学生表和学生成绩表,学生数据已经删除,成绩表中相应学生的成绩记录应同时删除。
3.4 存储过程和触发器的测试存储过程可以人工执行,但触发器不能人工处理,所以在对存储过程和触发器执行的过程中针对SQL SERVER2005及以上版本可以使用Microsoft SQL Server Profiler性能测试工具进行测试。
Microsoft SQL Server Profiler 是 SQL 跟踪的图形用户界面,用于监视数据库引擎或 Analysis Services 的实例。
测试人员可以捕获有关每个事件的数据并将其保存到文件或表中供以后分析。
例如:可以对生产环境进行监视,了解哪些存储过程由于执行速度太慢影响了性能。
4、数据库的容量测试 随着数据库系统的使用,数据量在飞速增长,如何在使用前对数据容量的增长情况进行初步估算,为最终用户提供参考,这在数据库使用和维护过程中,是非常重要的。
可以通过对数据库设计中基本表的数据大小,和每天数据表的数据产生量进行初步估算。
记录数据量=各个字段所占字节数的总和表的数据量=记录数据量*记录数数据库大小=各表数据量的总和 当然,数据库的大小不仅仅只是基本表的大小,还有系统表,视图,存储过程等其它实体所占的容量,但最基本的数据是表的数据。
另外,数据库的容量还包括数据库日志文件的容量,一般应预留数据库文件的2倍左右。
5、数据库的性能测试 应用软件除了功能外,很重要的一部分就是软件的性能,而对于数据库系统,数据库性能的好坏会直接影响应用软件的性能,这部分的测试,一般手工测试就显得无能为力了,这时就要借助自动化的测试软件,例如:DataFactory,DataFactory是一种强大的数据产生器,它允许开发人员和测试人员很容易产生百万行有意义的正确的测试数据库,该工具支持DB2、Oracle、Sybase、SQL Server数据库。
这样,就可以模拟出应用软件长期使用后,海量数据存储的数据库的性能状况。
从而尽早发现问题,进行数据库性能的优化。
这里要注意,进行性能测试的时候,一定要注意测试环境的一致性,包括:操作系统、应用软件的版本以及硬件的配置等,而且在进行数据库方面的测试的时候一定要注意数据库的记录数、配置等要一致,只有在相同条件下进行测试,才可以对结果进行比较。
否则无法和用户对软件的性能的观点达成一致。
6、数据库的压力测试 说起测试,我们首先想到的就是软件正确性的测试,即常说的功能测试。
软件功能正确仅是软件质量合格指标之一。
在实际开发中,还有其它的非功能因素也起着决定性的因素,例如软件的响应速度。
影响软件响应速度的因素有很多,有些是因为算法不够高效;还有些可能受用户并发数的影响。
在...
【软件测试的分类和内容】做软件测试需要会sql么?急急急i!需要会...
SELECT distinct 姓名 ,部门 ,LEFT(UserList,LEN(UserList)-1) as list FROM ( SELECT 姓名 ,部门 , (SELECT 题目答案 ',' FROM ZN_Area_City WHERE 题目ID =A.题目ID FOR XML PATH('')) AS UserList FROM table A GROUP BY 题目答案, 题目ID )temp
软件测试面试题
1、软件测试就是在软件开发的过程中,对软件各阶段产品检验的过程,其目的是保证软件产品的质量2、需求分析--编写测试计划--编写测试方案--编写测试用例--执行测试用例--提交缺钱报告--缺陷跟踪--回归测试--测试通过3、黑盒主要是功能测试、性能测试、兼容性测试这些是主要的,还包括一些安全性,GUI测试,压力测试,易用性,容量测试,异常测试,安装性测试等 白盒主要的就是静态和动态两种测试4、select* from a where ...;查找insert ito a ()values();添加delete from a;删除表中信息update a set ...from..;更改表中信息create table a ();建表drop table();删除表5、不清楚你问的内容是什么。
给你两方面的回答(1)缺陷的状态 :新建 打开 修复 关闭 拒绝 重复 丢弃 推迟 重新打开(2)缺陷报告的内容:标题、详细描述(描述、前提条件、步骤重现、预期结果、实际结果)、状态、发现人、负责人、项目、版本、严重度、优先级6、回归测试通过7、先做集成测试,结束之后系统测试包括功能测试和性能测试,系统测试结束之后,缺陷也修改完成,拿给用户做验收测试!9、发现缺陷不要直接就提交,和开发沟通后再做结论,如果沟通时发生歧义,查看需求决定是否是缺陷,如果不能决定咨询项目经理。
对于一些字段上的缺陷,比如说套用的框架,有的按钮没有更改标识,最好是和开发说一声当场改掉。
就不要提交缺陷。
开发和测试的矛盾是一致存在的我们没有办法杜绝,只能尽量的降到最低。
10、细心、耐心、自我调节能力强、学习能力强。
有很好的全局意识,和观察力!11、界面--功能(自己要有一个网站功能的概括!先按照单个功能去测,之后按照系统的流程去测。
最后是按照各个总能之间的联系去测试!)
软件测试人员,测试工程师的问题~?
一个合格的软件测试人员,不光要懂得所测试软件的开发模式,及开发语言环境等,而且也要懂得代码的编写,其实说白了你不光要测试出BUG,还应该知道BUG是怎么产生的,还要指导开发人员修正BUG.大家都知道测试分为:白盒测试和黑盒测试.因此你也必须要懂得代码的一些东西.但是也不是全部.比如,一个检索或者查询过慢,你要知道它最起码的产生是因为什么.要么是SQL语句的繁琐造成,要么是数据的原因造成,要么是其他的什么一些的。
你要测试的不光是要测试软件的功能,还要测试性能和代码的一些东西。
因此,不要求你一定要能编出代码,但是一定要大概知道这个东西。
学一些代码的东西还是对你很有帮助的。
如果你要有什么需要交流的请mail我lygenius@163.com
转载请注明出处51数据库 » 软件测试的SQL语句