70 个热门功能测试面试问题与答案
以下是针对应届毕业生和有经验的求职者的功能测试面试问题及答案,助您获得理想工作。
应届毕业生的功能测试面试问题及答案
1) 什么是功能测试?
功能测试是一种软件测试方法,可帮助您根据功能需求/规范验证软件系统。
2) 功能测试的目的是什么?
功能测试的主要目的是通过提供适当的输入并根据功能需求验证输出来测试软件应用程序的每个功能。
3) 功能测试涵盖哪些类型的测试?
功能测试涉及黑盒测试,不关心应用程序的源代码。此测试检查用户界面、API、数据库、客户端/服务器通信以及测试中的各种其他应用程序功能。这种软件测试方法可以手动执行,也可以使用自动化执行。
4) 功能测试中您测试什么?
以下是使用功能测试的一些原因
- 主要功能:它测试应用程序的主要功能。
- 基本可用性:此方法涉及系统的基本可用性测试。它还检查用户是否可以自由导航屏幕而没有困难。
- 可访问性:它检查软件系统对用户而言的可访问性。
- 错误条件:您可以使用测试技术检查错误条件。它还检查是否显示了相关的错误消息。
5) 功能测试涵盖哪些重要步骤?
功能测试通过以下步骤完成
步骤1) 研究用户或组织指定的需求,然后清除所有疑问和问题。
步骤2) 根据指定的需求,设计测试用例,同时考虑到所有测试用例必须涵盖的所有测试场景。
步骤3) 识别检查系统功能所需的所有测试数据并确定输入。
步骤4) 根据输入值和功能确定预期输出。
步骤5) 在此之后,测试人员执行所有测试用例以检查它们是否正常运行。
步骤6) 将结果与预期输出进行比较,并确定系统的缺陷率和准确性。
6) 可追溯性矩阵有什么用?
可追溯性矩阵通过一个文档显示测试用例和需求之间的关系。
7) 功能测试和非功能测试有什么区别?
功能测试 | 非功能性测试 |
---|---|
功能测试在非功能测试之前执行。 | 非功能测试总是在功能测试之后执行。 |
它基于客户的需求。 | 它主要关注客户的期望。 |
它有助于验证应用程序的行为。 | 它有助于验证应用程序的性能。 |
它描述了产品的功能。 | 它描述了产品的工作方式。 |
8) 有哪些不同的测试级别?
有四个测试级别
- 集成测试:集成测试定义为一种软件测试方法,其中软件模块被逻辑集成并作为一个组进行测试。
- 系统测试: 系统测试是一种验证完整且完全集成的软件产品的测试级别。
- 验收测试: 验收测试 (UAT) 是一种由最终用户或客户执行的测试类型,用于在将软件应用程序移至生产环境之前验证/接受软件系统。
- 单元/组件/程序/模块测试:它用于测试测试中的所有组件和模块。
9) 验收测试有什么用?
验收测试确定软件系统是否已满足所需规范。这种测试的主要目的是评估系统对业务需求的符合性,并验证它是否已达到交付给最终用户所需的标准。
10) 什么是即席测试?
即席测试,也称为随机测试,是一种不遵循任何与应用程序相关的测试用例或需求的测试方法。在大多数情况下,它是一种无计划的活动,其中随机检查应用程序的任何部分以发现缺陷。
11) 等价划分是什么意思?
等价划分也称为等价类。它是一种将输入数据划分为数据类的黑盒测试。这种软件测试过程有助于您减少测试用例的数量,同时仍涵盖最大需求。
12) 什么是边界值分析?
这是一种分析等价类分区边界值的技术。这种测试技术有助于您在边界处而不是在值范围内识别错误。
13) 何时进行冒烟测试?
冒烟测试是在接收到构建后对系统执行的测试方法。这种测试方法检查关键路径而不是功能,以确保构建可以接受进一步测试,或者如果系统损坏则应拒绝。冒烟测试还检查系统的关键路径,没有它,应用程序就会被阻塞。
14) 为什么我们需要进行端到端测试?
端到端测试是一种允许您执行涵盖从头到尾测试应用程序所有可能流程的测试的方法。这种软件测试方法有助于您发现软件依赖项,并断言正确输入在不同软件模块和子系统之间传递。
15) 您对健全性测试有何理解?
健全性测试是在接收到构建后进行的,以检查需要修复的新功能/缺陷。在此类测试中,目标是检查功能,确定错误是否已修复,并测试已修复错误对测试中应用程序的影响。
16) 严重性和优先级有什么区别?
缺陷严重性是缺陷对被测应用程序影响的级别或程度。您应该记住,缺陷的严重性越高,它对应用程序的影响就越大。
17) 什么是 RTM?
需求可追溯性矩阵是 RTM 的全称。它是一种工具,可以帮助测试人员在测试过程中跟踪需求覆盖率。一旦收到需求文档。它根据需求创建并维护,直到特定系统或应用程序发布。
18) 什么是数据驱动测试?
数据驱动测试是一种著名的功能测试方法,其中测试脚本借助电子表格、Excel、CSV 文件、XML 文件和 SQL 数据库文件等数据源重复执行。您可以使用这些数据源作为输入值来生成输出。之后,将其结果与预期进行比较以验证系统或软件。
19) 什么是变异测试?
变异测试的目的是验证一组测试数据或测试用例是否有用。它通过故意添加各种代码更改(错误)并使用原始测试用例或数据重新测试来完成。
20) 为什么无法彻底测试程序?
以下是两个重要的原因,导致无法完全测试程序。
- 软件规范可能是主观的,并可能导致不同的解释。
- 有时程序可能需要大量的输入、输出和路径组合。
有经验者的功能测试面试问题及答案
21) 如果需求尚未冻结,您如何测试产品?
如果特定产品没有所需规范,则可以根据对产品所做的假设准备测试计划。
22) 编写测试用例时需要记住哪些重要事项?
以下是编写测试用例时应考虑的几个重要事项
- 在开始编写测试用例之前,您必须清楚地了解客户的需求。
- 您应该将每个需求都包含在测试用例中,并且不应遗漏任何内容。
- 所有功能和非功能需求都应包括 UI 界面,并且必须涵盖兼容性。
- 应持续评估测试用例,以避免任何重复或冗余。
- 优先级也是编写测试用例时应设置的非常重要的因素。
- 测试用例也可以在 Sprint 中构建,以便测试人员和开发人员帮助您根据测试用例执行情况分析产品质量。
- 测试用例的结构必须易于理解,并且必须用简单的语言编写。
23) 您一天可以执行多少个测试用例?
回答此类实时手动测试面试问题时要实际。这也取决于测试用例的复杂性和大小。有些测试用例有几个测试步骤,有些则更多。
一个示例答案应该是:“在我之前的项目中,我们通常每天执行 35-40 个简单测试用例,每天执行 15-17 个中等测试用例(如分配用户角色),每天执行 5-7 个复杂测试用例。
24) 什么是压力测试?
压力测试是一种性能测试方法,其中应用程序受到压力或承受力。例如,在突破阈值以上执行应用程序,以确定软件程序崩溃的点。
25) 什么是负载测试?
负载测试是一种性能测试方法,其中应用程序在各种负载级别下执行。它有助于您监控服务器的峰值性能、响应时间等。使用这种性能测试方法,您可以确定应用程序在并行系统负载下的稳定性、性能和完整性。
26) 什么是配置管理?
它是一种系统工程方法,用于建立和维护产品物理、性能、功能、设计和操作信息的一致性。它为您的组织带来成本效益和更好的时间管理。
27) 基于风险的测试中需要考虑哪些重要因素?
- 它使您能够识别何时以及如何在适当的应用程序上实施基于风险的测试。
- 您可以识别在查找和处理应用程序关键区域的风险时效果良好的措施。
28) 什么是非功能测试?
非功能测试是一种软件测试方法,用于检查软件应用程序的非功能方面,如性能、可用性和可靠性。它主要旨在根据非功能参数测试系统的准备情况,这些参数从未通过功能测试解决。
29) 自动化测试的主要优点是什么?
以下是自动化测试的优点
- 它支持重复测试用例的执行
- 它有助于测试大型测试矩阵
- 它允许并行执行并鼓励无人值守执行
点击此处了解更多关于自动化测试的信息。
30) 什么是覆盖率,以及不同的覆盖率技术有哪些?
有三种基本类型的覆盖率技术,它们是
- 语句覆盖:这种覆盖方法确保源代码的每一行都已执行和测试。
- 决策覆盖确保源代码中的每个决策(真/假)都已执行和测试。
- 路径覆盖:确保代码给定部分中的每个可能路径都已执行和测试。
31) 什么是缺陷报告?
软件测试人员在软件测试期间将其观察结果、事实发现和其他有用信息记录给开发人员。所有这些与测试记录相关的数据也称为缺陷报告。
详细的缺陷报告对于测试期间的生产至关重要。
- 它有助于您了解问题
- 发生问题的环境和具体条件
- 如果/当软件开发人员修复问题时的解决方案
32) 什么是 GUI 测试?
GUI 测试是图形用户界面测试,它测试软件和最终用户之间的界面。
33) API 测试设计的标准规则是什么?
以下是 API 测试设计的关键原则
- 设置:创建对象,启动服务,并初始化数据。
- 执行:应用 API 或场景,包括日志记录
- 验证:允许评估执行结果
- 报告: 显示状态,如通过、失败或阻塞状态
- 清理:测试前状态
34) 手动测试的优点是什么?
以下是使用手动测试方法的优点
- 与自动化测试相比,它是一种方法。
- 只能通过手动测试从最终用户的角度分析产品。
- 您可以借助手动测试更准确地进行 GUI 测试,因为视觉可访问性和偏好难以自动化。
- 对于刚进入测试领域的新手来说,手动测试很容易学习。
- 它适用于测试脚本不会重复和重用的短期项目。
- 它最适合项目处于早期开发阶段。
35) 什么是测试线束?
测试线束收集软件和测试信息,通过在不断变化的条件下(如压力、数据驱动)运行程序或单元来测试它,并监控其行为和输出。
36) 什么是测试结束?
测试结束是一份文档,它总结了在SDLC(软件开发生命周期)期间进行的所有测试,并提供了对已删除缺陷和发现错误的详细分析。
此文档还包含实验总数、已执行实验总数、发现的缺陷总数、未解决的缺陷数、已拒绝的缺陷总数等。
37) 功能测试中的严重缺陷是什么?
严重缺陷是指可能影响特定应用程序大部分功能的缺陷。它还意味着一大块功能或主要系统完全损坏,并且没有变通方法可以进一步。
38) 什么是基线测试?
基线测试是一系列用于收集性能信息的测试。收集到的信息还可以用于通过根据结果进行更改来增强应用程序的性能和功能。此测试方法将应用程序的当前性能与其之前的性能进行比较。
39) 什么是缺陷级联?
这是一种在测试时未发现任何缺陷时触发应用程序中其他缺陷的技术。它会引发其他应用程序缺陷,因为在开发的后期阶段会出现多个缺陷。
但是,如果缺陷级联影响应用程序中的其他功能,则识别受影响的功能将变得相当具有挑战性。您可以创建各种测试用例来解决此问题。
40) 说出缺陷报告格式的所有基本组成部分。
缺陷报告格式的基本组成部分包括
- 项目名称
- 模块名称
- 缺陷发现日期
- 缺陷 ID
- 缺陷名称
- 缺陷截图
- 严重性和优先级状态
- 缺陷解决者和解决日期
41) 什么是测试平台?
测试平台是用于支持测试过程的软件、硬件和其他测试项目。测试平台的主要目的是控制和监控测试条件。
它还提供执行测试的方法。在手动软件测试中,测试平台包括多种工具和技术。
示例包括 PHP、Perl 等编程语言,Joomla 或 WordPress 等框架,以及 PostgreSQL 或 MySQL 等数据库。
42) 什么是缺陷清除效率?
缺陷清除效率 (DRE) 是一种测试指标,表示开发团队在产品发布之前修复错误和问题的效率。它衡量缺陷与发现问题数量的比率。例如,如果在测试期间发现 80 个缺陷,其中修复了 60 个,则 DRE 将为 80/60 = 1.3%。
43) 缺陷发布和缺陷泄露有什么区别?
缺陷发布是指发布带有已知缺陷的特定软件版本。这些缺陷主要是低优先级或低严重性的,而缺陷泄露发生在最终客户发现软件测试未识别的缺陷时。
44) 什么是敏捷测试,为什么它很重要?
敏捷测试可帮助您从客户的角度评估软件。它不需要开发团队在开始质量审计过程之前完成编码。相反,测试和编码过程同时进行。但是,它可能需要持续的客户交互。
45) 当遇到缺陷时,您作为测试人员会怎么做?
发现缺陷后,我们需要在缺陷报告中锁定该缺陷。然后应将此缺陷分配并传达给可以修复它的开发人员。开发人员修复缺陷后,所有缺陷都必须重新测试,并且必须确定是否需要回归测试,以确保修复没有在其他任何地方造成问题。
46) 调试的不同类别有哪些?
调试的各种类别是
- 暴力调试
- 原因排除
- 程序切片
- 回溯
- 故障树分析
47) 什么是测试可交付成果?
测试可交付成果是一组用于支持测试的工具、文档和组件,它们被维护和开发。
以下是软件开发生命周期不同测试阶段的测试可交付成果
- 软件测试之前
- 软件测试期间
- 软件测试之后
48) 导致项目失败的常见风险有哪些?
以下是导致项目失败的常见风险
- 人力资源不足
- 测试环境可能没有正确设置的巨大风险
- 预算有限
49) 测试矩阵和可追溯性矩阵之间有什么显著差异?
以下是测试矩阵和可追溯性矩阵之间的显著差异
- 测试矩阵:测试矩阵可帮助您捕获实际质量、工作量、计划、资源以及捕获软件测试所有阶段所需的时间。
- 可追溯性矩阵:此矩阵涉及测试用例和客户需求之间的映射。
50) 什么是正向测试和负向测试?
我们可以说,正向测试是测试人员输入有效输入并期望根据规范完成某些操作,而负向测试是在您输入任何无效输入并收到错误时进行的。
5年以上经验的功能测试面试问题及答案
51) 什么是大爆炸方法?
大爆炸是一种广泛使用的集成测试策略,需要并行检查所有系统组件。这种测试方法的主要优点是测试人员可以检查整个系统及其组件的工作情况。
52) 故障的含义是什么?
故障是在执行所考虑的功能时导致软件执行失败的条件。
53) 功能测试中的缺陷泄露是什么?
缺陷泄露是指最终客户发现缺陷,而测试团队在测试软件时遗漏了该缺陷。
54) 什么是 TDD?
测试驱动开发是一种软件开发方法论。在这种方法中,软件的开发由为要实现的功能创建的测试用例驱动。在 TDD 方法中创建测试用例,并编写代码以通过测试。
55) 潜在缺陷和隐藏缺陷有什么区别?
潜在缺陷是当前版本中存在的未识别缺陷。但是,它不可见,因为从未满足发现缺陷的条件。这些缺陷仅在软件测试触发特定事件时发生,从而隐藏它们的存在。
56) 什么是随机/猴子测试?
随机测试方法也称为猴子测试。在此类测试中,数据是随机生成的,通常使用工具或自动化机制。您的系统将使用此随机生成的输入进行测试,并分析结果。
57) 什么是上下文驱动测试?
上下文驱动测试涉及根据项目上下文采用测试实践、方法和方法,有时还会对其进行定制。
58) 软件测试中的 PDCA 循环是什么?
PDCA 循环是软件开发中持续过程改进的重要关键。
它由以下 4 个步骤组成
- 计划:计划有助于实现客户满意度的目标、目的和举措。
- 执行:它将计划付诸实施。它有助于为客户提供更好的质量和满意度;拥有一个好的计划来执行至关重要。
- 检查:检查已实施计划的进度。结果还显示了规划的准确性。
- 行动:根据结果采取行动以进一步改进,帮助测试人员实现计划目标。
59) 软件测试中的进入标准是什么?
启动测试活动需要一套先决条件,包括测试环境、测试工具、测试数据等等。
60) 软件测试中的退出标准是什么?
退出标准是一组条件,指定应用程序的约定功能或状态,以标记过程或产品的完成。
61) 系统测试可以在任何阶段完成吗?
所有软件组件都经过测试,以确保产品满足指定要求。因此,系统软件测试不能在任何阶段进行。相反,系统测试必须仅在所有模块或单元正常工作并到位时才开始。
62) Alpha、Beta 和 Gamma 测试是什么意思?
所有给定都是软件测试术语的名称
Alpha 测试由开发软件的开发人员和测试人员进行。有时观察到 Alpha 测试由采购者或外包团队在没有开发人员或测试人员的情况下进行。
指定数量的最终用户在交付前进行 Beta 测试。大多数情况下,它在最终用户处进行。
Gamma 测试: 这种测试方法在软件准备发布时检查指定需求。它通常在最终用户处完成。它也通过省略所有内部测试活动而直接执行。
63) 端到端测试能理解什么?
端到端测试系统是一种测试应用程序的方法,以确保它是否按预期工作。它用于测试应用程序从头到尾的流程。端到端测试系统可帮助您仔细检查系统的完整流程。这种测试方法还确认了不同系统组件和系统之间的数据完整性得到维护。
64) 什么是用例测试?
用例测试是一种允许我们测试特定软件功能的方法。它还可以帮助您理解我们为什么应该或不应该首先使用软件。
65) 什么是 A/B 测试?
A/B 测试是针对用户测试您的软件的两个或多个不同版本,以评估哪个版本表现更好。这是一种测试新功能或现有功能变体的低风险方法。
您可以选择一部分用户使用功能 A。另一组使用功能 B。在此之后,您可以使用统计测试检查用户反馈和响应,以确定功能的最终版本。
66) 什么是缺陷生命周期?
缺陷生命周期,也称为错误生命周期,是缺陷在其整个生命周期中经历的一系列阶段。这个软件测试生命周期在测试人员发现或报告缺陷后立即开始,并在 QA 测试人员确保缺陷已解决且不再发生时结束。
67) 什么是配置测试?
配置测试是一种软件测试方法,用于评估软件的配置要求。它可帮助您发现应用程序在其下运行的最佳系统配置。它还可以帮助您识别和解决任何兼容性问题。
68) 什么决定风险等级?
不利事件的可能性和事件的影响决定了风险等级。
69) 缺陷分类是什么意思?
缺陷分类是一种根据严重性、风险和修复问题所需时间等各种特征对缺陷进行优先级排序的方法。缺陷分类会议汇集了开发团队、测试团队、项目经理等利益相关者。
70) 什么是存根?
执行自上而下集成测试时,通常在测试和集成顶层模块之前不会生成低层模块。存根是在这些情况下使用的虚拟模块,通过根据输入变量提供预期或硬编码结果来模拟模块行为。
这些面试问题也将有助于您的口试