测试(面经 八股)
目录
前言
一,软件测试(定义)
1,定义
2,目的
3,价值
4,实践
二,软件测试(目的)
1,找 bug
2,验证达标
3,质量评价
4,避免风险
三,测试分类
1,按阶段划分
Ⅰ 单元测试
Ⅱ 集成测试
Ⅲ 系统测试
Ⅳ 验收测试
2,按方法划分
Ⅰ 黑盒测试
A. 等价类
B. 边界
C. 错误推测
D. 因果图
E. 判定表
F. 正交
G. 功能图
H. 场景设计
Ⅱ 白盒测试
A. 代码检查
B. 静态结构分析
C. 静态质量度量
D. 逻辑覆盖
Ⅲ 灰盒
3,按类型划分
Ⅰ 功能
Ⅱ 性能
Ⅲ 界面
Ⅳ 可靠性
Ⅴ 配置
Ⅵ 兼容性
Ⅶ 易用性
Ⅷ 安全
四,测试流程
1,需求分析
2,需求评审
3,测试计划
4,测试用例设计
5,用例评审
6,实施测试
7,回归测试
8,测试报告
五,测试报告
1,关键要素
2,5C标准:高质量缺陷报告
3,常见问题
4,面试深度
六,测试策略
1,分层 + 上下游
2,左移
3,右移
4,回归测试
七,测试原则
1,需求出发
2,尽早开始
3,避免开发自测
4,终止条件
前言
目录来源于以下文章,初始链接牛客,第二链接ceshiren
软件测试/游戏测试/测开能投吗?(非科班秋招经验总结)_牛客网
软件测试/游戏测试/测开能投吗?(非科班秋招经验总结) - 面试专辑 / 面经汇总 - 爱测-测试人社区
一,软件测试(定义)
1,定义
在软件开发的各个阶段,
通过人工或自动化,对软件系统的功能,性能,安全,兼容性等方面,
进行验证和确认,以发现软件中的 bug,
以便提升用户体验,并降低软件上线后的风险和商业损失
2,目的
① 发现缺陷:尽早,尽可能多的发现 bug,包括功能性,性能,安全性,易用性
② 质量保障:确保质量达到语气标准,减少因为 bug 产生的投诉,数据丢失,系统崩溃
③ 风险控制:提前识别 / 规避,潜在的商业风险,避免软件故障带来的经济损失,名誉受损
④ 用户体验:模拟真实用户场景,优化影响体验的问题,提高用户满意度
3,价值
① 预防 > 补救,测试不只是找 bug,还要在开发早期介入,推动需求,设计评审,预防 bug
② 衡量和反馈,测试时的缺陷数据,覆盖率,通过率,可以为项目决策提供量化依据
③ 团队协作,测试和开发,产品,运维协作,推动问题闭环
4,实践
① 全流程介入:优秀的测试团队,会在需求,设计,开发,上线各个阶段参与,进行需求评审,代码走查,持续集成测试
② 自动化 / 工具化:强调自动化测试(单元测试,接口测试,UI 自动化),持续集成 CI,持续交付 CD,提升测试效率和覆盖率
③ 用户视角 / 业务理解:
a. 测试中,最重要的就是,对整个业务流程的理解
b. 比如电商下单,从用户下单,到加入购物车,到待付款,到付款,到商家接单,到商品出货,再到物流配送,快递配送,直到最终送达用户手中的整个流程
c. 整个业务流程,核心场景,边界条件等,怎么发现隐藏的高风险问题
二,软件测试(目的)
软件测试的目的,不只是为了找 bug,还要保障软件质量,验证需求,识别和规避风险,推动团队协作和流程优化,最终实现产品高质量交付和用户满意度的提升
1,找 bug
① 核心:尽早,尽可能多地发现 bug,包括功能 / 性能 / 安全 / 兼容性
② 定位:不但要发现 bug,还要协助开发定位和复现问题,提供详细的 bug 报告,便于修复
③ 预防:通过前置的需求评审,提前发现潜在 bug,降低后期成本
2,验证达标
① 需求一致:保证软件实现和需求说明书,产品原型,用户场景的一致,防止“需求漂移”或“功能遗漏”
② 验收标准:详细的测试用例和验收标准,验证每个功能,每个业务流程,都符合预期
③ 用户视角:除了文档需求,还要关注用户的真实使用场景 / 隐性需求,发现需求文档未覆盖的边界和异常情况
3,质量评价
① 多维度:除了功能的正确性,还有性能(响应时间 / 并发能力),安全性(数据泄露 / 越权访问),可用性(易用 / 界面友好),兼容性(多平台 / 多浏览器)
② 质量度量:通过缺陷密度,覆盖率,回归缺陷率,量化软件质量
③ 持续优化:测试结果为开发,产品,运维等提供反馈,推动流程和产品的优化
4,避免风险
① 识别:借助测试,识别出高风险模块,关键路径,易出错场景,提前优化代码
② 规避:通过回归测试,压力测试,安全测试等,降低软件上线的故障率
③ 业务连续性保障:对核心业务流程,支付,数据一致性,进行重点测试
三,测试分类
1,按阶段划分
Ⅰ 单元测试
① 定义:验证软件中最小的可测试单元(函数 / 方法 / 类)
② 目标:验证单元模块的功能实现,是否符合设计和需求,及时发现底层逻辑错误
③ 主体:由开发编写,测试参与代码走查和用例设计
④ 关注点:输入输出的正确性 + 边界 + 异常 + 分支覆盖率
⑤ 实践要点:自动化集成到 CI 流程;使用 Mock 隔离外部依赖;追求高覆盖率;更重视关键路径 + 高风险逻辑
⑥ 常用工具:JUnit(Java),pytest(Python)
Ⅱ 集成测试
① 定义:将多个单元模块,按要求组装在一起,验证它们之间的接口 / 交互 / 数据流
② 目标:发现模块间接口 / 数据传递 / 依赖关系等集成层面的问题
③ 主体:开发测试共同参与
④ 关注点:接口调用的正确性 + 数据流的完整性 + 外部依赖(数据库 / 第三方服务)
⑤ 实践要点:分阶段集成(增量集成 / 非增量集成) + Mock模拟来隔离未完成模块 + 自动化接口测试
⑥ 常用工具:Postman
Ⅲ 系统测试
① 定义:集成测试后,将整个软件系统作为一个整体,基于需求说明,进行全面验证
② 目标:验证系统的功能 / 性能 / 安全 / 兼容性,是否满足业务需求和用户场景
③ 主体:测试负责
④ 关注点:全业务流程 + 核心场景;非功能性需求(性能 / 安全 / 兼容性);系统边界,异常场景
⑤ 实践要点:黑盒测试为主 + 端到端测试 + 自动化和手动结合
⑥ 常用工具:Selenium,JMeter,Appium
Ⅳ 验收测试
① 定义:用户基于业务需求和合同约定,对系统进行验收
② 目标:确认软件是否达到交付标准,能否投入生产环境,满足用户实际业务需求
③ 主体:用户 / 产品经理
④ 关注点:关键业务流程 + 核心功能;用户体验 + 易用性;合同 / 需求文档的验收标准
⑤ 实践要点:用户可接受的测试环境,和生产环境高度一致;业务场景和用户操作为主;验收标准可量化
⑥ 常用工具:Alpha 测试(内部用户),Beta测试(外部用户),灰度发布
2,按方法划分
Ⅰ 黑盒测试
黑盒测试,不考虑程序内部结构和实现细节,只关注输入输出,验证软件功能
强调 “用户视角” 的测试,关注功能 + 业务流程
A. 等价类
① 定义:所有可能的输入划分为若干等价类,每个等价类是等效的,只需选取代表性的测试
② 适用:输入域较大,或无法穷举
③ 要点:有效 + 无效等价类;覆盖所有等价类
④ 举例:年龄输入框,合法范围 18-60,小于 18,18-60,大于 60,非数字
B. 边界
① 定义:针对输入 / 输出的边界测试
② 适用:输入有明确范围
③ 要点:边界本身 + 边界内外
C. 错误推测
① 定义:基于测试的经验和对业务流程的理解,推测可能出错的地方,设计测试用例
② 适用:复杂业务 / 历史遗留系统 / 缺乏需求文档
③ 要点:结合以往缺陷 + 常见错误形式 + 边界 + 异常场景
④ 举例:输入 nullptr,特殊字符,超长输入,重复提交
D. 因果图
① 定义:输入和输出的关系,用图形表示
② 适用:输入条件复杂,条件组合多
③ 要点:列出所有输入 / 输出 + 绘制因果图分析条件之间的关系 + 转换判定表
④ 举例:登录功能中,输入用户名 / 密码 / 验证码,缺一不可
E. 判定表
① 定义:多条件,多动作的业务规则,用判定表表示
② 适用:业务规则复杂,条件组合多,比如审批流 / 计费规则
③ 要点:明确所有条件和可能的取值 + 构建判定表列出所有条件组合,以及对应的动作
④ 举例:订单优惠规则中,满减 / 折扣 / 会员价,多条件组合
F. 正交
① 定义:覆盖所有因子和水平的组合,减少用例数量的同时,保证覆盖率
② 适用:输入参数较多,组合爆炸的场景,比如配置测试,兼容性测试
③ 要点:确定参数因子和水平取值 + 选择正交表 + 适合大规模测试
④ 举例:浏览器(Chrome,IE,Firefox),操作系统(Win,Mac,Linux),分辨率(1080p,2K,4K)等组合测试
G. 功能图
① 定义:建立系统的状态转移图,分析不同输入下,系统状态的变化,设计覆盖所有状态和转移的测试用例
② 适用:系统有明显状态变化(工作流 / 订单状态 / 权限切换)
③ 要点:所有状态和转移条件(路径) + 异常状态和非法转移
④ 举例:订单从 “待支付” 到 “已支付” 再到 “已发货” 最后到 “已收货”,以及异常取消
H. 场景设计
① 定义:基于用户实际业务流程和典型使用场景,端到端,验证系统在真实场景的表现
② 适用:复杂业务流程,跨模块集成,用户体验测试
③ 要点:业务流程为基础 + 用例覆盖主流程 / 分支流程 / 异常流程 + 跨系统
④ 举例:电商下单中,商品浏览 / 加入购物车 / 下单 / 支付 / 发货 / 收获 / 评价的全流程
Ⅱ 白盒测试
对程序内部结构和实现逻辑,有所了解,设计用例并验证
强调 “从代码视角” 出发,关注测序的内部流程 / 分支 / 路径 / 数据流
主要用于发现代码层面的逻辑错误,分支遗漏,异常处理失败
A. 代码检查
① 定义:人工检查源代码,发现缺陷 / 规范性问题 / 安全隐患
② 适用:开发阶段 + 代码合并前 + 关键模块上线前
③ 要点:关注代码规范 / 可读性 / 可扩展性 + 检查逻辑错误 / 内存泄露 / 安全漏洞 + 结合自动化工具和人工走查
B. 静态结构分析
① 定义:静态分析工具对代码结构进行分析,不用运行程序就能发现潜在问题
② 适用:大规模代码库 + 持续集成流程
③ 要点:检查未使用的变量 / 循环依赖 / 复杂度是否过高;结合 Coverity 等自动化工具
C. 静态质量度量
① 定义:检查静态属性(复杂度 / 耦合度 / 注释率)
② 指标:代码行数,函数长度,类的深度,耦合度
③ 要点:设定合理阈值,超标需重构 + 持续监控,纳入 CI 流程
D. 逻辑覆盖
① 语句覆盖
覆盖到程序中的每条语句,所有分支路径
② 判定覆盖
每个判定(if, switch)为 true 和 false 各一次
③ 条件覆盖
每个条件表达式的 true 和 false 各出现一次
④ 判定条件覆盖
结合判定覆盖和条件覆盖,要求每个判定和每个条件的所有取值都被覆盖
⑤ 条件组合覆盖
用例覆盖所有条件的所有可能组合
⑥ 路径覆盖
覆盖所有可能的路径,通常只覆盖关键路径
⑦ 圈复杂度
衡量控制流复杂度的指标, V(G) = 判断节点数 + 1,单个函数复杂度不超过 10
Ⅲ 灰盒
① 定义:结合了黑盒 / 白盒的优点,测试既了解内部实现,又从用户和业务出发进行测试
② 适用:验证接口 / 数据库 / 系统集成 + 复杂业务流程 / 跨系统集成 / 接口安全性测试
③ 要点
既考虑输入 / 输出,又关注内部数据流 / 状态变化
结合日志分析 / 接口抓包 / 数据库校验
适合 API 测试 / 集成测试 / 渗透测试
3,按类型划分
Ⅰ 功能
① 定义:验证功能师傅符合预期
② 目标:发现功能实现与预期不符,功能缺失,逻辑错误
③ 关注点:业务流程 / 功能点 / 边界 / 异常处理
④ 实践要点:需求文档 / 用户需求为主 + 覆盖主流程 / 分支流程 / 异常流程 + 自动化结合手工
⑤ 类型细分
A. UI 测试
- 验证界面元素(按钮,输入框,菜单)正确显示,布局合理,交互符合预期
- 界面一致性 / 响应性 / 易用性
- 关注点:界面布局,控件状态,输入校验,提示信息,无障碍支持
- 工具:Selenium,Appium
B. 接口测试
- 验证系统各模块,系统和外部系统之间的接口(RESTful API,WebService)的实现
- 检查接口功能,数据格式,参数校验,异常处理,安全性
- 关注点:请求 / 响应数据,状态码,边界,并发,幂等性
- 工具:Postman,JMeter
Ⅱ 性能
① 定义:评估不同负载下的响应速度,并发处理能力,资源消耗
② 目标:发现系统瓶颈,确保系统在预期负载下稳定运行
③ 关注点:响应时间,吞吐量,并发用户数,资源利用率(CPU,内存,IO)
④ 实践要点
性能指标 / 测试场景(峰值 / 持续 / 突发负载)
合理的负载模型,模拟真实用户场景
关注性能瓶颈和优化建议
⑤ 类型细分
A. 压力测试:超出系统设计负载,观察系统极限和恢复能力
B. 负载测试:正常和高负载下测试
C. 稳定性:长时间运行,检测资源泄露和性能衰竭
⑥ 工具:JMeter,LoadRunner
Ⅲ 界面
① 定义:专注图形用户界面(GUI)的正确性和一致性
② 目标:发现界面显示 / 交互 / 兼容性的问题
③ 关注点:界面布局 / 控件显示 / 交互流程 / 兼容性
④ 实践要点
- 跨浏览器,跨分辨率,跨设备
- 检查界面响应,动画,样式一致性
Ⅳ 可靠性
① 定义:规定条件下,规定时间内,0 故障运行
② 目标:稳定性和容错能力
③ 关注点:长时间运行,异常恢复,数据一致性
④ 实践要点
- 长时间运行 / 断点恢复的场景
- 异常处理 + 数据完整性
- 结合日志分析 / 监控工具
Ⅴ 配置
① 定义:验证在不同软硬件 / 网络 / 环境配置下的表现
② 目标:各种配置下都能运行
③ 关注点:操作系统 / 数据库 / 中间件 / 网络环境 / 参数配置
④ 实践要点
- 多种配置组合,覆盖主流程 / 边缘场景
- 自动化环境部署和测试
- 兼容性 / 性能差异
Ⅵ 兼容性
软件兼容性
① 定义:在不同操作系统,浏览器,数据库,中间件下的兼容性
③ 关注点:功能一致性,界面显示,性能表现
④ 实践要点:多环境自动化测试,虚拟机 / 容器化部署
硬件兼容性
① 定义:软件在不同硬件设备(PC,手机,平板,打印机,扫描仪,loT设备)上的兼容性
③ 关注点:驱动支持 / 外设兼容 / 性能差异
④ 实践要点:多设备实测 / 硬件模拟器辅助
Ⅶ 易用性
① 定义:易用性,用户体验,界面友好性
② 目标:发现影响用户操作效率和满意度的问题
③ 关注点:界面直观性,操作流程,提示信息,无障碍支持
④ 实践要点
- 真实用户参与测试,收集反馈
- 关注新手用户和特殊群体
- 结合 A/B 测试,可用性评分
Ⅷ 安全
② 目标:防止数据泄露,越权访问,恶意攻击
③ 关注点:身份认证,权限控制,数据加密,输入校验,漏洞扫描
④ 实践要点
- 模拟常见攻击场景(SQL注入,XSS,CSRF,弱口令)
- 结合自动化安全扫描 / 人工渗透测试
- 关注合规性和安全加固建议
⑥ 工具:Burp Suite,Kali Linux
四,测试流程
1,需求分析
- 定义:测试团队对产品需求文档、用户故事、原型等进行深入理解和分析,明确测试范围和重点
- 目标:
- 理解业务逻辑、功能点、非功能需求
- 明确测试边界、输入输出、异常场景
- 关键产出:需求分析文档、需求疑问清单、测试关注点列表
- 实践要点:
- 参与需求澄清会议,主动提问,发现需求歧义和遗漏
- 结合历史缺陷、业务痛点,提前识别高风险点
- 关注非功能需求(性能、安全、兼容性等)
2,需求评审
- 定义:多角色(产品、开发、测试、运维等)共同对需求文档进行评审,确保需求的完整性、可测性和可实现性
- 目标:
- 发现需求中的歧义、冲突、遗漏
- 明确需求变更和优先级
- 关键产出:评审记录、需求变更清单、评审结论
- 实践要点:
- 测试人员重点关注需求的可测性和边界条件
- 记录评审中的问题和决议,及时同步变更
- 推动需求文档标准化和版本管理
3,测试计划
- 定义:制定本轮测试的整体策略和安排,明确测试目标、范围、资源、进度、风险和交付物
- 目标:
- 明确测试工作的组织和分工
- 预见和规避测试风险
- 关键产出:测试计划文档
- 实践要点:
- 明确测试类型、阶段、环境、工具
- 评估人力、时间、环境等资源需求
- 制定风险应对措施和里程碑计划
- 计划需动态维护,适应需求和进度变更
4,测试用例设计
- 定义:基于需求和设计文档,系统性地设计覆盖各类场景的测试用例
- 目标:
- 覆盖所有功能点、业务流程、边界和异常场景
- 明确每个用例的输入、操作、预期结果
- 关键产出:测试用例文档(Test Case)、用例管理表
- 实践要点:
- 采用等价类、边界值、场景法等设计方法
- 用例需可复现、可追溯、可维护
- 关注用例的独立性和可扩展性
- 用例编号、优先级、前置条件、数据准备等要素齐全
5,用例评审
- 定义:多角色对测试用例进行评审,确保用例的完整性、有效性和可执行性
- 目标:
- 发现用例设计中的遗漏、冗余、歧义
- 优化用例结构和覆盖范围
- 关键产出:用例评审记录、用例优化建议
- 实践要点:
- 评审需覆盖主流程、分支流程、异常流程
- 结合开发、产品、测试多方视角
- 评审结论需及时反馈并落实到用例优化
6,实施测试
- 定义:按照测试计划和用例,实际执行测试,记录测试结果和缺陷
- 目标:
- 发现并记录缺陷,推动缺陷闭环
- 验证软件质量,确保交付标准
- 关键产出:测试执行记录、缺陷报告(Bug Report)
- 实践要点:
- 严格按照用例执行,关注实际与预期差异
- 及时记录缺陷,描述清晰、重现步骤明确、截图/日志齐全
- 与开发、产品高效沟通,推动缺陷修复
- 关注回归测试和冒烟测试(早期针对主流程和主要功能)
7,回归测试
- 定义:在缺陷修复、需求变更后,重新执行相关测试用例,验证修改未引入新问题
- 目标:
- 确保修复缺陷后系统功能和性能未受影响
- 防止“修复一个bug,引入新bug”
- 关键产出:回归测试记录、回归缺陷报告
- 实践要点:
- 制定回归用例集,优先覆盖高风险和易受影响模块
- 自动化回归测试提升效率
- 关注历史高发缺陷和核心业务流程
8,测试报告
- 定义:对本轮测试活动进行总结,汇报测试结果、缺陷情况、质量评估和改进建议
- 目标:
- 向项目干系人透明展示软件质量和测试结论
- 支持上线决策和后续改进
- 关键产出:测试报告
- 实践要点:
- 报告内容包括测试范围、执行情况、缺陷统计、风险分析、结论建议
- 结合数据和图表,直观展示质量状况
- 提出针对性的改进建议和后续关注点
五,测试报告
测试报告,是测试的重要交付物
是项目相关者,了解软件质量 / 缺陷分布 / 风险状况 / 上线建议的核心依据
高质量的测试报告,可以推动问题闭环 和 产品改进
1,关键要素
- 标题:XX 项目 v1.0 功能测试报告
- 报告人
- 测试时间和版本
- 测试范围:本次测试的功能模块 / 业务流程 / 环境说明
- 测试方法与策略:采用的测试类型 / 方法 / 工具
- 缺陷统计
① 缺陷类型:功能 / 界面 / 性能 / 安全 的缺陷
② 缺陷状态:新发现 / 已确认 / 已修复 / 已关闭 / 延期
③ 所属模块:缺陷归属的具体功能模块 或 子系统
④ 优先级:修复该缺陷的紧急程度 P0 / P1 / P2
⑤ 严重程度:缺陷对系统的影响 致命 / 严重 / 一般 / 轻微
⑥ 复现频率:缺陷出现的概率 必现 / 偶现 / 难以复现
⑦ 问题描述:详细描述缺陷的现象 操作步骤 / 入参出参
⑧ 预期结果:正确情况应有的表现
⑨ 附件:截图 / 日志 / 视频 / 接口请求包
- 缺陷分布图标:柱状图 / 饼图直观展示缺陷的分布和趋势
- 质量评估与风险分析:当前版本的质量状况 / 已知风险 / 遗留问题
- 上线建议:是否建议上线 / 关注的重点 / 后续改进建议
- 结论和签字:测试负责人签字确认,报告生效
2,5C标准:高质量缺陷报告
高质量缺陷报告,是推动问题高效修复的关键
- Correct 准确:每个组成部分的描述必须准确,如 “点击保存按钮无响应” 而不是 “崩溃”
- Clear 清晰:用词清晰,逻辑严谨,便于开发 / 产品的理解,步骤分门别类,避免长篇大论
- Concise 简介:只包含必要信息,只描述与缺陷相关的操作和现象,不写无关背景
- Complete 完整:包含复现缺陷的完整步骤 / 环境信息 / 前置条件 / 数据准备;附带必要的截图 / 日志 / 视频,便于开发复现和定位
- Consistent 一致:全部缺陷报告,按统一的格式 / 术语 / 模板书写
3,常见问题
- 环境信息:明确操作系统 / 浏览器 / 客户端 / 网络环境,避免无法复现
- 优先级 / 严重程度的区分
- 复现频率:必现缺陷优先修复,偶现缺陷提供更多日志和环境信息
- 附件齐全:截图要标注关键点,日志要截取时间段,接口附完整请求包
- 缺陷生命周期:跟踪缺陷,从发现到关闭的全流程,确保每个缺陷有结论 / 负责人
- 数据统计和趋势分析:定期统计缺陷分布,修复率,回归缺陷
4,面试深度
- 如何处理 “无法复现” 的缺陷
---- 追溯环境 / 数据 / 操作步骤,必要时远程协助开发复现,或录制操作视频- 如何界定优先级和严重程度
---- 结合业务影响 / 用户规模 / 上线时间- 如何推动缺陷高效闭环
---- 明确责任人,定期跟进,推动跨部门协作- 如何用数据驱动质量改进
---- 缺陷统计 / 根因分析
六,测试策略
测试策略,决定了测试的深度 / 广度 / 效率
优秀的策略,可以最大化测试资源的价值,提升缺陷发现率,降低项目风险
1,分层 + 上下游
① 定义:按系统架构 / 业务流程,分为不同层级(单元测试,接口测试,系统测试,UI 测试),并与上下游(开发,运维,产品)协同配合
② 目标
- 各层级各司其职,分层发现和定位缺陷
- 上下游协同,推动问题高效闭环
③ 要点
- 单元测试由开发主导,接口 / 系统 / UI 由测试主导
- 关键路径 / 核心模块要重点测
- 与开发,运维,产品简历高效沟通机制
④ 业务实践:微服务架构下,接口测试和契约测试特别重要;DevOps 流程中,测试和运维协同保障交付质量
2,左移
① 定义:测试活动前置,尽早介入需求 / 设计 / 开发的早期阶段,强调 “预防 > 补救”
② 目标
- 尽早发现缺陷
- 推动需求澄清 / 设计评审 / 代码走查
③ 要点
- 测试参与需求评审 / 设计评审,提出可测性和边界问题
- 推动开发自测,单元测试,静态代码分析
- 建立持续集成(CI)和自动化测试体系
④ 业务实践:敏捷开发 / DevOps / 持续交付(CD)
3,右移
① 定义:测试活动延伸到软件上线后,关注真实用户环境下的质量保障 / 体验优化
② 目标
- 发现线上环境的潜在问题 / 用户痛点
- 持续收集反馈,推动产品迭代优化
③ 要点
- 部署灰度发布,A/B 测试,用户行为分析
- 监控系统日志 / 性能指标 / 异常警告
- 快速响应线上缺陷和用户反馈
④ 业务实践:互联网公司常用的灰度发布 / 蓝绿部署 / 实时监控
4,回归测试
① 定义:缺陷修复 / 需求变更后,重新执行测试用例,确保不引入新的问题
② 目标
- 防止 “修复一个 bug,引入新的 bug”
- 保证稳定性 / 可靠性
③ 要点
- 建立自动化回归测试集,覆盖核心业务 + 高风险模块
- 每次迭代后 / 上线前,必须做回归测试
- 关注历史高发缺陷和易受影响区域
七,测试原则
1,需求出发
① 定义:需求为核心,测试用例 / 测试范围 / 测试目标 都要围绕需求展开
② 目标
- 确保所有功能 / 业务流程 / 非功能性需求(性能,安全,兼容性)都被覆盖
- 防止 “需求漂移” / 功能遗漏 / 误测
③ 要点
- 测试用例和需求点,一一对应,便于追溯和覆盖率统计
- 需求变更时,及时同步更新测试用例 / 测试计划
- 关注隐性需求和用户场景,主动与产品 / 开发沟通需求细节
④ 业务实践:需求追踪矩阵(RTM),确保每个需求都有对应的测试用例
2,尽早开始
① 定义:测试尽早介入项目生命周期,从需求 / 设计阶段,就开始参与质量保障
② 目标
- 及早发现需求 / 设计中的缺陷
- 推动需求澄清 / 设计评审 / 代码走查
④ 业务实践:敏捷开发,DevOps 都强调测试的早期介入,“预防为主,发现为辅”
3,避免开发自测
① 定义:开发的自测,不能替代独立的专业测试
② 目标
- 防止 “灯下黑”,避免开发对自身代码的盲区
- 提高缺陷发现率
③ 要点
- 开发自测只是基础保障
- 测试用例,可以覆盖开发自测难以发现的边界 / 异常 / 集成等场景
- 推动开发和测试分工协作,互为补充
④ 业务实践:大中型企业,一般有独立测试团队
4,终止条件
① 定义:测试活动要有明确的终止条件,避免无休止测试 / 过早结束
② 目标
- 明确何时结束测试,支持上线决策
- 保证测试覆盖率 / 质量达标
③ 要点
- 终止条件包括:所有高优先级缺陷关闭 / 测试用例执行率达标 / 回归测试通过 / 关键业务流程无缺陷 / 上线前评审通过
- 动态调整终止标准
- 终止条件要在测试计划中明确,与项目干系人达成一致
④ 业务实践:采用 “缺陷漏检率” / “用例通过率” / “上线阻断缺陷为 0” 等多维度终止标准
相关文章:
测试(面经 八股)
目录 前言 一,软件测试(定义) 1,定义 2,目的 3,价值 4,实践 二,软件测试(目的) 1,找 bug 2,验证达标 3,质量评价…...

