Raina-软件测试指南
AI测试学习圈
面试题
关于作者
小红书
B站
AI测试学习圈
面试题
关于作者
小红书
B站
  • 面试题

    • 面试题导航
    • 01-测试基础理论面试题
    • 02-测试用例设计面试题
    • 03-功能测试面试题
    • 04-性能测试面试题
    • 05-自动化测试面试题
    • 06-接口测试面试题
    • 07-移动端测试面试题
    • 08-安全测试面试题
    • 09-测试管理面试题
    • 10-测试工具面试题
    • 11-敏捷测试面试题
    • 12-数据库测试面试题
    • 13-兼容性测试面试题
    • 14-测试环境管理面试题
    • 15-测试文档面试题
    • 16-测试编程语言面试题
    • 17-测试最佳实践面试题
    • 18-项目实战面试题
    • 19-AI测试基础与AI辅助测试面试题
    • 20-大模型LLM应用测试面试题
    • 21-AI Agent与AIGC评估面试题
    • 22-机器学习模型与AI安全测试面试题
    • 23-AI Agent协议与扩展机制测试面试题
    • 24-电商交易系统测试面试题
    • 25-IM即时通讯系统测试面试题
    • 26-支付与金融系统测试面试题

测试用例设计面试题

本文档共 41 道测试用例设计面试题,覆盖等价类、边界值、判定表、因果图、正交实验、场景法与错误推测等常用设计方法。正文在叙述为主的前提下,按需补充步骤、术语与表格示例,便于面试作答与对照需求。


一、等价类划分法(10题)

Q1: 什么是等价类划分法?等价类划分的原理是什么?

答案:

等价类划分是把输入(或输出)域划分为若干子集:同一子集内各取值对暴露缺陷的能力被视作等价,故只需从每类中选代表值测试,从而降低用例数。原理基于「同类错误」假设:若某值能触发某类错误,同类中其它值往往也能触发同类错误,因此不必对域内每一点穷举。

  • 有效等价类:满足规格、应被系统接受的输入集合。
  • 无效等价类:不满足规格、应被拒绝或提示的输入集合。

例:年龄 18–60 的整数。

有效类:闭区间内的整数。

无效类:小于 18、大于 60 的整数、非整数、非数字、空、前后空格未 trim 等(以后两项是否算无效要看需求是否写明)。

Q2: 如何划分等价类?等价类划分的步骤是什么?

答案:

  1. 分析需求:列出输入项、取值类型、范围、格式、是否必填、与其它字段的依赖。
  2. 对每一项划分有效类:合法格式、合法范围、典型业务值(可拆多类,如用户名「纯字母 / 纯数字 / 混合」)。
  3. 划分无效类:下溢、上溢、类型错误、非法字符、空、超长、业务禁止值等。
  4. 为每类选代表值;保证每类至少一条用例,无效类通常多于有效类。
  5. 合并冗余、检查遗漏;多字段时再进入组合策略(见 Q8)。

用户名 6–20 位仅字母数字:有效类可含「边界长度 6 / 20」「中间长度」「字母」「数字」「混合」;无效类含长度 5、21、含 @、空串等。

Q3: 等价类划分法适用于哪些场景?

答案:

特别适合:表单与接口参数校验、数值与枚举、字符串格式与长度、上传文件类型/大小、搜索词与筛选、配置项合法值、权限开关合法组合等。

不适合单独硬扛:强耦合多字段且无归类规则、需穷举的状态机路径、或规则未写清无法划界的情形——应配合判定表、场景法或探索测试。

Q4: 等价类划分法的优缺点是什么?

答案:

优点:系统化、用例规模可控、易评审、易与需求条目映射。

缺点:类内仍可能不等价(单代表漏测)、不天然覆盖多因素组合、划分依赖经验且不同人结果可能不同。实务上几乎总与边界值同用;多规则时交给判定表。

Q5: 等价类划分法与其他测试方法的区别是什么?

答案:

对比维度等价类划分边界值分析判定表因果图
关注点类内等价、选代表临界点及邻域多条件规则列因果与约束再转表
典型输出每类一条或少量用例min±1、max±1 等每列规则→用例判定表/用例集
关系与边界值互补钉在等价类边界上多条件布尔组合复杂约束时先于表

Q6: 如何用等价类划分法设计登录功能的测试用例?

答案:

