85+ 软件测试面试问题和答案

以下是面向新手和专业人士的所有重要软件测试面试问题的列表。借助本软件测试面试指南,获得您梦寐以求的软件测试工作。

 

面向应届毕业生的软件测试面试问题

1)什么是集成测试?

集成测试是一种将各个应用程序组件组合在一起并进行测试的软件测试方法。它通常在单元测试和功能测试之后进行。


2)什么是随机测试?

随机测试,也称为临时测试,是一种不遵循与应用程序相关的任何测试用例或要求的方法。在许多情况下,这是一种计划外的活动,其中随机检查任何应用程序部分以查找缺陷。


3)什么是 SDLC?

SDLC(软件开发生命周期)是开发软件的系统过程,旨在确保所构建软件的质量和正确性。它是软件开发生命周期过程的简称,旨在生产出满足客户期望的高质量软件。

开发应在预定的时间框架和成本内完成。此生命周期包含一个详细计划,该计划解释了如何规划、构建和维护特定软件。


4)什么是数据驱动测试?

数据驱动测试是使用数据源(如 XML 文件、电子表格、 Microsoft Excel 和 SQL 数据库。

为了生成输出,您可以使用这些数据源作为输入值。之后,比较其结果以验证系统或软件。

数据驱动测试


5)编写测试用例的最佳实践是什么?

从最终用户的角度编写测试用例:

  • 简单易行地编写测试步骤,以便任何人都可以轻松遵循
  • 使测试用例可重复使用
  • 设置给定优先级
  • 您应该描述测试用例、测试数据、预期结果、前提条件和后置条件。
  • 除了有效的测试用例之外,还编写无效的测试用例
  • 遵循所有正确的命名约定
  • Rev查看测试用例并在必要时进行更新。

6)什么是边界值分析?

它是一种软件测试技术,用于分析等价类分区的边界值。此测试方法可帮助您识别边界处的错误,而不是范围值内的错误。


7)哪些是重要的测试指标?

以下是一些重要的测试指标:

  • 已修复错误的总数。
  • 发现的缺陷数量及其严重程度的顺序。
  • 由源代码错误、配置或外部环境因素引起的问题总数
  • 随时间变化的错误修复率
  • Numbers 在发布之前解决未解决的错误。
  • 用户报告的故障与测试人员发现的错误。

8)哪些参数有助于检查测试执行的质量?

检查测试执行质量的两个最重要的参数是:

  • 缺陷拒收率是拒收总量与产量总量的比率。
  • 缺陷泄漏率是总拒收量与总产量之比。

9) 测试有哪些不同的级别?

  • 四种测试级别为:单元测试、组件测试、程序测试、模块测试
  • 整合测试
  • 系统测试
  • 验收测试

10)什么是 Bug/缺陷生命周期?

Bug 生命周期也称为缺陷生命周期。在软件开发过程中,每个 Bug 都有生命周期。Bug 需要经历生命周期才能被关闭。Bug 的生命周期取决于所使用的工具(QC、JIRA 等)和组织流程。

Bug/缺陷生命周期


11)什么是配置管理?

配置管理 是一种用于建立和维护产品物理、性能、功能、设计和操作信息一致性的测试方法。它还能为您的组织带来成本效率和更好的时间管理。


12)缺陷报告格式的主要组成部分有哪些?

以下是缺陷报告格式的基本组成部分:

  • 项目名称
  • 模块名称
  • 检测到缺陷
  • 缺陷编号
  • 缺陷名称
  • 缺陷截图
  • 严重性和优先级状态
  • 缺陷已解决,并已解决

13) 两者之间有何区别 Selenium 还有西库利?

以下是两者之间的一些基本区别 Selenium 和 Sikuli:

Selenium 西库利
您无法自动化诸如视频播放器、音频播放器等 Flash 对象。 它为自动化 Flash 对象提供了广泛的支持
它有复杂的API 它有一个简单的 API
它可以仅自动化 Web 应用程序 您可以自动化网络和 Windows 应用程序。

14)Web测试安全问题有哪些类型?

  • 拒绝服务 (DOS) 攻击
  • 查看其他统计数据
  • Buffer 溢出
  • 通过浏览器地址直接传递内部 URL

15)什么是 TestNG?

TestNG 是一个先进的框架,其设计方式充分利用了开发人员和软件测试人员的优势。该程序还包括一个异常处理机制,可防止程序意外终止。


16)什么是缺陷级联?

