软件测试面试题


软件测试面试题

下面列出了最常被问到的软件测试面试问题QTP 面试问题和答案。

1) 什么是 PDCA 循环以及测试适用于何处?

正常的软件开发过程有四个步骤。简而言之,这些步骤被称为 PDCA。

软件测试面试题

PDCA 代表计划、执行、检查、行动。

  • 计划:它定义了目标和实现该目标的计划。
  • 执行/执行:这取决于在计划阶段决定的计划策略。就是按照这个阶段完成的。
  • 检查:这是软件开发阶段的测试部分。它用于确保我们按计划前进并获得预期结果。
  • Act:此步骤用于解决检查周期中是否发生任何问题。它相应地采取适当的行动并再次修改计划。

开发人员负责项目的“规划和构建”,而测试人员负责项目的“检查”部分。


2)白盒、黑盒、灰盒测试有什么区别?

黑盒测试:黑盒测试的策略是基于需求和规范。它不需要了解被测试软件的内部路径、结构或实现。

白盒测试:白盒测试基于被测试软件的内部路径、代码结构和实现。它需要完整和详细的编程技能。

灰盒测:这是另一种类型的测试,我们查看正在测试的盒子,它只是为了了解它是如何实现的。之后,我们关闭盒子并使用黑盒测试。

以下是白盒、黑盒和灰盒测试之间的区别:

黑盒测试 灰盒测试 白盒测试
黑盒测试不需要程序的实现知识。 灰盒测试知道内部程序的有限知识。 在白盒测试中,完全需要程序的实现细节。
它具有低粒度。 它具有中等粒度。 它具有很高的粒度。
它也被称为不透明盒测试、封闭盒测试、输入输出测试、数据驱动测试、行为测试和功能测试。 它也被称为半透明测试。 它也被称为玻璃盒测试、透明盒测试。
它是用户验收测试,即由最终用户完成。 这也是一个用户验收测试。 测试人员和程序员主要做这件事。
由于内部细节未知,测试用例由功能规范制定。 测试用例由程序的内部细节构成。 测试用例由程序的内部细节构成。

3)在生命周期的早期设计测试有什么好处?

在生命周期的早期设计测试可以防止缺陷出现在主代码中。


4) 缺陷的类型有哪些?

存在三种类型的缺陷:错误、缺失和额外。

错误:这些缺陷是由于需求未正确实现而发生的。

Missing:用于指定缺少的东西,即没有实施规范,或者没有适当地注意到客户的要求。

额外:这是最终客户未提供的产品中包含的额外设施。它始终与规范存在差异,但可能是客户所需的属性。但是,由于与用户要求的差异,它被视为缺陷。


5)什么是探索性测试?

针对应用程序的同步测试设计和执行称为探索性测试。在此测试中,测试人员使用他的领域知识和测试经验来预测系统在何处和在何种条件下可能会出现意外行为。


6) 什么时候应该进行探索性测试?

探索性测试是在软件发布之前进行的最终检查。它是自动回归测试的补充活动。


7) 在生命周期的早期设计测试有什么好处?

它可以帮助您防止代码中的缺陷。


8) 告诉我基于风险的测试。

基于风险的测试是一种基于风险对测试进行优先级排序的测试策略。它基于详细的风险分析方法,该方法按优先级对风险进行分类。首先解决最高优先级的风险。


9) 什么是验收测试?

验收测试的目的是使用户/客户能够确定是否接受软件产品。它还验证软件是否遵循一组商定的验收标准。在这个级别,系统测试用户的可接受性。

软件测试面试题

验收测试的类型是:

  1. 用户验收测试:也称为最终用户测试。这种类型的测试是在产品经过测试人员测试后进行的。用户验收测试是针对用户的需求、要求和业务流程进行的测试,以确定系统是否满足验收标准。
  2. 操作验收测试:在产品投放市场之前进行操作验收测试。但是,它是在用户验收测试之后执行的。
  3. 合同和法规验收测试:在合同验收测试的情况下,系统会根据某些标准进行测试,并在合同中制定这些标准。在法规验收测试的情况下,检查软件应用程序是否符合政府法规。
  4. Alpha 和 Beta 测试:Alpha 测试在发布给客户之前在开发环境中进行。输入来自 alpha 测试人员,然后开发人员修复错误以提高产品质量。与 alpha 测试不同,beta 测试是在客户环境中执行的。客户执行测试并提供反馈,然后实施以提高产品质量。

