《常规问题》
1、如何快速深入的了解移动互联网领域的应用 (答案:看http协议 restful api知识 json加1分)
2、对xx应用自己会花多久可以在业务上从入门到精通,说说自己的方法 (答案:看api和数据库的加1分)
3、如果在没有QA流程的情况下何开展测试工作(考察对方自管理和对测试流程的掌握)
4、遇到开发不认为是issue的情况下如何处理
5、如果和开发人员发生技术或需求方面的争论应该如何处理 (考察情商)
6、自己在跨领域转型后,最想学习哪些方面的基础技术知识 (例如以前经验是非移动互联网领域)
7、打算如何平衡学习、工作、生活,尤其在转型之际 (例如以前经验是非移动互联网领域)
8、如何用自己的长处客服自己的缺点的,举出例子 (必须要说的出来自己的缺点,考察对自己的认识程度)
《手工测试部分》其实就一个问题:举出一个有逻辑的测试用例,然后说说自己的功能测试用例 测试思路 观察点。(举出来有逻辑的用例加1分,回答分层观察 前端 api 数据库变化 的加1分)
《自动化测试》
1、使用什么测试框架做的上一个项目的自动化测试。(答 appium selenium robtium的0分,答junit testng robotframework的加1分)
2、自己最熟悉哪个库,如何使用这些库的,是否做了基于复用的封装,怎么考虑的这些封装(答appium但是只是罗列脚本的0分,分别封装了基础类例如:等待某元素出现的方法,更方便查找操作元素的方法,和被测试业务相关的类和方法, 加1分)
3、如何定位app上的元素,使用appium的inspector了吗在什么平台用的(答:手写xpath的加1分,答在mac上使用inspector的加1分)
4、如何使用xpath定位一个兄弟元素,就是和该元素同属于一个父亲节点的元素,这在很多现实的app中常常遇到。(答 先找到父亲,再找到自己的兄弟 加1分)
4、//*[contains(@text,"登录")] 是什么意思 (答这是xpath查找登录按钮的0分,这是查包含登录关键字的所有元素加1分)
5、自动化遇到用例fail掉如何排查故障(答:不明白你说的什么意思0分,没看出错log的0分,如果能按层次说清楚排查失败:手工查应用是否真的有bug, 确认不是bug,是不是新版本引入了新的变更,调试脚本看看自己的脚本是不是因为没有等待元素出现后就操作了,是不是元素上面有其他元素出现这样操作是不是操作了其他的元素上了,这样回答问题的加1分)
6、等待元素出现的这个方法如何实现的(答:不知道这个基础的0分,用一个循环间隔时间去检查这个元素是否可见,类似这样回答的加1分)
7、如何在app一个列表的listview中查到自己想要的那个元素(图片,文字,按钮)并点击 (答:滚动到并点击0分,因为没有现成的方法scrollto到那个element的locator,目前app listview中的元素大多是没有被看到就不会被加载,而且分页也都是lazyloding)
8.如何在脚本中组织测试用例,按什么模式设计(答不了解0分,按page设计模式的加1分)
- 如何测试app正确处理了服务端返回的异常,网络异常 服务异常等,(答 使用mockservice的加1分 )
以上是快速的筛选脚本,回答的可以不精准,就像我的回答也不是都经得起推敲,但是至少可以看得出来:“求职者是否在自动化测试岗位有实际工作经验,应用于生产的工作经验”。
自动化测试面试题2:selenium篇
1、selenium中如何判断元素是否存在?
2、selenium中hidden或者是display = none的元素是否可以定位到?
3、selenium中如何保证操作元素的成功率?也就是说如何保证我点击的元素一定是可以点击的?
4、如何提高selenium脚本的执行速度?
5、用例在运行过程中经常会出现不稳定的情况,也就是说这次可以通过,下次就没办法通过了,如何去提升用例的稳定性?
6、你的自动化用例的执行策略是什么?
7、什么是持续集成?
8、自动化测试的时候是不是需要连接数据库做数据校验?
9、id,name,class,xpath, css selector这些属性,你最偏爱哪一种,为什么?
10、如何去定位页面上动态加载的元素?
11、如何去定位属性动态变化的元素?
12、点击链接以后,selenium是否会自动等待该页面加载完毕?
13、webdriver client的原理是什么?
14、webdriver的协议是什么?
15、启动浏览器的时候用到的是哪个webdriver协议?
16、什么是page object设计模式?
17、什么是page factory设计模式?
18、怎样去选择一个下拉框中的value=xx的option?
19、如何在定位元素后高亮元素(以调试为目的)?
20、什么是断言?
21、如果你进行自动化测试方案的选型,你会选择哪种语言,java,js,python还是ruby?
22、page object设置模式中,是否需要在page里定位的方法中加上断言?
23、page object设计模式中,如何实现页面的跳转?
24、自动化测试用例从哪里来?
25、你觉得自动化测试最大的缺陷是什么?
26、什么是分层测试?
27、webdriver可以用来做接口测试吗?
28、get和post 的区别?
29、公司内一直在使用的测试系统(B/S架构)突然不能访问了,需要你进行排查并恢复,说出你的检查方法
30、分层测试和page object模式有什么区别?
31、自动化测试和测试自动化的区别?
32、列举出你熟悉的自动化工具,并说明其实现原理
33、自动化测试的使用场景?
34、什么是关键字驱动?
35、高质量的自动化脚本应该具有什么特性?
请你说一说web测试和app测试的不同点
- 系统架构方面:
web项目,一般都是b/s架构,基于浏览器的
app项目,则是c/s的,必须要有客户端,用户需要安装客户端。
web测试只要更新了服务器端,客户端就会同步会更新。App项目则需要客户端和服务器都更新。
- 性能方面:
web页面主要会关注响应时间
而app则还需要关心流量、电量、CPU、GPU、Memory这些。
它们服务端的性能没区别,都是一台服务器。
- 兼容方面:
web是基于浏览器的,所以更倾向于浏览器和电脑硬件,电脑系统的方向的兼容
app测试则要看分辨率,屏幕尺寸,还要看设备系统。
web测试是基于浏览器的所以不必考虑安装卸载。
而app是客户端的,则必须测试安装、更新、卸载。除了常规的安装、更新、卸载还要考虑到异常场景。包括安装时的中断、弱网、安装后删除安装文件 。
此外APP还有一些专项测试:如网络、适配性。