版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
测试开发面试题库及答案基础理论篇1.什么是测试开发?和手工测试、普通开发的核心区别是什么?答:测试开发是兼具测试思维与工程开发能力的复合岗位,核心目标是通过技术手段解决测试效能瓶颈、完善质量保障体系、提升交付效率。核心区别如下:和手工测试的区别:手工测试聚焦业务逻辑的人工验证,测试开发聚焦于用自动化工具、平台、脚本替代重复的人工测试动作,同时解决手工测试无法覆盖的质量场景(如全链路压测、线上流量回放、代码质量门禁等);和普通开发的区别:普通开发的核心产出是业务功能实现,测试开发的核心产出是质量保障工具与效能提升方案,所有开发动作都围绕质量、效率两个核心目标展开,不需要为业务功能的可用性负责,但需要为质量保障体系的有效性负责。2.软件测试生命周期(STLC)中测试开发的核心职责是什么?答:测试开发需要全流程参与STLC,各阶段职责明确:需求阶段:参与需求评审,识别可测性需求,输出自动化测试适配方案,推动研发完善埋点、可测性接口等配套能力;测试计划阶段:评估自动化覆盖范围,完成测试工具、框架选型,输出自动化测试计划与资源排期;测试设计阶段:设计自动化测试用例分层体系,梳理测试数据自动生成、自动清理规则,输出用例维护规范;测试执行阶段:运行自动化测试脚本,区分脚本问题与产品缺陷,输出结构化测试报告,推动缺陷闭环;缺陷管理阶段:搭建缺陷自动归集、根因分析工具,实现缺陷标签自动标注、相似缺陷自动推荐等能力;回归测试阶段:维护自动化用例库,对接CI/CD体系实现代码提交后的自动回归,降低迭代回归成本;上线后阶段:搭建线上质量监控、灰度校验、问题自动排查工具,实现线上问题的早发现、早定位。3.什么是测试左移、测试右移?测试开发的落地场景有哪些?答:测试左移是指将测试动作前置到需求、研发阶段,在问题产生的早期就拦截风险,落地场景包括:单元测试框架封装、代码静态扫描规则定制、代码提交前的自动化门禁、需求可测性校验工具、研发自测用例自动生成工具;测试右移是指将测试动作延伸到线上运行阶段,保障线上服务的稳定性,落地场景包括:线上流量回放、灰度发布自动校验、用户问题自动排查工具、线上质量大盘监控、线上故障自动熔断降级校验。编程与自动化基础篇1.请编写Python代码实现统计日志文件中接口请求耗时超过500ms的请求占比,日志格式为`[2024-05-2012:00:00]POST/api/user200450ms`,最后一列为请求耗时。答:代码如下,兼容日志格式异常、文件不存在等边界场景:```pythonimportosimportredefcalculate_timeout_ratio(log_path:str)->float:ifnotos.path.exists(log_path):raiseFileNotFoundError(f"日志文件{log_path}不存在")total_req=0timeout_req=0time_pattern=pile(r'(\d+)ms$')withopen(log_path,'r',encoding='utf-8')asf:forlineinf:line=line.strip()ifnotline:continuematch=time_pattern.search(line)ifnotmatch:continuetotal_req+=1cost_time=int(match.group(1))ifcost_time>500:timeout_req+=1iftotal_req==0:return0.0returnround(timeout_req/total_req*100,2)if__name__=='__main__':ratio=calculate_timeout_ratio("./api.log")print(f"耗时超过500ms的请求占比为{ratio}%")```2.什么是PageObject(PO)设计模式?在UI自动化测试中为什么要使用?答:PO模式是自动化测试的经典设计模式,核心思想是将页面的元素定位、基础操作封装到独立的页面对象类中,测试用例层仅调用页面对象的方法完成业务流程,不需要关心底层元素定位逻辑。使用PO模式的核心优势:降低维护成本:页面元素、交互逻辑迭代时,仅需要修改对应页面对象层的代码,不需要修改所有关联的测试用例;提升代码复用率:相同页面的操作可以在多个用例中复用,避免重复编写元素定位、操作代码;提升用例可读性:测试用例层仅保留业务逻辑描述,代码结构清晰,不懂技术的测试人员也可以读懂用例的业务含义。示例:针对登录页面封装`LoginPage`类,内部封装用户名输入框、密码输入框、提交按钮的定位逻辑与`login(username,password)`方法,测试用例中仅需要调用`login_page.login("test_user","123456")`即可完成登录操作。3.自动化测试用例的分层策略是什么?各层的占比与适用场景是什么?答:自动化用例遵循测试金字塔分层策略,从下到上占比逐步降低,执行效率逐步下降、维护成本逐步上升:单元测试(占比70%):针对单个函数、类的逻辑验证,由研发与测试开发共同维护,执行速度快、定位精准,适合覆盖代码分支、边界逻辑,要求核心代码的单元测试覆盖率不低于80%;接口测试(占比20%):针对后端服务的接口逻辑、参数校验、业务场景验证,由测试开发主导,执行速度中等,覆盖端到端业务流,适合覆盖核心业务场景、异常场景;UI测试(占比10%):针对前端页面的交互、样式、核心用户路径验证,由测试开发负责,执行速度慢、维护成本高,仅覆盖核心用户路径(如登录、下单、支付等),不做全量场景覆盖。测试框架与工具篇1.Pytest测试框架的常用核心特性有哪些?请举例说明至少5个。答:Pytest是Python生态中应用最广的测试框架,核心特性包括:用例标记:通过`@pytest.mark.tag`为用例打标签,执行时通过`-m`参数筛选用例,例如用`@pytest.mark.smoke`标记冒烟用例,执行`pytest-msmoke`即可仅运行冒烟用例;固件(Fixture):通过`@pytest.fixture`定义公共前置/后置操作,作用域支持`function(单用例)、class(单类)、module(单文件)、session(全局)`,例如定义session级的fixture返回登录后的session对象,所有需要登录的用例直接传入该fixture即可,不需要重复编写登录代码;参数化:通过`@pytest.mark.parametrize`为用例传入多组测试参数,例如测试登录接口时,可同时传入正确账号、错误密码、空账号、非法字符账号等多组参数,不需要编写多个独立用例;断言重写:Pytest会自动重写原生assert语句,报错时输出详细的预期值与实际值对比,不需要像unittest一样编写`self.assertEqual`等专用断言方法,降低代码编写成本;插件生态:支持丰富的第三方插件,例如`pytest-html`生成HTML测试报告、`pytest-xdist`分布式执行用例、`pytest-allure`生成可视化Allure报告、`pytest-rerunfailures`实现用例失败自动重跑。2.如何设计一个通用的自动化测试框架?需要包含哪些核心模块?答:通用自动化测试框架需要兼顾可扩展性、可维护性、易用性,核心模块包括:配置管理模块:管理测试、预发、线上等多环境的配置、账号信息、开关配置,支持YAML/INI等配置格式,实现一键切换环境;用例管理模块:支持用例分层、打标签、参数化,支持按场景、按环境筛选执行用例,支持用例执行顺序自定义;数据驱动模块:支持从Excel、CSV、数据库、JSON文件读取测试数据,实现测试数据与用例逻辑分离,方便非技术人员维护测试数据;关键字驱动模块:封装点击、输入、接口请求、数据库查询等通用操作关键字,支持通过配置文件编写用例,降低自动化用例的编写门槛;日志模块:统一记录用例执行日志,包括请求参数、返回值、操作步骤、报错栈信息,方便问题定位;报告模块:自动生成结构化测试报告,包含用例执行通过率、失败原因、耗时、截图/响应报文等附件,支持发送邮件、企业微信通知;错误重试模块:支持用例失败自动重跑,支持按异常类型配置重试规则,排除网络波动、环境不稳定导致的误报;集成模块:支持与Jenkins、GitLabCI等CI/CD工具集成,支持回调代码仓库的状态接口,实现代码提交后的自动测试门禁。性能测试专项篇1.性能测试的核心指标有哪些?分别代表什么含义?答:性能测试核心指标分为前端指标、服务端指标、资源指标三类:响应时间(RT):从客户端发送请求到收到完整响应的总耗时,包括网络传输时间、服务端处理时间,常用指标为平均响应时间、95分位响应时间、99分位响应时间,其中99分位响应时间指99%的请求响应时间都低于该值,更能反映系统的真实性能表现;吞吐量(TPS/QPS):每秒系统处理的请求数/事务数,TPS越高代表系统处理能力越强;并发数:系统同时处理的请求数/在线用户数,分为并发连接数、并发用户数两个维度;错误率:请求失败的占比,包括HTTP状态码错误、业务逻辑错误两类;资源使用率:服务端CPU、内存、磁盘IO、网络IO的使用率,以及数据库连接数、慢查询数、中间件队列长度、缓存命中率等中间层指标。2.性能测试的完整流程是什么?测试开发在各环节的工作内容是什么?答:完整性能测试流程分为6个阶段:需求分析阶段:对齐性能测试目标(如支持1000并发、TPS不低于500、99分位响应时间小于200ms),梳理核心压测场景(如下单、支付、搜索等核心链路),明确性能验收指标;环境准备阶段:搭建与线上配置一致的压测环境,准备量级与线上一致的测试数据(如百万级用户、商品数据),部署Prometheus、Grafana、SkyWalking等全链路监控工具;脚本开发阶段:编写压测脚本,配置参数化、关联、思考时间,调试脚本确保请求逻辑与真实业务场景一致;压测执行阶段:先执行基准测试(单用户单场景压测,得到基准性能指标),再执行负载测试(逐步提升并发数,找到系统性能拐点),再执行压力测试(超过系统负载压测,验证系统降级、容错能力),最后执行稳定性测试(长时间低负载压测,验证是否存在内存泄漏、资源未释放问题);性能分析阶段:若压测指标不达标,通过监控工具定位性能瓶颈,常见瓶颈包括:代码层面(慢SQL、循环嵌套、资源未释放)、中间件层面(Nginx连接数不足、MQ队列堆积、Redis缓存命中率低)、数据库层面(索引缺失、锁等待、连接数不足)、基础设施层面(CPU/内存不足、网络带宽不足);报告输出阶段:输出性能测试报告,包含测试场景、测试环境、压测结果、瓶颈分析、优化建议、验收结论。接口测试专项篇1.如何设计接口测试用例?需要覆盖哪些维度?答:接口测试用例设计需要覆盖5个维度:功能校验:包括参数必填校验、参数类型校验、参数长度校验、枚举值校验、业务逻辑校验(如下单时库存不足的返回是否符合预期);边界校验:包括参数边界值校验(如分页参数pageSize最大支持100,传入101是否返回正确错误码)、特殊字符校验(参数传入SQL注入、XSS字符串是否被安全拦截);异常校验:模拟服务端异常、依赖服务超时、依赖服务返回错误等场景,验证接口的容错能力是否符合预期,是否存在数据不一致、事务未回滚等问题;性能校验:验证单接口的响应时间、并发下的TPS是否符合性能要求;安全校验:验证接口是否有权限控制(未登录用户调用是否被拦截、普通用户调用管理员接口是否被拦截)、敏感信息是否加密传输、是否存在越权访问漏洞。2.如何处理接口测试中的依赖问题?例如下单接口需要登录token、需要提前获取商品ID。答:常用解决方案包括4类:Fixture前置操作:在测试框架中定义对应作用域的fixture,例如定义session级的登录fixture,自动调用登录接口返回token,所有需要登录的用例直接传入该fixture即可获取token;测试数据预置:提前通过脚本在测试数据库中插入测试需要的商品、用户数据,直接从数据库读取商品ID,不需要调用查询接口,提升用例执行效率;接口关联:在上游接口的响应中通过正则表达式、JsonPath提取需要的参数,保存为全局变量供下游接口使用,例如从商品查询接口的响应中提取商品ID,传入下单接口;Mock依赖接口:若依赖接口尚未开发完成、或调用成本过高,可通过Moco、WireMock等Mock工具模拟依赖接口的返回,不需要调用真实依赖接口,解耦不同服务的测试进度。质量效能专项篇1.什么是持续集成(CI)?测试开发如何搭建CI中的自动化测试门禁?答:持续集成是指开发者频繁提交代码到主干分支,每次提交都自动触发构建、测试,快速验证代码正确性的研发模式。自动化测试门禁搭建步骤如下:对接代码仓库(GitLab/GitHub),配置WebHook,每次提交代码、创建合并PR时自动触发CI任务;CI任务首先拉取最新代码完成编译构建,然后执行单元测试,要求单元测试通过率100%才能进入下一步;执行代码静态扫描(SonarQube),配置扫描规则:代码覆盖率不低于80%、无严重/阻断级漏洞、无新增坏味道,符合规则才能进入下一步;自动部署测试环境,执行接口自动化测试、冒烟UI自动化测试,要求用例通过率100%才能合并代码;若任何一步执行失败,自动给提交代码的开发者发送邮件/企业微信通知,告知失败原因,修复后才能重新提交。2.流量回放的原理是什么?落地过程中的核心难点是什么?答:流量回放的原理是录制线上真实用户的请求流量,在测试环境/预发环境重新播放,对比新旧版本的返回差异,验证新版本的逻辑正确性。核心落地难点包括:数据脱敏:线上请求包含用户手机号、身份证号、银行卡号等敏感信息,录制时需要做脱敏处理,避免数据泄露;脏数据处理:回放写接口(下单、支付等)会在测试环境产生脏数据,需要配置流量染色标记压测流量,实现压测数据与真实业务数据隔
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年大邑县带编教师招聘考试备考题库及答案解析
- 2026年清丰县带编教师招聘笔试备考试题及答案解析
- 2026年元江哈尼族彝族傣族自治县带编教师招聘笔试备考试题及答案解析
- 2026年金川县带编教师招聘笔试参考题库及答案解析
- 2026年伊吾县带编教师招聘笔试模拟试题及答案解析
- 2026年凤庆县带编教师招聘笔试备考试题及答案解析
- 2026年金川县带编教师招聘笔试备考试题及答案解析
- 2026广西南宁市第十三中学校医招聘1人考试参考试题及答案详解
- 2026年师宗县带编教师招聘考试备考题库及答案解析
- 2026年射阳县带编教师招聘笔试备考试题及答案解析
- 高中一年级信息技术1.3信息及其特征教学设计
- 审核凭证到底在验什么:会计凭证审核实务与内控穿透指南
- 庐陵新区禾埠街道办事处2026年面向社会公开招聘编外工作人员笔试备考试题及答案详解
- 2026-2027学年秋季北师大版六年级上册数学教学计划及进度表
- 秋季初一新生家长会课件
- 【小学】【秋季上】高年级【信息技术】开学第一课【课件】
- 2026年人教版数学二年级上册第二单元《1-6的表内乘法》教学设计
- 2026秋新教材人教版小学美术五年级上册(全册)教学设计(附目录p79)
- 污水管道渗漏修复施工方案
- 人教版数学七年级新生入学摸底试卷(一)(含答案)
- 2026年考研英语(一)201真题(试卷+答案)
评论
0/150
提交评论