测试工程师(功能测试)岗位面试问题及答案_第1页
测试工程师(功能测试)岗位面试问题及答案_第2页
测试工程师(功能测试)岗位面试问题及答案_第3页
测试工程师(功能测试)岗位面试问题及答案_第4页
测试工程师(功能测试)岗位面试问题及答案_第5页
已阅读5页,还剩18页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

测试工程师(功能测试)岗位面试问题及答案1.请解释功能测试的核心目标,以及它和性能测试、安全测试的核心区别?参考答案:功能测试的核心目标是依据需求规格说明书、产品原型及业务规则,逐一验证软件功能的实现是否符合预期,确保所有面向用户的功能可正常使用、业务规则无逻辑漏洞,核心是验证软件功能“对不对”。它和另外两类测试的核心区别可从4个维度划分:①验证维度:功能测试聚焦功能逻辑与业务规则的正确性;性能测试聚焦系统的响应效率、并发承载能力、稳定性,核心验证“快不快、稳不稳”;安全测试聚焦系统的漏洞防范、数据保护、权限控制能力,核心验证“安不安全”。②测试时机:功能测试在单元测试、集成测试、系统测试、验收测试全阶段均可开展,是测试周期最长的活动;性能测试一般在系统功能稳定后开展,多安排在系统测试阶段后期;安全测试可左移至设计阶段做静态安全扫描,系统稳定后做渗透测试。③关注指标:功能测试核心关注用例覆盖率、缺陷修复率、线上Bug率;性能测试关注响应时间、吞吐量、错误率、资源利用率;安全测试关注高危漏洞数量、数据加密合规性、权限越权风险。④适用场景:功能测试覆盖所有软件项目的全迭代周期;性能测试多用于高并发场景的产品,比如电商大促系统、支付系统、政务服务系统;安全测试多用于涉及用户隐私、资金交易的产品,比如金融类、医疗类、电商类产品。2.什么是测试左移和测试右移?分别对功能测试工程师有什么要求?参考答案:测试左移指将测试活动提前嵌入到软件生命周期的前期阶段,打破“测试仅在开发完成后开展”的传统模式,从需求、设计阶段就介入测试,从源头把控质量,降低缺陷后期修复的成本;测试右移指将测试活动延伸到上线后的生产环境,通过线上监控、用户反馈收集、灰度验证等方式,持续保障线上系统的稳定性,及时发现线下测试未覆盖的场景问题。对功能测试工程师的要求:①测试左移阶段:需深度参与需求评审,能够识别需求的歧义点、逻辑漏洞、不可测点,提前输出需求评审意见;参与技术方案评审,能够从测试视角评估技术方案的风险,比如跨模块调用的兼容问题、数据一致性问题;提前梳理业务规则、设计测试用例,在开发编码阶段同步完成用例评审,提测后可立即开展测试。②测试右移阶段:需掌握基础的线上监控工具使用方法,能够定期巡检核心功能的可用性;能够跟进线上用户反馈的问题,快速复现、定位问题根因;参与灰度测试方案设计,验证灰度阶段的功能正确性,保障全量上线的安全性。3.针对“用户登录”功能,你会如何设计测试用例?参考答案:我会基于测试用例设计方法,按测试维度分层覆盖所有场景,具体如下:①功能维度(核心覆盖,用到等价类、边界值、错误推测法):正常场景:已注册手机号输入正确密码登录、已注册手机号输入正确验证码登录、三方授权(微信/支付宝/QQ)有效授权登录、勾选“记住密码”后下次打开APP自动填充密码、开启“自动登录”后下次打开APP直接进入登录态、多端登录触发互踢规则后原设备退出登录。异常场景:未注册手机号登录、手机号位数不足11位/超过11位、手机号含非数字字符、密码输入错误3次触发账号锁定、密码长度低于规则要求/超过规则上限、验证码输入错误、验证码过期、验证码超时后重新获取、三方授权过期后登录失败、空手机号/空密码/空验证码提交、禁用状态账号登录、注销状态账号登录、登录态过期后操作自动跳转到登录页。②UI维度:登录页元素布局符合原型要求、输入框提示文案正确、错误提示文案清晰明确、密码明文/密文切换功能正常、登录按钮加载态展示正常、忘记密码/注册入口跳转正确。③兼容性维度:适配不同品牌的手机(iOS/安卓主流品牌)、适配不同系统版本(iOS15及以上、安卓10及以上)、适配不同屏幕分辨率、不同主流浏览器(Chrome、Safari、Edge)展示和功能正常。④安全性维度:密码传输加密(抓包无法看到明文密码)、多次登录失败触发验证码校验、同一账号短时间多次登录触发风控拦截、输入SQL注入语句不会泄露用户信息、登录成功后生成的token有效期符合规则、退出登录后token失效无法继续使用。⑤易用性维度:手机号输入自动格式化、验证码倒计时功能正常、支持键盘回车触发登录、弱网下有明确的加载提示。⑥性能维度:单次登录请求响应时间不超过2s、1000用户并发登录无报错、弱网下登录请求不会重复提交。用例设计完成后会组织产品、开发做评审,补充遗漏的业务规则场景,比如企业账号需关联企业权限、特殊白名单账号不受登录次数限制等规则。4.现在要测试电商平台的“订单提交”功能,涉及库存扣减、优惠券抵扣、运费计算、支付跳转四个关联模块,你会如何设计测试场景避免遗漏?参考答案:我会先梳理全链路业务流:用户加购商品→点击提交订单→系统校验商品库存→计算商品总价→校验优惠券有效性→计算抵扣金额→计算运费→生成应付金额→跳转支付,再按单模块验证、关联集成验证、异常流验证三个层面设计场景,用到场景法、因果图法梳理依赖关系。①单模块基础场景验证:库存扣减模块:购买数量小于现有库存、购买数量等于现有库存、购买数量大于现有库存提交时报错、秒杀活动库存超卖校验、加购后库存被其他用户买走提交订单时提示库存不足、预售商品库存锁定规则验证。优惠券抵扣模块:满减券满足满减门槛正常抵扣、满减券不满足门槛无法抵扣、过期券/已使用券/和商品品类不匹配的券无法使用、优惠券叠加规则(可叠加/不可叠加、满减券和折扣券优先级)验证、优惠券抵扣金额上限规则验证。运费计算模块:订单金额满足包邮门槛免运费、订单金额不满足包邮门槛按规则收运费、不同收货地区运费差异验证、超重商品额外运费验证、虚拟商品/自提商品免运费验证。支付跳转模块:应付金额正确传递到支付页、支持的支付方式(微信/支付宝/银行卡)跳转正常、支付成功后跳转回订单详情页、支付失败后返回订单页状态正确。②关联集成场景验证:优惠券抵扣后订单金额刚好满足包邮门槛、优惠券抵扣后订单金额低于包邮门槛需收运费、库存刚好足够时使用优惠券提交订单后库存和优惠券同时扣减正确、使用多张叠加优惠券后总抵扣金额计算正确、支付失败后库存自动回滚、优惠券自动退回、支付超时取消订单后库存和优惠券回滚、用户下单后后台修改运费重新计算应付金额正确。③异常流场景验证:提交订单瞬间网络中断、提交订单时后台刚好调整商品库存、提交订单时优惠券刚好过期、提交订单时用户收货地址被修改导致运费变化、提交订单后未支付时商品价格调整应付金额不变、多设备同时提交同一商品最后一件库存仅生成一个订单。所有场景设计完成后会梳理场景覆盖矩阵,标注每个场景对应的关联模块,评审时逐一核对,避免遗漏。5.你发现一个线上Bug,但开发认为不是问题,你会怎么处理?参考答案:我会按以下步骤处理,全程以解决问题、降低业务风险为核心目标:第一步,先确认Bug的有效性:重新复现Bug,明确是必现还是偶现,收集完整的复现步骤、操作录屏、前后端请求报文、系统日志、用户账号信息,对比需求规格说明书,如果需求有明确的预期结果,就整理出对应的需求条款;如果需求未明确说明,就收集行业通用规则、历史版本的实现逻辑、同类产品的实现方式,或者找产品经理确认该场景的预期结果。第二步,量化Bug的影响范围:统计该Bug影响的用户群体(比如仅iOS16用户、仅会员用户)、影响的功能模块、是否会造成资金损失、合规风险、客诉风险,比如“该Bug会导致12%的iOS16用户提交订单时闪退,按日均订单量计算,每天约影响1800笔交易,预估营收损失4.5万元,且已收到12条用户客诉”,用量化数据说明问题的严重性。第三步,和开发做针对性沟通:沟通时先说明复现步骤和影响范围,不做情绪化表达,站在业务角度说明问题的风险,如果开发仍不认可,就拉上产品经理、开发负责人、测试负责人开小型评审会,共同评估问题的属性,如果最终确认是需求外的优化项,就记录到需求池待后续迭代;如果确认是Bug,就同步确定修复优先级和排期。第四步,跟进修复和回归:Bug修复上线后,第一时间做线上回归验证,确认问题已解决,同时将该场景补充到测试用例库,避免后续版本漏测。如果是偶现Bug,我会收集多轮复现的日志,提取触发条件的共性,比如仅在弱网下、仅特定账号出现,提升问题的说服力。6.请描述一个完整的缺陷生命周期,以及每个阶段的流转规则?参考答案:完整的缺陷生命周期分为6个阶段,流转规则如下:①新建阶段:测试人员发现缺陷后,提交缺陷记录,必填信息包括:复现步骤、预期结果、实际结果、截图/日志/录屏、所属模块、影响版本、严重程度、优先级,提交后指派给对应模块的开发负责人。其中严重程度划分规则为:致命(阻塞核心流程、造成资金损失、数据泄露、系统崩溃)、高(核心功能异常但不影响主流程、普通功能逻辑错误)、中(边缘功能异常、UI展示错误)、低(体验优化建议);优先级划分规则为:最高(24小时内修复)、高(版本上线前必须修复)、中(本次迭代可修复,不影响上线)、低。②待确认阶段:开发收到缺陷后,24小时内完成确认,如果判定是有效缺陷,流转到“待修复”状态;如果判定不是缺陷,需标注具体原因(比如需求如此、无法复现、第三方问题),回退给测试人员,测试人员确认后,如果是需求理解偏差则关闭缺陷,如果是开发未复现就补充复现信息后重新提交。③待修复阶段:开发按优先级排期修复缺陷,修复完成后流转到“待回归”状态,备注修复的版本号、修改的内容、需要重点验证的点。④待回归阶段:测试人员在对应修复版本上开展回归验证,如果验证通过,流转到“已关闭”状态;如果验证不通过,标注不通过的原因,重新流转回“待修复”状态,告知开发重新调整。⑤延期处理阶段:如果缺陷优先级较低,本次迭代来不及修复,需由开发、产品、测试三方共同确认后,流转到“延期处理”状态,备注延期原因、计划修复的迭代版本,后续到对应迭代再重新激活。⑥已关闭状态:缺陷确认已解决、或确认不是问题、或已明确延期处理后,标记为已关闭,所有已关闭的缺陷需定期复盘,同类问题更新到用例库。7.你之前参与的最复杂的功能测试项目是什么?你负责什么模块,遇到了什么问题,怎么解决的?参考答案:我之前参与过电商平台618大促版本的测试项目,项目周期2周,共迭代3个版本,涉及优惠券中心、订单结算、库存中心、会员体系4个核心模块的改造,新增了跨店满减、会员折扣、品类券3种新的优惠叠加规则,我负责优惠券中心和订单结算两个模块的测试工作。项目过程中遇到3个核心问题,解决方案如下:①需求变更频繁,用例更新不及时:项目开发阶段产品累计变更了7次优惠叠加规则,每次变更后之前设计的用例就会失效,导致测试执行效率低。解决方案:拉产品、开发负责人共同约定需求变更阈值,上线前3天禁止核心功能的需求变更,所有需求变更必须同步更新到需求文档并发送全员通知;每次需求变更后我会第一时间梳理影响的用例,2小时内完成用例更新,同步给组内测试人员,每次提测前先做10分钟的冒烟测试,冒烟不通过直接打回开发,避免无效测试。②跨模块Bug定位效率低:测试过程中经常出现结算金额计算错误的问题,但无法快速判断是优惠券模块的问题还是结算模块的问题,平均定位一个问题需要15分钟。解决方案:和前后端开发约定接口日志的关键字,所有优惠相关的接口返回都要标注优惠类型、抵扣金额、计算规则,我用Fiddler抓包后先看优惠券接口返回的抵扣金额是否符合预期,再看结算模块的入参是否正确,快速定位所属模块;同时建立跨模块对接群,有问题直接@对应模块的开发,定位效率提升了70%,平均定位时间缩短到4分钟以内。③上线前回归时间不足:上线前预留的回归时间只有6小时,需要覆盖200多条P0、P1用例,时间非常紧张。解决方案:我先对用例做分级,优先覆盖核心主流程(正常提交订单、3种优惠叠加、库存扣减、支付跳转),边缘场景(比如优惠叠加后金额为0、特殊白名单用户的优惠规则)安排在上线后灰度验证;组织3名测试同事并行执行用例,每人负责一部分场景,最后抽20%的高优先级用例做交叉测试,避免个人习惯导致的漏测。最终该版本上线后,优惠券和结算模块的线上Bug数为0,大促期间优惠相关的客诉比去年618降低了87%,顺利完成了项目目标。8.如果给你一个完全陌生的产品,要求3天内完成核心功能的测试用例设计并开展测试,你会怎么做?参考答案:我会按时间节点拆分任务,优先保障核心功能的质量,具体安排如下:第一天上午:快速熟悉产品,收集所有相关资料,包括需求规格说明书、产品原型、接口文档、历史版本的测试用例、线上高频用户反馈,1小时内梳理出产品的3-5条核心业务流,比如SaaS类CRM产品的核心流是:线索录入→线索分配→跟进转化→生成订单→数据统计,快速操作体验产品,跑通所有核心主流程,明确每个节点的业务规则。第一天下午:划分模块优先级,将核心功能模块(线索管理、客户管理、订单管理)标记为最高优先级,边缘模块(系统设置、消息通知)标记为次优先级,针对核心模块用等价类、边界值设计测试用例,先覆盖正常流,再覆盖异常流,当天完成核心模块80%的用例设计。第二天上午:组织用例评审,拉产品、开发、测试负责人一起过核心模块的用例,重点确认业务规则的正确性、场景覆盖的完整性,比如不同角色的操作权限、线索分配的规则、数据统计的维度,评审完成后2小时内完成用例的修正,输出最终版用例集。第二天下午:开展冒烟测试,先验证核心主流程是否能跑通,如果冒烟测试不通过,直接反馈给开发优先修复,待修复后再继续测试;冒烟通过后按用例优先级执行测试,先测核心模块的正常流,再测异常流,当天提交所有发现的高优先级Bug,同步给开发优先修复。第三天:完成剩余模块的测试,跟进所有高优先级Bug的修复,每修复一个就立即回归验证,下午开展交叉测试,邀请其他测试同事帮忙验证核心场景,避免漏测,下班前输出测试报告,标明核心功能用例覆盖率100%,高优先级Bug已全部修复,给出是否可上线的结论,同时标注风险点:比如边缘模块的3个低优先级Bug未修复,不影响核心功能,可后续迭代优化。9.敏捷开发模式下,迭代周期只有2周,功能测试怎么保障测试质量?参考答案:敏捷模式下迭代快、需求变更多,我会通过以下方式保障质量:①测试左移前置风险:在sprint规划会阶段就参与需求对齐,和产品、开发共同确认每个需求的验收标准,避免后期出现需求歧义;参与技术方案评审,提前识别跨模块调用、数据一致性的风险,提前设计对应的测试场景。②用例分级覆盖:将所有用例划分为P0(核心主流程,占比20%)、P1(重要功能,占比30%)、P2(边缘功能,占比50%),每次迭代优先保障P0、P1用例100%执行覆盖,P2用例可以在迭代间隙的自动化回归或者空闲时间执行,避免因为时间紧漏测核心场景。③持续集成提前发现问题:配合开发搭建CI/CD流水线,每次代码提交后自动跑核心接口的自动化用例(我会负责输出自动化用例的场景),提前发现代码提交导致的功能异常,避免到测试阶段才发现大量问题。④每日同步进度:通过每日站会同步当天发现的高优先级Bug,要求开发当天提交的高优先级Bug当天修复,避免Bug集中到上线前积压,提升修复效率。⑤上线前快速验收:上线前预留2小时做快速回归,覆盖所有P0用例,组织交叉测试,上线后做1小时的线上巡检,验证核心功能正常,收集灰度用户的反馈,出现问题及时回滚。⑥迭代复盘闭环:每个迭代结束后做漏测问题复盘,将线上问题补充到测试用例库,优化测试流程,避免下次迭代出现同类问题。10.功能测试常用的工具有哪些?分别用来解决什么问题?参考答案:功能测试常用工具按用途分为6类:①用例管理工具:禅道、TestLink、语雀/飞书文档,用来管理测试用例,记录用例的执行结果,统计用例覆盖率,支持多人协作维护用例库,方便版本追溯。②缺陷管理工具:Jira、TAPD、禅道,用来提交缺陷、跟踪缺陷的全生命周期流转,统计缺陷密度、修复率、线上Bug率等质量指标,方便项目组同步缺陷进度。③抓包工具:Fiddler、Charles、Wireshark,用来捕获前后端的请求和返回数据,快速定位是前端展示问题还是后端逻辑问题,比如提交表单报错时,通过查看接口返回的报错信息即可判断问题所属模块,也可以用来修改请求参数测试后端的校验规则。④数据库工具:Navicat、DBeaver,用来连接测试环境的数据库,查询、修改、新增测试数据,验证数据的正确性,比如提交订单后查询订单表、库存表的数据是否符合预期,构造测试账号的优惠券、会员权限等测试数据。⑤接口测试工具:Postman、Apifox,用来调试单接口的功能,验证接口的参数校验、返回值是否符合文档要求,也可以用来构造前端无法触发的异常请求,测试后端的容错能力。⑥兼容性测试工具:BrowserStack、腾讯众测,用来测试不同浏览器、不同设备、不同系统版本的兼容性,比如验证web端产品在Chrome、Safari、Edge上的功能和展示是否正常,APP在不同品牌的手机上是否能正常运行。11.作为功能测试工程师,你认为怎么才能避免漏测?参考答案:漏测是功能测试的核心风险,我会通过全流程的管控来避免漏测:①需求阶段挖透规则:深度参与需求评审,把需求里的模糊点、隐含规则、边界条件全部挖出来,比如需求说“用户可以申请退款”,就要明确退款的条件、到账时间、手续费规则、不同订单状态的退款限制,所有规则都要和产品确认,避免凭自己的理解测试导致遗漏场景。②用例设计阶段全维度覆盖:根据业务场景选择合适的用例设计方法,复杂业务用场景法梳理全链路流程,输入项用等价类、边界值覆盖所有合法/非法输入,异常场景用错误推测法结合历史线上问题补充,用例设计完成后组织产品、开发评审,让业务和技术视角补充遗漏

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论