10) 什么是可访问性测试?

可访问性测试用于验证软件产品是否可供残障人士(聋人、盲人、智障人士等)访问。


11) 什么是临时测试?

临时测试是一个测试阶段,测试人员试图通过随机尝试系统的功能来“破坏”系统。


12) 什么是敏捷测试?

敏捷测试是一种使用敏捷方法的测试实践,即遵循测试优先设计范式。


13) 什么是 API(应用程序编程接口)?

应用程序编程接口是一组正式的软件调用和例程,可以被应用程序引用以访问支持的系统或网络服务。


14)自动化测试是什么意思?

使用无需人工干预即可执行测试的软件工具进行测试称为自动化测试。自动化测试可用于GUI、性能、API等。


15) 什么是自下而上测试?

自底向上测试是一种遵循集成测试的测试方法,其中首先测试最低级别的组件,然后测试更高级别的组件。重复该过程,直到测试顶级组件。


16) 什么是基线测试?

在基线测试中,运行一组测试来捕获性能信息。基线测试通过使用收集的信息并在应用程序中进行更改来提高应用程序的性能和功能。Baseline 将应用程序的当前性能与其以前的性能进行比较。


17) 什么是基准测试?

基准测试是将应用程序性能与其他组织提供的行业标准进行比较的过程。

这是一项标准测试,它指定了我们的应用程序相对于其他应用程序的位置。


18) 哪些类型的测试对于 Web 测试很重要?

有两种类型的测试对于 Web 测试非常重要:

  • 性能测试:性能测试是一种测试技术,其中测量系统的质量属性,例如响应能力、不同负载条件下的速度和可扩展性。性能测试描述了在产品投放市场之前需要改进哪些属性。
  • 安全测试:安全测试是一种测试技术,它确定数据和资源是否被入侵者保存。

19) 测试场景中web应用和桌面应用的区别是什么?

Web 应用程序和桌面应用程序之间的区别在于 Web 应用程序对世界开放,可能有许多用户在不同时间同时访问该应用程序,因此负载测试和压力测试很重要。Web 应用程序也容易受到各种形式的攻击,主要是 DDOS,因此对于 Web 应用程序而言,安全测试也非常重要。


20) 验证和确认有什么区别?

验证和确认的区别:

确认 验证
验证是静态测试。 验证是动态测试。
验证发生在验证之前。 验证发生在验证之后。
验证评估计划、文件、要求和规范。 验证评估产品。
在验证中,输入是检查表、问题列表、演练和检查。 失效测试,以实际产品进行测试。
验证输出是一组文档、计划、规范和需求文档。 无效的实际产品是输出。

21) 重新测试和回归测试有什么区别?

重新测试和回归测试之间的差异列表:

回归 重新测试
回归是一种软件测试,它检查代码更改不会影响应用程序的当前特性和功能。 重新测试是检查在最终执行中失败的测试用例的测试过程。
回归测试的主要目的是对代码所做的更改不应影响现有功能。 对缺陷修复应用重新测试。
缺陷验证不是回归测试的一个要素。 缺陷验证是回归测试的一个要素。
可以为回归测试执行自动化,而手动测试可能既昂贵又耗时。 无法为重新测试执行自动化。
回归测试也称为通用测试。 重新测试也称为计划测试。
回归测试涉及执行在早期构建中传递的测试用例。重新测试关注执行那些较早失败的测试用例。 回归测试可以与重新测试并行进行。重新测试的优先级高于回归测试。

22) 预防性和反应性测试方法有什么区别?

预防性测试设计得更早,而反应性测试则是在软件制作完成后设计的。


23) 退出标准的目的是什么?

退出标准用于定义测试级别的完成情况。


24) 为什么使用决策表测试?

决策表由一列中的输入组成,输出在同一列中但在输入之下。