分别对用户名字段、密码字段建立有效/无效类,再选组合:至少覆盖「双有效→成功」「单字段无效」「双无效」「空用户名」「空密码」「大小写是否敏感(若需求规定)」。密码若要求「必须含字母与数字」,则无效类需含「仅字母」「仅数字」。组合过多时优先全有效与各单字段无效,再按风险加交叉。

Q7: 等价类划分法中如何选择代表值?

答案:

有效类:常用典型业务值或区间内部值;不要把唯一代表只压在边界上(边界交给边界值法)。

无效类:选「能区分错误类型」的值,并在靠近合法边界处选一侧非法值(如年龄 17、61)。每类至少一个代表;若一类内风险不均(如「特殊字符」与「SQL 元字符」),可拆子类各选代表。

Q8: 如何处理多个输入条件的等价类划分?

答案:

步骤:① 各字段独立划类;② 选组合策略——全因子仅当字段少;③ 默认先保证「全有效」与「每次仅一个字段取无效代表、其余取有效中值」;④ 高风险双无效或业务强相关再加点;⑤ 规则若本质是「表驱动」,应转判定表而非继续堆等价类对。

Q9: 等价类划分法在自动化测试中如何应用?

答案:

用 CSV/JSON/YAML 或代码里的列表存放「类 → 代表值」,用参数化(pytest @pytest.mark.parametrize、JUnit @ParameterizedTest、TestNG @DataProvider 等)驱动同一套步骤。断言与日志里带上等价类标识(或参数化用例名)便于统计哪类仍失败。数据与脚本分离后,需求变更主要是改数据表。

import pytest

valid = ["user123", "test_user", "admin123"]
invalid = ["user", "a" * 21, "user@123", ""]

@pytest.mark.parametrize("username", valid)
def test_valid_login(username):
    assert login(username, "password123") is True

@pytest.mark.parametrize("username", invalid)
def test_invalid_login(username):
    assert login(username, "password123") is False

Q10: 等价类划分法的实际应用案例有哪些?

答案:

注册登录、订单金额与数量、优惠券类型、接口 query/body 合法枚举、批量导入列校验、分页参数合法页码与 pageSize、文件名与路径白名单等。凡是规格里出现「允许集合 / 禁止集合」的,都优先用等价类压域。


二、边界值分析法(10题)

Q11: 什么是边界值分析法?边界值分析的原理是什么?

答案:

边界值分析假定错误集中在输入域边界附近( off-by-one、比较符写错、未含端点等),故重点选取上界、下界及其相邻点。闭区间 [min, max] 常见取:min−1、min、min+1、max−1、max、max+1(具体是否测 min−1/max+1 取决于非法域是否有定义)。与等价类关系:等价类定「桶」,边界值钉「桶壁」。

Q12: 边界值分析法的测试点如何选择?

答案:

标量:下边界三元组、上边界三元组,外加 0、负数、空、极大值等(与类型相关)。有序集合:首个、末个、越界索引。字符串:空、单字符、最大允许长度、超长一字节。多变量:见 Q16。

Q13: 边界值分析法适用于哪些场景?

答案:

数值范围、数组/列表长度与索引、字符串最大长度、循环与重试次数、日期时间窗口、上传大小与条数上限、限流阈值等。边界模糊或连续物理量无离散规格时难用。多字段耦合时边界值不能替代组合设计;强规则宜配合判定表。

Q14: 边界值分析法的优缺点是什么?

答案:

优点:用例少、对边界类缺陷敏感、易执行。

缺点:不覆盖类中心逻辑错误、不覆盖多因素交互、依赖明确规格。宜与等价类、场景法并用。

Q15: 如何结合等价类划分和边界值分析?

答案:

先用等价类列出有效/无效桶,再对每个数值或长度桶在边界上取点;对非数值类无效桶仍用等价类代表。例:年龄 18–60 合法类内取 30;边界取 17–19 与 59–61,非法类另取非数字等。

Q16: 多变量边界值分析如何处理?

答案:

  • 单缺陷假设(常用):每次只让一个变量落在边界或越界,其它变量取正常中值;用例数约线性随变量数增长。
  • 全双边界 / 健壮性:每个变量取边界邻域的多个点,组合比单缺陷多。
  • 最坏情况:多变量同时取边界组合,用例爆炸,仅用于关键安全或核心交易路径。

两变量 x∈[1,10]、y∈[1,10]:单缺陷先固定 y=5 扫 x 的 0,1,2,9,10,11,再固定 x=5 扫 y。

Q17: 边界值分析在性能测试中的应用?

答案:

