自动化测试面试题(测试问题进程)
打死我也想未到“美团”测试面试题这么难,当场给我吓“die”了_百度知 。。。
不晓得你们多久没有参与过面试了,近日这段时间的面试,真的是一个比一个严格!!!
昨天参与了一线大厂的技术面,当场给我吓die了,不料这么难!!!
假如你不信,你也来die die:
你说这面试官狠不狠!!!太狠了!!!
对于我们测试员来讲,面试就是将自己所学的技术与面试官表达出来。以前上学准备找工作的时刻,发现最先找到工作的不是技术最有利的而是善于沟通活跃度高的人,而我听的最多的埋怨是:为啥我明明知道这东西,面试的时刻却不知从何说起。
本文会从俺的自己一身经历出发谈一谈面试前怎样做好充分准备,怎么流畅地表达本人的技术,以及进入项目时怎样从刚开始的手足无措、盲目下手到之后的淡定从容。
这里也推荐一个群,里面会不定期地共享软件测试资源,测试面试题以及测试行业资讯,朋友们能在群中积极交流问题。私信我(交流群)
接下来由我将从以下几个方面来共享一下面试前的准备。
1。 为自己定位 first of all要为自己定位,自己此刻是一个什么阶段,是初级岗,中级,高档,还是专业人士级。通常情况下刚走上岗位一年左右是初级,两年左右努力提升本人的话是中级,三到五年高档甚至专业人士级。先要做到的是不停地钻研。
2。知识的梳理
由于把自己定位为自动化测试设计师,老话说:面试修航母,工作螺丝钉。面试考虑各个方面,对于测试来说,主要有以下几个方面来准备:接口自动化测试、搭建测试框架、web自动化、APP自动化。当然知识梳理完毕之后,还要去阅读一些面试经,看看最新各个厂商问的问题。其实也就是说以上这几个东西准备完,基础好的话,一个月左右,基础不好的话至少要3个月吧。
老话说不打无准备之仗,只有提防准备好了才可以在面试过程中取得好的结果。
3。简历的准备
简历是一个叩门砖,HR每一天会有许多简历收到。简历怎样使人耳目一新,并且能一眼抓住关键信息:个人基本信息(姓名,电话,邮箱,毕业院校等),工作经历,技能点,一些亮点(打比方说六级证书,获奖等)。简历要简洁,层次分明。写完简历要在招聘网站上更新一下本人的简历。
4。 面试机会的各个渠道 这次面试一共通过了3种渠道,一是朋友内推,二是猎头帮忙,三是通过boss或智联投递。
5。技能储备
自动化/性能/安全(必须会编程)——中高档测试设计师
具备测试能力和代码能力,提高测试效率和软件质量。
以下是自动化测试的一个例子。
1)选择一门编程语言学习:java、python、ruby等。
2)了解自动化测试,自动化测试工具,web/app/ interface /pc自动化基础。
3)框架思路、项目实践和程序。
在功能测试岗位工作几年后,俺会开始感到焦虑。
在打工时,我感受到了自己成长的局限。除了愈来愈熟悉的业务,工作也是慢慢的,其他方面都没有长进。
想换工作,想涨工资,不过又觉得很失落,很无力,由于浑身的价值皆在这里。
想在工作过程中提升自己,朝着高薪自动化测试、性能测试、安全测试等方向迈进。
诚然,自动化测试工具也可以自动化,不过有好有坏。
测试开发/性能、安全测试专业人士(必须能够编程)——高档测试设计师
测试开发,具备测试能力和代码能力,提高测试效率和软件质量。开发和测试皆可以。
需要非常强的开发能力,深入代码层面。一般不直接参加测试工作。
1、测试框架和测试工具的二次开发更佳地满足了公司产品的测试需求。
2、进行单元测试或协助开发和进行单元测试,从开发阶段开始控制产品代码质量。在后续迭代过程中快速挖掘问题。
3、开发测试工具和平台,提高测试效率,简化各式测试,为测试团队量化测试结果。打比方说性能测试平台、接口测试平台。
测试主管、经理和主管-职业发展和晋升阶段
需要非常强的测试和编程技能以及足够的管理和沟通技能。假如你只有足够的测试能力,就没法hold住开发团队。
对于此问题,任何人皆有任何人的观点。
觉得去大公司好的人认为,大公司资金较为雄厚,管理较为规范,对于应届毕业生来说,大公司的工作经历也会为以后的求职生涯镀金。
觉得去小公司好的人认为,大公司的管理模式僵化,能够听到的东西并不会许多,而小公司的管理模式灵活,晋升的机会也许多,可以得到不少的锻炼机会。
其实也就是说此问题,我认为其实没有固定的答案,每一个公司和岗位皆有合适的人和不适合的人。
假如你有机会进入一家知名大企业工作,那么百分百是一个挺好的机会:
假如在如此好的环境下,你还在混日子的话,只能说自己丢弃自己了,那么这样就更别提职业发展了。
假如你有机会进入一家创业公司并且你是一个愿意接受挑战的人的话,那么百分百是一个挺好的机会 :
面试的时刻怎样选择这家企业(某知名大公司 /创业型小公司 )是否适合你呢?
你需要在面试结束之后使自己清晰的了解以下一些问题:
对于上述这4点,你也许会说,面试的时刻,有些企业不能同意告知你如此问题的答案。没错,我也遇到过这种公司。
但反过来问问自己,假如在面试的时刻企业都不能回答你如此问题,如此的公司你敢去吗?你真的愿意去吗?莫非只是为了眼跟前的那些薪资?愿家人们好好思考一下。在这儿推荐一个软件测试交流群,群中会不定期的共享软件测试资源,测试面试题以及测试行业资讯,朋友们能在群中积极交流问题。私信我(软件测试)
1、依据你的工作经历,说说你对质量保证的理解?
这是个综合性基础知识问题,考验你在测试行业工作几年后的心得,是不是有测试思维,明确本人的定位。可以谈谈你认为怎样做好测试?怎样衡量质量?你又怎样专心致力软件质量提升,帮助团队快速迭代高质量交付
2、非关系型数据库和关系型数据库的不同,谈谈他们的优势?
数据库在测试打工时的重要程度相信俺就不用在这赘述了,需要你对常常见到的关系型数据库和非关系型数据库的原理理解,而且汇总出它们之前的不同
3、在自动化方面有啥成熟的方案,有还是没有做过二次开发?
测试设计师离不开一个关键字,“自动化”,在任何类型的项目多多少少会用到自动化测试技术。关于前后端自动化技术,是不是有一套完整的测试框架,技术体系。在开源自动化测试框架的理解上,有一定的开发思维,能进行封装,开源框架上二次开发。能依据项目灵活打造适合团队的测试框架,是测试设计师的能力分水岭
4、质量部假如需要定制化一个质量体系平台,你会考虑哪些问题?
实话实说,面试官这么问测试平台的问题,你可能就扛不住了。干过测试开发的应该都明白知道,测试平台的构造,除了技术难点。你要慎重考虑怎样去推进这份工作?测试平台研发出来后,在整个测试部门推广运营此平台是大难题。在功能测试人员的角度来想,去使用不成熟的测试平台来测试,假如增大你的工作量,对你本身工作和技术没有啥太大价值,多数都不是特别积极的去配合,测试平台怎样推广运营是个难题。你要让所有人亲身感受到用与不用这个测试平台有着哪些个不同。
我也收集和整理了一些软件测试的学习资料,对于想学习或者进阶软件测试的friend来说应该会很有用处,有需求的朋友们可以私信我(软件测试)
我是二黑,一个不太黑的测试人~
软件测试面试常见问题及答案是什么?
一般软件测试的面试分为三轮:笔试,HR面试,技术面试。
前两轮,依据不同企业,或有或无,但最后一个技术面试是企业了解你“行不行”的关键环节,每个企业皆会有的。
在平时的学习、打工时务必要善于汇总,假如回答不好,面试官会认为你技术能力有限或者不勤于思考,是比较容易被pass掉的。
简单为各位汇总了些面试过程中常常的会被问到的问题:
hr会问的一些问题
1、你觉得本人的优缺点是什么
2、你上一家公司的薪资是多少,调了几次薪
3、为啥从上一家公司离职呢
4、离职证明和背调行吗?
5,你还有啥问题要问吗?
(如此问题都带坑!!!回答不好会死在这里的,不晓得如何回答,可以百度下或者联系在线客服)
技术方面的问题
【功能方面】
1、你是如何理解软件测试的
2、让你介绍你做的项目的业务程序
3、软件测试的程序
4、。你认为啥是bug,说一下你过目难忘的bug,结合项目说一下你们公司有哪些类型的bug和bug评判严重程度的标准
5、怎样保证软件测试的质量
6、怎样保证你写的测试用例覆盖所有的场景
7、假如用户在正式环境发现一个bug,你在测试环境没有发现,如何办
8、项目测试到什么程度就能够上线了
【场景方面】
1、让你写登录,支付,充值,购物车,文件上传,三角形,笔,水杯等的测试点(80%的公司会让你剖析测试点!!!!!!!!!)
【计算机互联网基础知识】
1、http协议的内容是什么?
2、请求头的内容有哪些
3、常常见到的状态码有些
4、http和https的不同有哪些
5、tcp和udp的不同
6、请描述下tcp的三次握手四次挥手的过程
7、网关的效果
8、osi七层模型每一层的效果
9、session是什么,cookie是什么,有啥使用场景
10、session和cookie的不同
【接口测试】
1、你认为的接口是什么
2、接口测试工具工作的原理是什么呢?
3、接口中蕴含哪些内容
4、接口用例怎样写
5、你是怎样做接口测试的,使用的什么工具?
6、接口自动化了解过吗
7、get和post的不同
【自动化测试】
1、也许会问到selenium
2、selenium元素定位的方式,显示等待,隐式等待,强制等待的不同等
3、接口自动化脚本的编写原理和过程
这块可以不用担心,只要会一些简单容易的就能够了,由于对于初中级测试来说,自动化是一个加分项,一般假如自动化掌握的很熟练的同学薪资是在12-25k之间的
【其他测试问题】
1、简述转包过程,你用的抓包工具是什么
2、怎样剖析一个bug是前端还是后端bug
3、url后面跟数据的话怎样拼接上去
4、抓包的原理是什么
5、你们公司使用的bug管理工具是什么
6、弱网测试是怎样实现的
7、web测试和app测试的不同是什么
8、给你一个软件你会怎样进行测试
9、兼容性测试你是怎样做的(从app 和 web两方面回答)
10、冒泡排序之类的一些代码题
11、假如在正所谓环境发现bug测试环境没发现如何办
12、假如有一个bug,怎么判断这个bug是前端代码致使的还是后端代码致使的
如此问题回答的正确与否直接决定了你能不能留下,甚至能拿多少薪资的问题,多回答对一个问题,就有可能多给自己争取到500-1000块的工资呢。假如不晓得如何回答,可以私信细聊哦!!!
黑盒测试的优点有:
比较简单,不需要明白流程内部的代码及实现,与软件的内部实现无关,从用户角度出发,能比较容易地知道用户会用到哪些功能,会遇见哪些问题,基于软件开发文档,因此也能知道软件实现了文档中的哪些功能;在做软件自动化测试时较为方便。
黑盒测试的缺点有:
没有可能覆盖所有的代码,覆盖率较低,大约只能达到总代码量的30%,自动化测试的复用性较低。
白盒测试的优点有:
帮助软件测试人员加大代码的覆盖率,提高代码的质量,发现代码中隐 藏的问题。
白盒测试的缺点有:
流程运行会有许多不同的路径,没有可能测试所有的运行路径;测试基于代码,智能测试开发人员做的对不对,而不能知道设计的正确与否,也许会漏掉一些功能需求;系统庞大时,测试开销则非常大。
严重级别的错误:
作用与影响系统整体基本程序运行的错误,因为某一操作造成系统死循环或服务器崩溃的错误。
较严重:功能实现错误、内部计算错误。
一般:UI错误,一些易用性的错误或建。
自动化测试面试HR的问题,你也可分分钟通过!!!
这个应该大伙都会,我也就不浪费时间
python+selenium+excel文件用数据驱动 具体如何实现的,先写一个base文件做基础负责调用实际方法,还有数据的读写;紧接着往上有专门封装UI操作的mod文件,和读写关键字文件的方式方法文件,再上层是一些复杂操作和逻辑的工具独立再封装成单独的文件。
post是往服务器发送数据, get是请求数据,安全性较低
拿到cookie和相应api文档内的参数做请求, 用python的request库或者postman, 而我postman就填写查询参数,紧接着请求头里面的cookie调用就行了
登陆后拿到token,紧接着用token带参数去请求接口
而我平时在做的时刻都是打开开发模式,直接在header里面寻觅到一长串token复制下来使用,也没去研究是request还是response里面去传token,还是拿token。
上面是我在面试遇见过,不过俺还给大众汇总其他面试也许会遇见的。
说出linux常用命令,普遍要30到15个的模样 :
基础命令:
cd 切换目录
ls -l列出文件详细信息
ls -a列出当前目录下的所有文件
touch创建文件
mkdir 创建目录
echo echo "内容" > mook hello 创建带有内容的文件 ;
cat 查看内容文件
cp 拷贝
mv移动或重命名
rm -r 递归删除;
rm -f 强制删除
wc 统计文本中行数、字数、字符数
互联网命令:curl利用URL规则在命令行下工作的文件传输工具 curl www。悟 真 网014 14944。net
netstat:netstat 显示互联网状态信息
telnet:用于登录远程主机 telnet 127、0。0。1
系统命令:
ping:测试互联网连通
man:查看帮助
kill:杀害进程 top:动态显示当前耗费资源最多的进程信息
ps:显示瞬间进程状态
df:查看磁盘大小
df -h:带有单位显示磁盘信息
OSI 7层模型指的是哪些内容:
1。物理层:建立、维护、断开物理连接
2。数据链路层:逻辑连接、硬件地址寻址、差错校验
3。互联网层:逻辑地址寻址、不同互联网之间的路径选择、IP
4。传输层:传输数据的协议,TCP/UDP
5。会话层:建立、管理、终止会话,本地与远程主机的会话
6。预示层:数据的标示、安全、压缩、JPEG、ASCII等
7。应用层:与最终用户的接口,HTTP/HTTPS/SMTP等
Http协议中get/post的不同:
1。功能差别:get:去服务器取东西 post:从客服端上传东西用POST
2。数据传输:get把传输数据放在URL所带的参数里面,post放在body里面
3。安全性:get没有post安全性高,携带的参数数据会被发现,而post对用户不可见
tcp和 UDP的不同:
TCP:面向连接、传输可靠、应用场合:传输大量的数据、速度慢
UDP:面向非连接:如QQ/电话的消息,离线后再登陆可以收到消息、传输不可靠、少量数据、速度快
TCP连接三次握手具体过程
TCP连接都需要三个阶段:连接建立、数据传送和连接释放。三次握手就发生在连接建立阶段。
socket建立连接的过程:
1。服务器建立监听,socket,bind,listen
2。客服端发送请求,connect,send
3。连接确认,accept,response
进程和线程的不同?
进程:单独数据空间,进程间是不分享资源数据,系统调度
线程:执行流程的最小单元,进程内线程间分享资源,系统调度
PS:一个进程可以有多个线程,多个线程可以并发执行
进程有哪些状态?
就绪状态:已获取处理器以外所需资源,等待分配处理器资源
运行状态:占用处理器资源运行,此状态进程数<=CPU数
阻塞状态:进程等待某种条件,在条件满足之前无法执行
进程同步和互斥的不同?
互斥:
1。某一资源同时只允许一个访问者对其进行访问
2。具有唯一性和排他性
3。互斥无法限制访问者对资源的访问顺序,即访问是无序的
同步:
1。基于互斥、经其他机制实现访问者对资源的有序访问
2。大都情况下,同步已经实现了互斥,写入资源是互斥的
3。少数情况下,可以允很多个访问者同时访问资源
进程间通信都包括哪些?
管道:半双工通信方式,数据单向流动,父子进程间
命名管道:半双工通信方式,无亲缘关系进程间通信
信号量:是计数器,锁机制,控制多进程多资源访问
消息队列:消息链表,存在内核中由消息队列标识符标识
信号:比较复杂的通信方式,通知进程某个事件已经发生
分享内存:映射一段能被多个进程可访问的内存
进程的调度算法皆有哪些?
先来先服务、短作业优先、时间片轮转调度算法、高响应优先、优先权调度算法、多级队列调度算法
死锁产生的缘故:
1。资源竞争角逐
2。进程推进顺序不当
必要条件:互斥、不剥夺,请求与保持,环路等待
页面置换算法有哪些?
最佳置换算法、先进先出置换算法、近日最久未使用置换算法、Clock置换算法(近日未使用算法)
makefile的效果是什么?
1。定义规则,指定哪些文件先编译、后编译、重新编译
2。makefile的有益之处,自动化编译
3。makefile 需要make工具解释执行
何谓ANR?
ANR:应用无法响应
Activity的最长执行时间是5S
用户可以选择等待或者强行关闭
安卓常常见到的五种布阵与布局:
FrameLayout:框架布阵与布局
LinearLayout:线性布阵与布局
AbsoluteLayout:绝对布阵与布局
RelativeLayout:相对布阵与布局
TableLayout:表格布阵与布局
安卓中动画有哪几种类型:
Tween动画,组件移动、缩放、透明度的变化
Frame动画,通过顺序播放来实现,类似电影
Adb基本命令:
app安装:adb -p 手机ip地址(192、168、0。203:5555) install 包APK的具体位置
app重复安装:adb -p 手机ip地址(192、168、0。203:5555) -r install 包APK的具体位置
app卸载:adb -p 手机ip地址(192、168、0。203:5555) uninstall 包名(cn。comein)
查看手机是否连接:adb advices adb connect 192、168、0。203:5555
Selendroid是instrumentation的一次封装;
Selendroid四大组件:
Selendroid Client:Webdriver +移动特性的实现
Selendroid Server:一个Instrumentation APK
AndroidDriver-App:一个WebViewActivity,即浏览器
Selendroid-Standalone:大总管,负责准备环境
Robotium基于Instrumentation进行封装,实现的Android测试框架
封装了Solo类库,提供自动化测试API
因为是基于Instrumentation,测试时需要源码
Appium的理念:不需要APP源码;不局限于语言和框架;接口统一,不需要重复开发;务必是开源的
C/S架构,Appium核心是一个Web服务器
Session:顾客端初始化session与服务器交互
Desired Capabilites:初始化时的键值对组合
Appium Server:操作与驱动手机的
Appium Client:支持多语言调用
Appium环境包括哪些:
Android SDK/JDK/Appium/
Pycharm Python环境
库:Selenium/Appium-Python-Client
Appium支持哪些开发语言:Java/javascript/PHP/Python/Ruby/C /perl/Object C
App初始化时的配置:
platformName:目标设备平台Android/ios
platformVersion:目标设备的平台版本
deviceName:目标设备名称
appPackage:App包名(Android)
appActivity:App Activity名称
automationName:自动化驱动类型Selendroid/Appium
unicodeKeyboard:是否使用Appium输入法
resetKeyboard:恢复默认键盘
单元测试unittest测试框架:
1。TestFixture:SetUp: TestCase: TearDown:
2。TestCase
3。TestSite
4。TestRunner
数据驱动DDT:
黑盒测试-功能测试
数据驱动单元测试:为数据源中每行重复进行一种单元测试
常用情况是使用多个输入值测试API
效果:使用多个数据运行一条用例,使其表现为多条用例
原理:通过Python的 ,装饰每条用例。
以上仅做参考和借鉴,希望对你能够起到帮助作用!!! 小枫文章整理不易,欢迎各位朋友点赞!!!
web自动化测试需要学习哪些技术
需要学习html,JS前端技术,了解web元素。
一个脚本语言或编程语言,以做自动化脚本开发调试。
一个自动化工具,如qtp或selenium,从工具入手开始做web自动化。
自动化测试需要学多长时间?
自动化测试需要学4到6个月。不同培训学校的培训时长也许会不一样,假如是零基础的学生,培训周期一般为4到6个月,培训课程从八个阶段循序渐进,分别为计算机基础、功能测试课程、Python编程和数据库、自动化测试课程、性能测试、MySQL加强、LoadRunner和就业指导。
自动化测试的原理
GUI自动化测试的原理通过软件模拟用户实际的鼠标和键盘操作,实现自动化执行和操作的过程。性能自动化测试的原理通过顾客端模拟多个虚拟用户并发请求,来检验服务器的性能行为是否满足系统要求。自动化测试是为了确保项目可以正常上线,项目的主程序没有bug,而手工测试就是为了发现许多许多的bug。
零基础学习软件测试需要花费多长时间时间,着重是看你是采用什么方法学习。学习软件测试一般有两种方式:自学和培训。
1。零基础自学的话,花的时间是比较长的。由于会跟你自个的时间安排以及学习能力有关系。自学时遇见问题很容易走弯路。想要达到理想的学习效果,找到满意的工作的话,也许会在半年以上,甚至更久。
2。参与线下培训,有专业老师依照大纲进行系统授课,在学习中遇见技术问题能够快速得到解决,一般需要4-5个月左右的时间。
打比方说蜗牛学苑的测试开发课程就是4-5个月左右。从周一到周六,每周足足六天课程排满,晚自习强行上到八点半。配合实体项目,全程无休息,紧张而充实。从通用核心技术,到系统测试,再到测试开发,最后自主开发测试框架,从底层原理再到高档应用,无所不包,涵盖全部测试开发核心技术,满足企业核心技术需求。
从长远发展的角度考虑,不要太在乎时间,把知识学扎实了才有竞争角逐力。


