一、测试技能面试题准备
不同测试方向,对应的测试技能是不同的。
以下就是针对不同的测试方向,核心需要掌握的技能。
· 功能测试可以理解为软件测试的基础,是必须要会的。
· 接口测试其实起到的是承上启下的作用。不了解接口测试,之后的接口自动化以及性能测试就根本入不了门。
· 自动化测试是初级测试工程师与中级测试工程师的分界线,如果要想拿到更好的offer,不懂代码是不行的。
二、预测常见的面试题
1、技术类的问题
1) 怎么保证软件产品的质量?
答:1.需要团队共同来参与测试;2.需求就开始介入;3.发现问题不能放过;4.加强技术,通过用例集来记录测试点防止有场景未被覆盖到。
2) 你在公司中,是怎么准备测试数据的?
答:1.把生产环境数据脱敏之后,导入到测试环境;2.通过业务逻辑,构造测试(例如需要登录,可以先注册然后再使用注册账号进行登录);3.通过数据库创建,这里面有分为"按照业务逻辑设计测试数据"和"通过导入的方式来设计测试数据"两种方式;4.通过代码来创建测试数据。
3) 你们公司是怎么划分BUG的严重等级的,为什么这么划分?
答:我们公司主要分为4个等级:严重、高、普通、一般。
严重:一般是系统级别的错误,会导致系统奔溃,严重影响用户使用;以及影响范围广的BUG 。
高:不会导致系统崩溃,但是会有导致功能出现异常的BUG,不满足需求设计的BUG。
普通:边界值错误等。
一般:易用性错误,提示性错误等等。
4) 在实际工作当中,你主要从哪些维度设计测试用例?
答:我们设计用例时主要从功能、性能、安全、网络、兼容性、UI界面、专项测试这几大块。
其中功能,重点关注我们软件产品有没有实现具体的功能,只要测试是通过测试用法论,设计测试用例来进行测试。
性能上,我们主要考虑功能操作的响应时间,以及CPU、内存、网络、磁盘IO的消耗情况。
安全上,我这边没有深入的进行测试,但是有一定的了解,我知道需要进行敏感信息是否加密、SQL注入等一些简单的安全测试。
网络上,我们需要关注,无网络、弱网、网络之间的切换的测试点 兼容性上,主要关注不同的版本兼容,如果是前端界面,需要关注分辨率等测试,如果是手机需要关注操作系统的兼容性。
UI界面上,主要是关注一些UI测试点,按钮是否可用,界面之间是否能够顺利的跳转,布局等这些测试。 专项测试:针对一些独有的功能进行测试。
5) 你在公司当中,是怎么分析定位BUG的?
答:在公司里面,我们定位BUG必须借助工具才能完成。
例如我们可以使用fiddler抓包,抓取接口的信息,如果是前端问题,那么在前端输入信息,和fiddler抓到的请求肯定会不一样。如果是接口的响应数据有问题,那么就是后端BUG。
怎么深入定位后端里面的BUG呢?
这个时候,我们需要借助日志来完成,我们按照开发提供的日志文件路径,来使用关键字搜索对应时间所产生的错误日志,根据日志的描述,来判断问题出在哪个方面。如果日志文件看不懂,可以让开发帮助查询分析。
一般BUG的来源有这么几个:
· 开发修复BUG引发的BUG
· 开发新功能引发的BUG
· 开发使用了依赖的第三方插件导致BUG
· 缓存导致的BUG
6) 你们公司是如何做接口测试的?
答:1.先进行需求分析,了解此次迭代需要实现的功能;
2.解析API文档,了解此次迭代都新增了哪些接口,又有哪些接口更改了;
3.根据API文档,编写测试用例;
4.使用接口测试工具来完成接口测试用例的执行,常用的接口测试工具postman或者jmeter;
5.在测试的过程中,需要进行缺陷管理以及跟踪,确认开发即使响应,并且快速修复问题;
6.生成测试报告,将测试结果同步到项目组,来确定此次迭代是否可以上线;
7.考虑将此次迭代的接口,编写到接口自动化项目中,方面之后的回归测试。
7) 什么时候开展接口测试?
答:1.开发给出API文档的时候,我们就可以开始编写接口的测试用例,这里有一个常识性的知识点:开发给出API文档的时候,接口并没有被开发出来;
2.后端的开发提测的时候,我们就可以开始进行接口的测试了(实现接口的测试用例);
3.接口测试完成或者快完成,我们就可以开始考虑使用代码实现接口的自动化。
8) GET和POST有什么区别?
答:1.Get通过URL来传输数据,POST通过URL和请求体传输数据,在请求体中的数据,我们是无法直接观测到的。
2.在安全性上,GET没有POST安全。但是他们都不是绝对安全。因为POST中的数据,可以通过抓包获取。
3.在数据大小上,GET有限制,而POST没有上限。
9) 你在实际工作当中,是怎么解决数据之间的依赖关系的?
答:我在之前的XXXXX项目中,参与了的接口测试中,有大量接口存在依赖关系,以登录和添加员工接口为例。添加员工接口依赖了登录接口;我们使用的工具是POSTMAN,我这边通过先提取登录返回的令牌,然后保存到环境变量,再在下一个添加员工接口中,引入保存的环境变量,实现关联。
10) 自动化测试的优缺点?
答:优点: 自动化测试,可以很好的进行回归测试,自动化测试,能够解决手动测试一些难以测试的场景 自动化测试,可以解决一些复杂的业务逻辑。
缺点: 不能完全代替手工测试, 自动化测试的脚本的编写和维护比较困难,对于质量比较低的代码,不适合做自动化。 对于需求变更频繁的项目,项目周期比较短的项目也不适合做自动化。
11) 请简单介绍下PO模式的原理?
答:什么是PO模式,它有什么作用?
PO模式,英文全称PageObject;它主要是为了减少代码重复,让代码可读性更强,更容易维护。
PO设计模式是怎么进行设计的?
PO设计模式主要包括三层:对象层、操作层、业务层 ;
对象层:主要封装某些元素定位的方法;
操作层:封装元素的一些特定操作;
业务层:把一个或多个操作组合成具体的业务,实现具体的功能测试。
用最简单的案例描述PO模式:
那么接下来我们就以登录页面为例,来描述PO设计模式的实现过程。
step1: 先实现BasePage基类,这个基类当中主要是实现driver的获取。通过这个driver可以进行 兼容性测试;
step2: 根据BasePage基类,实现对象层,封装登录页面的元素定位,封装定位用户名、密码、 确认按钮的定位方法;
step3: 根据封装定位方法,封装他们的操作,例如输入用户名和密码,点击确认按钮;
step4: 根据封装LoginPage页面和操作类,实现登录的测试。