测试工程师常见面试题

软件测试工程师面试的过程中,一些常见的、印象比较深或者当时没有想到答案的题目。

一、测试过程

1)介绍一下测试流程(重点!常见!)

    i. 需求评审、测试计划、测试用例、用例评审、冒烟测试、测试执行、风险评估会议及上线、上线观察/问题跟进、测试报告、复盘会议

    ii. 每个点工作的内容都需要清晰掌握,有可能就某个点如何工作进行提问

2)介绍一下测试方法

    i. 按阶段:单元测试、集成测试、系统测试、验收测试

    ii. 按手段:黑盒测试、白盒测试、灰盒测试

                      动态测试、静态测试

                      手工测试、自动化测试

    iii. 其他:回归测试、冒烟测试

3)介绍一下测试用例设计方法(用例设计方法&测试方法需分清楚)

    i. 黑盒测试用例设计:等价类划分法、边界值分析法、错误推测法、因果图法、正交试验分析法、流程分析法

    ii. 白盒测试:语句覆盖、判定覆盖、条件覆盖、条件组合覆盖、判定/条件覆盖、路径覆盖

4)设计一个登录页面的用例(提供某个场景设计用例,重点!)

    i. 功能测试:正确输入、为空输入、字符类型校验、长度校验、密码是否加密显示、大写提示、跳转页面是否成功、登出后用另一个账号登录

    ii. UI:界面布局合理、风格统一、界面文字简洁好理解、没有错别字

    iii. 性能测试:打开登录页面需要几秒、点击登录跳转首页需要几秒、多次点击、多人点击

    iv. 安全性:用户名和密码是否加密发送给服务器、错误登录的次数限制(防止暴力破解)、一台机器登录多个用户、一个用户多方登录、检查元素能否看到密码

    v. 兼容性测试:不同浏览器、不同的平台(Windows Mac)、移动设备能否工作

    vi. 可用性:输入框可否tab键切换、回车能否登录

5)举例说明项目推进的能力(针对个人评价的举例说明)

    i. 推动开发解决菜单权限需退出登录才可应用的问题。描述:XX项目上线后,由于权限更新导致用户无法使用旧界面+用户不懂得自己退出登录以应用新菜单权限,线上多个用户反馈平台相关功能无法使用。处理:远程操作+线上指导出现问题的用户退出登录,凌晨脚本批量强制用户退出登录。推进:在下一次版本中,推动开发处理菜单权限更新问题,以防每次更新菜单都出现用户使用不了功能的问题。结果:处理为用户登录期间仍可使用旧界面,直到用户退出重新登录后,才应用新菜单权限

    ii. 推动冒烟:冒烟不通,测试召开会议罗列项目不通的模块、存在的问题,一一对应到每个人去跟进,得到解决的时间,后续项目群说明并艾特每个人跟进。测试准时验收

    iii.结合自己的个人经验,从问题描述+处理过程+推进表现+结果,一一说明

6)测试中遇到的比较难的一个项目是?(掌握自己简历上的项目)

    i. XX项目:这个项目是一个新项目、需要对接第三方、从协助测试产品模块到转手负责整个项目加强了一定的需求理解难度、订单逻辑不熟悉、其中需求的问题推进比较困难。针对这些困难,测试方面:先快速了解需求,并与原先的测试负责人了解具体的进度和需要注意的测试点。开发方面:迅速与开发人员了解订单逻辑,以及与第三方对接的过程。产品方面:遇到某个需求问题产品不接受、最后汇报领导+开会讨论了较好的处理方案。虽然过程问题比较多,但是通过项目组的集体努力,最后项目得以按时上线

    ii. 说明项目(最好是简历上的项目方便面试官进一步提问)。描述有难度的地方+如何处理+结果

7)印象深刻的一个bug?

    i.     隐藏得比较深的bug、影响比较大的bug、处理过程比较曲折的bug。根据自己的经验描述:如何发现的、如何处理、影响、结果、反思。

8)你们公司是不是敏捷开发?介绍一下敏捷开发?

    i. 是,敏捷快速迭代、多版本同时迭代

   ii. 敏捷开发属于增量式开发,对于需求范围不明确、需求变更较多的项目而言可以很大程度上响应和拥抱变化、主张简单、拥抱变化、可持续性、递增的变化、高质量的工作、快速反馈、软件是你的主要目标    

9)复盘会议的主要内容有哪些?

10)业务分享的时候是一种什么样的分享方式

    i.以PPT的形式,整理出业务相关的需求背景、主要功能、测试截图、过程问题、测试注意点

二、app测试