缺陷级联是一种在测试期间发现一个缺陷时触发应用程序中其他缺陷的方法。由于在软件开发的后期阶段会出现多个缺陷,因此它还会引发其他应用程序缺陷。


17)什么是工作台概念?

工作台是一份说明如何完成活动的文档。它也被称为步骤、阶段或任务。它充当开发和监控测试人员工作结构的平台。使用初始数据,您可以使用此方法将任务划分为各个阶段并达到客户的期望。

工作台有五项任务:

  • 输入
  • 执行
  • 确保
  • 生产产量
  • 返修

18)向最终用户推出的不同策略有哪些?

推广过程中需遵循的策略如下:

1) 试点, 2) 逐步实施, 3) 分阶段实施,以及 4) 并行实现


19)什么是测试平台?

测试平台是用于支持测试过程的软件、硬件和其他测试项目。测试平台的主要目标是控制和监控测试条件。测试平台包括手动软件测试方法中的几种工具和技术。例如 PHP、WordPress 或 Joomla 等框架以及数据库等 PostgreSQL or MySQL.


20)什么是语句覆盖?请举例解释。

语句覆盖率是一种白盒测试方法,其中源代码中的所有可执行语句至少执行一次。此代码覆盖率方法计算源代码中已执行的语句数。

让我们看看如何计算语句覆盖率。

计算给定源代码的语句覆盖率。

示例:

Prints (int a, int b) {                       ------------  Printsum is a function
int result = a+ b;
If (result> 0)
  Print ("Positive", result)
Else
  Print ("Negative", result)
}                                        -----------   End of the source code

经验丰富的软件测试面试问题和答案

21)什么是隐蔽缺陷?

潜在缺陷是指使用一些特殊操作集来识别软件中隐藏的未被发现的缺陷。这些缺陷仅在软件测试触发特定事件时才会出现,从而掩盖其存在。


22)测试可交付成果是什么?

测试可交付成果包括为支持测试而维护和开发的工具、组件和文档。

以下是 SDLC(软件开发生命周期)不同测试阶段的测试可交付成果:

1)软件测试前 2)软件测试中 3)软件测试后


23)什么是突变测试?

突变测试的主要目的是验证一组测试数据或测试用例是否有用。它是通过故意添加多个代码更改(错误)并使用原始测试用例和数据重新测试来完成的。

突变测试


24)什么是 Gamma 测试?

Gamma 是一种测试方法,用于在软件准备发布时检查指定的需求。它主要在最终用户处进行。


25)什么是测试工具?

测试工具是一种测试流程,用于收集软件和测试信息以测试整个程序或单元。它在各种变化的条件下运行,例如压力、数据驱动以及监控其行为和输出。


26)什么是测试结束?

它是一份总结 SDLC(软件开发生命周期)期间进行的所有测试的文档。它对已删除的缺陷和发现的错误提供了详细的分析。

Test Clouse 还包含实验的总数、执行的实验总数、未解决的错误总数、拒绝的错误总数等。


27)什么是模糊测试?

模糊测试是一种用于检测软件编码错误和安全漏洞的测试方法。在 模糊测试 方法就是将随机数据添加到系统中,使系统崩溃。如果漏洞仍然存在,则使用一种称为模糊测试器的工具来确定潜在原因。


28)端到端测试是什么意思?

端到端测试是一种测试应用程序的方法,可帮助您确保应用程序是否按预期运行。该方法应该用于从头到尾测试应用程序流程。

这种测试方法旨在检查整个系统的流程。它还确认不同系统组件和系统之间保持了数据完整性。


29)什么是动态软件测试?

与静态测试相比,动态软件测试在执行时测试软件。软件测试人员在测试环境中运行软件,执行所有步骤,输入输入,并验证实际输出与可能结果。


30) 什么是跨浏览器测试?你会使用什么工具?

Web 应用程序可以在 Chrome、Mozilla 等各种浏览器中运行 Firefox, Microsoft Edge、Safari 等。所有这些浏览器在实施 Web 标准时的工作方式基本相同。跨浏览器测试可帮助您检查您的网站或应用在使用不同的浏览器-操作系统组合时是否按预期运行。


31)什么是回归和确认测试?

以下是两种重要的测试方法:

  • 迭代测试 确认最近的代码更改不会影响现有功能。
  • 确认测试: 当测试因缺陷而失败时,就会报告缺陷。之后,提交修复缺陷的新软件版本。这称为确认测试或重新测试。

32)如何在 TestNG?

您可以跳过特定的测试方法或代码;然后,您可以将测试注释中的“enabled”参数设置为 false。

