第3章:系统测试基础高频面试问题
本章聚焦黑盒/白盒测试方法、等价类边界值、测试用例设计三大核心。掌握结构化回答框架,让面试官看到你的理论扎实与工程思维。
- 黑盒/白盒概念、区别、常用技术(等价类、边界值、判定表、语句覆盖等)
- 等价类划分与边界值分析的设计规则
- 测试用例设计:完整度、优先级、可复用性
📇 面试问答卡片
基础理论掌握程度;能否用工程语言区分两种方法;是否理解各自适用阶段和局限性。
① 各自定义:黑盒(功能/数据驱动,不关注代码) / 白盒(结构/逻辑驱动,关注内部路径)
② 典型技术:黑盒→等价类、边界值、判定表;白盒→语句覆盖、分支覆盖、路径覆盖
③ 核心区别:测试依据(需求 vs 代码)、覆盖粒度(功能 vs 语句)、适用阶段(系统测试 vs 单元测试)
④ 一句话总结:两者互补,高质量项目通常结合使用。
黑盒测试关注功能,不涉及代码实现,常用技术有等价类、边界值、判定表;白盒测试基于代码结构,常用语句覆盖、分支覆盖。两者最大区别在于测试依据:黑盒用需求规格,白盒用源代码。实际项目中,系统测试以黑盒为主,单元测试多用白盒,两者结合才能保证质量。
- 你刚才提到语句覆盖,它和其他覆盖标准(分支覆盖、MC/DC)有什么区别?
- 在实际工作中,你如何选择用黑盒还是白盒?
- 灰盒测试是怎么回事?与黑白盒的关系?
不要只背定义,要结合例子(如“登录功能用黑盒测试,if-else分支用白盒测试”)。避免混淆白盒覆盖标准(语句覆盖是最弱要求,MC/DC最强)。
是否理解划分原则(有效/无效等价类);能否正确处理边界;设计用例时是否考虑覆盖和冗余。
① 等价类定义:将输入域划分为若干子集,每个子集中选取一个代表值测试
② 边界值原则:取上点、离点、内点(注意开闭区间)
③ 设计步骤:识别输入条件→划分等价类→确定边界→生成用例
④ 举例:年龄输入1~150,有效等价类[1-150],无效等价类<1、>150;边界值取1、0、2、150、151
以年龄输入范围1~150为例,等价类划分:有效类1~150,无效类<1和>150。边界值分析:上点1和150,离点0和151,内点2(或中间值)。设计测试用例:输入0(无效)、1(有效边界)、2(有效内点)、150(有效边界)、151(无效边界)。这样覆盖了边界及两侧,达到最高效率。
- 如果输入是枚举型(如性别:男/女),如何划分等价类?
- 多个输入条件组合时,等价类怎么处理?
- 边界值分析中,“离点”如何确定?是否受开闭区间影响?
避免只说概念不给例子,建议用熟悉的场景(如邮箱注册、订单金额)。注意区间开闭——若为[1,100],离点选0和101;若为(1,100),离点选1和100。
是否具备端到端测试思维;用例优先级管理;质量和覆盖的量化指标(功能覆盖、路径覆盖、等价类覆盖等)。
① 流程:需求分析→功能点提取→选择测试方法(等价类/场景/正交)→编写用例→评审→维护
② 质量保证:每条用例有明确预期结果、可操作步骤、可回归;使用正交表减少冗余
③ 覆盖率度量:功能覆盖(需求矩阵)、等价类覆盖(已覆盖/总数)、边界值覆盖
④ 优先级:P1(核心功能、正向流程)、P2(异常场景)、P3(边界、兼容)
我设计用例时先梳理需求点,形成功能列表。对每个功能点使用等价类+边界值覆盖正常和异常场景,对于流程性功能采用场景法(基本流+备选流)。用例评审时关注每例是否有明确预期,避免模糊描述。质量上,我习惯用覆盖率矩阵来检查是否漏测,同时用正交设计减少冗余用例。优先级上,P1必须通过,P2争取覆盖,P3视回归时间调整。
- 如何定量计算测试用例覆盖率?给个实际项目例子。
- 如果开发提测时间不够,你如何取舍用例优先级?
- 你用过哪些工具辅助设计用例?如Xmind、Excalidraw?
避免只说“按需求设计”这种空话,要具体到方法(等价类、场景法)。注意用例评审环节是区分初级和高级的关键点。不要遗漏“维护”环节——用例需要随需求变更定期更新。
📊 知识速查表:黑盒 vs 白盒
| 维度 | 黑盒测试 | 白盒测试 |
|---|---|---|
| 关注点 | 功能正确性、输入输出 | 代码逻辑、路径、条件 |
| 常用技术 | 等价类、边界值、判定表、正交试验、场景法 | 语句覆盖、分支覆盖、条件覆盖、路径覆盖、MC/DC |
| 适用阶段 | 系统测试、验收测试 | 单元测试、集成测试 |
| 优势 | 无需了解代码,用户视角 | 能发现隐藏逻辑错误 |
| 局限 | 无法覆盖代码内部 | 成本高,可能忽略功能缺失 |