1)介绍一下XX项目app端的测试过程

    i. 功能测试、UI测试、兼容测试、网络测试、用户体验、安全性测试(通过修改接口检查订单价格/库存是否有校验)、性能(多次点击、多人同时点击)、中断测试、耗电量、内存

    ii. 安装-升级-push消息-卸载

2)测试app的时候,如何定位bug?

    i. 首先看android和iOS是否同时出现问题,是,则后端问题,否,则是某一移动端问题

    ii. 查看接口,接口返回正确,展示错误--前端问题

    iii. 接口返回错误,可能是接口问题,也可能是前端传参问题

3)app的兼容性测试怎么测,app的接口测试怎么测试?

    i. 系统兼容(ios、安卓)、机型兼容(iPhone、华为、小米、三星、vivo、OPPO)、分辨率兼容、软件本身向前向后兼容

    ii. 接口测试:获取接口文档,使用fiddler抓包工具获取接口的请求方式、url、请求参数、返回参数,然后使用postman进行测试

4)app自动化包括哪些方面

    i. UI自动化,UI自动化可以用appium工具辅助

    ii.接口自动化

5)web端测试和app端测试有何不同(常见题,考核对不同端测试的掌握。转自:https://www.cnblogs.com/yyh8/p/10863436.html)

    i. 系统结构方面

        web项目,b/s架构,基于浏览器的;web测试只要更新了服务器端,客户端就会同步会更新

        app项目,c/s结构的,必须要有客户端;app 修改了服务端,则客户端用户所有核心版本都需要进行回归测试一遍

     ii. 性能方面

         web项目 需监测 响应时间、CPU、Memory

        app项目 除了监测 响应时间、CPU、Memory外,还需监测流量、电量等

    iii. 兼容方面

        web项目:a. 浏览器(火狐、谷歌、IE等)b. 操作系统(Windows7、Windows10、Linux等)

        app项目:a. 设备系统: iOS(ipad、iphone)、Android(三星、华为、联想等) 、Windows(Win7、Win8)、OSX(Mac)b. 手机设备可根据 手机型号、分辨率不同

    iv.相对于 Wed 项目,APP有专项测试

        a. 干扰测试:中断,来电,短信,关机,重启等

        b. 弱网络测试(模拟2g、3g、4g,wifi网络状态以及丢包情况);网络切换测试(网络断开后重连、3g切换到4g/wifi 等)

        c.安装、更新、卸载

            安装:需考虑安装时的中断、弱网、安装后删除安装文件等情况

            卸载:需考虑 卸载后是否删除app相关的文件

            更新:分强制更新、非强制更新、增量包更新、断点续传、弱网状态下更新

    v. 测试工具方面

         自动化工具:APP 一般使用 Appium; Web 一般使用 Selenium

         性能测试工具:APP 一般使用 JMeter; Web 一般使用 LR、JMeter

    vi.界面操作:关于手机端测试,需注意手势,横竖屏切换,多点触控,前后台切换

    vii.安全测试:安装包是否可反编译代码、安装包是否签名、权限设置,例如访问通讯录等

viii. 边界测试:可用存储空间少、没有SD卡/双SD卡、飞行模式、系统时间有误、第三方依赖(QQ、微信登录)等

    ix.权限测试:设置某个App是否可以获取该权限,例如是否可访问通讯录、相册、照相机等

6)web端测试和小程序端测试有何不同

7)app端和小程序端测试有何不同

(参考文章:https://blog.csdn.net/weixin_38961318/article/details/92413395、https://www.jianshu.com/p/415d96962e6d)

8)Android和iOS测试的区别

    i. 分辨率,安卓比iOS更多

    ii. 手机操作系统,iOS只能升级不能降级,新的iOS不能完全兼容就iOS上的app,有可能闪退

    iii. 操作习惯:back键,应用数据迁移到sd卡

    iv. 安装卸载测试,安卓安装路径更多

    v. push消息测试

9)怎么选取测试的手机机型,例如如何确定测试需要兼容哪些安卓手机

    i.系统兼容性:优先测试主流系统、关注新版本操作系统

    ii.屏幕兼容性 :优先主流分辨率、考虑不同尺寸

    iii. 型号兼容性:优先测试主流品牌、考虑品牌主流系列

    iv.统计来源:项目用户统计、反馈问题统计

三、测试工具

1)介绍一下测试中常用的工具(基础,掌握!)

    i.需求问题跟进、测试计划、风险评估登记、测试报告、复盘会议:wiki

    ii.测试用例:Xmind编写,testlink管理

    iii. 测试执行:fiddler、postman、elk、Xshell

    iv.bug管理:Jira

2)用什么工具对用例进行管理

    i. testlink

    ii. testlink管理用例的一般步骤:新建计划、新建版本、上传xml文件、添加测试用例到测试计划中、分配测试用例给开发、查看用例执行报告