@Test (enabled = false)

33)如何在 Selenium WebDriver?

  • 您可以使用 TakeScreenshot 功能来截取屏幕截图。
  • getScreenshotAs() 方法允许您保存该屏幕截图。

34)何时应使用 Selenium 网格?

- Selenium 格 允许您同时在多个平台和浏览器上执行测试脚本。这可以帮助您实现分布式测试执行,在不同环境下进行测试并显著节省执行时间。


35)什么是测试策略?

测试策略是一份高级文档,通常由项目经理制定。它描述了测试产品和实现目标的方法。它通常源自业务需求规范 (BRS)。


36)什么是修改请求?

客户在软件开发中使用修改请求来改变软件的现有功能。


37)什么是验证?

例如,验证是测量的过程。它有助于验证您是否正在相应地开发产品。这里涉及的活动是检查。


38)什么是灰色 Box 测试?

灰色框是白色的组合 Box 和黑色 Box 测试。参与此类测试的测试人员应该有权访问设计文档。这有助于在此过程中创建更好的测试用例。


39)什么是测试覆盖率?

测试覆盖率 被定义为软件测试中的一种指标,用于衡量一组测试所执行的测试量。它将包括收集有关执行测试套件时应执行的程序部分的信息。您还可以使用它来确定已执行了哪些条件语句分支。


40)什么是决策覆盖?

决策覆盖的示例:

Demo (int a) {
If (a> 5)
 a=a*3
 Print (a)
}

情景1:

a 的值为 2

决策覆盖

这里将执行黄色突出显示的代码,并检查决策 If (a>5) 的结果“否”。

决策覆盖率 = 50%

情景2:

a 的值为 6

决策覆盖

在此场景中,将执行以黄色突出显示的代码。此处检查了 If (a>5) 决策的“是”结果。

决策覆盖率 = 50%

测试用例 A 的值 输出 决策覆盖
1 2 2 50%
2 6 18 50%

3 年经验的软件测试面试问题和答案

41)健全性测试是什么意思?

健全性测试是在构建之后进行的,目的是检查健全性测试中需要修复的新功能/缺陷。其主要目标是检查完整的功能,这有助于您确定错误是否已修复,并测试已修复的错误对受测应用程序的影响。


42)什么是 TDD?

测试驱动开发 (TDD) 是一种由测试用例驱动的软件开发方法,可帮助您创建要实现的功能。测试用例采用 TDD 方法开发。


43)软件测试中的验证和确认是什么?

  • 验证: 这是一种静态分析技术。在这种方法中,测试是在不执行代码的情况下进行的。示例 Rev视图、检查和演练。
  • 验证: 这是一种动态分析方法,通过执行代码进行测试。功能和非功能测试技术的示例。

44)验证与核查有何不同?

企业验证 验证
它评估软件是否符合规范。 它评估规范是否满足客户的需求。
验证是一种静态测试。 验证是一种动态测试。
它不需要您执行代码。 它需要代码执行。

45)您可以根据什么来衡量自动化测试的成功?

基于自动化测试,可以映射以下标准:

  • 缺陷检测率
  • 自动化执行时间和产品发布时间的节省
  • 减少劳动力和其他成本

46)什么是测试策略?

测试策略是一份高级文档(静态文档),通常由项目经理制定。它是一份测试文档,记录了我们如何测试产品并实现目标。它主要源自业务需求规范。一份重要的文档(如测试计划)就是以这份文档为基础编写的。


47)什么是客户端验证?

客户端验证是在浏览器级别完成的,其中用户的输入在浏览器本身上进行验证,无需服务器的参与。


48)什么是上下文驱动测试?

上下文驱动测试是一种用于开发和调试计算机软件的软件测试方法,它考虑程序在现实世界中的使用方式。


49)软件测试的退出标准是什么?

退出标准是一组特定条件,用于指定应用程序的约定功能或状态以指示产品或流程的完成。


50)测试有哪些方法?

软件测试的三种方法是:

  • 黑盒测试: 黑盒测试技术完全基于需求和规范。此策略不需要了解内部路径、结构或被测试的软件。
  • 白盒测试 是一种基于内部路径、代码结构和被测试软件的测试方法。
  • 灰盒测试: 这是一种软件调试方法,软件测试人员对软件的内部工作原理知之甚少。

51)有哪些不同的覆盖技术?

覆盖技术有三种基本类型:

  • 声明范围: 这种方法有助于确保每一行源代码都已执行和测试。
  • 决策覆盖范围: 它确保源代码中的每个决策(真或假)都已执行和测试。
  • 路径覆盖: 验证是否已通过代码的给定部分测试了所有可能的路线。