对「最大并发、最大连接池、队列深度、超时时间、批大小、磁盘或内存配额」等取规格上下界及略超界,观察降级、拒绝、排队与恢复。持续施压时可再叠时长边界(长跑泄漏)。

Q18: 边界值分析在安全测试中的应用?

答案:

输入长度 max+1、报文体最大嵌套深度、Token 最大有效期边界、会话数上限、口令最小长度下限、批量授权条数等;关注略超界是否仍被严格拒绝且无信息泄露。

Q19: 如何用边界值分析设计文件上传功能的测试用例?

答案:

大小限制 1–10 MB:取 1MB、10MB 及其 ± 小步长(如 ±100KB,视产品单位);0 字节、空路径、单像素极小文件;类型白名单 jpg/png/gif 各一例 + 明确拒绝的 pdf 等。文件名最大长度边界另测。

Q20: 边界值分析法的实际应用案例有哪些?

答案:

分页 page=1 与最大页、pageSize 最小与最大、批量删除条数上限、限流 QPS 阈值、缓存条数上限、定时任务 cron 边界日期等。


三、判定表法(10题)

Q21: 什么是判定表法?判定表的组成是什么?

答案:

判定表(决策表)把条件桩(有哪些条件)、条件项(各条件在规则列上的取值)、动作桩(可能动作)、动作项(该规则下是否执行,常用 X / −)列在一起;每一列是一条规则。二值条件 n 个时理论最多 2^n 列,化简用合并与无关项。

Q22: 如何构建判定表?判定表构建的步骤是什么?

答案:

  1. 列出条件与离散取值(先压成二值或少量枚举)。
  2. 列出全部动作。
  3. 生成规则列(二值为全组合,再删不可能列)。
  4. 按需求填动作项。
  5. 合并动作完全相同的列,引入「−」无关项。
  6. 每列(或合并列)对应测试用例。

登录二条件示例(用户名有效?密码有效?):

           | R1 | R2 | R3 | R4
用户名有效 | Y  | Y  | N  | N
密码有效   | Y  | N  | Y  | N
-----------+----+----+----+----
登录成功   | X  | -  | -  | -
提示错误   | -  | X  | X  | X

Q23: 判定表法适用于哪些场景?

答案:

多条件组合、规则可表化、动作可枚举:定价、折扣、权限、审批、开关矩阵、复杂 if-else。条件数大时先归类、分层或只保留高风险列,避免组合爆炸。

Q24: 如何简化判定表?

答案:

合并同动作列;删除业务/技术上不可能列;多值条件先等价类归并;用无关项吸收「不影响动作」的差异。简化后必须与产品/BA 走查一致,防止规则丢失。

Q25: 判定表法与因果图的区别是什么?

答案:

判定表是决策的终表;因果图处理原因–结果–约束,适合理清后再转判定表。约束多、原因多时先因果图再落表;两条件小规则可直接建表。

Q26: 如何用判定表法设计折扣计算功能的测试用例?

答案:

设三条件二值示例:是否 VIP、订单金额是否 ≥100、是否用券。动作:无折 / 九折 / 八折 / 七折(示例规则,以你业务为准)。先填满 8 列再按真实规则打 X,再合并同动作列。

           | C1 | C2 | C3 | C4 | C5 | C6 | C7 | C8
VIP        | N  | N  | N  | N  | Y  | Y  | Y  | Y
金额>=100  | N  | N  | Y  | Y  | N  | N  | Y  | Y
用券       | N  | Y  | N  | Y  | N  | Y  | N  | Y
-----------+----+----+----+----+----+----+----+----
无折扣     | X  |    |    |    |    |    |    |
9折        |    | X  | X  |    |    | X  |    |
8折        |    |    |    | X  |    |    | X  |
7折        |    |    |    |    |    |    |    | X

每列对应一条(或合并后一条)自动化数据行,断言实际折扣与列一致。

Q27: 判定表法在自动化测试中如何应用?

答案:

将每列抽为 {条件字典: 期望结果},参数化执行;表与需求 ID 关联便于追溯。规则变更时优先改表数据,脚本保持通用断言逻辑。

Q28: 判定表法的优缺点是什么?

答案:

优点:组合清晰、评审友好、易映射用例。

缺点:列随条件指数增长;不表达执行顺序与时间;维护大表成本高。

Q29: 如何处理判定表中的多值条件?

答案:

先合并为少数枚举入表;或拆成多个二值子条件(列会变多);或主表只保留主水平,细节水平用子用例/第二张表。与产品对齐「多值是否可归类」。

Q30: 判定表法的实际应用案例有哪些?

答案:

促销叠加、风控规则、路由与灰度、工作流守卫条件、多开关功能矩阵等。


四、因果图法(5题)

Q31: 什么是因果图法?因果图的原理是什么?

答案:

因果图用图表示原因(输入条件)与结果(输出或系统动作),中间用与或非等逻辑关系连接,再导出判定表或测试用例。适合「条件多、约束多、直接画表易乱」的需求分析阶段。

Q32: 因果图中的约束关系有哪些?

答案:

(记号因教材略有差异,面试能说清含义即可。)

  • E(异 / 互斥):至多一个为真,不能同时为真。
  • I(或 / 包容):至少一个为真,可多个为真。
  • O(唯一):必须恰好一个为真。
  • R(要求):若 a 为真则 b 必须为真(依赖)。

另有对结果的 M(强制)等扩展,按所用资料为准。约束用于删掉非法规则列,再转判定表。

Q33: 如何构建因果图?因果图构建的步骤是什么?

答案:

  1. 列出原因与结果。2. 画逻辑与约束。3. 将图转为布尔表达式或判定表。4. 删违反约束的列。5. 为剩余列设计用例。6. 评审与迭代。

Q34: 因果图法适用于哪些场景?

答案:

多条件有互斥、唯一、依赖;规格叙述绕;需与开发对齐 if-else 时。简单双条件可直接判定表,不必强上因果图。

Q35: 如何用因果图法设计文件删除功能的测试用例?

答案:

原因示例:有删除权限、已选中文件、文件未被占用、用户已确认。结果:删除成功、无权限提示、占用提示、取消无操作。约束如「未选中则确认无意义」可删列。转表后逐列写步骤与数据。


五、正交实验法(3题)

Q36: 什么是正交实验法?正交实验的原理是什么?

答案:

正交表用正交阵列安排因子水平,使任意两列(指定强度下)水平搭配均衡,用远少于全因子组合的用例数,仍能暴露大量交互缺陷。关键术语:因子(影响因素)、水平(因子取值)、表号(如 L9、L18)、强度(常为 2,表示两两搭配均衡程度依表而定)。表须从手册或工具选取,不能随意编。

Q37: 如何使用正交表设计测试用例?

答案:

  1. 列出因子及每因子水平数。2. 选列数 ≥ 因子数、水平数匹配的正交表(不足可合并因子或拆轮)。3. 将因子映射到列、水平映射到符号。4. 每行一条用例。5. 对结果做极差分析或对比测试找敏感因子。6. 对高风险组合额外补测(正交不保证覆盖业务上极小概率但极危险的角)。

Q38: 正交实验法的优缺点是什么?

答案:

优点:多因素时显著减用例、适合配置与兼容性矩阵。

缺点:选表与映射错误会漏交互;不代替主路径场景;需一定统计表基础。


六、场景法(2题)

Q39: 什么是场景法?场景法的原理是什么?

答案:

场景法基于用户目标与业务流程,把基本流(主成功路径)、备选流(分支成功或业务变体)、异常流(网络、超时、取消、并发冲突等)写成可执行故事,再映射用例。常与用例/用户故事 ID 绑定。原理:缺陷常出现在「跨模块、跨时序」的链路上,单点方法难覆盖。

Q40: 如何用场景法设计测试用例?

答案:

  1. 识别参与者与目标。2. 写基本流步骤与数据。3. 列出备选流(如密码错误重试次数用尽)。4. 列出异常流(断网、服务超时、重复提交)。5. 每流写前置、步骤、数据、期望;数据层用等价类/边界填充。6. 与自动化分层:场景 E2E 少量、接口层可多。

七、错误推测法(1题)

Q41: 什么是错误推测法?错误推测的原理是什么?

答案:

基于经验与历史缺陷模式,主动设计「容易坏」的用例,补系统方法的盲区。常见检查点:空/null、零与负数、极大极小、特殊字符与编码、并发重复提交、幂等、断网重试、时钟跳变、资源打满、国际化与本地化边界等。团队可维护错误清单与探索会话章程,把推测变成可复用资产,而不是一次性灵感。


总结

等价类 + 边界值是日常最高频组合;多条件规则优先判定表,约束复杂先因果图再落表;多因子配置可用正交减维并人工补高风险格;发布前用场景法串链路;回归与探索用错误推测与历史缺陷库补洞。方法组合比单用一种更接近真实项目测试设计。

最近更新: 2026/5/12 03:06
Contributors: raina
Prev
01-测试基础理论面试题
Next
03-功能测试面试题