决策表测试用于测试规范采用规则或因果组合形式的系统。您在表格中获得的提醒探索了输入组合以定义产生的输出。


25) 什么是 alpha 和 beta 测试?

这些是 alpha 和 beta 测试之间的主要区别:

不。 阿尔法测试 测试版
1) 它始终由软件开发站点的开发人员完成。 它始终由客户在其站点执行。
2) 它也由独立测试团队执行 它不是由独立测试团队执行的
3) 它不向市场和公众开放。 它对市场和公众开放。
4) 它始终在虚拟环境中执行。 它始终在实时环境中执行。
5) 它用于软件应用程序和项目。 它用于软件产品。
6) 它遵循白盒测试和黑盒测试的类别。 它只是一种黑盒测试。
7) 它不以任何其他名称为人所知。 它也被称为现场测试。

26) 什么是随机/猴子测试?

随机测试也称为猴子测试。在此测试中,通常使用工具随机生成数据。数据是使用工具或某种自动化机制生成的。

随机测试有一些限制:

  • 大多数随机测试都是多余的和不切实际的。
  • 需要更多时间来分析结果。
  • 如果您不记录用于测试的数据,则无法重新创建测试。

27) 什么是阴性和阳性测试?

负面测试:当您输入无效输入并收到错误时,称为负面测试。

正面测试:当您输入有效输入并期望根据规范完成某些操作时,称为正面测试。


28) 测试独立性的好处是什么?

测试独立性非常有用,因为它避免了作者在定义有效测试时的偏见。


29) 什么是边值分析/测试?

在边界值分析/测试中,我们只测试确切的边界而不是中间。例如:如果有银行申请,最多可以提现25000,最少可以提现100。所以在边界值测试中,我们只测试高于最大值和低于最大值。这涵盖了所有场景。

下图显示了上述银行应用的边界值测试。TC1 和 TC2 足以测试银行的所有条件。TC3 和 TC4 是重复/冗余测试用例,不会为测试增加任何价值。因此,通过应用适当的边界值基础,我们可以避免重复的测试用例,这不会增加测试的价值。


30) 您将如何测试 Web 应用程序的登录功能?

有很多方法可以测试 Web 应用程序的登录功能:

  • 使用有效登录名登录,关闭浏览器并重新打开,看看您是否仍然登录。
  • 登录,然后注销,然后返回登录页面以查看您是否真的已注销。
  • 登录,然后返回同一页面,您是否再次看到登录屏幕?
  • 会话管理很重要。您必须关注我们如何跟踪登录用户,是通过 cookie 还是网络会话?
  • 从一个浏览器登录,打开另一个浏览器看是否需要重新登录?
  • 登录,修改密码,然后退出,然后看是否可以用旧密码重新登录。

31) 性能测试有哪些类型?

性能测试:性能测试是一种测试技术,它决定了系统在各种负载条件下的速度、可扩展性和稳定性等性能。该产品在投放市场之前经过性能测试。

软件测试的类型有:

软件测试面试题

1. 负载测试:

  • 负载测试是一种测试技术,其中系统在不断增加的负载下进行测试,直到达到阈值。

注意:负载增加意味着用户数量增加。

  • 负载测试的主要目的是检查系统在负载量增加时的响应时间。
  • 负载测试是非功能性测试意味着只测试非功能性需求。
  • 执行负载测试以确保系统能够承受重负载

2.压力测试:

  • 压力测试是一种在CPU、内存、磁盘空间等硬件资源不足时对系统进行检查的测试技术。
  • 在压力测试的情况下,软件在系统加载的进程数和硬件资源较少时进行测试。
  • 压力测试的主要目的是检查系统的故障并确定如何从这种故障中恢复称为可恢复性。
  • 压力测试是非功能性测试,意味着只测试非功能性需求。

3. 尖峰测试:

  • 尖峰测试是负载测试的一个子集。这种类型的测试检查负载变化时应用的不稳定性。
  • 在测试过程中需要考虑不同的情况:
    • 第一种情况是不允许用户数量,这样系统就不会承受沉重的负载。
    • 第二种情况是向额外加入者提供警告,这会减慢响应时间。

