知识点/面试题总结
4xx:请求信息错误400:请求参数错误401:登录失效/未登录403:登录了但是没有权限访问404:资源不存在405:请求方式错误(预期是get方式,实际用成了post)429:请求过多5xx:服务器端错误500:通用服务器错误,例如后端代码出错502:网关错误503:服务不可用,例如过载、维护504:网关超时。
1、黑盒测试、白盒测试、灰盒测试的区别
黑盒测试:
黑盒测试就是不看程序源代码,根据需求文档进行功能测试,验证输入输出是否符合预期结果;常用的方法有:等价类、边界值、场景法
白盒测试:
白盒测试,也称为结构测试,根据代码内部逻辑设计测试用例,检查代码有没有漏洞、逻辑错误;常用方法有:代码检查法、逻辑覆盖法、基本路径测试等
灰盒测试:
介于黑盒测试和白盒测试之间,不关注前端页面源码和底层代码实现,主要围绕接口和数据库开展测试。测试时通过调用接口传入参数,校验接口返回数据,同时核对数据库落地数据是否正确。常用于接口测试和集成测试。
2、单元测试–>集成测试–>系统测试–>验收测试
参考文章:
https://blog.csdn.net/qq_41539778/article/details/131087735
https://www.cnblogs.com/R-bear/p/17786698.html
单元测试:就是测单个函数、单个方法;白盒测试,开发自测代码
集成测试:模块和模块之间靠接口传数据,集成测试主要就是测接口,大多数基于灰盒测试
系统测试:全模块拼好,业务功能测试,基于黑盒测试方法。
验收测试:是以用户为主的测试,软件开发人员和质量保证人员也应参加,由用户参加设计测试用例,使用用户界面输入测试数据,并分析测试的输出结果。
3、如何定位前后端bug
参考文章:https://blog.csdn.net/weixin_40772077/article/details/138048778
1、前后端bug特点
- 前端bug:界面相关、布局相关、兼容性相关、交互相关
- 后端bug:数据相关、安全性下相关、逻辑相关、性能相关
2、前后端bug区分
- 如果是抓不到请求或者是请求参数有误–>则是前端bug
- 如果抓到请求并且请求正确,但是没有响应或者相应错误 -->则是后端bug
- 如果抓包有响应并且响应正确,但是页面显示报错 -->则是前后bug
3、后端bug定位
- 查看报错日志,通过日志进行分析问题点
- 查看数据库确认数据是否正确
- 查看缓存是否正确
4、B/S架构和C/S架构
参考文章:https://blog.csdn.net/Zhang5801/article/details/104416812
B/S架构
全称Browser/Server架构,也就是浏览器/服务器结构,将应用程序的核心功能和数据处理逻辑放在服务器端,用户则通过浏览器来访问和使用这些功能(此时浏览器充当了客户端)。
C/S架构
全程Client/Server架构,即客户端/服务器结构,App安装在手机上就是一个客户端,它向后台服务器请求数据、提交信息。
比如:电脑版 QQ、桌面端进销存软件、PC 客户端游戏,软件安装在本地设备,负责页面展示 + 大部分业务逻辑(胖客户端):
- 大量业务代码、页面渲染逻辑全写在客户端安装包里面(APP / 桌面程序体积大);
- 客户端既要画界面,又要算业务规则,还要拼接 SQL 和数据库打交道;
C/S 是两层客户端服务器架构,分为客户端、服务端;服务端分数据库直连、Socket 通信两种;属于胖客户端架构,绝大多数业务逻辑、界面都在客户端实现,客户端通过 SQL 或 Socket 和服务端交互数据。
python中数据类型——可变/不可变
变量的类型:可变、不可变
可变:表示内存中的数据可以修改
- 列表list
- 字典dict
- 集合set
不可变:表示内存中的数据不允许被修改
- 数字类型:int、float、bool
- 字符串:str
- 元组:tuple
集合和元组的区别
元组不可变、有序、可重复、支持索引
集合可变、无序、自动去重、不支持索引
TCP和UDP的主要区别是什么?
区别 :TCP面向连接、可靠、有序、有流量控制;UDP无连接、不可靠、无序、但效率高。
TCP(面向连接、可靠、有序、较慢):用在需要数据完整、准确、不丢失的地方
- 网页浏览(HTTP/HTTPS):网页内容必须完整加载,不能缺图片或文字。
- 电子邮件(SMTP/POP3/IMAP):邮件内容不能丢。
- 文件传输(FTP、SFTP):文件少一个字节都可能损坏。
- 数据库连接(MySQL、PostgreSQL等):查询结果必须准确。
- 远程登录(SSH、Telnet):每一条命令都要正确执行。
- 微信/QQ的文字聊天、文件发送:消息不能丢,顺序不能乱。
UDP(无连接、不可靠、无序、但速度快、延迟低):用在允许偶尔丢包、但要求实时性高的场景
- 实时音视频通话(微信语音/视频、Zoom、Skype):偶尔卡一下或雪花点可接受,但延迟必须低。
- 直播(抖音、B站直播、斗鱼):丢掉几帧画面观众基本无感,但卡顿会导致体验差。
- 在线游戏(FPS、MOBA类,如《英雄联盟》《绝地求生》):玩家位置、射击等操作必须快速送达,偶尔丢一个位置包可以预测补偿。
- DNS域名解析:查询一个域名,发一个UDP包,如果没回应就重试,简单快速。
- SNMP(简单网络管理协议):监控设备状态,允许少量丢失。
- DHCP(动态获取IP地址):电脑开机时广播请求IP,用UDP效率高。
补充:有些软件会两者结合
- 微信/QQ:文字消息用TCP(可靠),语音/视频通话用UDP(实时)。
- BT下载:控制信息用TCP,实际数据传输有时用UDP(如µTP协议)。
TCP:要完整,不着急(网页、邮件、文件)。
UDP:要快,不怕丢(语音、视频、游戏)。
TCP/IP协议
参考文章:https://blog.csdn.net/weixin_53186633/article/details/120514627
TCP/IP协议主要由网络层的IP协议 和 传输层的TCP协议组成 。
TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。
TCP协议
TCP协议是传输控制协议,工作在传输层。提供面向链接的,可靠的传输服务(三次握手,四次挥手)
- 面向链接:数据传输之前,客户端与服务器之间要建立连接,才可以传输数据
- 可靠的:数据传输是有序的,要对数据进行校验,数据不会丢失
UDP协议
UDP协议:用户数据报协议,提供的是不可靠的,面向无连接的传输服务(只有数据的发送方和接收方)
-
面向无连接:传输方和接收方不需要建立连接,在传输数据之前没有明确的连接链路(即不是所有的数据都是通过一条链路传输)
-
不可靠:因为数据的传输不是通过一条链路完成的,因此接收方接收的数据不一定按照发送数据的顺序接收,这样就可能造成数据包的丢失
传输方和接收方不需要建立连接,用于对数据实时性和安全性不高的场合。可以用于视频会议。
5、项目临上线发现影响体验的bug,开发没时间、PM不在,怎么办?
答案参考:https://blog.csdn.net/qd_lifeng/article/details/146985171
1.立即确认和复现bug,记录详细的信息
2.评估bug的优先级和严重性:影响核心功能(如无法发送消息)vs 轻微体验(如按钮颜色不对)。若致命bug,必须推迟上线。
bug严重级
- 致命级(如崩溃、数据丢失、核心功能失效):必须修复,可能需延迟上线。
- 严重级(非核心功能异常):评估修复时间和风险。
- 一般级(UI问题、边缘场景):权衡是否紧急修复或后续处理。
- 风险评估:修复该BUG是否会引入新风险?是否有临时规避方案?
3.同步信息:如果产品经理不在,可以找产品或者上级进行沟通,开发没有时间,如果对bug评估后需要紧急修复的,就和开发沟通是否能协调时间先修复bug
4.配合修复与验证,开发修复完bug之后,对bug进行回归测试,确保bug完全修复
5.事后复盘与改进,为什么会出现这种情况,是否用测覆盖不全?
6.项目上线前3天,每天写一篇风控报告,怎么写?
风控报告 = 识别质量风险 + 给出应对措施 + 跟踪风险状态。我会按时间递进来写。
第一天:风险识别与基线报告
- 标题:《XX项目上线前72小时质量风控报告 v1》
- 内容:
- 当前bug情况:严重bug数量、待修复列表、解决率趋势
- 测试完成度:功能覆盖率、场景覆盖率、自动化通过率、性能测试结论
- 高风险点:比如支付模块改动、第三方SDK升级、弱网场景未覆盖
- 建议措施:
- 冻结非紧急需求合入
- 对高风险模块安排专人专项回归
- 准备降级/回滚预案
- 风险等级:高/中/低(给出评估依据)
第二天:风险状态更新与应对进展
- 新增:
- 前一天遗留bug的修复情况,新增bug数量
- 重点回归结果(高风险模块是否通过)
- 新发现风险:比如性能压测发现某个接口在峰值下延迟超标
- 调整措施:增加灰度范围、建议后端扩容
- 给决策者(PM/技术负责人)的建议:是否如期上线,或需要部分功能降级
第三天:最终上线前风险评估
- 内容:
- 所有阻塞级bug已清零,已知遗留低概率或轻微体验问题清单(附上原因和用户影响评估)
- 线上监控方案是否就绪(关键指标、报警阈值、日志)
- 紧急联系人名单、回滚方案确认
- 最终结论:可上线 / 有风险但可控(需伴随灰度) / 建议延期
- 上线后24小时内的跟进计划
关键:每天报告要简洁、有数据、有结论、有可执行的下一步,而不是流水账。
7. 从用户角度测试抖音视频
播放体验、交流互动、内容推送、性能与资源:流量、电量、无障碍、关爱模式
8.如果发现领导给的流程不太合理,你会怎么办?
我会先确认自己是否完全理解了流程背景。如果确实不合理,就基于数据评估问题(如耗时、效率、质量影响),准备对比分析和改进建议,找合适时机与领导沟通,先肯定初衷再提议小范围试运行。
如果领导坚持,我会先执行,同时持续记录痛点,后续再用数据推动优化,并在自己权限内做局部微调。
9.了解过自动化测试吗?了解PO模式吗?
了解,并且在web项目测试中落地实现了
PO模式是UI自动化测试中的一种设计模式,即页面对象设计模式,它的核心思想是将页面封装成类,页面上的元素定位和操作方法都封装在该类中。
这样做的好处是:
- 可维护性高:页面元素一旦发生改变,只需修改对应的page类
- 复用性强:多个用例可以共享同一个页面的操作方法
- 可读性好:测试用例只调用方法,清晰易懂
10.测过APP吗,APP测试和web测试的区别
简单测过,区别在于:
- 框架不同:APP使用的是C/S框架、WEB使用的是B/S框架
- 传输数据不同:APP前后端交互的数据格式是以json为主的,而WEB前后端交互的数据格式为JSON/HTML等都有
- 测试范围不同:app测试还有专项测试(安装卸载更新、手机型号、版本兼容性测试、push消息推送、交叉事件、用户体验等)、web测试还有浏览器兼容性测试、易用性测试等
11.一个流程如何去设计测试用例
以账号密码登录流程为例简单说明:
- 梳理流程:打开登录页→输入账号密码→点击登录→跳转首页;分支:清空输入、输错信息、网络断开、点击返回等。
- 拆分节点:账号输入框、密码输入框、登录按钮、返回按钮。
- 设计用例:
- 正向:输入正确账号密码,正常登录;
- 反向:账号 / 密码为空、输入超长字符、错误账号密码;
- 流程异常:点击登录中途断网、输入一半返回上一页、连续多次点击登录按钮。
12.如何处理临时新增的紧急需求
第一,先快速对接产品、开发,吃透新增需求,明确改动点、关联模块、预期上线时间,评估测试范围和工作量。
第二,梳理自己手上正在进行的任务,分清优先级,和组长沟通协调,把非紧急任务延后,集中精力处理新需求。
第三,测试时抓重点,优先测核心功能、改动点以及受影响的关联模块,用例侧重主流程和高频异常,精简冗余用例,提升效率。
第四,测试完成后及时同步结果,若时间紧张,会和团队确认风险、做好备注。上线之后我也会重点做线上巡检,一旦发现问题立刻跟进修复。
13.bug开发没有进行修复但是着急上线,怎么和开发沟通
先明确bug等级和影响面。然后找开发沟通:
- 用事实说话:“这个bug影响用户支付成功率约5%,如果不修,上线后预计每天造成xxx单失败。”
- 给出折中方案:能否加配置开关临时屏蔽该功能?或者后端hotfix?或者在前端加提示/降级方案?
- 确认时间:问他最快多久能修?如果1小时内能修,我等他,再回归。
- 风险共担:如果实在不修,我会要求开发签字确认风险,并在上线报告中注明已知问题,同时建议灰度发布、加强监控。
沟通时保持尊重,目标是解决问题,不是指责。
14.需求怎么划定测试范围
先精读需求,明确新增、修改的功能点,再顺着业务和数据流向,找出联动的模块、接口。区分必测、选测和无关模块,最后和产品、开发确认范围,避免漏测或重复测试。
15.偶发性bug怎么处理?
- 记录现场:立刻截屏、录屏、抓日志、记下操作步骤和环境信息(时间、网络、设备、账号)。
- 尝试复现:大概定位范围、记录出现频次,并评估重要程度
- 提bug,清晰描述bug信息
- 可以找开发查看日志记录,分析bug信息
- 再次出现时,保留现场,让开发进行解决
- 如果在上线前无法解决,需要想项目负责人抛出风险,评估之后决定是否上线
- 如果决定上线,那么将风险点在测试报告上详细说明,并跟踪手机上线后的情况信息
- 如果决定先修复再上线,那么提交bug后指配给开发进行修复
16. HTTP中4开头的状态码和5开头的状态码介绍
- 4xx:请求信息错误
- 400:请求参数错误
- 401:登录失效/未登录
- 403:登录了但是没有权限访问
- 404:资源不存在
- 405:请求方式错误(预期是get方式,实际用成了post)
- 429:请求过多
- 5xx:服务器端错误
- 500:通用服务器错误,例如后端代码出错
- 502:网关错误
- 503:服务不可用,例如过载、维护
- 504:网关超时
17.Linux怎么修改权限?777是什么意思?
使用chmod命令
777分别代表文件所有者、用户组、其他用户的权限
7表示:4(读r)、2(写w)、1(执行x)
18.selenium元素定位方式
ID、NAME、CSS_SELECTOR、LINK_TEXT、CLASS_NAME、XPATH
xpath定位方法:
- 绝对路径
- 相对路径+属性://标签[@属性=‘值’]
- 文本匹配://*[text()=‘内容’]
19.使用id定位无法定位到元素可能的问题?xpath定位页面修改后无法成功定位如何解决?
- id定位失败:
- 没有切换iframe
- 页面未渲染完成
- 有遮罩层(点击后toast弹窗遮挡)
- id是动态生成的,每次刷新发生变化
- xpath定位:
- 避免使用绝对路径,使用相对xpath,例如//div[@class=‘content’]
- 使用更稳定的属性组合
- 使用css_selector代替xpath通常更稳定
20.缺陷提交到平台之后,是有哪几种状态,修改为fixed之后,在确认的时候发现还是有bug,那这时候状态要怎么修改
缺陷提交后,常规流转状态主要有新建、指派、修复中、已修复、重新打开、关闭,还有延期、作废这类辅助状态。
当开发修复完成,将 bug 状态改为 Fixed 后,我会执行复测。如果复测发现问题依然存在,不会直接关闭,而是把缺陷状态重新打开,详细备注复测情况和问题现象,再重新指派给开发,让其继续处理。等后续彻底修复、复测通过后,再把状态改为关闭。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)