Q1 · 测试、质量与可靠性
测试、质量与可靠性
9 年考了 6 次,2025 上 / 2025 下 / 2026 上 连续三场都出——测试类是最大缺口。
六份真题原文
本页覆盖 9 年里的 6 处题目:测试与质量保障 5 次 + 可靠性 1 次。 近年趋势是连续三场都考(2025上、2025下、2026上),但考法在换壳: 通用测试方法 → 单元测试 → 性能测试 → 多模态智能测试。题目换名词,内核都是测试策略 + 质量度量 + 可靠性。
| 真题出处 | 题名 | 考查落点 |
|---|---|---|
| 2020 试题二 | 软件测试中缺陷管理 | 缺陷种类/级别/流程/度量 |
| 2023 试题二 | 软件的可靠性评价 | 可靠性模型与选择、MTBF/可用度 |
| 2024上 试题三 | 单元测试方法 | 静态/动态测试、覆盖标准、回归 |
| 2025上 试题二 | 软件测试方法 | 黑/白/灰盒、分层策略、混沌工程 |
| 2025下 试题三 | 软件系统的性能测试 | 测试类型、性能指标、瓶颈定位 |
| 2026上 试题四 | 多模态大模型智能测试(降权) | 页面识别/路径规划/执行/分析 |
权重依据 docs/真题分析.md:「测试与质量保障」9 年 5 次,2025上/2025下/2026上 连续 3 次;
「可靠性」1 次(2023)。两者的结论都归到本页。
论软件测试中缺陷管理及其应用
围绕"论软件测试中缺陷管理及其应用"论题,依次从以下三个方面进行论述。
- 概要叙述你参与管理和开发的软件项目以及承担的工作。
- 详细论述常见的缺陷种类及级别,论述缺陷管理和基本流程。
- 结合你具体参与管理和开发的实际项目,说明是如何进行缺陷管理的。请具体说明实施过程及应用效果。
论软件的可靠性评价
软件可靠性评价是软件可靠性活动的重要组成部分,既适用于软件开发过程,也可针对最终软件系统。
请围绕"论软件的可靠性评价"论题,依次从以下三个方面进行论述。
- 概要叙述你参与开发的软件项目以及你在其中所承担的主要工作。
- 说明可靠性模型有哪些,以及如何选择合适的可靠性模型。
- 具体阐述你参与开发的项目如何对选用的可靠性模型进行分析来进行可靠性评价的。
论单元测试方法及应用
单元测试(Unit Testing)是指对软件中的最小可测试单元或模块进行检查和验证,通过测试来发现该单元的功能不符合/不满足期望的情况和编码错误。单元测试中经常采用的测试方法包括静态测试、动态测试等。单元测试的工作一般由程序员自己完成。单元测试的要点是进行单元所有数据项的正确性、完善性测试,主要关注单元的算法细节和单元接口间流动的数据。
请围绕"单元测试方法及其应用"论题,依次从以下三个方面进行论述。
- 概要叙述你参与管理和开发的软件项目,以及你在其中所担任的主要工作。
- 结合你具体参与管理和开发的实际项目,详细论述单元测试中静态测试、动态测试方法的基本内容。
- 结合你具体参与管理和开发的实际项目,说明在单元测试过程中,如何确定白盒测试的覆盖标准,如何组织实施回归测试。
论软件测试方法及应用
软件测试是保证软件质量的重要手段,其目的是在软件投入运行之前,尽可能多地发现软件中的错误。随着软件系统的复杂度不断增加,软件测试方法也在不断发展和完善。常见的软件测试方法包括黑盒测试、白盒测试、灰盒测试等,测试类型涵盖单元测试、集成测试、系统测试、验收测试等多个层次。近年来,随着人工智能技术的发展,AI驱动的测试用例生成和智能化测试方法也逐渐成为研究和实践的热点。
请围绕"论软件测试方法及应用"论题,依次从以下三个方面进行论述。
- 概要叙述你参与管理和开发的软件项目以及你在其中所承担的主要工作。
- 详细论述常见的软件测试方法及其特点,说明如何根据项目特点选择合适的测试策略。
- 结合你具体参与的项目,说明在测试过程中采用了哪些测试方法,遇到了哪些问题以及如何解决的。
论软件系统的性能测试
软件系统的性能测试是验证系统在不同负载条件下的响应能力、稳定性和资源利用情况的关键质量保障活动。性能测试包括负载测试、压力测试、容量测试、稳定性测试等多种类型,通过模拟真实用户场景,发现系统性能瓶颈,为性能优化提供数据支撑。
请围绕"论软件系统的性能测试"论题,依次从以下三个方面进行论述:
- 概要叙述你参与管理和开发的软件项目以及你在其中所承担的主要工作。
- 详细论述性能测试的主要类型及其目的,说明性能测试的关键指标和测试方法。
- 结合你具体参与的项目,说明性能测试的实施过程、发现的性能瓶颈及优化措施。
论多模态大模型在移动智能测试框架中的应用
- 概要叙述你参与管理和开发的软件项目以及你在其中所承担的主要工作。
- 从框架的页面识别、规划测试路径、执行交互和分析几个层次说明各层作用。
- 阐述在管理和开发该系统过程中遇到的问题及解决办法。
内核只有三件事
不管题干是缺陷管理、单元测试、性能测试还是智能测试,论文要证明的都是同一件事: 我用一套分层的测试体系,在有限的人力下把缺陷尽量挡在上线之前,并用可度量的指标证明它有效。 测试金字塔决定"在哪一层投入",缺陷管理与可靠性评价决定"怎么度量",故障注入决定"可靠性不是嘴上说的"。
测试金字塔:为什么底层要多、顶层要少
测试金字塔的核心不是形状,是单位成本与反馈速度。同一批缺陷, 在单元测试层发现只需毫秒级的一行断言;拖到端到端层才被发现,要起完整环境、走完整链路, 耗时几十秒还可能因为环境抖动误报。越往上,单次执行越贵、定位越慢、越不可靠。 所以合理的策略是:底层用例铺得最广,往上一层比一层少。
反过来的形状叫"冰淇淋甜筒":单元测试稀稀拉拉,端到端用例堆成山。 表面看覆盖率数字不低,实则回归一次要几十分钟,失败后要人工翻日志才能定位, 最后团队干脆不敢跑回归——测试体系名存实亡。
下面这个模拟器把三种投入方案的缺陷检出率、回归耗时和相对成本摆在一起对比。 拖动滑块,或者直接点下面的预设,看"不这么做会怎样"。
测试金字塔投入模拟
模型假设:缺陷分三类(逻辑 60%、接口 30%、流程 10%),各层按饱和曲线各自捕获对应类别
这个模拟器是怎么算的代码
三行模型,每行对应一个真实机制:
// ① 每一层按饱和曲线捕获对应类别的缺陷:用例越多,边际收益越低
检出(层) = 1 − e^(−用例数 ÷ 该层系数)
// ② 各层独立,未捕获的部分就是逃逸到线上或人工回归的缺陷
逃逸率 = 0.6 × 逻辑未捕获 + 0.3 × 接口未捕获 + 0.1 × 流程未捕获
// ③ 越上层越贵:单次执行成本与定位成本都随层次上升
回归耗时 = 单元×0.02s + 契约×0.6s + 端到端×25s
点"冰淇淋甜筒"会看到:检出率反而更低,回归耗时和成本却成倍上涨—— 这就是"用例堆在顶层"的代价。
注意:这是教学模拟,系数是示意值不是实测。论文里只能引用真实测得的数字, 不能引用本页模拟器里的数字。
不这么做会怎样
| 方案 | 缺陷检出率 | 回归耗时 | 后果 |
|---|---|---|---|
| 合理金字塔 | ~91% | ~3 分钟 | 回归敢跑、失败能快速定位 |
| 冰淇淋甜筒 | ~39% | ~10 分钟 | 检出更低、更慢、更贵,团队弃跑回归 |
| 几乎不测 | ~0% | — | 缺陷全部逃逸到线上,修复成本按阶段放大 |
映射到 fazi 的取舍
| 测试层次 | 落在 fazi 哪里 | 取舍 |
|---|---|---|
| 单元测试 | 存证哈希校验、报名库存扣减、权限判定的纯逻辑(Go testing) | 核心模块要求分支覆盖 ≥80%,其余不设硬门限 |
| 契约测试 | 前后端之间锁死 Gin 接口的请求/响应结构 | 共享一份接口样例,任一方破坏即失败 |
| 性能测试 | 抢课秒杀、法律问答读并发(自研 Go 压测工具分阶段加并发) | 不引入重型压测平台,一人全栈维护不动 |
| 故障注入 | 预发环境杀容器实例、注入连接超时与网络延迟 | 验证网关的超时/重试/快速失败是否真生效 |
两个必须写进论文的取舍:
- 不追覆盖率数字。整体自动化覆盖率不足 60% 是主动接受的不足, 与其写一堆无断言的形式化用例凑数,不如把覆盖压到真正会出事的模块上。
- 测试工具不选商业重型。没有专职测试团队,落地的只有 Go 原生 testing + httptest、 Vue 侧单测、契约测试和混沌注入,够用且一人能维护。
六段全文
摘要 300–330 字,正文 P1–P6 合计 2000–2500 纯汉字。P1 逐字抄 essay-common.md,P6 换展望句。
软件测试与质量保障 · 全文(点击展开)
每段写什么、写多长
| 段 | 讲什么 | 字数(纯汉字) |
|---|---|---|
| 摘要 | 项目一句话 + 【主题】做法 + 效果数据 | 300–330 |
| 一、项目背景 | 逐字抄定稿:协会职能、平台模块、技术栈、三个决策 | 459(定稿) |
| 二、理论概述 | 质量定义、测试分类(黑/白/灰盒)、测试层次、可靠性指标与模型 | 320–440 |
| 三、实践一 | 单元测试 + 契约测试 + 覆盖率标准 + 两级回归 | 320–440 |
| 四、实践二 | 性能测试执行、三个瓶颈、三项优化与结果 | 320–440 |
| 五、实践三 | 可靠性目标与模型拟合、混沌注入、缺陷分级与度量 | 320–440 |
| 六、总结展望 | 定稿总结 + 三条不足 + 主题展望句 | 200–300 |
加分与扣分
题干三问 → 本文段落
| 题干问法 | 对应本文段 |
|---|---|
| 第 1 问:概要叙述项目与本人工作 | 第一段(项目背景) |
| 第 2 问:论述测试方法 / 可靠性模型 / 性能测试类型 | 测试方法→第二段;可靠性模型→第五段;性能测试类型→第四段 |
| 第 3 问:结合项目说明采用的方法、遇到的问题与解决办法 | 第三、四、五段(实践一/二/三) |
分年份对齐
| 真题 | 第 2 问(真题原文)→ 段 | 第 3 问(真题原文)→ 段 |
|---|---|---|
| 2020 试题二 缺陷管理 |
详细论述常见的缺陷种类及级别,论述缺陷管理和基本流程。 → 第二段(缺陷管理流程:发现→提交→确认→分配→修复→回归→关闭;四级分级与处理时效)+第五段(四级定义、时效与密度·检出率·逃逸率)〔缺陷种类本文未单列〕 |
结合你具体参与管理和开发的实际项目,说明是如何进行缺陷管理的。请具体说明实施过程及应用效果。 → 第五段(四级分级、致命当日响应与严重当迭代修复、三项度量与逃逸率结论) |
| 2023 试题二 可靠性评价 |
说明可靠性模型有哪些,以及如何选择合适的可靠性模型。 → 第五段(GO 模型与 JM 模型对比枚举;按假设匹配度、可用数据类型、预测精度、参数可行性四原则选择) |
具体阐述你参与开发的项目如何对选用的可靠性模型进行分析来进行可靠性评价的。 → 第五段(设 99.9% 目标、收集测试期故障数据、GO 模型拟合与发布门限差距) |
| 2024上 试题三 单元测试 |
结合你具体参与管理和开发的实际项目,详细论述单元测试中静态测试、动态测试方法的基本内容。 → 第三段(静态:代码审查+静态检查;动态:边界值与异常路径用例) |
结合你具体参与管理和开发的实际项目,说明在单元测试过程中,如何确定白盒测试的覆盖标准,如何组织实施回归测试。 → 第三段(核心模块分支覆盖≥80%、其余不设硬门限;回归两级:提交前跑受影响包两分钟内、发版前跑完整套件) |
| 2025上 试题二 软件测试方法 |
详细论述常见的软件测试方法及其特点,说明如何根据项目特点选择合适的测试策略。 → 第二段(黑/白/灰盒及其特点、按风险选策略)+第三段(测试金字塔分层投入的落地) |
结合你具体参与的项目,说明在测试过程中采用了哪些测试方法,遇到了哪些问题以及如何解决的。 → 第三、四、五段(三类实践及各自的问题与解决) |
| 2025下 试题三 性能测试 |
详细论述性能测试的主要类型及其目的,说明性能测试的关键指标和测试方法。 → 第四段(负载测试/压力测试/稳定性测试及其目的;P95·P99·吞吐·错误率;分阶段递增压测) |
结合你具体参与的项目,说明性能测试的实施过程、发现的性能瓶颈及优化措施。 → 第四段(三个瓶颈、三项优化、P95 380ms) |
| 2026上 试题四 多模态测试(降权) |
从框架的页面识别、规划测试路径、执行交互和分析几个层次说明各层作用。 → 本文无对应材料(缺口,见下) |
阐述在管理和开发该系统过程中遇到的问题及解决办法。 → 第三、四、五段(通用「问题与解决」,非该框架专属) |
d02-AI应用架构与治理.html(AI 线,已并 2026上 试题四)均未备此素材;
真担心考到,须在 AI 线另补一段该框架的分层说明。
- 把测试金字塔的取舍写出来(为什么底层多、顶层少),这是区分"背书的"和"做过项目的"。
- 写出覆盖率的两档标准和"为什么整体不到 60%"——主动承认不足比假报 90% 可信。
- 性能段写出先测干净基线再优化的方法论,以及瓶颈的具体定位路径(慢 SQL、连接未复用)。
- 可靠性段写出故障注入的实测发现(5 秒窗口近半失败),再引出重试与熔断。
- 缺陷管理写出四级分级 + 处理时效 + 三个度量指标,并给出逃逸率结论。
- 技术栈严格落在 Go testing + httptest / Vue 单测 / 契约测试 / 混沌注入,别写没落地的商业工具。
- 写成"我们用了 JUnit、Selenium、Jenkins 搭 CI"——本平台没有这些,会露馅。
- 把可靠性、性能、功能测试各写一段却不提取舍和问题,三段变成产品说明书。
- 摘要效果句的指标与正文对不上,或编造没测过的技术数字(如虚假的覆盖率、QPS)。
- 第一段改动定稿一个字——校验脚本会直接判不合格。
考场上直接默这几句
- 测试的目的不是在投产前证明程序正确,而是尽可能多地暴露错误。
- 测试金字塔的核心是单位成本与反馈速度:越往上层,单次执行越贵、定位越慢、越不可靠。
- 核心模块要求分支覆盖不低于 80%,其余模块不设硬门限,避免为凑覆盖率写无断言用例。
- 回归分两级:提交前只跑受影响包,控制在两分钟内;发版前跑完整套件。
- 性能测试坚持先测出干净基线,再分阶段递增压力、定位瓶颈。
- 可靠性不靠拍胸脯,靠故障注入验证:杀实例、注入超时和延迟,看熔断重试是否真生效。
- 缺陷按致命、严重、一般、提示四级管理,跟踪密度、检出率、逃逸率三个指标。
- 缺陷发现得越晚,修复成本越高——测试体系的意义就是把缺陷往左推。
哪些是真、哪些是固化取值
| 数据 | 来源 |
|---|---|
| 本页无实验数据 | 测试质量主题未建实验场,不编造没测过的具体数字 |
| 测试金字塔的检出率/耗时/成本 | 教学模拟(示意系数),非实测,不得写进论文 |
| 可用性 99.95%、MTTR 45→8 分钟 | 固化取值(essay-common.md 效果数据表,全页一致) |
| Recall@20 0.92、P95 380ms、缓存命中率 92% | 固化取值(同上;技术指标本可用实验场测真值,本题无实验场,仍沿用定稿) |
| 单实例宕机约 5 秒窗口近半失败 | 机制描述(与 demo1 端口耗尽实验的故障窗口同量级),不计入论文数字 |