4. 耐力测试:

  • 耐久性测试是负载测试的一个子集。这种类型的测试检查系统的行为。
  • 耐久性测试是非功能性测试,意味着只测试非功能性需求。
  • 耐久性测试也称为浸泡测试。
  • 耐久性测试检查内存泄漏等问题。当程序在使用后没有释放其分配的内存时,就会发生内存泄漏。有时应用程序即使在使用后也不会释放其内存,而这种不可用的内存会导致内存泄漏。当应用程序长时间运行时,这会导致问题。
  • 在此测试期间查看的一些主要问题是:
    • 由于应用程序发生内存泄漏。
    • 由于数据库连接发生内存泄漏。
    • 由于第三方软件导致内存泄漏。

5. 体积测试:

  • 卷测试是一种在数据量增加时对系统进行测试的测试技术。
  • 容量测试也称为洪水测试。
  • 批量测试是非功能性测试意味着只测试非功能性需求。
  • 例如:如果我们要应用批量测试,那么我们需要扩大数据库大小,即在数据库表中添加更多数据,然后进行测试。

6. 可扩展性测试

  • 可扩展性测试是一种测试技术,可确保系统按照最终用户不断增长的需求正常运行。
  • 以下是此测试期间检查的属性:
    • 响应时间
    • 吞吐量
    • 性能测试所需用户数
    • 阈值负载
    • CPU使用率
    • 内存使用情况
    • 网络使用

32) 功能测试和非功能测试有什么区别?

比较基础 功能测试 非功能测试
描述 功能测试是一种测试技术,它检查应用程序的功能是否在需求规范下工作。 非功能性测试会检查所有非功能性方面,例如性能、可用性、可靠性等。
执行 功能测试在非功能测试之前实施。 非功能测试在功能测试之后进行。
重点地区 这取决于客户的要求。 这取决于客户的期望。
要求 可以轻松定义功能需求。 非功能性需求不容易定义。
手动测试 功能测试可以通过手动测试来执行。 非功能测试无法通过手动测试进行。
测试类型 以下是功能测试的类型:单元测试验收测试集成测试系统测试 以下是非功能测试的类型:性能测试负载测试压力测试体积测试安全测试安装测试恢复测试

33)静态和动态测试有什么区别?

静态测试 动态测试
静态测试是一种白盒测试技术,它在软件开发生命周期的初始阶段完成。 动态测试是在软件开发生命周期后期完成的测试过程。
在代码部署之前执行静态测试。 代码部署后进行动态测试。
它在验证阶段实施。 它在验证阶段实施。
在此类测试期间不执行代码。 动态测试需要执行代码。
在静态测试的情况下,为测试过程制定检查表。 在动态测试的情况下,执行测试用例。

34) 阴性和阳性测试有什么区别?

阳性检测 阴性测试
正面测试意味着通过提供有效数据来测试应用程序。 否定测试是指通过提供无效数据来测试应用程序。
在正面测试的情况下,测试人员总是检查应用程序是否有一组有效的值。 在否定测试的情况下,测试人员始终检查应用程序中的无效值集。
积极测试是通过考虑积极的观点来完成的,例如:通过提供诸如“Akshay”之类的值来检查名字字段。 否定测试是通过考虑否定的观点来完成的,例如:通过提供诸如“Akshay123”之类的值来检查名字字段。
它验证一组已知的测试条件。 它验证未知的一组条件。
正面测试通过提供有效的数据集来检查系统的行为。 否定测试通过提供无效数据集来测试系统的行为。
正面测试的主要目的是证明项目按照客户要求运行良好。 负面测试的主要目的是通过提供无效的数据集来破坏项目。
正面测试试图证明该项目满足所有客户要求。 负面测试试图证明该项目不满足所有客户要求。

35) SDLC 中有哪些不同的型号?

软件测试中有多种可用的模型,如下所示:

  • 瀑布模型
  • 螺旋模型
  • 原型模型
  • 验证和验证模型
  • 混合模型
  • 敏捷模型
  • 合理的统一流程模型[RUP]
  • 快速应用程序开发 [RAD]