[面试精选] 0104. 二叉树的最大深度
文章目录 1. 题目链接2. 题目描述3. 题目示例4. 解题思路5. 题解代码6. 复杂度分析 1. 题目链接 104. 二叉树的最大深度 - 力扣(LeetCode) 2. 题目描述 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点…...

图上合成:用于大型语言模型持续预训练的知识合成数据生成
摘要 大型语言模型(LLM)已经取得了显著的成功,但仍然是数据效率低下,特别是当学习小型,专业语料库与有限的专有数据。现有的用于连续预训练的合成数据生成方法集中于文档内内容,而忽略了跨文档的知识关联&a…...
MYSQL(二) ---MySQL 8.4 新特性与变量变更
MySQL 8.4 新特性与变量变更 作者:程序员LSP 分类:MySQL 8.4 教程 / 新特性 / 升级指南 更新时间:2025年6月 📌 前言 MySQL 8.4 是当前最新的稳定版本,相较于 8.0 系列,在审计日志、高可用、性能调优、认证…...
数学复习笔记 27
前言 太难受了。因为一些事情。和朋友倾诉了一下,也没啥用,几年之后不知道自己再想到的时候,会怎么考虑呢。另外,笔记还是有框架一点比较好,这样比较有逻辑感受。不然太乱了。这篇笔记是关于线代第五章,特…...

