最佳软件测试常见面试题及答案合集介绍

最佳软件测试常见面试题及答案合集介绍

文章图片
软件测试是指评估软件产品质量的过程。它是一个综合过程,构成了软件开发生命周期 (SDLC) 的一个组成部分。
由于软件开发的指数级增长和网络应用程序的出现,越来越多的人开始专注于学习软件测试。这使他们能够在软件测试领域担任有利可图的角色,从软件测试人员到测试主管和经理。
软件测试是一个综合领域,涉及多个概念、工具、方法、方法论等。进入软件测试或在相同领域取得进展需要对许多关于软件测试技术的概念有很好的了解。
软件测试面试题及答案合集以下是我们挑选的前 50 名软件测试面试问题和答案,它们将帮助你在软件测试中发挥作用,或者至少让你衡量迄今为止的准备和进度:
问题:什么是软件测试生命周期?答: 软件测试常见面试题有哪些:软件测试生命周期是指软件测试的系统过程。STLC 定义了整个事物,从开始到结束。它由几个称为阶段的子过程组成,它们是:
  • 需求收集
  • 需求分析
  • 测试计划
  • 测试用例开发
  • 环境设置
  • 测试执行
  • 测试周期结束
问题:请解释软件测试的各种策略。软件测试面试题解析:软件测试分为三种类型:
  1. 黑盒测试- 完全基于测试要求和规范。不需要任何知识:
    1. 内部路径,
    2. 代码结构,或
    3. 软件实现。
  2. 白盒测试- 需要高级编程技能。这种测试策略建立在内部路径、代码结构和软件实现之上。
  3. 灰盒测试- 这种软件测试策略介于黑盒和白盒测试策略之间。在这里,被测软件的内部细节鲜为人知。
问题:你能说出软件测试的各个级别吗?答:通常,软件测试从单元测试开始,最后是验收测试。遵循的层次结构是;   单元测试 -> 集成测试 -> 系统测试 -> 验收测试。
问题:Bug 生命周期是什么意思?回答:错误生命周期解释了软件错误或缺陷整个生命周期的各个阶段。它从检测错误开始,并在该错误关闭时进行总结,并确保它不会重现。它的各个阶段是:
  • 检测/新品
  • 已分配
  • 活动
    • 拒绝
    • 延期
  • 已测试
    • 重新打开(进入活动阶段)
  • 已验证
  • 关闭
Bug 生命周期,也称为缺陷生命周期,根据一系列因素而变化,最显着的是组织政策和使用的 SDLC 方法,例如敏捷或RAD。其他缺陷生命周期塑造因素包括项目时间表和团队结构。
问题:你能定义一个测试用例吗?答:软件测试面试题及答案合集 - 测试用例可以定义为一组特定的条件和/或变量,在这些条件和/或变量下,软件测试人员确定被测系统/软件是否正常工作并满足指定的要求。
问题:请比较功能和非功能形式的测试?答:以下是功能测试和非功能测试之间的重要区别:
  • 基于 - 功能测试基于客户要求,而非功能测试基于客户期望。
  • 定义 - 功能测试描述了软件产品的哪些方面。另一方面,非功能测试定义了软件应用程序的方面。
  • 执行顺序 - 非功能测试遵循功能测试。
问题:说明软件测试中确认和验证之间的区别。答:验证是一种动态分析技术,而验证是一种静态分析技术。我们执行代码失效,而验证时不执行代码。
检查、审查和演练是验证的示例,而功能和非功能测试则进行验证。
问题:请解释各类缺陷?答:以下是软件缺陷的三个主要类别:
  • 错误 - 与给定规格存在偏差时的结果。当需求执行不正确时,就会出现这种类型的缺陷。
  • 遗漏 - 当客户规格遗漏时发生,即未实施。当客户要求不明确但已实施时也可能发生。
  • 额外 - 由已实施但未由客户提供的要求引起。尽管这种类型的缺陷与客户规格存在差异,但最终用户可能需要它们。
问:准备验收计划需要什么?【最佳软件测试常见面试题及答案合集介绍】答:我们需要以下内容来制定验收计划:
  • 需求文档 - 指定客户的需求。
  • 客户意见 - 通过讨论、电子邮件等获得。
  • 项目计划 - 完成验收测试。