3)怎么使用elk定位日志    

    i. 查看产品推送是否成功。产品从A平台推送到B平台,根据A平台的链接id,搜索对应的日志。搜索不到,则为A平台推送失败。搜索到了,查看推送的状态,进一步判断问题所在。

    ii.可以进一步了解elk日志查看

4)Xshell如何登录,如何切换目录

    i. 使用ssh密钥登录:生成密钥公钥和私钥-上传公钥到服务器-配置Xshell使用密钥认证方式登录到服务器(参考:https://www.cnblogs.com/Black-rainbow/articles/9418713.html)

    ii.切换目录命令:cd

5)埋点测试怎么测试,使用什么工具,数据要不要入库

    i. 使用fiddler抓包,查看对应的来源记录、事件等必要参数是否正确,查看数据库记录是否正确

6)介绍fiddler和postman的区别

    i. fiddler主要是抓包,postman主要进行接口请求

7)怎么使用postman进行多个接口请求?

    i. 将多个接口请求归纳到一个集合里,在集合的右上角点击展开箭头,点击run

8)如果有前置条件,怎么用postman进行测试?

9)Postman test的使用

10)如何使用postman进行接口测试

6-10可以学习慕课网,后续整理单独的工具使用文档:https://www.imooc.com/learn/738

四、性能测试

1)性能测试指标包括哪些

2)如果一个需求没有明确的性能指标,要如何开始进行性能测试?

3)介绍JMeter聚合报告包括哪些内容

    i. 请求名、线程数、响应时间(50 95 99 最小 最大)错误率、吞吐量

2)如果有一个页面特别卡顿,设想一下可能的原因

3)介绍一下JMeter进行性能测试的过程

4)介绍一下JMeter和LoadRunner的区别

五、计算机常识

1)http状态码

    i. 200,请求成功

    ii. 400错误请求,服务器不理解的请求(参数格式不正确)、404服务器未找到请求的网页

    iii. 500服务器内部错误,服务器遇到错误无法完成请求,505服务器不接受请求的http版本

2)工作中常使用的SQL有哪些

    i.create table、create view、 select   from  where、insert  into、update set values、delete、alter、order by、having

3)慢查询是什么意思?

4)导致数据库性能差的可能原因有哪些?

5)工作中常用的Linux命令有哪些

    i.    top、netstat、ifconfig、pwd、cd、ll、ls、cat、tail、grep、mv、rm、rmdir、mkdir

6)擅长哪些开发语言

    i.学习过C、C++ 、Java等

六、不分职业的常见面试题

以下看面经+结合自己的实际情况回答,不要一味照抄

1)为什么离职

   i.  实话实说,面试通过会进行背调的

2)找工作比较看中公司哪一个方面

    i. 能够让我发挥自己的特长,做好测试工作

    ii. 能够积累实践经验、同事间能够互相学习成长,能够使自己不断得到完善

    iii. 学习一定的技能,并有机会实践,如接口测试、性能测试等,不断接受挑战,提升自己的技能

3)对公司的行业有什么要求

    i. 互联网行业,电商平台、旅游平台、交友平台等等都可以

4)为什么觉得自己的期望工资是XX

    i. 提出自己的优点,能给公司带来什么

    ii.结合行业的薪资水平,提出合理性

5)还有什么问题要问

    i. 此岗位的主要职责是什么呢?

    ii. 团队之间的工作模式是如何的呢?测试人员对项目负责还是对测试组负责呢

    iii. 发展可能和机会,团队之间是否会进行分享学习,同事间的关系氛围如何

    iv.可以提前准备,自己想了解什么就问什么,当然不要提一些无厘头问题

七、总结

    i.前期准备:复习了计算机基础知识、测试理论,自学了接口测试、性能测试和自动化测试(实际上这些准备在面试中没有发挥太大的作用,但是疫情期间有时间就学了一下,时间紧张可以直接到简历准备步骤)

    ii.简历准备:写了一稿之后传给大佬们看了,包括测试和开发,一改定模块、二改定表达、三改定细节,多请教,因为自我判断在这时候容易失灵,听取别人的意见再结合自己的想法写好简历,感谢大家的帮助

    iii.面试准备:知识点总结+吃透简历项目和个人评价+面经多看问题并准备好自己的回答

    iv.offer:个人偏向有发展机会的工作,趁年轻,多学习!多见识!膜拜大佬!

    v.其他:面试中有位面试官说,如果你想做某件事,你随时都可以做,早早就可以开始做,但你得去做,而不是等待机会的到来。我觉得挺有道理的,于是就有了这篇文章啦!希望大家工作顺利,一起进步!

你可能感兴趣的:(测试工程师常见面试题)