精华内容
下载资源
问答
  • 面试大公司的时候,很多情况下都有笔试,笔试经常包含软件测试的基础知识点、逻辑、等等,有时候也会碰到关于sql语句的题目,今天来列举一些简单的sql语句,希望对大家有所帮助。

    在面试大公司的时候,很多情况下都有笔试题,笔试题经常包含软件测试的基础知识点、逻辑题、等等,有时候也会碰到关于sql语句的题目,今天来列举一些简单的sql语句,希望对大家有所帮助。

    创建表语句

    SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE [dbo].[stuscore]( [name] varchar COLLATE Chinese_PRC_CI_AS NULL, [subject] varchar COLLATE Chinese_PRC_CI_AS NULL, [score] [int] NULL, [stuid] [int] NULL) ON [PRIMARY] GOSET ANSI_PADDING OFF

    插入数据

    insert into dbo.stuscore values (‘张三’,‘数学’,89,1);insert into dbo.stuscore values (‘张三’,‘语文’,80,1);insert into dbo.stuscore values (‘张三’,‘英语’,70,1);insert into dbo.stuscore values (‘李四’,‘数学’,90,2);insert into dbo.stuscore values (‘李四’,‘语文’,70,2);insert into dbo.stuscore values (‘李四’,‘英语’,80,2);

    查询语句

    select * from dbo.stuscore
    在这里插入图片描述

    问题:

    1.计算每个人的总成绩并排名(要求显示字段:姓名,总成绩)

    select name,SUM(score) as allscore from dbo.stuscore
    group by name
    order by allscore;

    2.计算每个人的总成绩并排名(要求显示字段: 学号,姓名,总成绩)

    select stuid,name,SUM(score) as allscore from dbo.stuscore
    group by name,stuid
    order by allscore;

    3.计算每个人单科的最高成绩(要求显示字段: 学号,姓名,课程,最高成绩)

    select t1.stuid,t1.name,t1.subject,t1.score from stuscore t1,
    (select stuid,max(score) as maxscore from stuscore group by stuid) t2
    where t1.stuid=t2.stuid and t1.score=t2.maxscore;

    4.计算每个人的平均成绩(要求显示字段: 学号,姓名,平均成绩)

    select stuid,name,AVG(score) avgscore from dbo.stuscore
    group by stuid,name;

    5.列出各门课程成绩最好的学生(要求显示字段: 学号,姓名,科目,成绩)

    select t1.stuid,t1.name,t1.subject,t1.score from stuscore t1,(
    select subject,MAX(score) as maxscore from stuscore group by subject)t2
    where t1.subject = t2.subject and t1.score = t2.maxscore;

    6.列出各门课程成绩最好的两位学生(要求显示字段: 学号,姓名,科目,成绩)

    select t1.* from stuscore t1 where t1.stuid in (
    select top 2 stuid from stuscore where subject = t1.subject order by score desc)
    order by t1.subject;

    7.列出数学成绩的排名(要求显示字段:学号,姓名,成绩,排名)

    select stuid,name,score,
    (select count(*) from stuscore t1 where subject =‘数学’ and t1.score > t2.score)+1 as 名次 from stuscore t2
    where subject=‘数学’ order by score desc;

    最后,下面是我整理出来的一份软件测试工程师发展方向知识架构体系图。

    希望大家能在这个成长过程中收益良多。可以说,这个过程会让你痛不欲生,但只要你熬过去了。以后的生活就轻松很多。正所谓万事开头难,只要迈出了第一步,你就已经成功了一半,古人说的好“不积跬步,无以至千里。”等到完成之后再回顾这一段路程的时候,你肯定会感慨良多。

    由于CSDN上传图片大小有限,有需要的朋友可以关注我的公众号:程序员二黑,回复1,即可获取原图。

    下面是一份配套的软件测试资源包:

    上面是一些配套资源,对于软件测试的的朋友来说应该是最全面最完整的备战仓库,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你。

    关注我的微信公众号:程序员二黑,即可免费获取!

    最困难的时候,也就是我们离成功不远的时候!如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入我们的群:785128166 大家一起讨论交流学习。

    推荐阅读

    高薪程序员也躲不过35岁这一关…当能力与年龄脱节,我们该如何自救?

    清华学姐熬了一个月肝出这份32W字Linux知识手册,在 Github标星31K+

    字节跳动软件测试岗,前两面过了,第三面HR天坑!竟然跟我说……

    展开全文
  • 软件测试面试笔试准备(sql增删改查语句超全整理!看这篇就够了)

    Sql语句真的是测试人员必备技能了,当然也是面试笔试题必有的

    以下场景都能用到

    ² 获取验证码

    ² 核对后端返回的数据是否与数据库一致(这点在大数据相关产品的测试中比重很大)

    ² 修改数据创建测试场景(比如你需要测试验证几个月以后账单,那么需要修改时间)

    ² 核对一些公式计算(如求和、环比等)

    ² Python连接数据库获取数据库数据

    、、、等等

    接下来咱们准备一些常见语句

    建议配合mysql+navicat使用(下次出安装教程)

    如果对软件测试有兴趣,想了解更多的测试知识,解决测试问题,以及入门指导,帮你解决测试中遇到的困惑,我们这里有技术高手。如果你正在找工作或者刚刚学校出来,又或者已经工作但是经常觉得难点很多,觉得自己测试方面学的不够精想要继续学习的,想转行怕学不会的, 都可以加入我们810119819,群内可领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!微信公号【程序员阿沐】

    1. 新建student、score表

    
    CREATE  TABLE  student
    (
    id          INT(10)      NOT NULL    UNIQUE  PRIMARY KEY,
    name        VARCHAR(20)  NOT NULL,
    sex         VARCHAR(4),
    birth       YEAR,
    department  VARCHAR(20) ,
    address     VARCHAR(50)
    );
    
    
    CREATE  TABLE  score
    (
    id          INT(10)      NOT NULL    UNIQUE  PRIMARY KEY  AUTO_INCREMENT,
    stu_id      INT(10)      NOT NULL ,
    c_name      VARCHAR(20) ,
    grade       INT(10)
    );
    

    2. 增INSERT INTO

    1. 向student表插入记录:
    
    INSERT INTO student VALUES( 901,'张老大', '男',1999,'计算机系', '北京市海淀区');
    INSERT INTO student VALUES( 902,'张老二', '男',1998,'中文系', '北京市昌平区');
    INSERT INTO student VALUES( 903,'张三', '女',1997,'中文系', '湖南省永州市');
    INSERT INTO student VALUES( 904,'李四', '男',1996,'英语系', '辽宁省阜新市');
    INSERT INTO student VALUES( 905,'王五', '女',1995,'英语系', '福建省厦门市');
    INSERT INTO student VALUES( 906,'王六', '男',1994,'计算机系', '湖南省衡阳市');
    

    在这里插入图片描述
    2) 向score表插入记录:

    INSERT INTO score VALUES(NULL,901, '计算机',98);
    INSERT INTO score VALUES(NULL,901, '英语', 80);
    INSERT INTO score VALUES(NULL,902, '计算机',65);
    INSERT INTO score VALUES(NULL,902, '中文',88);
    INSERT INTO score VALUES(NULL,903, '中文',95);
    INSERT INTO score VALUES(NULL,904, '计算机',70);
    INSERT INTO score VALUES(NULL,904, '英语',92);
    INSERT INTO score VALUES(NULL,905, '英语',94);
    INSERT INTO score VALUES(NULL,906, '计算机',90);
    INSERT INTO score VALUES(NULL,906, '英语',85);
    

    在这里插入图片描述
    3) 补充excel批量生成sql语句批量插入记录
    https://jingyan.baidu.com/article/ca41422f99bdfc5eae99edb1.html

    3. 删DELETE

    delete:delete from表名1 where范围(删除表内符合条件的内容)

    delete from表名1(清空数据表内容,不释放空间,即:下次插入表数据,id依然接着删除数据的id继续增加)

    truncate:truncate table表名1(清空表数据,释放空间,即:下次插入表数据,id从1重新开始)

    drop:drop table表名1(整张表被删除,要使用该表必须重新建)

    1. 删除student表名字为张老大的记录
    delete from student where name="张老大";
    

    4. 改Update

    UPDATE 表名称SET列名称=新值WHERE列名称=某值

    1. 将student表张老大的名字改成大老张
    update Student set name='大老张'where name='张老大'
    
    select * from student
    

    观察改变

    5. 查(重点!!!)

    select 查询字段from表名where查询条件

    举例说明:

    1. 查询出表student中性别为女的所有学生信息
      select * from student where sex=“女”

    查询student表的第2条到4条记录

    
    SELECT * FROM student LIMIT 1,3;
    
    1. 计算并查询出院系为中文系的学生的总分数(双表连接查询)
    select sum(grade),department from (select score.grade,student.department from score  INNER JOIN student ON score.stu_id=student.id) AS a GROUP BY department
    
    1. 计算并查询出表score中计算机的平均分数
    select AVG(grade) from score where c_name="计算机"
    
    1. 计算并查询出表score中计算机的最低/最高分数
    select MIN(grade) from score where c_name="计算机"
    
    select max(grade) from score where c_name="计算机"
    
    1. 查询出表score中计算机的信息按照分数倒序排列(desc是逆序排序,asc是正序排序,asc可省略不写)
    select * from score where c_name="计算机" order by grade desc
    
    1. 统计每个院系学生人数
    select count(id),department  from student  group by department
    
    1. 从student表中查询年龄18~22岁的学生信息
    
    SELECT id,name,sex,2019-birth AS age,
    
    department,address
    
    FROM student
    
    WHERE 2019-birth BETWEEN  18 AND 22;
    
    SELECT id,name,sex,2019-birth AS age,
    
    department,address
    
    FROM student
    
    WHERE 2019-birth>=18 AND 2019-birth<=22;
    
    

    6. 数据检索-多表查询

    1. 查询李四的考试科目(c_name)和考试成绩(grade)
    
    SELECT c_name, grade
    FROM score
    WHERE
        stu_id=(SELECT id FROM student WHERE name= '李四' );
    
    1. 用连接的方式查询所有学生的信息和考试信息
    SELECT student.id,name,sex,birth,
    
    department,address,c_name,grade
    
    FROM student,score
    
    WHERE student.id=score.stu_id;
    

    作业:左连接右链接,内连接和外链接的区别。

    1. 计算每个学生的总成绩
    
    SELECT student.id,name,SUM(grade)
    
    FROM student,score
    
    WHERE student.id=score.stu_id
    
    GROUP BY id;
    
    1. 查询计算机成绩低于95的学生信息
    SELECT * FROM student
    WHERE id IN
    (SELECT stu_id FROM score
    WHERE c_name="计算机" and grade<95);
    
    1. 查询同时参加计算机和英语考试的学生的信息
    
    SELECT *  FROM student
    
    WHERE
    
    id =ANY( SELECT stu_id FROM score WHERE stu_id IN (
     SELECT stu_id FROM
    score WHERE c_name=  '计算机')
    AND c_name= '英语' );
    
    SELECT a.* FROM student a ,score b ,score c
    WHERE
    
    a.id=b.stu_id
    AND b.c_name='计算机'
    AND a.id=c.stu_id
    AND c.c_name='英语';
    
    
    1. 从student表和score表中查询出学生的学号,然后合并查询结果
    SELECT id  FROM student
    UNION
    SELECT stu_id  FROM score;
    
    1. 查询姓张或者姓王的同学的姓名、院系和考试科目及成绩
    
    SELECT student.id, name,sex,birth,
    
    department, address, c_name,grade
    
    FROM student, score
    
    WHERE
    
    (name LIKE  '张%'  OR name LIKE  '王%')
    
    AND
    
    student.id=score.stu_id ;
    
    1. 查询都是湖南的学生的姓名、年龄、院系和考试科目及成绩
    SELECT student.id, name,sex,birth,department, address, c_name,grade
    
    FROM student, score
    
    WHERE address LIKE '湖南%'   AND
    
    student.id=score.stu_id;
    Score、student两张表内连接
    select score.stu_id,score.grade,score.c_name,student.department,student.name from score  INNER JOIN student ON score.stu_id=student.id
    

    其他一些补充(与插入记录无关):

    1. 查询去重单个字段后显示所有列
      select * from 表名where主键in(select max(主键) from表名group by要去重的字段)

    eg:

    SELECT * FROM user_bill
    where bill_no in(select max(bill_no) from user_bill group by subsidy_order_no);
    
    1. 查询不为空
    select * from 表名where不为空的字段名is not null
    
    1. 查询在字段=(xx,xx,xx,xx)的数据
    SELECT column_name(s)
    FROM table_name
    WHERE column_name IN (value1,value2,...)
    
    1. having分组过滤条件
      按照年龄分组,过滤年龄为空的数据,并且统计分组的条数和现实年龄信息
    select count(*), age from student group by age having age is not null;
    
    1. 查询含某字段的所有表
    SELECT TABLE_NAME
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE COLUMN_NAME = 'cycle'
    

    如果直接使用Navicat。。。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 软件测试面试题中的sql题目

    万次阅读 多人点赞 2017-12-20 16:14:51
    软件测试面试题中的sql题目,你可能碰到的查询一班得分在80分以上的学生
    1. 
    
    学生表(学生id,姓名,性别,分数)student(s_id,name,sex,score)
    班级表(班级id,班级名称)class(c_id,c_name)
    学生班级表(班级id,学生id)student_class(s_id,c_id)
    1.查询一班得分在80分以上的学生
    2.查询所有班级的名称,和所有版中女生人数和女生的平均分
    题解:
    1 .select * from student where score> 80 and  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 c
    inner join student_class sc on sc.c_id=c.c_id
    inner join students s on s.s_id=sc.s_idwhere s.sex= '女' group by c.c_name

    2.一道SQL语句面试题,关于group by表内容:

    info 表

    date result

    2005-05-09 win

    2005-05-09 lose

    2005-05-09 lose

    2005-05-09 lose

    2005-05-10 win

    2005-05-10 lose

    2005-05-10 lose

    如果要生成下列结果, 该如何写sql语句?

               win lose

    2005-05-09 2 2

    2005-05-10 1 2

    答案:

    ( 1 ) select date , sum ( case when result = "win" then 1 else 0 end ) as "win", 
    sum ( case when result = "lose" then  1 else 0 end ) as "lose" from info group by date ;
    ( 2 ) select a.date, a.result as win, b.result as lose  from
      ( select date , count ( result ) as result from info where result = "win" group by date ) as a
       join
      ( select date , count ( result ) as result from info where result = "lose" group by date ) as b

       on a.date = b.date; 2.学生成绩表(stuscore):
    3.表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列
     select ( case when a > b then a else b end ), ( case when b > c then b else c end ) from table ;

    4.

    有一张表,里面有3个字段:语文,数学,英语。其中有3条记录分别表示语文70分,数学80分,英语58分,请用一条sql语句查询出这三条记录并按以下条件显示出来(并写出您的思路):?
    大于或等于80表示优秀,大于或等于60表示及格,小于60分表示不及格。?
    显示格式:?
    语文 数学 英语?
    及格 优秀 不及格?
    ------------------------------------------
    select
    (case when 语文>=80 then '优秀'
    when 语文>=60 then '及格'
    else '不及格') as 语文,
    (case when 数学>=80 then '优秀'
    when 数学>=60 then '及格'
    else '不及格') as 数学,
    (case when 英语>=80 then '优秀'
    when 英语>=60 then '及格'
    else '不及格') as 英语,
    from table
    5.姓名:name 课程:subject 分数:score 学号:stuid

    张三 数学 89 1

    张三 语文 80 1

    张三 英语 70 1

    李四 数学 90 2

    李四 语文 70 2

    李四 英语 80 2

    题解:

    1.计算每个人的总成绩并排名(要求显示字段:姓名,总成绩)

    答案:select name,sum(score) as allscore from stuscore group by name order by allscore

    2.计算每个人的总成绩并排名(要求显示字段: 学号,姓名,总成绩)

    答案:select distinct t1.name,t1.stuid,t2.allscore from stuscore t1,( select stuid,sum(score) as allscore from stuscore group by stuid)t2where t1.stuid=t2.stuidorder by t2.allscore desc

    3.计算每个人单科的最高成绩(要求显示字段: 学号,姓名,课程,最高成绩)

    答案:select t1.stuid,t1.name,t1.subject,t1.score from stuscore t1,(select stuid,max(score) as maxscore from stuscore group by stuid) t2where t1.stuid=t2.stuid and t1.score=t2.maxscore

    4.计算每个人的平均成绩(要求显示字段: 学号,姓名,平均成绩)

    答案:select distinct t1.stuid,t1.name,t2.avgscore from stuscore t1,(select stuid,avg(score) as avgscore from stuscore group by stuid) t2where t1.stuid=t2.stuid

    5.列出各门课程成绩最好的学生(要求显示字段: 学号,姓名,科目,成绩)

    答案:select t1.stuid,t1.name,t1.subject,t2.maxscore from stuscore t1,(select subject,max(score) as maxscore from stuscore group by subject) t2where t1.subject=t2.subject and t1.score=t2.maxscore

    6.列出各门课程成绩最好的两位学生(要求显示字段: 学号,姓名,科目,成绩)

    答案:select distinct t1.* from stuscore t1 where t1.id in (select top 2 stuscore.id from stuscore where subject = t1.subject order by score desc) order by t1.subject

    7.统计如下:学号 姓名 语文 数学 英语 总分 平均分

    答案:select stuid as 学号,name as 姓名,sum(case when subject=’语文’ then score else 0 end) as 语文,sum(case when subject=’数学’ then score else 0 end) as 数学,sum(case when subject=’英语’ then score else 0 end) as 英语,sum(score) as 总分,(sum(score)/count(*)) as 平均分from stuscoregroup by stuid,name order by 总分desc

    8.列出各门课程的平均成绩(要求显示字段:课程,平均成绩)

    答案:select subject,avg(score) as avgscore from stuscoregroup by subject

    9.列出数学成绩的排名(要求显示字段:学号,姓名,成绩,排名)

    答案:

    declare @tmp table(pm int,name varchar(50),score int,stuid int)

    insert into @tmp select null,name,score,stuid from stuscore where subject=’数学’ order by score desc

    declare @id int

    set @id=0;

    update @tmp set @id=@id+1,pm=@id

    select * from @tmp

    oracle:

    select DENSE_RANK () OVER(order by score desc) as row,name,subject,score,stuid from stuscore where subject=’数学’order by score desc

    ms sql(最佳选择)

    select (select count(*) from stuscore t1 where subject =’数学’ and t1.score>t2.score)+1 as row ,stuid,name,score from stuscore t2 where subject =’数学’ order by score desc

    10.列出数学成绩在2-3名的学生(要求显示字段:学号,姓名,科目,成绩)

    答案:select t3.* from(select top 2 t2.* from (select top 3 name,subject,score,stuid from stuscore where subject=’数学’order by score desc) t2 order by t2.score) t3 order by t3.score desc

    11.求出李四的数学成绩的排名

    答案:

    declare @tmp table(pm int,name varchar(50),score int,stuid int)insert into @tmp select null,name,score,stuid from stuscore where subject=’数学’ order by score descdeclare @id intset @id=0;update @tmp set @id=@id+1,pm=@idselect * from @tmp where name=’李四’

    12.统计如下:课程 不及格(0-59)个 良(60-80)个 优(81-100)个

    答案:select subject, (select count(*) from stuscore where score<60 and subject=t1.subject) as 不及格,(select count(*) from stuscore where score between 60 and 80 and subject=t1.subject) as 良,(select count(*) from stuscore where score >80 and subject=t1.subject) as 优from stuscore t1 group by subject

    13.统计如下:数学:张三(50分),李四(90分),王五(90分),赵六(76分)

    答案:

    declare @s varchar(1000)set @s=”select @s =@s+’,’+name+'(‘+convert(varchar(10),score)+’分)’ from stuscore where subject=’数学’ set @s=stuff(@s,1,1,”)print ‘数学:’+@s

    14.计算科科及格的人的平均成绩

    答案: select distinct t1.stuid,t2.avgscore from stuscore t1,(select stuid,avg(score) as avgscore from stuscore group by stuid ) t2,(select stuid from stuscore where score<60 group by stuid) t3 where t1.stuid=t2.stuid and t1.stuid!=t3.stuid;


    select name,avg(score) as avgscore from stuscore s where (select sum(case when i.score>=60 then 1 else 0 end) from stuscore i where i.name= s.name)=3 group by name

    1. 用一条SQL 语句 查询出每门课都大于80 分的学生姓名 

    name   kecheng   fenshu
     张三      语文       81
     张三      数学       75
     李四      语文       76
     李四      数学       90
     王五      语文       81
     王五      数学       100
     王五      英语       90

     A: select distinct name from table where name not in (select distinct name from table where fenshu<=80)
     select name from table group by name having min(fenshu)>80 



    展开全文
  • 软件测试面试题(面试前准备篇)

    万次阅读 多人点赞 2019-09-27 10:42:37
    是否了解软件测试需要掌握哪些知识(问到类似问题) 之前面试过,觉得自己需要补充哪些?做了哪些行动? 为什么做测试,觉得自己做测试有哪些优势?(有问到) 知道哪些Bug系统 9.测试用例的基本要素是? 二、...

    目录

    一、问题预测

    1. 让简单介绍下自己(每次面试开场)

    2. 让说下自己会的内容

    3. 看了哪些书籍(有问到)

    4. 了解过哪些技术博客/论坛(有问到)

    5. 是否了解软件测试需要掌握哪些知识(问到类似问题)

    6. 之前面试过,觉得自己需要补充哪些?做了哪些行动?

    7. 为什么做测试,觉得自己做测试有哪些优势?(有问到)

    8. 知道哪些Bug系统

    9.测试用例的基本要素是?

    二、介绍一下公司项目

    三、技能方面

    1、 数据库方面常识

    2、 linux操作

    3、缺陷方面(有问到)

    4、用例部分

    5、软件测试流程

    6、网络相关

    7、测试工具

    8、其他概念问题

    四、你还有什么想问的吗(必答)

    五、简历模板

    一、问题预测

    1. 让简单介绍下自己(这个不用说了每次面试开场)

    你好,我叫xx,来自xx,毕业于xx。目前有两年的功能测试经验。最近的一份工作是xx公司,主要参与app系统测试,负责xxapp,一款类似抖音的短视频app功能测试,负责过的功能模块有拍摄、上传、搜索、推荐引擎等。主要运用边界值,等价类,错误推测等常见黑盒测试方法。

    1. 让说下自己会的内容

    我熟悉软件测试基础理论和测试流程,测试方法等,有app测试、web测试、接口测试经验。熟悉数据库增删改查操作,熟悉使用测试管理工具。

    1. 看了哪些书籍(有问到)

    软件测试,软件测试的艺术、软件测试实用教程,在我负责短视频的推荐引擎测试期间看完了项亮的《推荐系统实战》主要是推荐系统的评测部分。

    1. 了解过哪些技术博客/论坛(有问到)

    51testing论坛,CSDN一些博客(面试经验:面试中会问具体哪些博客),和公众号(搜狗测试、软件测试资源分享)

    1. 是否了解软件测试需要掌握哪些知识(有问到类似问题)

    软件测试基础知识,流程,测试用例方法,数据库相关知识,抓包分析,接口测试、测试工具、性能测试等。

    1. 之前面试过,觉得自己需要补充哪些?做了哪些行动?

    很多公司对性能测试和自动化测试工具有要求,由于之前的工作主要涉及的是功能测试,所以这方面的知识储备不够。不过最近我在学习这方面的知识,希望以后在工作中能深入学习。

    1. 为什么做测试,觉得自己做测试有哪些优势?(有问到)

    我觉得我个人的性格比较适合做测试。我比较细心耐心,考虑事情比较全面,这样对于我在设计测试用例时很有帮助,而且我能够很好的与人协调沟通,当我们测试和开发发生沟通上的矛盾时我也能很好的解决,我平常喜欢刷微博、知乎看热门评论,喜欢考究大众心理,这有助于我站在用户角度设计测试点。

    1. 知道哪些Bug系统

    禅道/bugzila等

    9.测试用例的基本要素是?

    版本号,功能模块,优先级别,前置条件,步骤,预期结果,实际结果等。

    二、介绍一下公司项目

    xxapp,是一款集短视频、游戏、直播、社交互动于一体的内容娱乐APP。公司大约一个月发布一个较大的版本,需求数20几个-40几个不等(用例数xx+),每个版本包括的需求www\wap、后台以及客户端的需求。项目分客户端版本负责人、后台版本负责人、H5版本负责人等,负责人牵头及落实整个测试流程。我当过的角色有H5活动负责人、推荐引擎版本负责人、客户端和后台系统测试人员。负责过的模块用例数大概是500左右。

    三、技能方面

    1、数据库方面常识

    l关系型数据库:把复杂的数据结构归结为简单的二元关系(即二维表格形式),通过SQL结构化查询语句存储数据

    典型产品:

    Mysql:互联网领域、大中小型网站,游戏公司,电商平台等等。体积小、速度快、成本低、开放源代码

    Oracle:传统大企业、大公司、政府、金融、证券等。安全性、成本高、

    l非关系型数据库:非关系型数据库也被成为NoSQL数据库,NOSQL的本意是“Not Olnly SQL”。NOSQL为了高性能、高并发而生

    其他分类

    1)键值(Key-Value)存储数据库:主要是使用一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。简单、易部署、高并发

    典型:Redis、Memcached

    2)列存储(Column-oriented)数据库:应对分布式存储的海量数据。如果我们有一个Person类,我们通常会一起查询他们的姓名和年龄,而不是薪资。这种情况下,姓名和年龄就会被放入一个列族中,而薪资则在另外一个列族中。

    典型:Hbase

    3)面向文档数据库:数据存储的最小单位是文档

    典型:Mongodb、Hive

    Mongodb一个介于关系型数据库和非关系型数据库之间的产品。高性能、易部署、易使用,存储数据非常方便。

    Hive可以用来进行统计查询,HBase可以用来进行实时查询

    一些增删改查笔试题准备

    (另起一篇)

    2、linux操作

    linux搭建测试环境,比如web系统服务搭建。

    一些常见命令准备

    (另起一篇)

    3、缺陷方面(有问到)

    描述一个你印象最深刻的bug

    在做上传视频的测试时,发现华为荣耀V10上传手机自带相机专业模式录制的视频会闪退。而ios上传同个视频提示合成失败。

    我将手机自带相机录制的专业模式和普通模式录制的同样时长的视频发到电脑上,用格式工厂软件查看视频的不同之处,之后发现视频编码是不同的。

    我继续网上查阅了视频编码方面的知识,发现mp4视频有几种编码,而继续测试验证发现我们的app上传的视频只支持mp4视频中的H.264编码格式。于是提交了视频上传不支持非H.264格式的视频。并补充完善了相关用例。

    (因为在公司没有查日志权限,所以其实应该先查日志)

    4、用例部分

    现场让你设计个用例,比如水杯、凳子怎么测试?

    首先说明的是,遇到这样的测试题目,首先应该反问面试官,需求是什么样的,比如是测什么样的杯子。

    因为设计测试用例的规则应该是根据需求分析文档设计用例,客户需求什么,就测试什么。

    但是在没有需求分析文档的前提下,来设计测试用例,可以考查一个测试人员的基本功,比如考虑问题是否全面,设计测试用例的方法是否合理等。

    一般是根据自己的日常经验和测试的思维来设计测试用例。在设计测试用例时一般从以下几个方面进行分析:功能测试,性能测试,界面测试,安全性测试,兼容性测试,可用性测试,可靠性测试,本地化/国际化测试。

    例子(另起一篇)

    5、软件测试流程

    公司严格规范测试流程和测试文档,首先是参与需求评审,编写测试计划、测试方案、测试用例,进行测试方案及用例的测试组内部评审,外部评审。

    提取部分一级用例提交研发自测,研发自测通过后开开始执行一轮系统测试。

    测试过程中发现并提交、跟踪问题。

    问题修复后进行回归测试。

    一轮测试完成后对修复包进行冒烟测试,测试通过则进行二轮测试。

    二轮测试完成后会进行需求交叉测试。

    完成测试编写系统测试报告提交验收测试。验收测试通过输出验收测试报告。

    6、网络相关

    网络协议,如TCP/UDP的区别?(https://www.cnblogs.com/steven520213/p/8005258.html)

    1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接

    2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付

    3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的

    UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)

    4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信

    5、TCP首部开销20字节;UDP的首部开销小,只有8个字节

    6、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道

    三次握手与四次挥手

    三次握手通俗版:

    第一次握手:客户端要和服务端进行通信,首先要告知服务端一声,遂发出一个SYN=1的连接请求信号,”服务端哥哥,我想给你说说话”。

    第二次握手:当服务端接收到客户端的连接请求,此时要给客户端一个确认信息,”我知道了(ACK),我这边已经准备好了,你现在能连吗(SYN)”。

    第三次握手:当客户端收到了服务端的确认连接信息后,要礼貌的告知一下服务端,“好的,咱们开始联通吧(ACK)”。

    到此整个建立连接的过程已经结束,接下来就是双方你一句我一句甚至同时交流传递信息的过程了。

    四次挥手断开连接通俗版:

    第一次挥手:双方交流的差不多了,此时客户端也已经结尾了,接下来要断开通信连接,所以告诉服务端“我说完了(FIN)”,此时自身形成等待结束连接的状态。

    第二次挥手:服务端知道客户端已经没话说了,服务端此时还有两句话要给客户端说“我知道你说完了(ACK),我再说两句&*…%¥”…

    第三次挥手:此时客户端洗耳恭听继续处于等待结束的状态,服务器端也说完了,自身此时处于等待关闭连接的状态,并对告诉客户端,“我说完了,咱们断了吧(FIN)”。

    第四次挥手:客户端收知道服务端也说完了,也要告诉服务端一声(ACK),因为连接和断开要双方都按下关闭操作才能断开,客户端同时又为自己定义一个定时器,因为不知道刚才说的这句话能不能准确到达服务端(网络不稳定或者其他因素引起的网络原因)。

    所以默认时间定为两个通信的最大时间之和,超出这个时间就默认服务器端已经接收到了自己的确认信息,此时客户端就关闭自身连接,服务器端一旦接收到客户端发来的确定通知就立刻关闭服务器端的连接。

    到此为止双方整个通信过程就此终结。

    这里要声明一下:断开链接不一定就是客户端,谁都可以先发起断开指令,另外客户端和服务端是没有固定标准的,谁先发起请求谁就是客户端。

    三次握手阐述:

    在第一次消息发送中,A随机选取一个序列号作为自己的初始序号发送给B;

    第二次消息B使用ack对A的数据包进行确认,因为已经收到了序列号为x的数据包,准备接收序列号为x+1的包,所以ack=x+1,同时B告诉A自己的初始序列号,就是seq=y;

    第三条消息A告诉B收到了B的确认消息并准备建立连接,A自己此条消息的序列号是x+1,所以seq=x+1,而ack=y+1是表示A正准备接收B序列号为y+1的数据包。

    四次挥手阐述:

    由于TCP连接时全双工的,因此,每个方向都必须要单独进行关闭,这一原则是当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,

    收到一个FIN只是意味着这一方向上没有数据流动了,即不会再收到数据了,但是在这个TCP连接上仍然能够发送数据,直到这一方向也发送了FIN。

    首先进行关闭的一方将执行主动关闭,而另一方则执行被动关闭,上图描述的即是如此。
    (1)第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
    (2)第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。
    (3)第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
    (4)第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。

    7、测试工具

    测试工具,无非这几类:

    自动化测试工具 (如QTP)

    性能测试工具 (如loadrunner)

    测试管理类 (如jira)

    安全测试工具

    渗透测试工具

    8、其他概念问题

    Beta测试与Alpha测试有什么区别

    1、Alpha测试

    Alpha测试是由用户在开发环境下进行的测试,也可以是开发机构内部的用户在模拟实际操作环境下进行的测试。开发者坐在用户旁边,这是在开发者受控的环境下进行的测试。由开发者随时记录下错误情况和使用中的问题。

    2、Beta测试

    Beta测试是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,这是在开发者无法控制的环境下进行的测试。由用户记录下遇到的所有问题,定期向开发者报告。beta测试是一模拟真实的使用环境从而发现缺陷的一种测试

    3、验收测试

    验收测试是以用户为主的测试,软件开发和QA人员也应该参加,测试一般在用户所在地进行,由用户验证软件产品是否满足了所有的需求的一系列的验收测试工作。

    仅限于做项目的公司,部门内部测试稳定后,根据合同中需求由发包商进行验收测试。验收测试的目的是为了以发现”未实现的需求”为目的,以评估”适合使用”为目标,该类测试的不是以发现缺陷为主要目的。

    区别:两者的主要区别是测试的场所不同。

    Alpha测试是指把用户请到开发方的场所来测试,beta测试是指在一个或多个用户的场所进行的测试。Alpha测试的环境是受开发方控制的,用户的数量相对比较少,时间比较集中。

    而beta测试的环境是不受开发方控制的,谁也不知道用户如何折磨软件,用户数量相对比较多,时间不集中。

    一般地,alpha测试先于beta测试执行。通用的软件产品需要较大规模的beta测试,测试周期比较长。如果产品通过了beta测试,那么就可以正式发行了。

    Alpha测试在系统开发接近完成时对应用系统的测试;测试后仍然会有少量的设计变更。这种测试一般由最终用户或其它人员完成,不能由程序或测试员完成。

    Beta测试 当开发和测试根本完成时所做的测试,最终的错误和问题需要在最终发行前找到。这种测试一般由最终用户或其它人员完成,不能由程序员或测试员完成。

    四、你还有什么想问的吗(必答)

    我非常希望能够加入公司,所以想请问您觉得我还有哪些地方比较不足,能否给一些建议?以及是否有复试时间呢?

    五、简历模板

    可在公众号《软件测试er》回复‘简历模板’获取
    文章首发于公众号

    关于我准备后的面试经历、面试题汇总、面试结果

    有兴趣请继续关注~

    展开全文
  • 软件测试之数据库面试题

    万次阅读 多人点赞 2018-11-04 21:47:57
    (1)防止sql注入,对特殊字符进行转义,过滤或者使用预编译的sql语句绑定变量。  (2)最小权限原则,特别是不要用root账户,为不同的类型的动作或者组建使用不同的账户。  (3)当sql运行出错时,不要把数据库...
  • 软件测试面试题汇总

    万次阅读 多人点赞 2018-09-27 12:31:09
    转载自: ... 软件测试面试题汇总 测试技术面试题 ...........................................................................................................
  • Word 资料 面试题-数据库-整理 数据库 省份 农作物 产量万吨 甘肃 小麦 321 江苏 小麦 3 . . . 湖南 水稻 432 湖北 水稻 211 . . . 甘肃 棉花 23 浙江 棉花 0.2 . . . 用一条sql语句根据以上表格查询出如下结果 ...
  • Java基础知识面试题(2020最新版)

    万次阅读 多人点赞 2020-02-19 12:11:27
    Java面试总结(2021优化版)已发布在个人微信公众号【技术人成长之路】,优化版首先修正了读者反馈的部分答案存在的错误,同时根据最新面试总结,删除了低频问题,添加了一些常见面试题,对文章进行了精简优化,欢迎...
  • 一道SQL语句面试题,关于group by的

    千次阅读 2015-07-29 19:31:51
    一道SQL语句面试题,关于group by 表内容: 2015-05-09 胜 2015-05-09 胜 2015-05-09 负 2015-05-09 负 2015-05-10 胜 2015-05-10 负 2015-05-10 负 如果要生成下列结果, 该如何写sql语句?  胜 负 2015-05-09 2 ...
  • Java面试题大全(2020版)

    万次阅读 多人点赞 2019-11-26 11:59:06
    发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本套Java面试题大全,全的不能再全,哈哈~ 一、Java 基础 1. JDK 和 JRE 有什么区别? JDK:Java ...
  • 1.白箱测试和黑箱测试是什么?什么是回归测试?2.单元测试、集成测试、系统测试的侧重点是什么?3.设计用例的方法、依据有那些?4.一个测试工程师应具备那些素质和技能?...10.软件测试项目从什么时候开始...
  • 软件测试经典面试题(小题汇总)

    万次阅读 多人点赞 2019-02-12 01:18:12
    整理收集一些大家的,自己来作答,回答不妥或者不全的还请大家指正 网络 (一)简单描述下TCP协议 TCP:传输控制协议,是传输层通信协议。它有面向连接、可靠、字节流传输等特点 TCP建立连接时,需要三次握手协议 ...
  • 软件测试工程师面试题之数据库

    千次阅读 2021-02-26 16:23:14
    软件测试工程师面试题之数据库
  • 软件测试面试题整理

    千次阅读 2019-09-01 10:20:04
    6、请说出软件测试流程及对应的开发阶段,及各阶段提交件。 7、系统测试及验收测试的流程 8、你是否参与过需求分析?你提了什么问题? 9、功能测试用例的组成 10、功能测试点怎么写 11、怎么定位缺陷 12、如何判断...
  • 2021软件测试面试题

    万次阅读 多人点赞 2021-01-11 15:46:23
    主要考察子查询,聚合函数,多表查询,分组,可参考下面链接(sql50sql50 插入语句 insert into [table] ([column],[column]) values(?,?) 删除语句 delete from [table] where column = ? 修改语句 update...
  • 2021年软件测试面试题大全

    万次阅读 多人点赞 2020-11-30 15:16:59
    简述测试流程: 1、阅读相关技术文档(如产品PRD、UI设计、产品流程图等)。 2、参加需求评审会议。 3、根据最终确定的需求文档编写测试计划。 4、编写测试用例(等价类划分法、边界值分析法等)。 5、用例评审...
  • 5、第五个问题问的是sql语句,因为这道我没听清楚,所以我在这里就不列举出来了,反正就是考察你对sql语句熟不熟悉,这里我建议大家去练一下常用的50条sql语句。 ? ? ? ? ? ? ? ? ? 6、Java的垃圾回收机制是什么...
  • 干 假设有一个张学生选课表(stud_subject),这个表有两个字段:姓名(name)...建表和测试数据初始化语句如下: create table stud_subject( name varchar(50) not null, subject varchar(50) not null );...
  • 原文链接地址
  • 2021年前端面试题及答案

    万次阅读 多人点赞 2020-02-11 19:29:34
    前端面试汇总(2020年) 一 大纲 1、前言 2、前端工程化 3、前端设计模式 ...8、*前端基础知识点面试题 ...由于新冠肺炎疫情,现在成天呆在家里,加上也要准备面试,就在家里看面试题...
  • 软件测试之MySQL数据库必知必会,面试必备!

    千次阅读 多人点赞 2020-07-05 12:21:02
    软件测试面试中遇到MySQL数据库,看完这篇博客绝对没问题!
  • 软件测试面试题整理(六)之app测试篇

    千次阅读 多人点赞 2020-11-06 00:14:16
    1. Web 端测试和 App 端测试有何不同(常见) 系统结构方面 Web 项目,b/s架构,基于浏览器的;Web 测试只要更新了服务器端,客户端就会同步会更新; App 项目,c/s结构的,必须要有客户端;App 修改了服务端,则...
  • 大体来说,经历以下过程:接口需求调研、接口测试工具选择、接口测试用例编写、接口测试执行、接口测试回归、接口测试自动化持续集成。具体来说,接口测试流程分成以下九步: 第一步:分析出测试需求,并请开发提供...
  • SQL基础查询、多表连接
  • 一直以来大大小小参与过不少面试,遇到过不少坑,但是没来的及好好总结汇总下。现在把之前遇到的问题汇总下,希望以后自己能加深印象。1、appium 怎么定位toast弹框appium1.6以后回答需要升级u2进行定位。2、什么是...
  • Tomcat面试题+http面试题+Nginx面试题+常见面试题

    千次阅读 多人点赞 2019-12-12 15:04:43
    Tomcat面试题 1、Tomcat的缺省端口是多少?怎么修改? 答:缺省端口是8080,若要修改,可以进入Tomcat的安装目录下找到conf目录下的server.xml文件,找到该文件中的Connector字段中的port。 2、Tomcat有哪几种...
  • SQL经典面试题及答案

    千次阅读 2017-04-05 22:11:03
    SQL经典面试题及答案 标签: sql面试tableinsert数据库sql server 2011-08-08 19:01 88116人阅读 评论(8) 收藏 举报 ...版权声明:本文为博主原创文章,未经博主允许不得转载。...1.一道SQL语句面试题
  • 它可以有 SQL语句和一些特殊的控制结构组成。 当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。 数据库中的存储过程可以看做是对编程中面向对象方法的模拟。它允许控制...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,340
精华内容 5,336
关键字:

软件测试sql语句面试题