36) 列出冒烟测试和健全性测试以及空运行测试之间的区别?

以下是冒烟、健全性和试运行测试之间的差异:

烟雾测试 健全性测试 干运行测试
它是浅的、广泛的和脚本化的测试。 它是狭隘、深入和无脚本的测试 空运行测试是一种在内部减轻可能故障影响的过程。
当构建到来时,我们将编写自动化脚本并执行脚本。所以它会自动执行。 它将手动执行。 例如,一家航空航天公司可能会在首次试飞前使用新飞机和跑道进行试飞。
它将采用所有基本功能并执行高级测试。 它将需要一些重要的功能并进行深入的测试。

37) 我们如何测试 Web 应用程序?我们在 Web 应用程序上执行的测试类型是什么?

要测试任何 Web 应用程序,例如Yahoo、Gmail等,我们将执行以下测试:

  • 功能测试
  • 集成测试
  • 系统测试
  • 性能测试
  • 兼容性测试(在各种操作系统、多种浏览器和不同版本上测试应用程序)
  • 可用性测试(检查是否对用户友好)
  • 临时测试
  • 可访问性测试
  • 烟雾测试
  • 回归测试
  • 安全测试
  • 全球化测试(仅当用不同语言开发时)

38) 为什么我们需要进行兼容性测试?

我们可能已经在一个平台上开发了该软件,并且用户可能会在不同的平台上使用它。因此,他们可能会遇到一些错误并停止使用该应用程序,并且业务可能会受到影响。因此,我们将进行一轮兼容性测试。


39) 我们一天可以写多少个测试用例?

我们可以分辨出 2-5 个测试用例。

  • 第一个测试用例→第一天,第二天。
  • 第二个测试用例→第3天,第4天。
  • 第四个测试用例 → 第 5 天。
  • 9-10 个测试用例 → 第 19 天。

最初,我们习惯写 2-5 个测试用例,但在以后的阶段我们写大约 6-7 个,因为那时我们有更好的产品知识,我们开始重用测试用例,以及对产品的体验.


40) 我们每天可以审查多少个测试用例?

我们将编写大约 7 个测试用例,以便我们可以查看 7*3=21 个测试用例。我们可以说每天有 25-30 个测试用例。


41) 我们一天可以运行多少个测试用例?

我们每天可以运行大约 30-55 个测试用例。

注意:对于这些类型的问题 (39-41),请始终记住比例:我们每天可以编写 x 个测试用例,我们可以审查 3 个测试用例,以及我们每天可以执行 5 个测试用例。


42) 客户是否获得了 100% 无缺陷的产品?

  1. 测试团队不好
  2. 开发者超级棒
  3. 产品很旧
  4. 上述所有的

正确答案是测试团队不好,因为有时软件测试的基础定义没有产品是零错误的。


43)如何手动和自动化跟踪错误?

我们可以手动跟踪错误,如下所示:

  • 识别错误。
  • 确保它不重复(即,在错误存储库中检查它)。
  • 准备错误报告。
  • 将其存储在错误存储库中。
  • 将其发送给开发团队。
  • 管理错误生命周期(即不断修改状态)。

软件测试面试题

自动化的帮助下跟踪错误,即错误跟踪工具:

我们在市场上有各种错误跟踪工具,例如:

  • 吉拉
  • 布吉拉
  • 螳螂
  • 远程逻辑
  • 理性清除任务
  • 错误跟踪
  • 质量中心(它是一个测试管理工具,它的一部分用于跟踪错误)

注意:这里,我们有两类工具:

基于产品:在基于产品的公司中,他们将只使用一种错误跟踪工具。

服务型:在服务型公司,他们有很多不同客户的项目,每个项目都会有不同的bug跟踪工具。


44) 为什么应用程序有错误?

由于以下原因,该软件可能存在错误:

  • 软件复杂性
  • 编程错误
  • 如果客户和公司之间没有发生任何通信,即应用程序应该或不应该根据软件的需要执行。
  • 需求修改
  • 时间压力。

45) 我们什么时候进行测试?

我们将在需要检查所有要求是否正确执行时进行测试,并确保我们提供正确的优质产品。