52)什么是基线测试?

基线测试是一系列收集性能信息的测试。收集的信息还可用于根据结果进行更改,从而增强应用程序的性能和功能。在基线测试期间,将应用程序的性能与之前的性能进行比较。


53)什么是系统级测试?

测试整个计算机系统的所有模块称为系统级测试。此测试方法包括功能测试和结构测试。


54)什么是桶测试?

分桶测试又称为 A/B 测试,主要用于研究各种产品设计对网站指标的影响。这种测试方法会在单个或一组网页上同时运行两个版本,帮助您衡量点击率、界面和流量的差异。


5 年以上经验的软件测试面试问题和答案

55)什么是 N+1 测试?

回归测试的变化表示为 N+1。它以多个周期执行,其中在测试周期“N”中发现的错误在测试周期 N+1 中得到解决并重新测试。此过程持续到没有发现错误为止。


56)自下而上测试的含义是什么?

自下而上的测试方法是先测试最低级别的组件,然后测试较高级别的组件。重复进行,直到测试到层次结构顶部的组件。


57)什么是基于风险的测试?

基于风险的测试是一种根据风险对测试进行优先排序来制定测试策略的方法。该方法的基础是详细的风险分析和风险优先排序。


58) 正式审查有哪些不同阶段?

正式审核流程包括六个步骤:

  1. 计划
  2. 开球
  3. 准备
  4. Rev观摩会
  5. 返修
  6. 后续

59)什么是半随机测试用例?

半随机测试用例是执行随机测试用例并进行等价性划分的测试用例。它还会消除冗余测试用例,从而产生一组半随机的测试。


60)什么是 API 测试?

API测试 检查软件正在使用的 API 的运行情况。作为软件测试员,您必须编写代码,向提供 API 和所需输入的服务器发出 API 请求。它收集响应的输出并将实际输出与预期输出进行匹配。


61)什么是验收测试?

验收测试是由最终用户或客户执行的一种测试。它在将软件应用程序移至生产环境之前验证或接受软件系统。


60)什么是全球化测试?

全球化是一种软件测试方法,设计一个软件应用程序,使其无需进行任何更改即可适应多种语言和地区。


61)什么是 GUI 测试?

GUI 或图形用户界面测试根据提供的要求/HTML 设计/模型等测试软件的用户界面。


62)软件测试中的 RTM 是什么?

RTM 是需求跟踪矩阵 (Requirement Traceability Matrix) 的简称,是帮助测试人员在收到需求文档后,跟踪测试过程中需求覆盖范围的工具。它根据需求进行开发,并一直维护到特定软件系统或应用程序发布。

软件测试中的RTM


63)什么是负载测试?

负载测试是一种性能测试方法,其中应用程序在多个负载级别上执行。您可以监控服务器的峰值性能、响应时间等。在并行系统负载下,此方法允许您测量应用程序的稳定性、性能和完整性。


64)SDLC 和 STLC 有什么区别?

SDLC和STLC之间的区别

以下是 SDLC 和 STLC 之间的一些区别

软件开发生命周期 STLC
SDLC生命周期的目标是完成软件的成功开发,包括测试和其他阶段。 STLC 阶段的唯一目标是测试。
在 SDLC 中,BA(业务分析师)收集需求并创建开发计划 在 STLC 中,QA 团队分析需求以创建测试计划并进行功能性和非功能性文档。
在此生命周期中,开发团队创建高级和低级设计计划 在此生命周期中,测试分析师创建集成测试计划
实际代码已开发完毕,实际工作按照设计文档进行。 软件测试团队准备测试环境并执行

65)什么是安装测试?

安装测试是检查我们是否可以按照安装文档中给出的指南成功安装软件。


66)什么是接口测试?

接口测试检查各个模块是否按照给定的规范正确通信。它主要用于测试GUI应用程序的用户界面。


67)什么是Bing Bang模型?

大爆炸模型专注于软件开发和编码资源,几乎无需规划。在这种模型中,需求一出现就会被理解和实现。这种软件模型最适合开发团队较小的小型项目。


68)在哪些常见场景中自动化测试比手动测试更好?

您可以在以下情况下选择自动测试而非手动测试:

  • 您必须长时间反复测试用例。
  • 有必要执行回归、性能和负载测试。
  • 您想记录测试过程。
  • 当你只有很少的时间来完成测试阶段时
  • 您正在标准运行时环境中执行测试
  • 当产品有多次快速部署时,手动测试会变得非常耗时且多余。