问题:请定义覆盖范围及其类型。答:覆盖率是指定源代码测试范围的参数。它有以下三种类型:
  1. 语句覆盖 - 确保源代码的每一行都被执行和测试。
  2. 决策覆盖 - 确保源代码的每个决策部分都得到执行和测试。
  3. 路径覆盖 - 确保源代码的每个可能的执行路径都被执行和测试。
问题:你能列举一些自动化测试的优点吗?软件测试面试题解析:采用自动化测试有几个好处。一些最值得注意的是:
  • 允许并行执行。
  • 使无人值守的执行成为可能。
  • 减少人为错误。
  • 节省金钱和时间。
  • 支持测试一个大的测试矩阵。
问题:使用 Selenium 有什么好处?答: 软件测试常见面试题有哪些:Selenium 是一种开源自动化测试工具,具有多项优势,包括:
  • 允许在 macOS、Linux 和 Windows 平台上进行测试。
  • 通过与 Docker、Jenkins 等集成,可以进行持续测试。
  • 广泛的 Web 浏览器支持,例如 Firefox、IE、Google Chrome 和 Safari。
  • 对其他工具(如 JUnit)的集成支持,用于测试用例管理和报告生成。
  • 没有许可费用。
  • 支持用于编写测试脚本的多种编程语言,例如 C#、Java、PHP 和 Python。
问题:列出 Selenium 的各个组件?答:  Selenium 的各种成分是:
  • Selenium Grid
  • Selenium IDE
  • Selenium Remote Control (RC)
  • Selenium WebDriver
查看50 个最好的 Selenium 面试问题。
问题:请定义 XPath。答:  XPath 代表 XML 路径。它用于查询 XML 文档。XPath 由与特定条件配对的路径表达式组成。可以利用 XPath 脚本或查询方便地定位网页元素。XPath 还生成可靠的定位器。
问题:你对绝对 XPath 和相对 XPath 了解多少?答:绝对 XPath 是访问网页元素的直接方式。另一方面,相对 XPath 从 HTML DOM 结构的中间开始。与绝对 XPath 不同,相对 XPath 以双正斜杠 // 开头。
问题:请解释环境现实和测试阶段之间的关系。答:环境现实的重要性随着软件测试的进展而增加。它在早期测试阶段较低,在最终测试阶段最高。
通常,在涉及单元测试的阶段,即最早的软件测试阶段,环境真实性只需要10%左右真实。然而,到验收测试阶段开始时,这几乎是 100% 真实的。
问题:在你看来,如果软件产品的成本在测试的初始阶段本来可以被删除,而后来被删除/修复,那么成本会怎样?回答:软件测试的右手经验法则是,缺陷被移除的越晚,移除它的成本就越高。消除缺陷的最佳阶段是需求和设计阶段。
逃离设计和需求阶段的缺陷可能会变成:
  • 在执行/开发阶段移除成本高 5 倍,
  • 在测试阶段移除时成本高 8 倍,
  • 在实施/部署阶段移除成本高 10 倍,以及
  • 在软件产品的维护阶段删除时成本高 20 倍。
问题:你能解释一下确认和回归测试吗?回答:
  • 回归测试- 关于检查代码更改对现有功能的影响的软件测试。
  • 确认测试- 这是关于是否正确处理较早遇到的缺陷的软件测试。
问题:请解释边界值分析。答案:  边界值分析,又名 BVA,属于黑盒测试设计技术。它用于检查输入域边界处是否存在错误/缺陷。
问题:你能定义随机测试吗?答:随机测试涉及生成和使用随机数据。这是通过使用工具和/或自动化来完成的。一旦生成随机输入数据,就会对其进行测试和观察。
问题:为什么我们先写黑盒测试用例而不是白盒测试用例?答:软件测试面试题及答案合集 - 通常首先编写黑盒测试用例,然后是白盒测试用例,这需要良好的架构清晰度。这在项目的早期阶段是不可用的;因此,不可能尽早编写白盒测试用例。
与白盒测试用例、黑盒测试用例、需求需求文档和设计/项目计划不同。这些在项目早期可用。因此,我们首先编写黑盒测试用例。
问题:请列出缺陷报告格式的各种基本组成部分?答:以下是缺陷报告格式的各种基本组成部分:
  • 检测到的缺陷。
  • 检测到缺陷。
  • 缺陷 ID 和名称。
  • 缺陷解决。
  • 缺陷已解决。
  • 模块名称。
  • 优先级和严重性状态。
  • 项目名。
  • 缺陷快照。
