版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
58同城测试开发58道高频面试题(真实实操版+详细答案)一、测试基础(1-10题)1、说说测试开发和纯功能测试的区别,工作中你怎么体现测开价值?答:纯功能测试核心是“执行用例、找bug、验收功能”,偏向业务落地,重复工作量多,基本不用代码赋能测试。测试开发核心是用技术解决测试效率和质量问题,不局限于手工测试。实际工作落地:1、把高频重复的回归用例做成自动化,减少手工重复执行;2、搭建测试脚手架、接口自动化框架、数据构造工具,提升团队测试效率;3、测试左移,在需求、开发阶段介入,通过代码评审、接口规范校验提前规避问题;4、统计测试覆盖率、缺陷数据,优化测试流程,降低漏测率。简单说,功能测试是“做事”,测开是“造工具、提效率、控质量”。2、回归测试和重测的区别是什么?日常怎么落地执行?答:重测是针对修复的bug单独验证,只测问题点,目的是确认缺陷是否修复完成,范围小、针对性强。回归测试是版本迭代、代码改动后,复测原有正常功能,目的是防止改代码引入新bug、旧功能退化,覆盖范围更广。落地方式:日常单bug修复走重测;版本迭代、代码合并、版本升级,必跑回归测试,核心流程自动化回归,边缘流程手工抽检。3、常用的黑盒、白盒用例设计方法有哪些?工作中最常用哪几种?答:黑盒常用:等价类划分、边界值分析、场景法、错误推测法、因果图。白盒常用:语句覆盖、判定覆盖、条件覆盖、路径覆盖。工作中高频使用:等价类+边界值是基础,所有功能都用;业务流程类功能用场景法;异常场景用错误推测法。白盒测试一般在单元测试、接口代码评审时用,重点看核心逻辑的分支覆盖。4、什么是测试用例?一条高质量用例的标准是什么?答:测试用例是为验证某个功能点、业务逻辑,设计的一套完整测试步骤、输入、预期结果、前置条件的集合,是测试执行的依据。高质量用例标准:1、覆盖全面,正常、异常、边界、反向场景全覆盖;2、无冗余,不重复设计相同场景;3、步骤清晰,任何人接手都能直接执行;4、针对性强,精准对应需求点,无无效用例;5、可复现、可验证,预期结果明确不模糊。5、软件测试完整流程是什么?答:完整流程:需求评审→测试计划制定→测试用例设计&评审→测试环境搭建→单元测试→集成测试→系统测试→回归测试→预上线验收→测试报告输出→版本上线&线上巡检。实际业务中,互联网迭代版本会简化为:需求对接→用例设计→提测准入检查→版本测试→bug跟进修复→回归验证→出测试报告→上线。6、bug的生命周期有哪些状态?日常bug管理规范是什么?答:常规生命周期:新建→确认有效→指派开发→开发修复→待复测→复测通过(关闭)/复测不通过(重新打开)→延期/无效/重复(关闭)。bug规范:1、标题简洁精准,明确问题场景;2、步骤清晰可复现,附带截图、日志、接口报文;3、区分bug优先级和严重级别;4、跟踪闭环,所有线上、测试bug必须闭环,无遗留过期bug。7、怎么区分bug优先级和严重级别?举例说明答:严重级别看问题影响范围、崩溃程度,优先级看修复紧急程度。严重级别:致命(崩溃、数据丢失、核心功能不可用)、严重(核心功能异常)、一般(次要功能问题)、轻微(UI排版、文案错误)。优先级:高(立即修复,阻塞测试/上线)、中(本轮版本修复)、低(后续迭代优化)。举例:首页文案错误,严重级别低,但如果是上线活动页,优先级高;后台非核心功能小bug,严重级别一般,优先级低。8、什么是冒烟测试?什么时候执行?答:冒烟测试是版本提测后的快速核心流程校验,只测核心功能、主链路,耗时短,用来判断版本是否具备完整测试条件。执行时机:每次版本提测、每日构建、版本回归前。如果冒烟不通过,直接打回开发,不进入详细测试,节省测试时间。9、接口测试、系统测试、集成测试的区别答:单元测试:测单个方法、函数、接口代码逻辑,开发自测为主。集成测试:测模块、服务之间的调用、数据交互,解决模块对接问题。接口测试:侧重前后端、服务间接口的参数、逻辑、异常、兼容性测试,是测开核心工作。系统测试:基于完整业务场景,测整个系统的功能、性能、兼容性,贴合用户真实使用场景。10、测试左移和测试右移是什么?怎么落地?答:测试左移:把测试工作前置,需求阶段评审需求、开发阶段看代码、提MR准入校验,提前发现问题,减少后期bug。测试右移:版本上线后,通过线上日志、监控、用户反馈、线上巡检,收集线上问题,反向优化测试用例和测试流程。落地:左移做需求评审、接口文档校验、单元测试覆盖率把控;右移做线上告警监控、bug复盘、用例迭代更新。二、Python基础(11-20题,测开必考)11、Python列表和元组的区别,日常使用场景答:列表list可变,支持增删改查,元素可重复,用[]定义;元组tuple不可变,定义后不能修改,用()定义,访问速度更快、更安全。场景:频繁修改数据、存储测试数据用列表;固定不变的配置、接口参数、常量数据用元组。12、字典的底层原理,key为什么不可变?答:Python字典底层是哈希表,通过哈希算法计算key的哈希值,确定数据存储位置。key必须是不可变类型(字符串、数字、元组),如果key可变,哈希值会变化,无法定位数据,会导致数据错乱、查找失败。列表不能做字典key,字符串、int可以。13、Python深拷贝和浅拷贝的区别?什么时候用深拷贝?答:浅拷贝只拷贝外层对象,内层嵌套对象共用同一个内存地址,修改内层数据会互相影响;深拷贝会递归拷贝所有层级对象,完全独立,修改互不影响。场景:测试数据嵌套多层、需要修改拷贝后数据不影响原数据时,必须用深拷贝,比如接口批量构造参数、批量修改测试数据。14、装饰器的作用,写一个简单的接口计时装饰器答:装饰器可以在不修改原函数代码的前提下,给函数新增功能,比如计时、日志、权限校验、重试,接口自动化中高频使用。python
importtime
deftimer(func):
defwrapper(*args,**kwargs):
start=time.time()
res=func(*args,**kwargs)
end=time.time()
print(f"接口执行耗时:{end-start:.2f}s")
returnres
returnwrapper15、Python多线程和多进程区别,接口自动化用哪个?答:多线程:共享内存、开销小、受GIL锁限制,CPU密集型效率低,IO密集型高效;多进程:独立内存、无GIL限制、开销大,适合CPU密集型。接口自动化都是网络IO请求,等待响应耗时多,所以优先用多线程,效率更高、资源占用更少。16、异常处理try-except的用法,自动化中为什么要加异常捕获?答:try执行正常代码,except捕获异常,else无异常执行,finally无论是否异常都会执行。自动化场景必须加捕获:避免单个接口用例报错导致整个脚本中断,同时可以精准捕获超时、参数错误、断言失败等异常,打印日志,方便定位问题。17、Python生成器和迭代器的区别答:迭代器是可迭代对象,统一遍历规则;生成器是特殊的迭代器,用yield生成,惰性执行,不一次性加载所有数据,内存占用极低。测试中批量生成测试数据、读取大日志文件,优先用生成器。18、pytest和unittest的区别,项目中为什么用pytest?答:unittest是Python内置框架,语法繁琐,必须写类和方法;pytest第三方框架,简洁灵活,支持函数、类两种用例写法,兼容unittest用例。项目优势:支持参数化、夹具、重跑、失败用例重试、丰富插件、日志清晰,适配接口、UI自动化所有场景,是目前测开主流框架。19、pytest夹具fixture的作用,scope参数含义答:fixture用来做前置后置操作、数据初始化、环境准备,替代传统setup/teardown,更灵活。scope参数:function(每个用例执行一次)、class(每个类一次)、module(每个模块一次)、session(整个测试会话一次,全局共用)。全局接口token、数据库连接一般用session级别。20、参数化的作用,pytest如何实现参数化?答:参数化可以一组代码执行多组测试数据,覆盖多场景,减少代码冗余,提升用例覆盖率。通过@pytest.mark.parametrize实现,支持多组入参、异常数据、边界数据批量测试。三、接口自动化(21-30题)21、接口测试流程是什么?自动化接口测试核心步骤答:手动接口流程:熟悉接口文档→抓包核对接口参数→设计用例(正常/异常/边界)→手动调用测试→校验响应结果→验证数据库数据。自动化核心步骤:环境准备→读取用例数据→发起接口请求→响应断言→数据库校验→日志记录→生成测试报告→失败重试。22、http和https区别,接口请求常见状态码含义答:http明文传输、端口80、不安全;https是http+ssl加密、端口443、数据安全、防篡改。常见状态码:200成功、201创建成功、302重定向、400参数错误、401未授权、403权限不足、404接口不存在、500服务器异常、502网关错误。23、接口断言怎么做?只断言状态码可以吗?答:不可以只断言状态码,很多场景200但业务逻辑错误。完整断言三层:1、断言http状态码;2、断言业务状态码、提示信息;3、断言返回关键字段、数据长度、字段类型,核心场景还要校验数据库数据一致性。24、接口依赖怎么处理?比如登录token依赖、上一个接口返回值依赖答:三种常用方案:1、fixture前置获取token,全局注入所有用例;2、用例执行顺序控制,先执行前置接口,提取返回值存入全局变量;3、通过yaml/excel用例文件关联参数,动态提取依赖数据。项目中优先用fixture,最稳定简洁。25、接口超时、请求失败怎么处理?自动化脚本如何容错?答:1、设置请求超时时间,避免脚本卡死;2、增加异常捕获,记录错误日志;3、增加失败重试机制,处理网络抖动、临时服务器波动;4、区分业务失败和网络失败,精准统计用例结果。26、get和post请求区别,适用场景答:get参数拼接在url,明文展示、无请求体、可缓存、参数长度有限制,适合查询、列表、详情查询接口。post参数在请求体、加密性更好、无长度限制、不可缓存,适合新增、修改、删除、提交数据接口。27、cookie、session、token区别,接口登录鉴权用哪种?答:cookie存在客户端,session存在服务端,依赖cookie,适合单体项目;token是独立令牌,无状态、适合分布式、前后端分离项目。目前互联网项目接口鉴权全部用token,稳定性、扩展性更强。28、接口测试中常见bug类型有哪些?答:参数校验不严(空值、超长、特殊字符未拦截)、权限漏洞(越权查询/操作)、业务逻辑错误、数据一致性问题、超时未处理、返回字段错误、分页异常、重复提交漏洞、接口性能卡顿。29、如何做接口数据校验?防止前端篡改、后端漏处理答:1、校验入参合法性,长度、类型、必填项;2、校验业务逻辑,金额、数量、状态流转;3、校验数据库最终数据,确保接口返回和库中数据一致;4、校验幂等性,防止重复提交生成多条数据。30、什么是接口幂等性?怎么测试幂等性?答:幂等性指多次重复请求,结果和单次请求一致,不会产生脏数据。支付、下单、退款接口必须保证幂等。测试方式:同一参数连续调用多次接口,校验数据库数据条数、状态是否正常,无重复新增、无数据错乱。四、数据库(31-38题)31、MySQL常用引擎InnoDB和MyISAM区别答:InnoDB:支持事务、行锁、外键、崩溃恢复,数据安全性高,默认引擎,业务表全部用这个。MyISAM:不支持事务、表锁、速度快,适合静态数据、日志统计表,业务系统基本不用。32、事务四大特性ACID,事务隔离级别答:ACID:原子性、一致性、隔离性、持久性。四个隔离级别(从低到高):读未提交、读已提交、可重复读(MySQL默认)、串行化。日常业务中默认可重复读,平衡性能和数据安全。33、索引的作用?什么场景需要建索引,什么场景不建?答:索引提升查询速度,降低查询耗时。适合:高频查询字段、where条件字段、关联查询字段、排序分组字段。不适合:数据量小、频繁修改字段、重复度极高的字段(比如状态字段)。34、联合索引最左匹配原则是什么?答:联合索引(a,b,c),查询必须包含最左前缀a,才能命中索引。查询a、a+b、a+b+c都可以;查询b、c、b+c无法命中索引。测试中排查接口慢查询,经常用到这个知识点。35、SQL常用语句:增删改查、去重、排序、分页答:新增:insertinto表名(字段)values(值);删除:deletefrom表名where条件;修改:update表名set字段=值where条件;查询:select字段from表名where条件;去重:distinct;排序:orderby;分页:limit页码,条数。36、如何查找重复数据?答:select重复字段,count(*)from表名groupby重复字段havingcount(*)>1;常用于排查接口重复提交、脏数据问题。37、数据库慢查询怎么排查?答:1、开启慢查询日志,查看超时SQL;2、explain分析SQL执行计划,看是否命中索引、是否全表扫描;3、优化SQL语句、调整索引、减少关联查询;4、大表分页优化、避免select*。38、左连接、右连接、内连接区别答:内连接:只查询两张表匹配的数据;左连接:以左表为主,左表数据全部展示,右表无匹配显示null;右连接和左连接相反。业务联表查询最常用左连接。五、Linux&Git(39-43题)39、Linux常用命令,测试工作高频使用的有哪些?答:文件操作:ls、cd、mkdir、rm、cp、mv;日志查看:cat、tail-f(实时看日志)、grep(筛选报错);进程端口:ps-ef、netstat、kill;权限:chmod;压缩解压:tar;搜索:find。测开日常主要用来查服务日志、排查线上报错、查看端口占用。40、如何通过日志定位接口报错?答:1、tail-f实时刷新服务日志;2、grep关键词筛选报错,比如error、exception、timeout;3、根据请求traceId定位完整请求链路;4、查看入参、出参、数据库执行日志,定位是参数问题、代码bug、数据库慢查询还是网络问题。41、Git常用命令,团队协作流程答:常用命令:gitpull拉代码、gitadd、gitcommit、gitpush提交、gitbranch分支、gitcheckout切换分支、gitmerge合并。团队流程:开发分支开发→提交分支代码→合并测试分支→测试环境测试→上线分支合并上线。测试人员主要拉取对应分支代码、部署脚本、更新自动化项目。42、怎么查看端口占用、杀死异常进程?答:查看端口:netstat-an|grep端口号;查看进程:ps-ef|grep进程名;杀死进程:kill-9进程id,用于解决端口冲突、服务启动失败问题。43、Linux后台运行脚本命令答:nohuppython自动化脚本.py&,后台持续运行,关闭终端不中断,适合服务器定时跑自动化任务。六、计算机网络(44-48题)44、TCP和UDP区别,接口请求用哪个协议?答:TCP面向连接、可靠、有序、有重传机制、速度慢;UDP无连接、不可靠、速度快、无校验。HTTP/HTTPS接口请求基于TCP,保证数据传输可靠。45、TCP三次握手、四次挥手过程,为什么三次握手?答:三次握手:客户端发请求→服务端确认+发请求→客户端确认,建立连接。目的:双向校验收发能力正常,避免失效请求报文占用服务端资源。四次挥手:双方分别关闭读写通道,保证数据完全传输完毕再断开连接。46、URL请求完整流程是什么?答:DNS域名解析→建立TCP连接→发送HTTP请求→服务器处理请求、返回响应数据→浏览器渲染页面→关闭TCP连接。排查接口超时、请求失败全程用这个链路定位问题。47、负载均衡的作用?常见负载均衡方式答:负载均衡核心是分发请求,避免单服务器压力过大,提升系统并发、稳定性,实现高可用。常见方式:Nginx负载均衡、服务器集群负载均衡,工作中测试集群服务、压测都会接触。48、接口跨域是什么原因?怎么解决?答:浏览器同源策略限制,域名、端口、协议任一不同即跨域。后端配置跨域允许、Nginx反向代理、前端代理解决,测试中主要验证跨域配置是否生效。七、代码手撕&算法(49-53题,58测开笔试高频)49、数组200个数字(1-100),找出出现频率最高的数,不使用辅助内存答:核心思路:利用数字范围1-100的特性,遍历数组,以数值为下标做计数,原地统计频次,无需额外开辟大内存空间,最后遍历统计数组找出最大值对应下标,就是高频数字。贴合面试考点,不使用字典等辅助内存,满足题目限制。50、Python去重列表,保持原有顺序python
defdeduplicate_list(lst):
res=[]
foriinlst:
ifinotinres:
res.append(i)
returnres51、手写冒泡排序、快速排序,说明时间复杂度答:冒泡排序稳定,最好O(n)、最坏平均O(n²);快速排序不稳定,平均O(nlogn),实际项目排序效率最高,日常算法题优先快排。52、反转字符串、反转列表答:字符串反转:s[::-1];列表反转:lst[::-1]或lst.reverse(),自动化数据处理高频使用。53、统计字符串中每个字符出现次数python
defcount_char(s):
dic={}
forcharins:
dic[char]=dic.get(char,0)+1
returndic八、项目实战&场景题(54-58题,面试官重点追问)54、说一下你做过的自动化测试项目,框架架构是什么?答:我主导搭建了公司接口自
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 硫酸镁中毒护理应急预案
- 睾丸鞘膜积液护理诊断及措施
- 针刀治疗腰椎盘突出
- 2026年秋季青少年营养早餐指南
- 医学课件-医学专题第五章软骨和骨6077
- (正式版)DB13∕T 1088-2009 《蛋鸡强制换羽技术规程》
- 医学课件-运动与解剖资料
- 执业医师历年常考的病理学64个病变部位
- 医学课件-前哨淋巴结相关研究
- 2026年水尽鹅飞成语故事世事变化感悟教案
- 工程挂靠协议书
- 幼儿园红色故事:鸡毛信的故事
- 《劳动争议处理》课件
- 无人机组装与调试 课件 项目1任务1 多旋翼无人机飞行平台组装调试
- 2024年10月高等教育自学考试13013高级语言程序设计试题及答案
- GB/T 44848-2024工业通风机通风机振动测量方法
- 《工程概论》课件
- 电子商务课件教学课件
- DL∕T 1252-2013 输电杆塔命名规则
- 2025届云南师大附中高一下数学期末检测试题含解析
- DL-T5054-2016火力发电厂汽水管道设计规范
评论
0/150
提交评论