69)什么是客户端-服务器测试?

客户端-服务器应用程序是指应用程序本身安装在服务器上,而应用程序 EXE 文件则加载到所有客户端计算机上。此环境广泛用于 Intranet 网络。


70)什么是单元测试?

单元测试是一种软件测试,用于测试软件的单个单元或组件。进行此类测试是为了检查源代码的模块是否正常工作。

单元测试


71)可用性测试在 Web 测试中扮演什么角色?

在 Web 测试中,可用性测试起着至关重要的作用。众所周知,可用性测试意味着确定最终用户如何在没有任何编程语言知识的情况下轻松访问应用程序。


72) 您可以根据什么来估算您的项目?

要估算任何项目,您需要考虑以下几点:

  • 将整个项目划分为小任务
  • 将每项任务分配给团队成员
  • 它可以帮助您估计完成每项任务所需的工作量
  • 验证估计

73)什么是严重错误?

严重错误意味着大量功能或重要系统组件已损坏,并且没有其他解决方法。

例如,由于某个模块中的错误阻碍了其他模块的测试,因此我们无法测试其他模块。影响客户业务的错误被视为严重错误。


74)什么是 Bug 泄漏?

测试团队在测试时漏掉了一个 bug,而版本已发布到生产环境。如果最终用户或客户发现了该 bug(软件测试团队漏掉了该 bug),则称为 Bug 泄漏。


75)什么是错误种子?

这是一种在程序中添加已知错误的方法,可帮助您确定错误检测率。它有助于评估测试人员发现错误的技能。


76)软件测试中的 SPICE 是什么?

SPICE 是“软件过程改进和能力测定”的缩写。它是评估开发过程效率和效果的标准框架。


77)什么是对象存储库?

对象存储库是属于被测应用程序 (AUT) 的 Web 元素及其定位器的集合。QA 将所有元素定位器保存在一个单独的文件中,该文件称为属性文件 (.properties),位于 Selenium. 在执行阶段,它使您能够识别测试脚本和应用程序之间的对象。


78) 什么是 Bug 报告?

在软件测试过程中,软件测试人员记录他们的发现、观察、发现和其他对开发人员或管理层有用的信息。这些数据是测试记录的一部分,称为错误报告。

错误报告具有以下优点:

  • 了解问题
  • 重现此问题的步骤
  • 测试发生的环境和具体条件
  • 如果/以及当开发人员修复问题时的解决方案

79)软件测试中的错误猜测是什么意思?

错误猜测是一种类似于错误植入的测试用例设计方法。在这种测试方法中,测试人员通过猜测软件应用程序中可能出现的错误来设计测试用例。


80) 什么是 Showstopper 缺陷?

这是一个缺陷,它不允许用户在应用程序中进一步移动。这几乎就像崩溃一样。

例如,确保在一个软件应用程序中,即使您拥有有效的用户名和密码,登录按钮也不起作用;您无法继续操作,因为您的登录按钮不起作用。


81)什么是漏洞赏金?

漏洞赏金计划可以帮助组织奖励那些发现并报告其软件错误的人。这个概念存在已久。互联网诞生之初。

许多公司开始意识到,每次想要搜索系统或应用程序中的漏洞时,聘请专家进行渗透测试的成本是多么高昂。


82)什么是状态转换?

状态转换测试可帮助您从需要测试不同系统转换的应用程序中获取测试用例。当应用程序根据先前状态发生的情况为同一输入提供不同的输出时,我们可以应用此方法。


83)缺陷分类是什么意思?

缺陷分类 是一种帮助您根据风险、严重性和修复问题所需的时间等不同特征确定缺陷优先级的方法。涉及各种利益相关者,例如开发团队、测试团队、项目经理等。


84)缺陷去除效率是什么?

缺陷消除效率是一种测试指标,表明开发团队在产品发布之前修复错误和问题的效率。它可以帮助您衡量缺陷与发现问题数量的比率。例如,如果在测试期间发现了 100 个问题,其中 80 个已修复,则 DRE 为 100/80 = 1.25%。


85)什么是浸泡测试?

长时间以非常高的负载运行系统以识别性能问题称为浸泡测试。


86)什么是农药悖论?

在软件测试中,当重复测试用例没有发现新错误时,就会发生“杀虫剂悖论”。您可以克服这种“杀虫剂悖论”,因为定期检查测试用例并添加或更新它们以发现更多缺陷是必不可少的。