46) 我们什么时候停止测试?

当我们有以下情况时,我们可以停止测试:

  • 一旦应用程序的功能稳定。
  • 当时间较少时,我们测试必要的功能,然后停止它。
  • 客户的预算。
  • 当基本功能本身无法正常工作时。

47) 我们为哪些和所有类型的测试编写测试用例?

我们可以为以下类型的测试编写测试用例:

不同类型的测试 测试用例
烟雾测试 在这里,我们将只编写标准功能;因此,我们可以提取一些具有所有必要功能的测试用例。因此,我们不必编写冒烟测试的测试用例。
功能/单元测试 是的,我们为单元测试编写测试用例。
集成测试 是的,我们为集成测试编写测试用例。
系统测试 是的,我们为系统测试编写测试用例。
验收测试 是的,但在这里客户可能会编写测试用例。
兼容性测试 在这里,我们不必编写测试用例,因为与上面相同的测试用例用于在不同平台上进行测试。
临时测试 我们不为 Adhoc 测试编写测试用例,因为有一些随机场景或想法,我们在 Adhoc 时间使用。但是,如果我们确定了关键错误,那么我们就会将该场景转换为测试用例。
性能测试 我们可能不会编写测试用例,因为我们将在性能工具的帮助下执行此测试。
可用性测试 在这方面,我们使用常规检查表;因此,我们不编写测试用例,因为这里我们只测试应用程序的外观。
可访问性测试 在可访问性测试中,我们也使用检查表。
可靠性测试 在这里,我们不编写手动测试用例,因为我们使用自动化工具来执行可靠性测试。
回归测试 是的,我们为功能、集成和系统测试编写测试用例。
恢复测试 是的,我们为恢复测试编写测试用例,并检查产品如何从崩溃中恢复。
安全测试 是的,我们为安全测试编写测试用例。
全球化测试: 本地化测试 国际化测试 是的,我们为 L10N 测试编写测试用例。 是的,我们为 I18N 测试编写测试用例。

48) 追溯矩阵和测试用例审查过程有什么区别?

追溯矩阵 测试用例审查
在这里,我们将确保每个需求至少有一个测试用例。 在此,我们将检查是否涵盖了特定要求的所有场景。

49) 用例和测试用例有什么区别?

以下是用例和测试用例之间的显着差异:

测试用例 用例
它是描述输入、操作和预期响应的文档,用于根据客户要求控制应用程序是否正常工作。 它是对客户需求的详细描述。
它源自测试场景、用例和 SRS。 它源自 BRS/SRS。
在开发测试用例的同时,我们还可以找出规范中的漏洞。 业务分析师或 QA 负责人准备它。

50) 如何测试一支笔?

我们可以执行手动和自动化测试。首先,我们将看到我们如何执行手动测试:

不同类型的测试 设想
烟雾测试 检查是否编写了基本功能。
功能/单元测试 检查笔芯、笔身、笔帽和笔尺寸是否符合要求。
集成测试 将笔和笔帽组合起来,并整合其他不同尺寸的产品,看看它们是否工作正常。
兼容性测试 各种表面,多种环境,天气条件,把它放在烤箱里然后写,把它放在冰箱里写,试着在水上写。
临时测试 放下笔开始书写,保持垂直向上书写,在墙上书写。
性能测试 测试笔的书写速度。
可用性测试 检查笔是否使用方便,是否可以流畅地书写更长的时间。
可访问性测试 残疾人使用它们。
可靠性测试 掉下来写,继续写,看漏不漏
恢复测试 把它放下来写。
全球化测试 本地化测试 价格应该是标准的,到期日期格式。
国际化测试 检查笔上的打印是否符合国家语言。

现在,我们将看到如何在笔上执行自动化测试:

软件测试面试题

为此拿一个滚筒,现在在滚筒上放一些纸,然后将笔连接到电机并打开电机。笔开始在纸上书写。一旦钢笔停止书写,现在观察它在每页上书写的行数、每条轨道的长度,并将所有这些相乘,这样我们就可以得到钢笔可以写多少公里。


原文链接:https://codingdict.com/