首页数据库软件测试数据库面试题(软件测试SQL面试题)

软件测试数据库面试题(软件测试SQL面试题)

编程之家2023-10-2197次浏览

很多朋友对于软件测试数据库面试题和软件测试SQL面试题不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!

软件测试数据库面试题(软件测试SQL面试题)

广达测试工程师面试题

广达测试工程师面试题

一.主观判断题(10分)

1.软件测试的目的是尽可能多的找出软件的缺陷。(Y)

2.只要我们做了充分的测试。就能保证软件没有BUG(n)

3.验收测试是由最终用户来实施的。(Y)

软件测试数据库面试题(软件测试SQL面试题)

4.项目立项前测试人员不需要提交任何工件。(n)

5.单元测试能发现约80%的软件缺陷。(Y)

6.代码评审是检查源代码是否达到模块设计的要求。(Y)

7.负载测试是验证要检验的系统的能力最高能达到什么程度。(n)

8.测试人员要坚持原则,缺陷未修复完坚决不予通过。(Y)

9.我们可以人为的`使得软件不存在配置问题。(n)

软件测试数据库面试题(软件测试SQL面试题)

10.集成测试计划在需求分析阶段末提交(n)

二.基础理论题:(35分)

1.已建立二张个学生基本信息表,表的结构如下:

Test1

No Name Sex Age Department Place

2002001张三男 20计算机系北京

2002002李四女 20数学系山东

2002003王五男 21计算机系北京

2002004小红女 21数学系河北

2002005小李男 20数学系辽宁

2002006小王男 22计算机系浙江

Test2

No Grade(N型) Courses

2002001 67英语

2002002 81数学

2002003 75操作系统

2002004 91网络

2002005 70数据库

2002006 85 C语言

1)用SQL语句找出是计算机系并籍贯是北京的学生的所有记录

select* from test where department='计算机系' and place='北京'

2)用SQL语句把计算机系的学生的Department改为信息学院

UPDATE test SET department='信息学院' WHERE department='计算机系';

3)用SQL连接查询找出成绩大于等于75分的学生的No,Nname,Grade,Courses字段的记录

select distinct test.name1,test.number,test1.grade,test1.courses from test,test1

where test.number=test1.number and test1.grade>75

2.在数据库中如何实现并发控制,有哪两种方式?

封锁和封锁协议

3.简述软件生命周期有那些阶段

软件生命周期——需求分析——软件设计——程序编码——软件测试——运行维护

4.CMM软件成熟度模型有几个级别,分别是什么。

5个级别,由低到高分别是:

CMM1初始级

CMM2可重复级

CMM3已定义级

CMM4已管理级

CMM5优化级

5.一个典型的B/S结构有哪些组件构成

所谓B/S结构,就是只安装维护一个服务器(Server),而客户端采用浏览器(Browse)运行软件,即浏览器/服务器结构。

三.测试技能题:(30分)

1.黑盒测试中设计测试用例一般有哪几种方法

边界值、等价类划分、穷举法、因果图、场景法

2.Bug管理和版本控制一般用到哪些工具。

BUG管理:TD或QC或bugzilla

版本控制:CVS、SVN、CSS

3.简述性能测试的一般步骤和目的?

步骤:

步骤一:性能测试与数据收集

步骤二:性能瓶颈分析

步骤三:性能调优解决方案

目的:

?最终的目的是最大限度地满足用户需求

?评价系统当前性能

?预测系统未来性能

?寻找瓶颈,优化性能

4.在LR中使用IP欺骗的作用是什么?

贴近用户实际使用环境。仿真效果好

有些系统不兼容相同IP的访问

5.说出软件测试过程V模型,并说明它存在的缺点,可以画图。

§测试是开发之后的一个阶段。

§测试的对象就是程序本身。

§实际应用中容易导致需求阶段的错误一直到最后系统测试阶段才被发现。

综合题:(15分)

一个程序读入3个整数,a:输出最大值或最小值

A:最大值:(最小值把“>”替换为“<”,“max”替换为“min”)

#include

#definr max(x,y)(((x)>(y))?(x):(y))

int main()

{

int a,b,c,d;

scanf(“%d,%d,%d”.&a,&b,&c);

d=max(a,max(b,c));

printf(“max=%d\n”,d)

}

;

软件测试SQL面试题

数据库,无外乎增删改查:

增:

insert into A表 values(value1,value2,value3......)向A表中新增数据

删:

delete from A表( where id=1)删除A表(删除A表id=1的数据)如果删除某个测试数据,记得加where条件,否则整张表的数据都被删除,防止误操作!不过,数据可以回滚找回。

truncate A表:清除表数据,数据无法回滚。

drop A表:整表结构删除,即,这张表不存在了。

改:

update A表 set name='test' where id=1修改id为1的name值为test

查:

1:左关联和右关联的区别?

答:左关联( left join)左表为主,左表数据全部显示,右表显示关联数据,无关联显示null,右关联( right join)相反。

2:模糊查询?

select* from A表 where name like'%a%'(name包含a字母)

查询结果: a, a bc,b a c,bc a

select* from A表 where name like' a%'(name值以a字母开头)

查询结果: a, a bc

select* from A表 where name like'%a'(name值以a字母结尾)

查询结果: a,bc a

3:统计:count和sum

count统计表的记录数,sum统计某列数值总和。

select count(*) from A表

select count(1) from A表

select count(列名) from A表

区别:

count(*):所有记录,包括null值

count( 1):所有记录,包括null值

count(列名):列名有值得记录,不包括null值

执行效率:

以前是count(1)比count(*)快,但现在count(*)底层算法优化,查询更快,所以推荐count(*)

统计有效数据的记录,count(列名)

select sum(列名) from A表计算列名数值总和。

举例:

查询A表中,姓王的用户量

select count(*) from A where name like'王%'

Plus版

1:去重distinct,查询不重复记录的数据

必须放开头

select distinct列名 from表名(查询所有列名数据,去掉重复数据)

举例:

表A,查询考核等级grade,有哪些值

select distinct grade from A

2:分组group by,根据某个字段分组

select列名 from表名 group by列名,一般会配合聚合函数一起使用

举例:

表A中,查询考核等级grade字段,不同值各多少人

select grade,count(*) from A group by grade

3:limit,查询结果返回的数量,多用于分页查询

select* from表名 limit i,n i代表查询结果的索引值,默认从0开始,n返回查询的结果数。

举例:

订单表A,查询第21条到30条数据

select* from A limit 20,10

可能会问为什么不能直接用id查询?因为id不准确,可能存在id不连续的情况。如果某条数据被物理删除了呢?

何为物理删除和逻辑删除?

物理删除,直接将某条数据,从表中删除。

逻辑删除,仅通过某个字段标记删除,实际表中还存在。(比如:is_delete=1代表已删除,is_delete=0未删除)

4:排序order by列名 asc(列名值升序排列)和order by列名 desc(列名值降序排列)

举例:

用户表A,按照用户id升序(select查询默认根据主键升序,所以升序,不加order by也可以)

select* from A order by id asc同select*from A

用户表A,按照新建时间倒序

select* from A order by create_time desc

5:in和between查询某个范围的数值

举例:

in:查询指定数值的数据

between:查询某个范围内的数据

举例:

查询表A中,id=1和id=10的数据

select* from A where id in(1,10)

查询表A中,1月份新增的数据

select* from A where create_time between'2022-01-01' and'2022-01-31 23:59:59'

已知有如下4张表:

学生表:student(学号,学生姓名,出生年月,性别)

成绩表:score(学号,课程号,成绩)

课程表:course(课程号,课程名称,教师号)

教师表:teacher(教师号,教师姓名)

准备练习数据

1)创建学生表(student)

2)创建成绩表(score)

3)创建课程表(course)

4)教师表(teacher)

1)学生表添加数据

2)成绩表添加数据

3)课程表添加数据

4)教师表添加数据

简单查询

查询姓“猴”的学生名单

查询姓名中最后一个字是“猴”字的学生名单

查询姓名中带“猴”字的学生名单

查询姓“孟”老师的个数

汇总分析

1.汇总分析

查询课程编号为“0002”的总成绩

查询选了课程的学生人数

2.分组

查询各科成绩的最高分和最低分,以如下的形式显示:课程号,最高分,最低分

查询每门课程选修的学生数

3.分组结果的条件

查询至少选修两门课程的学生学号

查询同名同姓学生名单并统计同名人数

分析:条件:怎么算姓名相同?按姓名分组后人数大于等于2,因为同名的人数大于等于2,分析出这一点很重要

查询不及格的课程并按课程号从大到小排列

查询每门课程的平均成绩,结果按平均成绩升序排序,平均成绩相同时,按课程号降序排列

检索课程编号为“0004”且分数小于60的学生学号,结果按按分数降序排列

统计每门课程的学生选修人数(超过2人的课程才统计),要求输出课程号和选修人数,查询结果按人数降序排序,若人数相同,按课程号升序排序

查询两门以上不及格课程的同学的学号及其平均成绩

第2步:再加上限制条件:

1)不及格课程

2)两门以上[不及格课程]

4.查询结构排序,分组的指定条件

查询学生的总成绩并进行排名

查询平均成绩大于60分的学生的学号和平均成绩

复杂查询

查询课程成绩小于60分学生的学号、姓名

【知识点】子查询

1.翻译成大白话

1)查询结果:学生学号,姓名

2)查询条件:所有课程成绩< 60的学生,需要从成绩表里查找,用到子查询

第1步,写子查询(所有课程成绩< 60的学生)

第2步,查询结果:学生学号,姓名,条件是前面1步查到的学号

查询没有学全所有课的学生的学号、姓名

查询出只选修了两门课程的全部学生的学号和姓名

查找1990年出生的学生名单

查询本月过生日的学生

工作中会经常遇到这样的业务问题:

如何找到每个类别下用户最喜欢的产品是哪个?

如果找到每个类别下用户点击最多的5个商品是什么?

这类问题其实就是常见的:分组取每组最大值、最小值,每组最大的N条(top N)记录。

分组取每组最大值,按课程号分组取成绩最大值所在行的数据

分组取每组最小值,按课程号分组取成绩最小值所在行的数据

每组最大的N条记录,查询各科成绩前两名的记录

第1步,查出有哪些组

我们可以按课程号分组,查询出有哪些组,对应这个问题里就是有哪些课程号

第2步:先使用order by子句按成绩降序排序(desc),然后使用limt子句返回topN(对应这个问题返回的成绩前两名)

第3步,使用union all将每组选出的数据合并到一起

多表查询

查询所有学生的学号、姓名、选课数、总成绩

查询平均成绩大于85的所有学生的学号、姓名和平均成绩

查询学生的选课情况:学号,姓名,课程号,课程名称

软件测试的面试题

软件测试分很多类型,如图所示:

一个软件测试工程师应该具备的基本素质如:细心认真、负责严谨、耐心、缜密的逻辑思维能力,能够举一反三,较强的沟通能力(测试人员不单单只是发现问题,应该更多的关注bug产生的真正原因,准确的定位,更好更快的协助开发人员解决bug)。

但若想成为一名优秀的测试人员,光有上面基本素质是远远不够的,还必须具备如下的素质:

首先,你必须是专业的,打个比方,你发现bug了,在你将bug反馈给开发之前,你必须多次、反复的确认你所提问题的存在,不要在反馈的时候,别人几句就给反驳了,你要让别人没有任何反驳的余地,你所说的每一点都要有理有据。

其次,就是过硬的技术本领,技术是为测试服务的,无论是测试理论、测试工具、开发知识、数据库、操作系统、网络知识都必须精通一门,知晓其它,因为测试与开发或者其它行业不同,它可能更多的在乎你广度而不是深度(这个可能更多的是指手工测试)

第三,要精通业务,光有技术,没有业务,再好的技术也很难使上劲,熟练的业务知识会帮助你发现更多的缺陷,进而更好的保证好产品的质量。

关于往哪方面进一步发展,要看你自己的个人职业规划,看你以后想往哪些方面发展,希望能够帮到你!

软件测试数据库面试题和软件测试SQL面试题的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!

达梦数据库官网?达梦数据库 如何启动命令行工具 disql易语言access数据库,在易语言中如何将数据添加到access数据库中