软性热身题
这种题目,考的就是你的软性能力,比如表达能力,理解能力,协调能力,一个词概括就是套路。这类题目会在面试开始热身的时候,问一道两题,不会多,但是如果你能回答的有条不紊,清晰达意,那么就会给面试官留下非常好的印象,大致的题目如下:
自我介绍
介绍下你负责的公司项目
现公司:互联网金融业务、银行核心、理财、保险
你有什么优点和缺点?
优势:业务熟悉度和测试功底比较扎实,执行力、推动力、沟通协作能力比较强
在同一个项目组内,你认为你怎么做会比另外一名测试更加优秀?
业务熟悉度更高
架构理解更深入
代码能力要更好
个人影响力更强
测试话语权更大
协调推动能力更强
你为什么离开上家公司?离职原因(这个会在最后问)
测试理论基础题
这类题目就是考测试工程师的基本能力了,比如测试计划,测试流程,如何bug,你做过哪些测试,一般我们认为这些能力做的再好都是应该的,不会有加分,但是只要做的不好,那就是个不合格的测试工程师了。这种题目也不会问的太多,大概题目如下:
请描述下你上个公司的测试流程?
需求评审阶段开始介入,与产品及开发一起制定测试目标。根据项目计划制定测试计划,了解开发的概要设计及详细设计,书写测试用例。发起case评审,提供准入测试用例给开发。提测后先进行准入测试,不通过打回,通过则进入story测试,集成测试,系统测试,性能测试,稳定性测试,安全测试,(uat:客户在测试环境验收),生产验证,发布。
请描述下bug的几个要素?
前提条件、测试环境、操作步骤、预期结果、实际结果、严重等级、版本信息,出现概率
必要时附上截图、视频、日志等
白盒和黑盒的区别,你是怎么运用的?
白盒是从代码层进行测试,黑盒是对业务层进行测试。
白盒可以从单元测试、代码review、架构方面入手。
你是如何做测试分析?
如果是分析并制定测试内容,首先会根据需求文档,了解功能交互和规则,再去和开发讨论实现原理,通过交互和原理两个纬度进行分析,并确定测试内容。
如果是测试问题分析,出现问题后,首先会抓包,看看是后端返回的问题,还是前端代码或者请求的问题,如果后端涉及多个子系统,可以通过查看日志的方式看看具体是环境问题还是后端哪个子系统的问题。
如何设计测试用例?什么样子的测试用例是好用例?
需求分析
架构理解
覆盖功能、性能、安全等维度
功能拆解:aa的环境,bb的界面,用了cc的工具,做了dd的操作,达到了ee的效果。
功能测试在 beta 版本对外的上线标准是什么?
功能指标:
Bug通过率 >=95%
严重级别bug通过率=100%
case通过率 >=95%
p0和p1级别case通过率100%
自动化工具通过率达到标准
接口、安全、兼容、性能、稳定性达到要求。
产品验收通过。
测试管理题
这类题目就是考验你作为测试leader或者测试负责人的管理能力了。
如果项目周期很短,测试人力匮乏,你是怎么协调的?
依据代码review的结果和影响范围,对测试内容进行适当的裁剪。
借助自动化工具的支持,提高测试案例的执行效率。
调整组内任务的优先级,进行人力协调,优先投入最紧要的项目。
必要的情况下加班
描述下你团队的测试分工
测试技术组和业务测试组。
测试技术组主要进行工具考研、工具开发和工具维护,为业务测试效率提升和基础建设做支撑。
业务测试组主要进行具体业务测试和工具的落地使用,具体测试内容覆盖功能、性能、兼容、稳定性、接口等。
对于团队成员,你是如何打kpi的?
一方面制定KPI的时候根据团队成员的职级和能力进行区分,制定合理且细化明确的指标,指标包含测试质量保证、测试效率提升、自动化事务、培训分享。
进行KPI考核的时候一方面依据KPI的指标达成度、达成时效打分,另一方面不在 KPI内的创新型事务会作为加分项。
移动测试相关
如今是移动互联网的天下,谁家没有个应用,所以这一块基本都会问到,同时也会看你的简历,如果你没有做过,基本也不会问的太深,如果你是专门做这一块的,那么要好好准备了。
概念题
描述下web测试和移动应用测试的相同点和区别?
Web 测试和移动应用测试的共同点在于:都要覆盖接口、功能、兼容、性能、稳定和安全的测试。
差异点在于:兼容考虑的范围不一样,web重在PC系统和浏览器。移动重在机型分辨率和系统版本。 另外移动用户要考虑手机特性相关的影响,网络、冲突、耗电和流量。
你是如何做应用的兼容性测试的?
硬件兼容:机型、分辨率、系统、版本、网络
软件兼容:输入法键盘、相机、安全清理工具类
数据兼容:低升高、高降低的用户信息和数据的兼容,还有跨平台的数据兼容
请讲出客户端下 3 个常用的性能指标的名称与具体含义?
并发量:多个用户同时调用单个接口的相应时效
??
iOS应用和Android应用测试有什么侧重点?
iOS 覆盖的分辨率和系统是有限的。
Android 比较碎片化,覆盖的机型版本比iOS 更多
android有各种定制rom,手机型号太多。
请讲诉移动应用的灰度是怎么做的?
内部二维码下载
白名单用户方式
国内小市场先上,国外用 Google Play的 β版,默认开放5%
后台控制的方式,开放给一定比例的用户
实践题
应用的闪退通常是什么原因造成的?如果应用闪退,Android 和 iOS 上是分别怎么抓取日志的?
OOM
代码异常如除以零、未对返回的列表做判空、数组越界、空指针异常及其他运行时异常
请简述移动应用在升级安装时候应该考虑的场景?
安装的途径:
通过手机助手安装
通过adb命令安装
通过应用市场安装
安装:
卸载安装
升级安装
升级后数据的一致性。如旧版本的账号密码仍能登录到新版本,保存在本地的信息能同步到新版本。如手势密码。
给你一个应用,请简述你会从哪些方面去测试?
请描述下微信朋友圈发小视频的用例设计?
功能:
入口图标的标识度
进入和退出操作简易度
取景框大小
拍景和自拍切换
视频的像素限制
视频的时长限制
发送的进度提示
性能:
发送的时间
操作是否卡顿
兼容:
不同机型分辨率
不同系统版本
不同网络情况
不同流量情况
如果让你来测试扫码支付,你会考虑哪些场景?
卡的类型(一类户:借记卡、信用卡、各个开户行)
二类户:虚拟账户如微信里的零钱账户、支付宝的余额宝、电子账户
二维码的商户类型(微信、支付宝、汇宜、银联)
支付限额(单笔限额、累计限额、日累计、月累计、支付笔数)
退款(退款入口、退款进度、退款结果)
对账
资金流动(我方扣款数额正确,对方收款数额正确)数额及时效
支付结果展示、交易明细
支付接口安全性、接口的性能
异常情况(卡异常、余额不足)
连续扫码支付,每天的扫码支付次数限制及数额限制
二维码有效期
有无相机权限
前后置摄像头
像素低端的手机能否扫码成功
兼容性(不同手机厂商自带相机功能实现不一致)
如何测试一个应用的登录场景?
常规登录账户密码的字符类型校验、长度校验、匹配性校验
性能:响应时间、并发量
安全性:加密传输
各种登录方式优先级
不同设备之间切换登录方式
登录的有效时长
服务端测试相关
什么都离不开服务端,所以这是你逃不开的,一般来说服务端会问接口测试,性能测试,更深一点,埋点监控止血也会有。
请问你们公司是如何做接口测试的?
Jemeter
接口测试质量评估标准是什么?
接口表现与接口文档的一致性
请求参数:必选和非必选、长度、字符类型、为空、缺失、组合、重复
返回数据:正常和异常
性能,1000以内并发时小于3s
请问你们公司是如何做性能测试的?请讲诉性能测试的相关指标?
压力测试和负载测试的区别
压力测试是在高负载情况下对系统的稳定性进行测试。是在高负载(大数据量、大量并发用户等)下的测试,观察系统在峰值使用情况下的表现,从而发现系统的功能隐患。
负载测试:多用户,用户数渐增,持续同时发同一业务请求,产出最大TPS
压力测试:多用户,资源使用饱和,持续同时发同一业务请求,产出系统瓶颈或使用极限
服务器中一般要监控哪些数据,如何监控的,怎么从监控数据中发现问题?
基础监控和应用监控。基础监控包括机器是否死机,cpu,内存,磁盘使用率等
应用监控包括日志监控、端口监控、进程数监控等。
假设系统A调用系统B,我把B的接口都mock了,进行性能测试,这样有什么好处和坏处?
好处:
mock一方面加挡板,一方面可模拟返回数据。
测试驱动开发(TDD)在接口实现之前可以写接口测试。在开发过程中把测试添加到自动化测试环境中。
防止系统B出错引起测试错误
不会因系统B的开发进度影响测试,只要定义好了接口mock后即使B未开发完成仍能进行测试
一些速度较慢的操作处理复杂逻辑的接口,mock后可以快速返回,提升测试效率
模拟在应用中不容易构造的对象或比较复杂的对象,从而使测试顺利进行
mock的坏处在于很多情况下无法完全模拟出服务器的所有可能的返回情况,另外,mock掉了关联方之后,整个环境的连通性可能测试的不到位。
mock的使用场合和时机:
(1)单元测试/接口测试中测试对象依赖其他对象,这些被依赖的对象构造复杂或耗时或根本无法构造(未交付)
(2)我们只测试对象内部逻辑的质量,不关心依赖对象的逻辑正确性和稳定性
基于以下两个原则去做mock。这样mock的投入产出比是最高的。
(1)不需要对所有的依赖对象进行mock,只对那些构造复杂、构造比较耗时的依赖进行mock
(2)若是分层自动化,高层的测试设计可以基于以下假设:
低层的测试已保证低层对象的质量,高层对低层的依赖可以mock
有一天早上打车高峰,滴滴服务端挂了大概30分钟,工程师抢修之后,马上上线,之后又挂了,请问有哪些原因会造成这个情况?
服务器内存不够
服务器超出负载
并发量太大
遇到恶意攻击
自动化相关
自动化永远是避不开的,反正你入职的岗位要不要用自动化,你必须得会一点,加分项。这一块包括,自动化一些理念和自动化的工具使用。
理念和概念:
如何看待自动化和手动测试?怎样的一个比例才是健康的?
项目较成熟时自动化比例可适当提高。开发并维护自动化case成本较高,所以不是自动化比例越高越好。要根据具体的项目及项目所处的阶段来定。投入产出比要先评估好。
接口自动化时上一次执行的数据如何清理掉?(如开户或注册,同一个账号只能使用一次,如何清洗数据能让case下次继续跑?提供新的数据?mock?mock的层级,mock过多的话等同于未做测试)
你们公司的自动化投入产出比怎样?效益怎样?
自动化和业务测试人力1:5
自动化测试用例的覆盖率多少?
拿金融产品的自动化来讲,大概覆盖33%左右
完整运行一次自动化用例需要多久时间?
什么是分层自动化?
你的测试数据是怎么准备的?
测试脚本的维护成本是怎么样的?
工具使用
WebDriver 相关
请问你的定位策略是什么?
请问如何实现用例失败或者异常时候需要截图?
请问如何分布式执行webdriver用例?
如何在脚本中执行 JavaScript 代码?
10.移动应用相关
Appium 的定位策略有哪些?
请简述Appium的原理
iOS 和 Android 的 UI 自动化的原理是什么?
当定位策略都失败的时候,你该怎么做?
请问Monkey测试的优缺点?
如果使用monkey发现了一个毕现闪退,请问怎么使用monkey重现它?
11.Jmeter
你用jmeter做什么测试?
如果有一个登录接口需要服务端返回参数,再带着这个参数去请求才能完成登录,用jmeter 怎么做?