问题:我们可以自动化哪些测试用例?答:我们可以自动化以下测试用例:
  • 复杂的计算,
  • 数据驱动,
  • 非功能性,
  • 回归,和
  • Smoke。
问题:你能说出给出自动化测试效率的参数吗?答:我们可以使用以下方法来评估自动化测试的效率:
  • 缺陷检测率。
  • 执行时间处理时间。
  • 发布产品需要时间。
  • 人工成本降低的程度。
问题:你对探索性测试的理解是什么?答:探索性测试是指涉及较少计划和更多测试执行的软件测试方法。探索性测试的计划包括创建一个测试章程,该章程定义了:
  • 短时间盒装测试工作的范围,
  • 目标,以及
  • 测试方法。
在探索性测试中,测试设计和测试执行与测试齐头并进。这意味着几乎没有测试条件的文档。
问题:请解释溯源矩阵?答:软件测试利用了一份显示测试用例和测试需求之间关系的文档。这称为可追溯性矩阵。它实际上是一种用于黑盒测试的技术。
问题:测试矩阵与追溯矩阵有何不同?答:测试矩阵记录了通过所有软件测试阶段所需的实际质量、工作量、测试计划、资源和时间。相反,可追溯性矩阵专门与黑盒测试相关,用于将客户需求与测试用例进行映射。
问题:你对等价划分测试的理解是什么?答:等价划分测试方法减少了执行软件测试所需的时间。该技术涉及将应用程序输入测试数据划分为多个分区以导出测试用例。
问题:你能区分动态测试和静态测试吗?答:静态测试是使用软件文档完成的。在这种类型的测试中不执行代码。然而,动态测试需要代码执行。
问题:测试计划由什么组成?软件测试面试题解析:测试计划文件详细说明了交付优质产品的各种测试活动。它源自产品描述、SRS 或用例文档,并由测试主管或测试经理准备。测试计划详细说明以下内容:
  • 旨在测试的功能。
  • 不打算测试的功能。
  • 通过/失败标准。
  • 责任。
  • 测试范围。
  • 日程。
  • 软件风险和突发事件。
  • 软件测试方法。
  • 人员配备和培训需求。
  • 测试用例标识符。
  • 测试可交付成果。
  • 测试项目。
  • 测试方法和策略。
问题:你将如何解决测试过程中遇到的问题?回答:管理测试问题的重要方式有以下三种:
  • 控制 - 定义问题管理流程。
  • 记录 - 测试时发现的日志问题。
  • 报告 - 将发现的问题报告给上级。
问题:软件测试常见面试题有哪些?测试用例与测试脚本和测试场景有何不同?答:测试用例是一个文档,它指定了执行软件测试时要遵循的步骤。另一方面,测试场景是指需要测试的功能。它有时也称为测试条件或测试可能性。
与测试用例不同,测试脚本是一个简短的程序或实际代码,可帮助测试软件产品或其用于测试的部分功能。
问题:请解释一个潜在的缺陷?答:潜在缺陷是一种缺陷,虽然存在于系统中,但不会导致软件产品出现故障或问题。在完全满足其所有条件之前,缺陷将保持潜在状态。
问题:我们用来衡量测试执行质量的参数是什么?答:有两个参数可以为我们提供有关测试执行质量的一些信息。这些是:
  • 缺陷拒绝率 - 与被拒绝的缺陷总数与提出的缺陷总数之比有关。
  • 缺陷泄漏率——这是指软件中遗漏的缺陷总数与缺陷总数之比。
问题:你对软件测试工具 Phantom 了解多少?答:  Phantom 用于 Windows GUI 自动化脚本语言。它是一个免费软件,允许用户自动控制 Windows 及其功能。Phantom 可以模拟击键、鼠标点击、菜单、列表等的任意组合。
问题:请解释测试可交付成果。答:测试可交付成果是指为支持测试而必须生成和维护的一组文档、工具等。SDLC 的每个阶段对应于不同的测试可交付成果。
问题:突变测试的目的是什么?答:变异测试旨在检查一组测试用例或测试数据的有用性。这是通过有意更改代码、引入错误来完成的。然后,原始测试用例/数据经过重新测试以进行错误检测。
问题:在选择自动化测试工具之前,你应该考虑哪些事项?答:软件测试面试题及答案合集 - 在执行自动化测试之前,你需要考虑很多因素。这些是:
  • 应用稳定性。
  • 跨环境执行。
  • 复杂程度。
  • 自动化测试脚本的可重用性。
  • 应用程序的大小。
  • 技术可行性。
  • 测试数据。
