40 个 QA(质量保证)面试问题和答案
应届生质量保证面试问题及答案
1) 质量保证 (QA) 和软件测试有什么区别?
质量保证 (QA) 的作用是监控用于生产软件的“过程”的质量。而软件测试是确保最终产品的功能符合用户要求的过程。
2) 什么是测试件 (Testware)?
测试件是设计和执行测试所需的测试工件,如测试用例、测试数据、测试计划。
3) 构建 (build) 和发布 (release) 有什么区别?
构建:它是开发团队提供给测试团队的可安装软件的一个编号。
发布:它是测试人员或开发人员交付给客户的可安装软件的一个编号。
4) SQA (软件质量保证) 团队在测试时面临的自动化挑战有哪些?
- 掌握自动化工具
- 自动化脚本的可重用性
- 测试用例对自动化的适应性
- 自动化复杂的测试用例。

5) 什么是缺陷泄漏 (bug leakage) 和缺陷发布 (bug release)?
缺陷发布是指在已知发布中存在缺陷的情况下,将软件或应用程序交付给测试团队。在此期间,缺陷的优先级和严重性较低,因为可以在最终交付之前消除缺陷。
缺陷泄漏是指最终用户或客户发现了缺陷,而测试团队在测试软件时未能检测到。
6) 什么是数据驱动测试 (data driven testing)?
数据驱动测试是一种自动化测试框架,它在被测应用程序 (AUT) 上测试不同的输入值。这些值直接从数据文件中读取。数据文件可以包括 CSV 文件、Excel 文件、数据池等等。
7) 解释缺陷生命周期 (Bug Cycle) 的步骤?
- 一旦测试人员发现缺陷,它将以“开放”状态分配给开发经理。
- 如果缺陷是有效缺陷,开发团队将修复它。
- 如果它不是有效缺陷,缺陷将被忽略并标记为“已拒绝”。
- 下一步将是检查它是否在范围内。如果缺陷不属于当前发布,则缺陷将被推迟。
- 如果缺陷或错误是早期提出的,则测试人员将分配“重复”状态。
- 当缺陷分配给开发人员修复时,它将获得“进行中”状态。
- 一旦缺陷修复,状态将变为“已修复”,最终如果通过最终测试,测试人员将给出“已关闭”状态。
8) 测试策略 (test strategy) 包括什么?
测试策略包括测试活动的介绍、资源、范围和时间表、测试工具、测试优先级、测试计划和要执行的测试类型。
9) 列出不同类型的软件测试?
- 单元测试
- 集成测试和回归测试
- 抖动测试 (Shakeout testing)
- 冒烟测试
- 功能测试
- 性能测试
- 白盒测试和黑盒测试
- Alpha 测试和 Beta 测试
- 负载测试和压力测试
- 系统测试
10) 什么是分支测试 (branch testing) 和边界测试 (boundary testing)?
对代码的所有分支进行一次测试称为分支测试。而侧重于软件极限条件的测试称为边界测试。
11) 测试计划和测试用例包含什么内容?
- 测试目标
- 测试范围
- 测试框架
- 环境
- 测试原因
- 入口和出口标准
- 可交付成果
- 风险因素
12) 什么是敏捷测试 (Agile testing),敏捷测试的重要性是什么?
敏捷测试是使用敏捷方法论进行的软件测试。这种测试的重要性在于,与正常的测试过程不同,这种测试不会等待开发团队首先完成编码然后再进行测试。编码和测试同时进行。它需要持续的客户互动。
经验丰富的质量保证面试问题及答案
13) 什么是测试用例 (Test case)?
测试用例是针对被测应用程序检查的特定条件。它包含测试步骤、前提条件、测试环境和输出的信息。
14) 自动化测试计划 (Automation Test Plan) 的策略是什么?
- 自动化测试计划的策略
- 自动化测试计划的准备
- 记录场景
- 错误处理程序的合并
- 通过插入检查点和循环结构来增强脚本
- 调试脚本并修复问题
- 重新运行脚本
- 报告结果
15) 什么是质量审计 (quality audit)?
为确定质量控制程序有效性而进行的系统性、独立检查称为质量审计。
16) 测试人员在测试时使用哪些工具?
- Selenium
- Firebug
- OpenSTA
- WinSCP
- YSlow for FireBug
- 适用于 Firebox 的 Web Developer toolbar
以上仅为示例工具。测试人员使用的工具可能因项目而异。
17) 解释压力测试 (stress testing)、负载测试 (load testing) 和容量测试 (volume testing)?
- 负载测试:在重但预期负载下测试应用程序称为负载测试。这里,负载指的是大量的用户、消息、请求、数据等。
- 压力测试:当施加在系统上的负载超出正常范围时,称为压力测试。
- 容量测试:检查系统是否能够处理所需数据量、用户请求等的过程称为容量测试。
18) 软件开发问题的五个常见解决方案是什么?
- 建立需求标准,软件需求应完整、清晰并得到各方同意
- 其次是现实的时间表,例如规划、设计、测试、修复缺陷和重新测试的时间
- 充分测试,在一个或多个模块开发完成后立即开始测试。
- 在设计阶段使用快速原型,以便客户更容易了解预期效果
- 使用群组通信工具
19) 什么是“用例 (USE case)”,它包括什么?
描述特定功能的用户操作和系统响应的文档称为用例。它包括修订历史、目录、事件流、封面页、特殊要求、前置条件和后置条件。
20) 什么是 CRUD 测试,如何测试 CRUD?
CRUD 代表创建 (Create)、读取 (Read)、更新 (Update) 和删除 (Delete)。CRUD 测试可以使用 SQL 语句完成。
21) 什么是线程测试 (thread testing)?
线程测试是一种自顶向下的测试,其中组件的渐进集成遵循需求的子集的实现,而不是通过逐级降低级别来集成组件。
3年经验的质量保证面试问题
22) 什么是配置管理 (configuration management)?
它是在项目生命周期中控制和记录任何更改的过程。发布控制、变更控制和版本控制是配置管理的重要方面。
23) 什么是即席测试 (Ad Hoc testing)?
这是一个测试阶段,测试人员通过随机尝试系统的功能来尝试破坏系统。它还可以包括负面测试。
24) 列出软件质量保证工程师的角色?
软件质量保证工程师的任务可能包括以下内容,但不限于:
- 编写源代码
- 软件设计
- 源代码控制
- 代码审查
- 变更管理
- 配置管理
- 软件集成
- 程序测试
- 发布管理流程
25) 解释什么是测试驱动程序 (test driver) 和测试存根 (test stub) 以及为什么需要它们?
- 存根是从要测试的软件组件调用的。它用于自顶向下方法。
- 驱动程序调用要测试的组件。它用于自底向上方法。
- 当我们只需要测试模块 X 和 Y 之间的接口而只开发了模块 X 时,就需要它。所以我们不能只测试模块 X,但是如果有任何虚拟模块,我们可以使用该虚拟模块来测试模块 X。
26) 解释什么是缺陷分类 (Bug triage)?
缺陷分类是一个过程,旨在:
- 确保缺陷报告的完整性
- 分配和分析缺陷
- 将缺陷分配给适当的缺陷所有者
- 正确调整缺陷严重性
- 设置适当的缺陷优先级
27) 列出在应用程序开发过程中支持测试所需的各种工具?
在应用程序开发过程中支持测试可以使用以下工具:
- 测试管理工具:JIRA、Quality Center 等。
- 缺陷管理工具:Test Director、Bugzilla
- 项目管理工具:Sharepoint
- 自动化工具:RFT、QTP 和 WinRunner
28) 什么是因果图 (cause effect graph)?
因果图是输入及其相关输出效果的图形表示,可用于设计测试用例。
29) 软件测试中的测试度量 (Test Metric) 是什么?它包含哪些信息?
在软件测试中,测试度量是指测试测量的标准。它们是描述测试结构或内容的统计数据。它包含以下信息:
- 总测试数
- 运行测试数
- 通过测试数
- 失败测试数
- 延迟测试数
- 首次通过测试数
30) 解释什么是可追溯性矩阵 (traceability matrix)?
测试矩阵用于将测试脚本映射到需求。
5年以上经验的质量保证面试问题
31) 解释回归测试 (Regression testing) 和重新测试 (Retesting) 有什么区别?
重新测试用于检查缺陷修复,而回归测试用于检查缺陷修复是否对其他功能有任何影响。
32) 列出软件开发周期中的软件质量实践?
软件质量实践包括:
- 在开始开发阶段之前审查需求
- 代码审查
- 编写全面的测试用例
- 基于会话的测试
- 基于风险的测试
- 根据使用情况确定缺陷优先级
- 组建专门的安全和性能测试团队
- 运行回归周期
- 在生产环境上执行健全性测试
- 在生产环境上模拟客户账户
- 包含软件质量保证测试报告
33) 解释“测试驱动开发 (Test Driven Development)”的规则是什么?
测试驱动开发的规则是在编写实际代码之前准备测试用例。这意味着您实际上将在编写应用程序代码之前编写测试代码。
34) 提及 SQA 中的文档类型?
SQA 中的文档类型有:
- 需求文档
- 测试指标
- 测试用例和测试计划
- 任务分配流程图
- 交易组合
- 用户画像
- 测试日志
- 测试事件报告
- 测试总结报告
35) 解释您的 QA 文档应该包括什么?
QA 测试文档应包括:
- 按严重级别列出的缺陷数量
- 详细解释每个需求或业务功能
- 检查报告
- 配置
- 测试计划和测试用例
- 缺陷报告
- 用户手册
- 为经理和用户准备单独的报告
36) 解释什么是 MR 以及 MR 包含哪些信息?
MR 代表修改请求 (Modification Request),也称为缺陷报告 (Defect report)。它用于报告软件中的错误/问题/建议。
37) 软件质量保证文档应该包含什么?
软件质量保证文档应包括:
- 规范
- 设计
- 业务规则
- 配置
- 代码更改
- 测试计划
- 测试用例
- 缺陷报告
- 用户手册等
38) 提及应如何进行验证活动?
验证活动应通过以下技术进行:
- 聘请第三方独立验证和确认
- 指派未参与验证和确认活动的内部员工
- 独立评估
我们已经涵盖了面向应届生的最重要的质量保证测试面试问题,以及面向经验丰富的质量保证工程师的质量保证测试面试问题,以帮助您准备即将到来的面试。这份详细的质量保证测试员面试问题指南将帮助您消除对质量保证工程师面试问题的疑虑,并帮助您成功通过面试。这些面试问题也将有助于您的口试。