序号 | 面试题 |
---|---|
1 | 怎么能在技术没有那么合格的前提下给面试官留个好印象? |
2 | 面试时,如何巧妙地避开不会的问题?面试遇到自己不会的问题如何机智的接话,化被动为主动? |
3 | 对于了解程度的技能,被问到我都是答会还是不会,主动避开了,都没有展开说用到的部分,感觉面试的时候没有信心 |
4 | 自我介绍如何说?3分钟够不? |
5 | 自己作为一个测试人员,为测试组做了哪些贡献? |
6 | 做测试人员,自身有什么优势? |
7 | 你有什么要问我的吗? |
参考答案:
面试官考察的,技术只是一方面。
他(她)还会考虑:这个人是否值得培养?培养成本如何?
怎么考虑培养这件事呢?1个是工作态度和心态,2个是学习能力
那么你在面试中,需要体现的就是以上2点了。
可以从以下这些方面着手:
1) 主动承担过哪些工作,
2) 有组织内部技术/业务分享
3) 关注的测试公众号,逛的测试论坛,看测试相关的书籍
4) 接受新事物
5)工作/学习态度积极主动
6)求知欲强
以上附以相关案例来说明
1、对于自己了解或者不会的,可以直接告诉面试官,自己在这一方面接触的少,或者工作中还尚未接触到。
如果你强行说会,那么面试官接下来会问更多相关的问题,答不上来就会暴露你撒谎。
2、可以补充说明:自己有额外去了解这个技术,从哪些渠道/书中去学习,了解了哪些点。
3、可以补充说明:虽然现在不会,但是如果有机会,很愿意学习和使用的。
当然了,你如果很会聊天也有好的经历,可以在问题的相关其它技术上突出你的能力。
在简历当中,如果技术的熟练程度为了解,那就是告诉面试官,你大概知道这个东西,但是并没有在工作当中深入应用。
所以,被问到了解的技术,可以大方的告诉面试官,你的了解程度,以及在工作中用到的程度。
而且 ,面试官也不会抓着你了解的问题继续问,所以不需要不自信。
你的整体工作经历,面试官在简历上可以大概知道的。
而且对于你2年前的工作,面试官也不会太问,问了你说忘记了也正常之事。
面试官关心的是:你现在的一个工作职责是怎样的,工作能力是怎样的
所以在自我介绍这里:
1、总结自己在测试行业几年了,自动化几年了,管理几年了,主要从事哪些领域的测试工作。
2、目前正在做的项目是什么类型的,目前主要承担的工作内容是什么样的
3、对于再早一些的履历,简单几句带过就好。比如之前的工作经验主要是。。。。
自我介绍要简短,不需要3分钟 。说多了,面试官后面基本也没在听了。
主要说说:公司之前没有的,你来了之后,带来的改变。
以下可参考的点,来自和VIP学员交流之后的结论:
1、输出框架学习文档,让组员学习,给团队赋能
2、提高了效率 --
3、解决了什么问题 --
4、优化的工作
5、给开发提需求开发了自动化测试工具算不 -- 算
6、保证质量 -- 上线前的隐藏大bug提前挖掘/规范了测试流程.....
7、活跃团队气氛,提高测试人员激情
8、给其它团队培训产品
面试官想知道,现在的你,在做测试这份工作,你有什么优秀的地方。
主要从2个方面体现 :一个是软件测试硬技能优势(测试技术),另一个就是软技能方面。
在测试技术方面:比如你的自动化能力/测试开发能力,/比如你比别人多挖掘的严重级别bug等。。
在软技能方面:
做事认真细致 发散思维 软技能 - 沟通能力/总结能力/领悟力和理解力/学习能力
这些点都需要举例说明你的这个能力在工作中的应用。
很多学员在有多个offer选择的时候,很纠结不知道选哪个。
主要原因有2个:
一个是对自己下一阶段的工作目标不清晰,或者容易动摇。
比如以薪资为首要目标,或者以职业发展前景为首要目标。
另外一个,是对有offer的公司,不了解自己入职之后的主要工作职责以及未来的发展前景。
这里的发展前景,是指你在这个岗位上的发展前景。
大家需要记住:别人评估你的价值,都是根据你以前的职场工作履历。
所以我们在选择公司时,一定要结合自己自身的需求,以及为下一次跳槽做增值准备。
所以,在这个【你有什么要问我的吗】,就赶紧好好了解了解这家公司是否值得入职
提供以下几个参考选项:
1、了解公司的测试团队、成员比例(功能/自动化/测开/性能等。)
2、了解自己未来会在的项目是什么类型、项目现在所处阶段、测试有多少人等。。
3、了解自己如果入职后,主要的工作内容是什么
4、了解贵公司对测试团队未来的规划是什么。
5、如果是对加班比较介意的,可以问问如果入职后,加班频率是怎样的。。
还有其它,可根据自己个人情况酌情提问 。。
注意提问的态度 。。
其次,如果你的问题比较多,需要解释一下你为什么要问这个问题。因为你问多了,面试官也挺烦的。
序号 | 测试用例设计 | 微信红包测试用例 |
---|---|---|
1 | 测试用例设计 | 微信搜索功能用例、微信朋友圈功能、微信红包功能 |
2 | 接口测试 | 今天面试被问你们公司是怎样做一个接口测试的? |
3 | http通信 | 3次握手,4次挥手? |
4 | 业务能力 | 介绍一下你的项目 |
5 | 质量体系 | 如何保障测试质量? |
6 | bug定位能力 | 你平常怎么定位问题的? |
参考答案:
微信的功能被问的比较多。比如微信红包功能、微信朋友圈、微信搜索功能的用例设计。
我们在设计用例测试时,一般参考以下2点:
1、产品面向的用户群体、产品的应用场景
2、基于1,考虑以下6点:功能、界面、性能、安全、易用、兼容
以微信红包为例:
群体:中国境内广大人民群众
应用场景:
私发
群发 - 手气/口令/固定 封面红包 视频红包 拜年红包
红包限额、24小时后退回、金额波动、金额精确度、节日祝福词、查看红包记录、添加表情...
如果面试时,问的用例设计题,是你准备了的,那很好回答。
如果面试时,用例设计题是没有准备过的,临场思考,多多少少会漏掉。
实际工作中,咱们也是花了心思和时间去思考如何来设计用例的,比面试时多的多。
所以,如果面试时设计不全,可以向面试官说明一下情况。
现场时间短、面对面紧张,同时举个例子说说实际工作中是如何花时间全面设计的。
提供某位学员的回答方式:
我当时就答跟功能测试差不多,也是要考虑它的正常情况,然后其他的测试用例设计也是跟功能测试相似,执行测试用例,对照接口文档 去看它们返回的状态码是否跟接口文档描述的一致
以上回答呢,太泛泛而谈了。没有与你们公司的实际应用结合。
这个流程,你不说面试官也知道,全国接口测试都是这个套路。这个答案说了和没有说,没啥区别。
参考的回答方式:
结合你们公司的业务接口,具体落地的说明:
1、具体用什么工具/框架
2、接口的类型/数据格式
3、接口文档/swagger/yapi/ - 抓包/沟通
4、断言 - 会比对哪些数据
5、数据库校验
6、可以再补充说明一些难点处理方式
网络上有很多文章解释 ,可以自行搜索 。
面试官考察:
1、你对质量的认知;
2、你的过往经验中是如何来保障测试质量的。
参考以下几种维度,最好再结合你曾经的工作案例:
可以从保障产品质量、如何减少漏测等方面说明。
比如从我自己的测试经验里:
1)测试流程/产品交付流程上要规范 -- 需求/评审/冒烟/交叉测试/abtest/灰度发布等
2)从测试的维度上来(各种测试维度、测试手段、左移右移、测试效率等):
一是要减少漏测:回归时容易出现 -可适当利用自动化手段
二是要尽量了解客户场景:覆盖用户的使用场景。在功能和非功能测试上都可以更好的设计用例
三是要持续更新用例库:对于出现的未覆盖的,需要更新到下次常规测试中 四是可以展开探索性测试
五是梳理逻辑漏洞,避免隐藏的测试场景
六是加入白盒测试,对于开发代码review,加入代码扫描等。
面试官考察:
1、你是否真的只是点点点而已
2、功能测试基本功深度如何
一般常借用的手段 - F12/抓包工具、看产品日志
马上举例:你工作中最有成就感的一个bug定位和分析
要体现出,你真的不光是点点点,你有深入的去了解产品的业务流、数据流、实现逻辑,可以挖掘深层次隐藏的bug。
这个问得最多,甚至有很多公司直接写在招聘要求中!
当然可以,自动化框架主要的核心框架就是分层+PO模式:分别为:基础封装层BasePage,PO页面对象层,TestCase测试用例层。然后再加上日志处理模块,ini配置文件读取模块,unittest+ddt数据驱动模块,jenkins持续集成模式组成。
1.项目组调研选择自动化工具并开会演示demo案例,我们主要是演示selenium和robotframework两种。
2.搭建自动化测试框架,在项目中逐步开展自动化。
3.把该项目的自动化流程、框架固化成文档
4.推广到公司的其它项目组应用
1.编写自动化测试计划
2.设计自动化测试用例
3.编写自动化测试框架和脚本
4.调试并维护脚本
5.无人值守测试
6.后期脚本维护(添加用例、开发更新版本)
1.用例是自动化测试工程师自己设计的,一般刚开始已基本业务流程为主(登录--完成一个业务--退出)
2.从系统测试用例中进行筛选或由业务工程师提供
上一个项目中是定时执行的,设置的执行时间是晚上12点,执行完毕后会自动发送邮件通知
不多,因为之前项目组是把已经测试通过的基本功能再进行自动化脚本编写和在后续版本执行自动化测试,它主要是保证已经测试通过的功能在新版本更新后没有问题。
引用自动化测试之后,能代替大量繁琐的回归测试工作,把业务测试人员解放出来,既而让业务测试人员把精力集中在复杂的业务功能模块上,自动化测试一般是对稳定下来的功能进行自动化,保证不会因为产品的更新导致之前稳定下来的功能出现BUG
有误报过,有时候自动化测试报告中显示发现了bug,实际去通过手工测试去确认又不存在该bug。
误报原因一般是:
1.元素定位不稳定,需要尽量提高脚本的稳定性;
2.开发更新了页面但是测试没有及时更新维护!
1.频繁地变更页面,经常要修改页面对象类里面的代码
2.自动化测试偶尔出现过误报
3.自动化测试结果出现覆盖的情况:Jenkins根据时间建立文件夹
4.自动化测试代码维护比较麻烦
5.自动化测试进行数据库对比数据
可以说出以下自己擅长的一种:
1.python+selenium+unittest+htmltestrunner
2.python+selenium+pytest+allure
3. robotframework+Selenium2Library
当然有:我们使用的群号是: 361602262有很多软件测试和自动化大神解决项目中的问题,还会不定时的发放免费资料。
主要是冒烟测试和回归测试。回归测试主要写一些功能稳定的场景,通过自动化手段去实现,节约测试时间。因为自动化测试用例也是在不断的更新和迭代,没有刻意去统计,大概在30%-40%左右!
这个其实就是利用javaScript去修改当前元素的边框样式来到达高亮显示的效果,
1.页面加载元素过慢,加等待时间
2.页面有frame框架页,需要先跳转入frame框架再定位
3.可能该元素是动态元素,定位方式要优化,可以使用部分元素定位或通过父节点或兄弟节点定位。
4.可能识别了元素,但是不能操作,比如元素不可用,不可写等。需要使用js先把前置的操作完成,
id name classname link_text css xpath
先用driver.switch_to.frame()跳转进去frame,
然后再操作页面元素,
操作完后使用driver.swith_to.default_content()跳转出来
使用driver.switch_to.alert方法先跳转到alert弹出窗口
然后再通过accept点击确定按钮,通过dismiss点击取消难,通过text()获得弹出窗口的文本。
这个多窗口之间跳转处理,我们在项目中也经常遇到。就是,当你点击一个链接,这个链接会在一个新的tab打开,然后你接下来要在新tab打开的页面查找元素,
1.我们在点击链接前使用driver.current_window_handle获得当前窗口句柄。
2.再点击链接。点击后通过driver.window_handles获得所有窗口的句柄,
3.然后再循环找到新窗口的句柄,然后再通过driver.switch_to.window()方法跳转到新的窗口。
定位元素后:分别通过isEnabled(),isSelected(),isDisplayed()三个方法进行判断。
在Selenium中有一个叫Select的类,这个类支持对下拉菜单进行操作。使用方法如下:
1.定位元素
2.把定位的元素转化成Select对象。
sel = Select(定位的元素对象)
3.通过下标或者值或者文本选中下拉框。
sel.select_by_index(index);
sel.select_by_value(value);
sel.select_by_visible_text(text);
首先要分析当前网页试用日历插件的前端代码,看看能不能通过元素定位,点击日期实现,如果不能,可能需要借助javascript。还有些日历控件一个文本输入框,可以直接sendKeys()方法来实现传入一个时间的数据。
常见的selenium异常有这些:
NoSuchElementException:没有该元素异常
TimeoutException : 超时异常
ElementNotVisibleException :元素不可见异常
NoSuchAttributeException :没有这样属性异常
NoSuchFrameException :没有该frame异常
简单来说,两个都可以实现退出浏览器session功能,close是关闭你当前聚焦的tab页面,而quit是关闭全部浏览器tab页面,并退出浏览器session。知道这两个区别,我们就知道quit一般用在结束测试之前的操作,close用在执行用例过程中关闭某一个页面的操作。
在Selenium中提供了一个get_screenshot_as_file()的方法来截图的,一般结合try/except捕获异常时使用,进行错误截图。
定位元素后,直接使用send_keys()方法设置就行,参数为需要上传的文件的路径。
1.线程等待(强制等待)如time.sleep(2):线程强制休眠2秒钟,2秒过后,再执行后续的代码。建议少用。
2.imlicitlyWait(隐式等待)会在指定的时间范围内不断的查找元素,直到找到元素或超时,特点是必须等待整个页面加载完成。
3.WebDriverWait(显式等待)通常是我们自定义的一个函数代码,这段代码用来等待某个元素加载完成,再继续执行后续的代码
当然可以,我写的用例可以在在IE,火狐和谷歌这三种浏览器上运行。实现的思路是封装一个方法,分别传入一个浏览器的字符串,如果传入IE就使用IE,如果传入FireFox就使用FireFox,如果传入Chrome就使用Chrome浏览器,并且使用什么浏览器可以在总的ini配置文件中进行配置。需要注意的是每个浏览器使用的驱动不一样。
PO是Page Object 模式的简称,它是一种设计思想,意思是,把一个页面,当做一个对象,页面的元素和元素之间操作方法就是页面对象的属性和行为,PO模式一般使用三层架构,分别为:基础封装层BasePage,PO页面对象层,TestCase测试用例层。
我们有自己的软件测试技术群:822269834:如果有任何软件测试方面的疑问,关于软件测试、接口测试、自动化测试、性能测试、面试经验等都可以在群里解决,群里有同行大神一起交流技术。共同进步,一起成长!
如果大佬们觉得有哪些写得不对,欢迎留言或私信,谢谢!
最后预祝每一位求职者都能找到自己如意的工作!马上实现升职加薪!
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。