针对应聘者的最重要的QA测试面试问题,以及针对经验丰富的QA工程师的面试问题,帮助即将到来的面试做好准备。
QA工程师的质量保证面试问答
- QA和软件测试有什么区别?
QA(质量保证)的作用是监控用于生产软件的“过程”的质量。而软件测试,就是确保最终产品的功能满足用户需求的过程。
- 什么是Testware?
Testware是设计和执行测试所需的测试工件,如测试用例、测试数据和测试计划。
- 构建和发布有什么不同?
内部版本:是由开发团队给测试团队的可安装软件。
版本:是由测试人员或开发人员交给客户的可安装软件。
- SQA(Software Quality Assurance) 团队在测试时面临哪些自动化挑战?
- 掌握自动化工具
- 自动化脚本的可重用性
- 测试用例对自动化的适应性
- 自动化复杂的测试用例。
- 什么是bug泄漏和bug发布?
Bug发布是指将软件或应用程序移交给测试团队,而他们知道发布中存在缺陷。在此期间,缺陷的优先级和严重性较低,因为可以在最终移交之前删除缺陷。
缺陷泄漏是指最终用户或客户发现缺陷,而测试团队在测试软件时没有检测到缺陷。
- 什么是数据驱动测试?
数据驱动测试(Data Driven Testing)是一个自动化测试框架,测试AUT上的不同输入值。数据文件可以包括CSV文件、EXCEL文件、数据池等。
- 说明Bug循环的步骤?
- 一旦测试人员识别出缺陷,就会将其分配给开发经理
- 如果缺陷是有效的,开发团队将修复它。
- 如果该缺陷不是有效的,则该缺陷将被忽略并标记为拒绝
- 下一步将检查是否在范围内。如果缺陷不是当前版本的一部分,则会推迟缺陷
- 如果缺陷较早提出,则测试人员将分配重复的状态
- 当将缺陷分配给开发人员进行修复时,将被赋予正在进行的状态
- 一旦缺陷被修复,状态将在结束时变为FIXED,如果通过最终测试,测试将给出关闭状态。
- 测试策略包括哪些内容?
测试策略包括测试活动的简介、资源、范围和时间表、测试工具、测试优先级、测试计划和必须执行的测试类型。
- 软件测试有哪些不同的类型?
- 单元测试
- 集成测试
- 回归测试
- 冒烟测试
- 功能测试
- 性能测试
- 白盒和黑盒测试
- Alpha和Beta测试
- 负载测试和压力测试
- 系统测试
- 什么是分支测试,什么是边界测试?
对代码的所有分支进行测试(只测试一次)称为分支测试。而专注于软件极限条件的测试称为边界测试。
- 测试计划和测试用例的内容是什么?
- 测试目标
- 测试范围
- 测试框架
- 环境问题
- 测试原因
- 进入和退出的标准
- 交付成果
- 风险因素
- 什么是敏捷测试,敏捷测试的重要性是什么?
敏捷测试是软件测试,是使用敏捷方法进行测试。此测试的重要性在于,与常规测试流程不同的是,此测试不会等待测试结果,而是需要持续的客户交互。
- 什么是测试用例?
测试用例是针对被测应用程序进行检查的特定条件。包含测试步骤、先决条件、测试环境和输出的信息。
- 自动化测试计划的策略是什么?
- 自动化测试计划的策略
- 自动化测试计划的编制
- 录制场景
- 缺陷处理程序合并
- 通过插入检查点和循环构造增强脚本
- 调试脚本并修复问题
- 重新运行脚本
- 报告结果
- 什么是质量审核?
为确定质量控制程序的有效性而进行的系统和独立的检查称为质量审核。
- 测试人员在测试时使用哪些工具?
- Selenium
- Firebug
- OpenSTA
- WinSCP
- FireBug的YSlow
- Firebox的Web Developer工具栏
以上只是示例工具。测试人员的工具可能会随着项目的不同而不同。
- 解释压力测试、负载测试和容量测试?
- 负载测试:在预期负载较重的情况下测试应用程序称为负载测试。这里的负载是指大量的用户、消息、请求、数据等。
- 压力测试:当系统上的负载升高或加速超过正常范围时,称为压力测试。
- 容量测试:检查系统是否能够处理所需的数据量、用户求等的过程称为容量测试。
- 软件开发问题的五种常见解决方案是什么?
- 建立需求标准,软件的需求应该是完整的、清晰的和所有人都同意的
- 下一件事是实际的时间表,比如计划、设计、测试、修复缺陷和重新测试的时间。
- 充分测试,在一个或多个模块开发后立即开始测试。
- 在设计阶段使用快速原型,这样客户就可以很容易地找到预期的结果
- 使用即时通信工具
- 什么是“USE”案例,包括什么?
描述特定功能的用户操作和系统响应的文档称为用例。包括修订历史、目录、活动流程、封面、特殊要求、前置条件和后置条件。
- 什么是CRUD测试,如何测试CRUD?
CRUD代表创建、读取、更新和删除。CRUD测试可以使用SQL语句来完成。
- 什么是线程测试?
线程测试是一种自上而下的测试,其中组件的渐进式集成遵循需求子集的实现,而不是通过连续较低的级别集成组件。
- 什么是配置管理?
是控制和记录在项目生命周期内所做的任何更改的过程。发布控制、变更控制和修订控制是配置管理的重要方面。
- 什么是随机测试?
这是一个测试阶段,测试人员试图通过随机尝试系统功能来破坏系统。它也可以包括阴性测试。
- 列出软件质量保证工程师的角色?
软件质量保证工程师的任务可能包括以下内容
- 编写源代码
- 软件设计
- 对源代码的控制
- 复查代码
- 变更管理
- 配置管理
- 软件集成
- 程序测试
- 发布管理流程
- 解释什么是测试驱动程序和测试存根,以及为什么需要它?
- 从要测试的软件组件调用存根。在自上而下的方法中使用
- 驱动程序调用要测试的组件。在自下而上的方法中使用
- 当需要测试模块X和Y之间的接口时,只开发了模块X。因此,不能只测试模块X,但是如果有任何虚拟模块,可以使用该虚拟模块来测试模块X
- 解释什么是缺陷分类?
缺陷分类是一个过程,可以
- 确保缺陷报告的完整性
- 分配并分析缺陷
- 将缺陷分配给正确的负责人
- 正确调整缺陷严重程度
- 设置适当的优先级
- 列出在应用程序开发期间支持测试所需的各种工具?
要在应用程序开发期间支持测试,可以使用以下工具
- 测试管理工具:JIRA、质量中心等。
- 缺陷管理工具:测试导向器、Bugzilla
- 项目管理工具:SharePoint
- 自动化工具:RFT、QTP和WinRunner
- 什么是因果图?
因果关系图是可用于设计测试用例的输入和相关输出效果的图形表示。
- 什么是软件测试中的测试度量?包含哪些信息?
在软件测试中,测试度量是指测试度量的标准。包含如下信息
- 总测试
- 试运行
- 测试通过
- 测试失败
- 测试推迟
- 测试首次通过
- 解释什么是可追溯性矩阵?
测试矩阵用于将测试脚本映射到需求。
- 解释回归测试和重新测试有什么不同?
执行重新测试以检查缺陷修复,同时执行回归测试以检查缺陷修复是否对其他功能有任何影响。
- 列出软件开发周期中的软件质量实践?
软件质量实践包括
- 在开始开发阶段之前检查需求
- 代码审查
- 编写全面的测试用例
- 基于会话的测试
- 基于风险的测试
- 根据使用情况确定缺陷优先级
- 组建专门的安全和性能测试团队
- 运行回归循环
- 对生产执行健全性测试
- 模拟生产中的客户帐户
- 软件QA测试报告
- 解释什么是“测试驱动开发”的规则?
测试驱动开发的规则是在编写实际代码之前准备测试用例。意味着实际上是在为应用程序编写代码之前为测试编写代码。
- SQA中的文档类型是什么?
SQA中的文档类型包括
- 需求文档
- 测试指标
- 测试用例和测试计划
- 任务分配流程图
- 用户配置文件
- 测试日志
- 测试事件报告
- 测试总结报告
- 解释QA文档应该包括哪些内容?
质量保证测试文档应包括
- 按严重程度列出检测到的缺陷数量
- 详细说明每个需求或业务功能
- 检验报告
- 配置
- 测试计划和测试用例
- 缺陷报告
- 用户手册
- 为经理和用户准备单独的报告
- 解释什么是MR,MR由哪些信息组成?
MR代表修改请求,也称为缺陷报告。是为报告软件中的缺陷/问题/建议而编写的。
- 软件QA文档应包括哪些内容?
软件QA文档应包括
- 规格说明
- 设计
- 业务规则
- 配置
- 代码更改
- 测试计划
- 测试用例
- 缺陷报告
- 用户手册等
- 应如何进行验证工作?
验证工作应通过以下技术进行
- 聘第三方独立验证和确认
- 指派未参与验证和验证活动的内部员工
- 独立评估