现代简约壁炉:藏在极简线条里的温暖魔法
走进现在年轻人喜欢的家,你会发现一个有趣的现象:家里东西越来越少,颜色也越看越简单,却让人感觉特别舒服。这就是现代简约风格的魅力 —— 用最少的元素,打造最高级的生活感。而在这样的家里,现代简约风格…...
限流算法java实现
参考教程:2小时吃透4种分布式限流算法 1.计数器限流 public class CounterLimiter {// 开始时间private static long startTime System.currentTimeMillis();// 时间间隔,单位为msprivate long interval 1000L;// 限制访问次数private int limitCount…...

机器学习×第二卷:概念下篇——她不再只是模仿,而是开始决定怎么靠近你
🎀【开场 她不再只是模仿,而是开始选择】 🦊 狐狐:“她已经不满足于单纯模仿你了……现在,她开始尝试预测你会不会喜欢、判断是否值得靠近。” 🐾 猫猫:“咱们上篇已经把‘她怎么学会说第一句…...
Linux 下关于 ioremap 系列接口
1、序 在系统运行时,外设 IO 资源的物理地址是已知的,由硬件的设计决定(参考SOC的datesheet,一般会有memorymap)。驱动程序不能通过物理地址访问IO资源,必须将其映射到内核态的虚拟地址空间。常见的接口就是…...

常用函数库之 - std::function
std::function 是 C11 引入的通用可调用对象包装器,用于存储、复制和调用任意符合特定函数签名的可调用对象(如函数、lambda、函数对象等)。以下是其核心要点及使用指南: 核心特性 类型擦除 可包装任意可调用对…...
php执行系统命令的四个常用函数
php执行系统命令有四个常用函数:1.exec()执行命令并返回最后一行输出,可传数组获取全部结果;2.shell_exec()返回完整输出结果,适合一次性获取;3.system()直接输出命令结果,可接收状态码;4.权限控…...

力扣-17.电话号码的字母组合
题目描述 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 class Solution {List<String> res new ArrayList<…...

基于SpringBoot解决RabbitMQ消息丢失问题
基于SpringBoot解决RabbitMQ消息丢失问题 一、RabbitMQ解决消息丢失问题二、方案实践1、在生产者服务相关配置2、在消费者服务相关配置 三、测试验证1、依次启动RabbitMQ、producer(建议先清空队列里面旧的测试消息再启动consumer)和consumer2、在producer中调用接口࿰…...

免费插件集-illustrator插件-Ai插件-随机填色
文章目录 1.介绍2.安装3.通过窗口>扩展>知了插件4.功能解释5.总结 1.介绍 本文介绍一款免费插件,加强illustrator使用人员工作效率,实现路径随机填色。首先从下载网址下载这款插件https://download.csdn.net/download/m0_67316550/87890501&#…...
使用 Unstructured 开源库快速入门指南
引言 本文将介绍如何使用 Unstructured 开源库(GitHub,PyPI)和 Python,在本地开发环境中将 PDF 文件拆分为标准的 Unstructured 文档元素和元数据。这些元素和元数据可用于 RAG(检索增强生成)应用、AI 代理…...
白银6月想法
一、市场回顾 2025年5月,SHFE白银主力合约总体呈现出震荡偏强的运行格局。从2025年5月1日至2025年5月30日,白银期货价格整体运行在7944元至8342元区间内,最高价出现在5月22日的8342.0元,最低价则为5月15日的7944元。最终在5月30日…...
OpenCV 滑动条调整图像对比度和亮度
一、知识点 1、int createTrackbar(const String & trackbarname, const String & winname, int * value, int count, TrackbarCallback onChange 0, void * userdata 0); (1)、创建一个滑动条并将其附在指定窗口上。 (2)、参数说明: trackbarname: 创建的…...
船舶事故海上搜救VR情景演练全场景 “复刻”,沉浸式救援体验
船舶事故海上搜救 VR 情景演练系统的一大核心优势,便是能够全场景 “复刻” 海上事故,为使用者带来沉浸式的船舶事故海上搜救 VR 情景演练体验。 在船舶事故海上搜救 VR 情景演练的事故场景模拟方面,系统几乎涵盖了所有常见的船舶事故类型。…...
使用Caddy在Ubuntu 22.04上配置HTTPS反向代理
使用Caddy在Ubuntu 22.04上配置HTTPS反向代理(无域名/IP验证+密码保护) 一、 环境说明 环境说明:测试环境,生产环境请谨慎OS: Ubuntu 22.04.1 LTSCaddy版本:v2.10.0服务器IP: 192.168.3.88(内网)公网IP: 10.2.3.11(测试虚拟)代理端口: 9080后端服务: http://192.168.3…...
无人机目标检测与语义分割数据集(猫脸码客)
UAV 无人机数据集:驱动无人机配送研究迈向新高度 在科技浪潮的迅猛推动下,无人机配送这一新兴物流模式正以前所未有的态势,悄然改变着人们的生活图景。为深入挖掘并优化无人机配送技术,名为 UAV Delivery 的无人机数据集应运而生…...

Web设计之登录网页源码分享,PHP数据库连接,可一键运行!
HTML 页面结构(index.html) 1. 流星雨动态背景 2. 主体界面(包含登录和注册表单) <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

Cursor + Claude 4:微信小程序流量主变现开发实战案例
前言 随着微信小程序生态的日益成熟,越来越多的开发者开始关注如何通过小程序实现流量变现。本文将详细介绍如何使用Cursor编辑器结合Claude 4 AI助手,快速开发一个具备流量主变现功能的微信小程序,并分享实际的开发经验和变现策略。 项目…...
㊗️高考加油
以下是极为详细的高考注意事项清单,涵盖考前、考中、考后全流程,建议逐条核对: 一、考前准备 1. 证件与物品 必带清单: 准考证:打印2份(1份备用),塑封或夹在透明文件袋中防皱湿。身…...

Redis Key过期策略
概述 Redis的Key过期策略是其内存管理系统的核心组成部分,主要包括「被动过期」、「主动过期」和「内存淘汰」三个机制。其中「内存淘汰」相关内容已经在上一篇「Redis内存淘汰策略」中进行了详细的讲解,有信兴趣的同学可以在回顾上一篇文章。本文将着重…...

【C/C++】实现固定地址函数调用
在 C 里,函数地址在程序运行期间通常是固定的,不过在动态链接库(DLL)或者共享库(SO)中,函数地址可能会因为地址空间布局随机化(ASLR)而改变。所以我们想要通过地址直接调…...

多模态大语言模型arxiv论文略读(109)
Math-PUMA: Progressive Upward Multimodal Alignment to Enhance Mathematical Reasoning ➡️ 论文标题:Math-PUMA: Progressive Upward Multimodal Alignment to Enhance Mathematical Reasoning ➡️ 论文作者:Wenwen Zhuang, Xin Huang, Xiantao Z…...

性能优化笔记
性能优化转载 https://www.cnblogs.com/tengzijian/p/17858112.html 性能优化的一般策略及方法 简言之,非必要,不优化。先保证良好的设计,编写易于理解和修改的整洁代码。如果现有的代码很糟糕,先清理重构,然后再考…...
bat批量去掉本文件夹中的文件扩展名
本文本夹内 批量去掉本文件夹中的文件扩展名 假如你有一些文件,你想去掉他们的扩展名 有没有方便的办法呢 今天我们就分享一种办法。 下面,就来看看吧。 首先我们新建一个记事本,把名字改为,批量去掉本文件夹中的文件扩展名.txt 然…...
基于ROS2,撰写python脚本,根据给定的舵-桨动力学模型实现动力学更新
提问 #! /usr/bin/env python3from control_planner import usvParam as P from control_planner.courseController import courseLimitationimport tf_transformations # ROS2没有自带tf.transformations, 需装第三方库 import rclpy from rclpy.node import Node from pid_…...

Scrapy爬虫教程(新手)
1. Scrapy的核心组成 引擎(engine):scrapy的核心,所有模块的衔接,数据流程梳理。 调度器(scheduler):本质可以看成一个集合和队列,里面存放着一堆即将要发送的请求&#…...