问题:请提及进行风险分析的步骤?回答:
  1. 找到分数。
  2. 准备个人资料。
  3. 更改风险属性。
  4. 部署资源。
  5. 做一个数据库。
问题:你能解释一下调试的各种类别吗?答:以下是各种调试类别:
  • 蛮力。
  • 回溯。
  • 引起消除。
  • 无故障分析。
  • 程序切片。
问题:请解释配置管理。答:配置管理或 CM 是一个系统工程过程。它旨在维护:
  • 计算机系统,
  • 服务器,
  • 系统资源,
  • 软件,以及
  • 产品性能。
配置管理记录对系统所做的所有更改,并确保尽管将来发生更改或修改,它仍按预期执行。通常,我们使用工具进行配置管理,例如 Ansible、Chef 和 Puppet。
问题:有效的软件质量保证 (SQA) 有哪些最佳实践?回答:重要的 SQA 最佳实践是:
  • 连续的提高。
  • 文档。
  • 经验丰富的 SQA 审核员的参与。
  • 利用工具。
  • 指标的使用。
问题:质量保证 (QA) 和质量控制 (QC) 之间有什么区别?答:质量保证可确保预防软件制作中的缺陷。它涉及面向过程的活动。另一方面,质量控制是指执行软件应用程序或代码以识别其中的缺陷。它涉及以产品为导向的活动。
问题:你能解释一下测试闭包吗?答:测试结束是指在测试过程正式完成之前准备的注释。它包含的总数:
  • 发现缺陷,
  • 缺陷已修复,
  • 缺陷未修复,
  • 测试用例,
  • 执行的测试用例,
  • 被拒绝的错误等。
问题:解释与测试关闭活动相关的各种任务。答:所有测试关闭活动可以分为 4 个主要类别:
  1. 测试完成检查- 确保应运行或有意跳过所有测试。所有已知的缺陷都应该被修复或推迟到未来的某个版本中,或者被接受为永久限制。
  2. 测试工件移交- 确保将测试用例和测试环境移交给指定执行维护测试的人员。它还确保已知的缺陷,无论是被接受的还是被推迟的,都必须被很好地记录下来并传递给那些打算使用和支持系统使用的人。
  3. 经验教训- 分析测试以了解未来版本所需的更改。确保保持良好做法并放弃不良做法。
  4. 更新配置管理系统- 在配置管理系统中归档日志、报告、结果等。
问题:你如何理解农药悖论?答:当重复相同的软件测试用例时,有时会不会再产生新的错误。这被称为农药悖论。为了克服它,需要定期审查和更新测试用例。
问题:软件测试常见面试题有哪些:你能解释一下决策表测试吗?软件测试面试题解析:这种类型的测试用于具有输入之间逻辑关系的功能。在这里,我们有不同的输入组合。在决策表测试术语中,输入称为条件,输出称为操作。决策表也称为因果表。
问题:你对工作台概念的理解是什么?回答:工作台概念是规划如何执行特定活动的有效方法。每个工作台都有以下五个与之相关的任务:
  1. 输入
  2. 执行
  3. 查看
  4. 产量
  5. 重工
问题:请解释缺陷级联。答:缺陷级联是一种缺陷导致软件产品中产生其他缺陷的现象。当软件测试未能识别 STLC 特定阶段的缺陷时,就会发生这种情况。
问题:你能解释一下 LCSAJ 吗?答:  LCSAJ 的意思是 Linear Code Sequence And Jump。它由三部分组成:
  1. 可执行语句的线性序列的开始,
  2. 线性序列的结束,和
  3. 在线性序列结束后将控制流转移到的目标行。
软件测试面试题及答案合集总结这完成了我们最好的 50 个软件测试面试问题列表。我希望你发现它对推进你的软件测试事业有所帮助。如果你对软件测试感兴趣,那么你可能还想查看软件测试课程和认证。你可能想在此处查看手动测试面试问题。
哪些问题对你来说最难?通过评论告诉我们。祝一切顺利!

    推荐阅读