一、常规面试题:
1、请做一个简单的自我介绍
之前有写过自我介绍的博客,可跳转查看:https://www.cnblogs.com/azibaby/p/14961461.html
2、简单介绍上一个项目的你负责的业务流程
一般考查你的表达能力,看是否把这个业务流程描述清楚。
公式:项目名称(什么行业)+什么端(pc端、app端、portal端)+上线多久+使用对象是谁,业务流描述
例如:
1、我目前负责的是车商城购物系统,主要测试的是app端+portal端,目前已经上线半年了,使用的对象是市场用户。
2、其中的app的业务流程有:用户注册、预览商品、查看商品详情、加入购物车、用户下单、查看订单列表、查看订单详情等。
3、portal端出要业务流程有:商品分类、添加商品、修改商品、商品库存、商品上架、商品下架等等。
3、你们公司的测试流程怎样
可以大概说下项目组的组成人员结构,再描述测试流程
例如:我们项目组由产品、开发、测试组成,测试开发比是1:3,一般产品出需求、原型后,产品组织大家开需求评审会,需求确定后,测试写测试计划,测试计划包含本次需求的内容,测试用例完善时间,用例评审时间,开发提测时间,uat上线时间,以及生产上线时间。
4、Bug的生命周期
一般介绍下上家公司所使用的项目管理工具 ,讲一下你们所在的项目组中,这个生命周期是如何配置的
例如:我们公司目前所用的项目管理工具是禅道,生命周期是:测试去发现BUG-->提交BUG-->指派BUG-->研发确认BUG-->研发去修复BUG-->回归验证BUG-->是否通过验证-->关闭bug
*如果开发修复的bug未通过就从新指给开发
*如果开发将bug状态修改为延期处理,将和开发、产品沟通延期到什么时候
*如果开发将bug状态改为无效bug,测试将再次回归该bug是否重现,或与产品、开发确认需求,直至bug解决
5、如何判断是前端还是后端的bug
通常通过抓包工具,查看请求参数和响应结果,如果响应结果和前端展示的不一致,就是前端的bug,如果前端显示错误了,接口响应结果也是错的,那就是后端的bug
6、常见bug类型
6.1、页面布局、UI颜色、文字bug
6.2、兼容性bug
6.3、业务逻辑bug
6.4、数据计算bug
6.5、性能bug、安全bug
7、测试用例包含哪些模块
用例编号、所属模块、用例标题、前置条件、操作步骤、预期结果、实际结果、是否通过、测试日期、测试人
8、常用的测试方法
等价类、边界值、错误推测法、因果图法、判定表驱动分析方法、正交实验设计方法、场景分析法
9、刚入职公司,给你一个界面如何开展测试
无论给什么让你测,首先获取完整的需求文档,从界面、功能、业务、安全、性能、可用性等角度去设计测试用例,执行测试用例,以及回归。
10、你觉得是bug,开发不觉得是bug(无效bug,你是怎么处理的)
首先确认需求,是否和开发理解的一致,如果不一致就找产品一起确认;如果和开发理解的一致,就重新复现bug,告知开发复现结果,一起排查bug,直至bug关闭
11、如何保障测试质量
11.1、首先要保证流程的规范,无论是需求评审还是测试用例的评审
11.2、充分了解产品需求,熟悉用户使用场景、充分完善测试用例
11.3、充分做好回归测试,项目和时间的允许下完善自动化测试
12、如何造测试数据
12.1、inster into批量造数据
12.2、jmeter接口关联,第一个接口数据传输到第二个接口
12.3、jmeter csv参数化配置
13、bug清单通常包含哪些内容
13.1、所测试的环境、测试账号及密码
13.2、如果是接口测试的清单就贴上接口请求的地址,如果是界面上的bug贴上界面的url地址
13.3、bug描述,bug复现的步骤
13.4、bug的截图
二、接口面试题:
1、http与https的区别
1.1、https协议需要到 Ca (Certificate Authority,证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用。 1.2、http是超文本传输协议,信息是明文传输,https则是具有安全性的 SSL 加密传输协议。 1.3、http和 https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。 1.4、http的连接很简单,是无状态的。https协议是由 ssl+http 协议构建的可进行加密传输、身份认证的网络协议2、get和post的区别
2.1、get是不安全的,因为在传输过程,数据被放在请求的URL中;post的所有操作对用户来说都是不可见的。 2.2、get传送的数据量较小,这主要是因为受URL长度限制;post传送的数据量较大,一般被默认为不受限制。 2.3、get限制Form表单的数据集的值必须为ASCII字符;而post支持整个ISO10646字符集。 2.4、get执行效率却比post方法好。get是form提交的默认方法。3、session与cookie的区别
3.1、cookie数据存放在客户的浏览器上,session数据放在服务器上. 3.2、生命周期不一样,cookie的生命周期就是从浏览器打开到浏览器关闭,session预先设置的生存周期,或永久的保存于本地的文件 3.3、cookie不是很安全 3.4、通常将登陆信息等重要信息存放为session,其他信息如果需要保留,可以放在cookie中4、接口测试流程
4.1、需求分析,获取完整的接口文档
4.2、根据接口文档编写测试用例(单接口用例,场景测试用例)
4.3、使用jmeter先进行单接口测试创建线程组,,添加请求头,添加http请求根据用例设计填写参数,添加断言,添加察看结果树,添加聚合报告,关注察看结果树中的 响应数据和预期结果是否一致。其次再编写场景的测试脚本,通常一个场景一个线程组。
三、数据库常见面试题
1、创建表的语法
create table 表名 (列名1 类型 约束,列2 类型 约束…)
2、插入数据的语法
insert into 表名…values…
3、修改数据
update 表名 set 列名=值 where 条件
4、truncate、delete和drop的区别
4.1、drop table删除表的结构,truncate、delete删除行;
4.2、 truncate只能对table,delete可以是table和view;
4.3、truncate table删除表中所有的行,效率快不可回滚;delete可以加上where条件。
4.4、drop > truncate > delete
5、一般用数据库做哪些操作
5.1、数据落库、数据修改时,进行数据查询和对比
5.2、inster into批量造数据
6、左连接、右连接,等价连接的区别 6.1、left join (左连接):返回包括左表中的所有记录和右表中连接字段相等的记录。 6.2、right join (右连接):返回包括右表中的所有记录和左表中连接字段相等的记录。 6.3、inner join (等值连接或者叫内连接):只返回两个表中连接字段相等的行。 7、limit的使用 7.1、查询最近10条数据: select * from a order by addtime desc limit 10; 7.2、查询第6条到第15条数据:select * from table limit 5,10; 7.3、从第三位数开始提取三条记录:select * from table limit 3 offset 2; 7.4、取第6行后所有的数据:select * from table limit 6,-1; 四、Linux常用命令1、常用的命令
一般会让举几个自己经常用到的Linux命令和用法,下面这个链接里的可以参考下
http://blog.csdn.net/xiaoguaihai/article/details/8705992
目前我们工作中常用到的有以下几个命令,部分命令后面会跟些参数,也需要了解下
显示日期的指令: date
改变文件的权限:chmod
变换目录:cd
显示当前所在目录:pwd
建立新目录:mkdir
档案与目录的显示:ls
复制档案或目录:cp
移除档案或目录:rm
移动档案与目录,或更名:mv
由第一行开始显示档案内容:cat
从最后一行开始显示:tac(可以看出 tac 是 cat 的倒着写)
一页一页的显示档案内容:more
只看头几行:head
只看尾几行:tail
寻找特定档案:find
压缩文件和读取压缩文件:gzip,zcat
压缩文件和读取压缩文件:bzip2,bzcat
压缩文件和读取压缩文件:tar
2、grep和find的区别
grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式进行匹配查找。
find是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间。