软件测试面试题有哪些?经典面试技巧解析

2021年12月12日23:20:50 发表评论 1,035 次浏览

软件测试是在软件开发生命周期中进行的一项活动,用于验证软件是否准确并按要求工作。测试在任何软件开发项目中都扮演着不可或缺的角色。

从本质上讲,软件测试旨在回答这样一个问题:如何确保软件做它应该做的事情,而不做它不应该做的事情?软件测试背后的主要目标是获得足够的信心,让被测软件为给定的输入产生正确的输出。

在学习软件测试时要记住的一件重要事情是,测试本身并不能提高软件质量。或者大量的测试并不意味着软件是高质量的。测试是质量的一个指标,它为创建软件的开发人员提供重要的反馈,以采取必要的措施来解决测试中发现的问题。

软件测试面试题有哪些?本文提供了面试官对软件测试员或质量保证 (QA) 职位的常见面试问题。它根据申请人的技能分为三个部分:

软件测试面试题
手工测试面试题 新人
手工测试 有经验者手工测试面试题

最后,提供多项选择题来测试你对测试的理解。

基本软件测试面试题和答案合集

1. 解释测试在软件开发中的作用?

软件测试在不同的时间在不同的软件开发方法中发挥作用。软件开发中有两种主要的方法论,即瀑布式和敏捷式。

在传统的瀑布式软件开发模型中,首先收集需求。然后基于该文档创建规范文档,从而驱动软件的设计和开发。最后,一旦构建了完整的软件系统,测试人员会在软件开发生命周期结束时进行测试。

敏捷软件开发模型在小迭代中起作用。你可以在软件构建过程中并行测试它。开发人员根据需求构建一个小功能。测试人员对其进行测试并获得客户反馈,从而推动未来的发展。 

2. 多少测试才足够?或者,是否可以对软件进行详尽的测试?

软件测试面试题解析:无论你的测试策略多么具体,都不可能详尽地测试软件或证明没有错误。

发现数百个错误的广泛测试并不意味着它已经发现了所有错误。测试可能遗漏了更多错误。没有错误并不意味着没有错误,软件是完美的。它很容易意味着无效或不完整的测试。为了证明程序有效,你必须测试所有可能的输入及其组合。

考虑一个简单的程序,它将一个字符串作为输入,长度为 10 个字符。要对每个可能的输入进行测试,你必须输入 2610 个名称,这是不可能的。由于详尽的测试是不切实际的,作为测试人员的最佳策略是选择最有可能发现错误的测试用例。当你有足够的信心发布软件并假设它会按预期工作时,测试就足够了。

3. 有哪些不同类型的测试?

你可以通过多种不同的方式测试软件。某些类型的测试由软件开发人员进行,而另一些则由专门的质量保证人员进行。以下是几种不同类型的软件测试,以及对每种软件的简要说明。

类型描述
单元测试测试代码单元(例如方法或函数)的内部工作的编程测试。
集成测试确保系统的多个组件在组合以产生结果时按预期工作。
回归测试确保过去工作的现有特性/功能不会因新代码更改而被破坏。
系统测试完整的端到端测试是在完整的软件上完成的,以确保整个系统按预期工作。
烟雾测试执行快速测试以确保软件在最基本的级别上运行,并且在启动时不会崩溃。它的名字来源于硬件测试,你只需插入设备即可查看是否冒烟。
性能测试通过检查特定负载和环境下的响应时间和吞吐量,确保软件按照用户的期望执行。 
用户验收测试确保软件满足客户或用户的要求。这通常是软件上线前的最后一步,即进入生产阶段。
压力测试确保在负载增加时软件的性能不会下降。在压力测试中,测试人员让软件承受重负载,例如大量请求或严格的内存条件,以验证它是否运行良好。
可用性测试衡量软件的可用性。这通常由一组样本最终用户执行,他们使用该软件并提供有关使用该软件的难易程度的反馈。 
安全测试现在比以往任何时候都重要。安全测试试图破坏软件的安全检查,以获得对机密数据的访问。安全测试对于基于 Web 的应用程序或任何涉及金钱的应用程序至关重要。 

4. 为什么开发人员不应该测试他们编写的软件?

开发人员会成为糟糕的测试人员。以下是一些原因:

  • 他们尝试测试代码以确保它可以工作,而不是测试它不工作的所有方式。 
  • 由于他们自己编写,开发人员往往对软件非常乐观,并且没有测试所需的正确态度:破坏软件。 
  • 开发人员跳过经验丰富的测试人员为破坏软件而执行的更复杂的测试。他们遵循快乐的道路,从头到尾执行正确的输入代码,这通常不足以让他们有信心在生产中交付软件。

但是,这并不意味着开发人员不应在将软件发送给测试人员之前对其进行测试。开发人员测试有助于发现许多由编程错误引起的错误。这些对于测试人员来说很难找到,因为他们并不总是可以访问源代码。

5. 什么是软件测试生命周期?

与软件开发类似,测试也有其生命周期。在测试期间,测试人员会进行以下活动。  

  1. 了解需求:在测试软件或功能之前,测试人员必须首先了解它应该做什么。如果他们不知道软件应该如何工作,他们就无法有效地测试它。 
  2. 测试计划和案例开发:一旦测试人员清楚地了解需求,他们就可以创建测试计划。它包括测试的范围,即被测软件的一部分和测试目标。计划测试涉及各种活动,例如创建文档、估计所涉及的时间和工作量、决定工具和平台以及将进行测试的个人。
  3. 准备测试环境:开发在开发环境中进行,即在开发人员的计算机上进行,该计算机可能不代表软件将在生产中运行的实际环境。测试人员使用模拟最终用户环境的测试数据准备环境。它有助于对软件进行实际测试。 
  4. 生成测试数据:虽然不可能对软件进行详尽的测试,但测试人员会尝试使用真实的测试数据,让他们相信如果通过测试,软件将能够在现实世界中生存。 
  5. 测试执行:一旦测试人员完全了解软件并使用测试数据设置测试环境,他们就会执行测试。在这里,执行意味着测试人员运行软件或被测功能,并用预期的结果验证输出。 
  6. 测试结束在测试执行结束时,可能有两种可能的结果。首先,测试人员在被测软件的部分中发现错误。在这种情况下,他们会创建测试记录/错误报告。其次,该软件按预期工作。这两个事件都表明测试周期结束。 

6. 软件测试员应该具备哪些素质?

任何软件测试人员的目标都是找出系统中尽可能多的错误和问题,这样客户就不必这样做了。因此,一个好的软件测试人员应该对细节有敏锐的洞察力。他们应该了解他们正在测试的软件的来龙去脉,并将软件的每个方面都推向极限,以识别在软件的常规使用中难以发现的错误。

拥有应用程序的领域知识是必不可少的。如果测试人员不了解软件试图解决的具体问题,他们将无法对其进行彻底的测试。

一个好的测试人员在测试时应该牢记最终用户。与最终用户产生共鸣有助于测试人员确保软件是可访问和可用的。同时,测试人员应该具备从开发人员的角度思考的基本编程技能,这使他们能够注意到常见的编程错误,例如空引用、内存不足错误等。

书面和口头的沟通是测试人员的一项基本技能。测试人员将经常需要与开发人员和管理人员进行交互。他们应该能够向开发人员解释在测试过程中发现的错误和问题。对于发现的每个错误,优秀的测试人员应该提供详细的错误报告,其中包含开发人员修复该问题所需的所有信息。如果他们对发布包含未解决问题的软件感到不安,他们应该能够向管理层提出一个很好的理由。

7. 什么是功能测试?

功能测试是黑盒测试的一种形式。顾名思义,它侧重于软件的功能需求而不是其内部实现。功能需求是指系统中所需的行为,就其输入和输出而言。

它根据功能需求或规范验证软件,忽略非功能属性,如性能、可用​​性和可靠性。

功能测试旨在回答以下问题,特别是:

  • 软件是否满足其功能要求?
  • 它是否解决了目标用户的问题?

8. 什么是错误报告?

在测试期间,测试人员记录他们的观察、发现和其他对开发人员或管理人员有用的信息。所有这些数据都属于一个测试记录,也称为错误报告。

详细的错误报告是测试过程中产生的重要工件。它可以帮助团队成员:

  • 明白问题,
  • 重现问题的步骤,
  • 环境及其发生的具体条件,以及
  • 开发人员解决问题时的解决方案。

以下是一份好的错误报告应该包含的一些信息。图片来源:Bugzilla

场地描述
标题总结问题的简短标题。它不应该太长,而只是为了向读者提供正确的信息。它应该是具体和准确的。
描述描述应该回答标题没有解释的所有问题。它包含错误、严重性和影响、重现步骤、预期结果与实际输出的详细摘要。 
版本尝试在错误版本的产品中重现错误可能会浪费大量时间。了解发现此错误的确切产品版本或内部版本号对于开发人员重现错误非常有用。 
地位在任何时候,错误都可以是“活动”、“准备测试”或“已关闭”。当发现错误时,它就会处于活动状态,一旦开发人员修复它,就可以进行测试。如果开发人员修复了它,测试人员可以将其标记为关闭,否则可以将其标记为活动。 
重现步骤尽管在描述中可以提供重现问题的步骤,但有时具有独特的领域会迫使测试人员考虑它们。它们包括成功重现问题所必须采取的每一步。
分配给分配此错误的开发人员或测试人员的姓名。 
解析度当开发人员修复错误时,他们应该包括错误的原因及其解决方案。当类似的错误再次出现时,它会在未来帮助团队。

例如,下面是在流行的错误跟踪软件 Jira 上报告的错误图片。 

9. 什么是非功能测试?

非功能测试测试系统的非功能需求,它是指客户明确要求的系统属性或质量。这些包括性能、安全性、可扩展性和可用性。

非功能测试是在功能测试之后进行的。它测试与软件功能需求无关的一般特性。非功能测试确保软件安全、可扩展、高性能,并且不会在重负载下崩溃。 

10. 有哪些重要的测试指标?

测试指标为管理层或开发人员提供了关于项目进展情况和下一步行动步骤的高级概览。 

以下是从测试和失败记录中得出的一些指标:

  • 发现的缺陷总数,按严重程度排序
  • 修复的错误总数
  • 源代码错误与配置或外部环境因素导致的问题总数
  • 随着时间的推移,错误发现和修复率
  • 按产品/功能区域分类的错误
  • 自发现并修复错误以来,该错误所花费的平均时间。 
  • 花在新功能开发上的总时间与花在解决错误和故障上的时间
  • 发布前未解决的错误数
  • 客户报告的错误/失败与测试人员发现的错误/失败

11. 什么是测试驱动开发?

测试驱动开发 (TDD) 是一种流行的软件开发技术,由 Kent Beck 在 1999 年出版的同名书中首次引入。

在 TDD 中,开发功能的开发人员首先编写一个失败的测试,然后编写足够的代码来使该测试通过。一旦他们通过了测试,他们就会添加另一个失败的测试,然后编写足够的代码来通过失败的测试。这个循环一直重复,直到开发人员拥有完全可用的功能。如果被测代码有数据库、文件、网络等外部依赖,可以通过mock来隔离代码。 

TDD的好处:

  • 编写测试首先迫使你考虑要构建的功能,从而帮助你生成更好的代码。 
  • 由于你手头总是有一组有效的测试,失败的测试表明问题出在你刚刚添加的代码上,从而减少了调试时间。 
  • 编写测试有助于开发人员阐明需求和规范。为一组糟糕的需求编写好的测试是具有挑战性的。 
  • 除非你可以在每次新更改后测试软件,否则很难生成高质量的软件。你永远无法确定你的新代码不会破坏正在运行的软件。TDD 让你有信心添加新代码,因为你已经进行了测试。

12. 什么是手动测试?

在手动测试中,测试人员手动验证软件的功能。测试人员有一份他们应该测试的所有测试用例的完整列表,以及测试数据。他们逐一检查每个案例。他们像最终用户一样启动软件,输入输入并手动验证输出。  

与自动化测试相比,手动测试似乎效率低下。它很慢,不能以一致的方式重复,并且容易出现人为误判。

然而,手动测试允许测试人员真实地测试软件,在自然用户环境中使用实际用户数据,受类似的外部条件影响。只有人,而不是计算机,才能评估应用程序的可用性和可访问性,以及它对最终用户的外观和感觉。它还为系统提供了更广阔的视野。最后,有些测试场景无法自动化,需要手动测试。

在尝试自动化测试之前,你应该始终手动测试软件。

13.软件测试面试题有哪些:什么是跨浏览器测试?

所有 Web 应用程序都在浏览器中运行,例如 Google Chrome、Mozilla Firefox、Internet Explorer、Safari 等。尽管它们在实现 Web 标准方面的工作方式基本相同,但它们之间存在细微差别。在构建软件时,软件开发人员并不总是能够在多个浏览器上仔细测试该功能,并注意到细微的不一致。

在跨浏览器测试中,软件测试人员在所有支持的浏览器中启动 Web 应用程序,并尝试在所有浏览器上测试相同的功能。他们注意到浏览器中任何未按预期工作或看起来不同的意外行为;请注意测试报告中的行为以及浏览器名称和版本。这有助于程序员修复所有浏览器中无法按预期工作的行为。 

14.什么是自动化测试?

顾名思义,自动化测试,也称为测试自动化,是测试的程序执行。测试人员使用自动化工具或软件(如 Selenium)编写执行以下任务的代码。

  1. 自动运行软件。
  2. 将输入数据馈送到系统。
  3. 检查具有预期结果的输出。 
  4. 如果结果不匹配,则测试失败。否则,通过测试。

测试自动化后,你可以根据需要随时运行它,以检查是否有任何新代码破坏了它。它使你能够将时间花在其他高价值测试上,例如有助于发现自动化测试会遗漏的错误的探索性测试。

自动化测试有利于使用不频繁更改的输入进行重复测试。人类会因反复进行相同的测试并看到相同的结果而感到疲倦和无聊。当你第 20 次测试某个功能时,很容易出错。与人类操作员相比,软件在执行重复性任务方面做得更好,而且不会感到疲倦或犯错。

15. 质量控制(QC)和质量保证(QA)有什么区别?

QA代表质量保证。在软件开发团队中,QA 确保在将软件发布给最终用户之前对其进行彻底测试。 

QA 活动通常在产品开发过程中进行,重点是改进软件开发过程。

在许多软件组织中,测试人员和 QA 可以是同一个人,但根据组织的规模,他们可以有所不同。QA 的目标是确保交付的软件的质量。

质量控制:QC代表质量控制。其主要目的是确保开发的产品是否符合要求的标准。

QC 是软件工程中的一个过程,用于通过测试和审查其功能和非功能需求来确保软件产品质量。QC 活动通常在产品开发后进行,因为它检查最终产品的质量和最终结果。 

16. 什么是软件错误?

软件错误是软件中产生错误结果的错误。软件测试员测试软件以发现其中的错误。

导致错误的原因有很多——例如,糟糕的设计、草率的编程、缺乏版本控制或沟通不畅。在整个开发过程中,开发人员会在系统中引入成百上千的错误。测试人员的目标是发现这些错误。

无论你的角色如何,你都可以通过多种不同的方式找到错误。在构建软件时,软件开发人员可能会注意到由其他开发人员或他们自己编写的另一个模块中的错误。作为例行测试过程的一部分,测试人员积极尝试查找错误。最后,用户可以在软件生产时看到错误。

所有错误,无论是如何发现的,都会记录到错误跟踪系统中。分类小组对错误进行分类并为错误分配优先级,然后将错误分配给软件开发人员进行修复。一旦开发人员解决了问题,他们就会签入代码并将该错误标记为可以进行测试。一旦错误准备好进行测试,它就会转到测试人员,测试人员测试软件以验证它是否确实已修复。如果是,那么它已关闭。如果没有,他们会将其分配给同一个开发人员,并附上重现错误的确切步骤的描述。流行的错误跟踪系统的一些示例包括 BugZilla、FogBugz 等。

17. 写出一些导致重大问题的常见错误。

一些常见的错误包括: 

  • 糟糕的调度 
  • 低估 
  • 忽略小问题 
  • 没有遵循确切的过程 
  • 资源分配不当 

18. 什么是用户故事?

所有软件都有一个目标用户。用户故事描述了用户的动机以及他们试图通过使用软件来完成什么。最后,它展示了用户如何使用应用程序。它忽略了设计和实现细节。

用户故事旨在关注提供给最终用户的价值,而不是他们可能输入的确切输入和预期输出。

在用户故事中,测试人员创建具有真实姓名和特征的用户角色,并尝试模拟与软件的真实交互。用户故事通常有助于找出更正式的测试过程通常不会揭示的隐藏问题。

19.什么是测试环境?

测试环境由测试人员在其上运行测试的服务器/计算机组成。它与开发机器不同,它试图代表软件将在其上运行的实际硬件;一旦投入生产。

每当发布软件的新版本时,测试人员都会使用最新版本更新测试环境并运行回归测试套件。一旦通过,测试人员就会继续测试新功能。 

20. 列出一些流行的测试工具/框架,并提供每个的简要说明。

  1. Selenium:一种 Web 浏览器自动化工具,可自动化你在 Web 浏览器上运行所需的测试套件。 [1]
  2. Protractor:用于 Angular 和 AngularJS 应用程序的端到端测试框架。Protractor 针对在真实浏览器中运行的应用程序运行测试,并像用户一样与其交互。 [2]
  3. Cypress:为现代网络构建的现代前端测试工具。尽管它与 Selenium 和 Protractor 相似,但在架构上却与它们不同。 [3]
  4. Jasmine:这是一个开源 JavaScript 测试框架,允许你编写行为驱动的测试。[4]
  5. JUnit 和 NUnit:它们分别是 Java 和 C# 编程语言的单元测试框架。 

21. 你可以为错误分配哪些不同类型的严重性?

尽管它因软件开发团队的规模和结构而异,但通常可以为错误分配以下类型的严重性,从低到高:

  • 低的
    • 用户界面错误
    • 无障碍问题
  • 中等的
    • 泄漏的抽象
    • 软件挂起
    • 用户无法执行特定操作
    • 边界条件
  • 高的
    • 在高负载下崩溃
    • 业务逻辑和/或计算错误
    • 任何导致软件崩溃的用户操作
    • 暴露敏感的用户数据
    • 安全问题
    • 数据丢失

应届生软件测试面试题和答案合集

22.什么是黑盒测试?

在黑盒测试中,测试人员将软件视为黑盒,忽略所有内部结构和行为。他们唯一关心的是提供给系统的输入和生成的输出。黑盒测试根据指定的要求验证程序的行为。

在黑盒测试期间,测试条件是根据软件的功能创建的,但不知道软件内部是如何工作的。该软件从最终用户的角度进行了测试,并提供了整个系统的更广泛的画面。

鉴于用户只关心软件是否按照他们的需要工作,而不关心它是如何工作的,黑盒测试有助于测试软件的可用性并预测客户将如何使用该产品。 

23. 什么是白盒测试?

白盒测试是黑盒测试的替代策略,在黑盒测试中,测试人员将系统视为一个透明的盒子。他们被允许观察系统的内部实现,从而指导测试。通常,软件开发人员在开发阶段执行白盒测试。  

在白盒测试中,我们假设测试人员具有一定的编程知识。他们试图测试程序在运行系统中可能采用的每个可能的分支。了解盒子里面的内容,即查看源代码和实现细节,就可以更彻底地测试系统。

24. 手动测试和自动测试有什么区别?

手动测试自动化测试
人工测试人员通过手动运行测试用例并观察和比较实际和预期输出来测试软件。测试人员或程序员使用脚本和工具来执行软件并比较实际输出和预期输出。 
手动测试是不可重现和可重复的。由于它是经过编程的,因此自动化测试始终具有可再现性和可重复性。它可以根据测试人员的需要执行多次。
对于新功能,测试人员可以快速手动测试功能,无需太多配置和设置。 要设置自动化测试,需要进行初始投资来编写测试并准备运行这些测试的环境。
手动测试对于查找用户界面中的错误或可访问性问题非常有用。自动化测试更适合捕获人类测试人员会遗漏的错误,例如编程错误、业务逻辑错误。
手动测试容易出现人为错误并且速度很慢。 由于没有人工参与(除了编写测试),自动化测试更可靠。它比手动测试要快得多。 

25. 什么是 alpha 测试?

在你将软件交付给客户之前,内部测试团队会执行 alpha 测试。Alpha 测试是用户验收测试的一部分。它的目标是在客户开始使用软件之前识别错误。

26.什么是beta测试?

软件测试面试题解析:一旦你在 alpha 测试之后将软件交付给客户,软件的实际用户就会在真实的生产环境中执行 beta 测试。它是用户验收测试的最终组成部分之一。Beta 测试有助于从真实环境中使用你的软件的人那里获得反馈。 

27.什么是探索性测试?

想象一个游客在外国城市。他们可以通过两种方式探索这座城市。

  • 遵循地图、行程或他们应该访问的地方列表
  • 随机探索,跟随街道,带领他们到新的地方

在第一种方法中,游客遵循预定的计划并执行它。虽然他们可能会参观著名的景点,但他们可能会错过城市中隐藏的、更令人兴奋的地方。使用第二种方法,游客在城市中四处游荡,可能会遇到行程中可能会错过的陌生和异国情调的地方。

这两种方法各有优缺点。

测试人员在测试软件时类似于游客。他们可以遵循一组严格的测试用例并根据它们使用提供的输入和输出来测试软件,或者他们可以探索软件。

当测试人员不使用测试脚本或预定义的测试计划而随机测试软件时,称为探索性测试。顾名思义,测试人员正在像最终用户一样探索软件。这是一种黑盒测试。

在探索性测试中,测试人员以他们想要的任何方式与软件交互,并按照软件的说明导航各种路径和功能。他们手头没有严格的计划。

探索性测试主要侧重于行为测试。它对于熟悉新的软件功能非常有效。它还提供了系统的高级概述,有助于评估和快速学习软件。

尽管看起来是随机的,但在经验丰富且技术熟练的测试人员手中,探索性测试可以发挥强大的作用。由于它的执行没有任何关于软件应该做什么和不应该做什么的先入为主的概念,因此它为测试人员提供了更大的灵活性,以发现隐藏的路径和沿着这些路径的问题。

28. 什么是端到端测试?

端到端测试是从头到尾测试软件系统的过程。测试人员就像终端用户一样测试软件。例如,为了测试桌面软件,测试人员会像用户一样安装软件,打开它,按预期使用应用程序,然后验证行为。对于 Web 应用程序也是如此。

端到端测试与其他更孤立的测试形式(例如单元测试)之间存在重要区别。在端到端测试中,软件与其所有依赖项和集成(例如数据库、网络、文件系统和其他外部服务)一起进行测试。

29.什么是静态软件测试?

静态测试是一种在不实际执行软件的情况下测试软件的技术。它涉及进行代码演练、代码审查、同行审查,或使用复杂的工具(如 eslint、StyleCop)对源代码进行静态分析。静态测试通常在软件开发期间执行。

30. 什么是动态软件测试?

与静态测试相反,动态软件测试在软件执行时对其进行测试。测试人员在测试环境中运行软件并完成所有涉及的步骤,输入输入并使用预期结果验证实际输出。

31.什么是API测试?

API 测试可确保软件使用的 API 按预期工作。测试人员编写代码向提供 API 的服务器发出 API 请求,提供所需的输入,从响应中收集输出,并将实际输出与预期输出相匹配。

API 测试主要关注暴露 API 的软件的业务逻辑。它不涉及软件的外观和感觉、可访问性或可用性。API 测试可以自动化,以使其在每次运行时都具有可重复性和再现性。 

32. 代码覆盖率是什么意思?

代码覆盖率是重要的测试指标之一。它表示单元测试下的代码库占整个代码库的比例。50% 的代码覆盖率意味着单元测试覆盖了一半的代码库。

请务必记住,100% 的代码覆盖率并不意味着软件没有错误或没有错误。这只是意味着单元测试涵盖了所有代码。但是,测试仍然有可能没有测试代码可能采用的所有分支或业务逻辑执行的问题。

33. 手动测试有什么好处?

手动测试有以下几个优点: 

  • 适用于生命周期短的产品 
  • 节省时间、金钱和资源 
  • 确保产品无差错 
  • 在临时测试、探索性测试和可用性测试中很有用 
  • 无需更改整个代码即可进行细微更改 
  • 获得准确的用户界面反馈  
  • 能够以更好的方式处理困难的用例情况 
  • 可以准确地完成GUI测试 
  • 高度可靠 
  • 让用户更友好 
  • 易于新测试人员学习 

34. 手动测试的缺点是什么?

手动测试有几个缺点,如下所示: 

  • 不适合有时间限制的项目和大型组织  
  • 更容易出现人为错误和错误 
  • 由于无法选择记录测试过程,因此效率较低 
  • 不太可靠 
  • 回归测试很耗时 
  • 未涵盖测试的所有方面 
  • 可以手动进行负载测试和性能测试 
  • 从长远来看,成本更高

35. 手动测试的程序是什么?

手动测试的过程包括以下内容: 

  • 计划和控制 
  • 分析与设计 
  • 实施和执行 
  • 评估退出标准和报告 
  • 测试关闭活动

36. 编写不同类型的手动测试?

不同类型的手动测试包括: 

  • 黑盒测试 
  • 白盒测试 
  • 单元测试 
  • 系统测试 
  • 集成测试 
  • 验收测试 
  • 性能测试
  • 负载测试

37. 列举一些手动测试工具。

一些顶级手动测试工具包括:

  • postman
  • 消息队列监视器
  • 数据库工具等

38. 你什么时候会选择自动化测试而不是手动测试?

自动化测试相对于手动测试的优势  

  • 当测试用例需要长时间重复运行时。  
  • 当需要执行回归测试、性能测试或负载测试时。 
  • 当你想记录测试过程时 
  • 当一个人完成测试阶段的时间较少时 
  • 当需要在标准运行时环境中执行测试时 
  • 当测试包括重复步骤时 
  • 当产品有多个快速部署时,手动变得非常耗时且多余

39. 你什么时候会选择手动测试而不是自动化测试?

手动测试相对于自动化测试的优势:

  • 当测试用例需要运行很短的时间(一次或两次)时。 
  • 当需要执行临时测试、探索性测试或可用性测试时 
  • 当想要确保应用程序的用户友好性时 
  • 当需要灵活性时 
  • 当一个人想要更好地处理复杂的场景时 

40. 列举一些可以用于代码覆盖的方法。

有几种方法可以用于代码覆盖,包括: 

  • 报表覆盖 
  • 决策覆盖 
  • 分支机构覆盖 
  • 切换覆盖范围 

41. 定义潜在缺陷。

潜在缺陷,顾名思义,是一种在软件系统中存在很长时间但现在才被发现的缺陷或错误。潜在缺陷是可以通过检查有效发现的现有缺陷。它通常保持隐藏或休眠状态,是低优先级缺陷。 

42. 软件测试面试题有哪些:Validation 和 Verification 的区别?

验证:它被定义为涉及通过运行软件产品对其进行动态测试的过程。此过程验证我们是否正在构建满足该客户要求的正确软件。它涉及各种活动,如系统测试、集成测试、用户验收测试和单元测试。

验证:它被定义为涉及分析文档的过程。此过程验证软件是否符合规范。它的最终目标是确保软件产品、设计、架构等的质量。  

验证与验证:

确认 验证 
它检查软件是否符合规范。它检查规范是否满足了客户的需求。  
它是一种静态测试。 它是一种动态测试。 
不需要执行代码。有执行代码的要求。
此过程由 QA 团队执行,以确保按照 SRS 文档中的规范构建软件。这个过程是在测试团队的参与下进行的。 
审查、演练、检查和桌面检查是一些可用于验证的方法。 黑盒测试、白盒测试和非功能测试是验证过程中可以使用的一些方法。
它在开发过程的早期识别错误或错误。它可以识别验证过程无法捕获的错误或错误。
它在验证过程之前执行。它在验证过程之后执行。

43. 解释术语测试台。

测试床通常被称为用于测试应用程序的数字平台。它包括操作系统、硬件、网络配置、数据库、被测软件应用程序以及所有其他与软件相关的问题。  

44. 文档在手动测试中的作用是什么?

一些与软件测试相关的常用文档工件包括:  

  • 测试计划 
  • 测试场景 
  • 测试用例  
  • 追溯矩阵 

45. 测试用例是什么意思?

测试用例基本上是一个包含一组测试数据、前置条件、预期结果和后置条件的文档。本文档专门针对特定的测试场景而开发,以确保软件产品是否满足特定要求。在手动测试中,测试用例由测试人员手动执行,不使用任何自动化工具。在开发测试用例时,可以很容易地发现规范中的漏洞。  

46. 命名测试用例的一些属性。

测试用例具有多种属性,使它们更加可靠、清晰和简洁,避免了任何形式的冗余。其中一些如下所示: 

  • Test Case Id : 测试用例的唯一标识符 
  • 测试摘要测试用例的单行摘要 
  • Description : 测试用例的详细描述 
  • 先决条件或先决条件:在实施测试步骤之前要遵循的一组条件 
  • 测试步骤:执行测试用例的详细步骤 
  • 测试数据:测试用例中使用的测试数据值 
  • 预期结果:通过测试的估计结果 
  • 实际结果:执行测试步骤后的实际结果。 
  • 测试结果:测试执行的状态(通过或失败) 
  • 自动化状态:自动化标识符 
  • 日期:测试执行日期 
  • 执行者:执行测试用例的人名 

47. 什么是测试计划?它包括什么?

测试计划基本上是由测试经理监视和控制的动态文档。测试项目的成功完全取决于描述软件测试范围和活动的编写良好的测试计划文档。它基本上作为一个蓝图,概述了整个测试过程的内容、时间、方式等。 

测试计划必须包括以下详细信息: 

  • 测试策略 
  • 测试目标 
  • 测试范围 
  • 测试原因 
  • 退出/暂停标准 
  • 资源规划 
  • 测试可交付成果。 

48. 什么是测试报告?它包括什么?

测试报告基本上是一份文件,其中包括测试目标、活动和结果的总摘要。非常需要反映测试结果并提供快速估计测试结果的机会。它帮助我们决定产品是否准备好发布。它还可以帮助我们确定项目的当前状态和产品的质量。测试报告必须包括以下详细信息: 

  • 测试目标 
  • 项目信息 
  • 缺点 
  • 测试总结

49. 测试可交付成果是什么意思?

测试可交付成果,也称为测试工件,基本上是在 SDLC 期间提供给软件项目利益相关者的所有文档、工具和其他组件的列表。维护和开发测试可交付成果以支持测试。在 SDLC 的每个阶段,都有不同的可交付成果,如下所示:

测试阶段前 

  • 测试计划文档。 
  • 测试用例文档 
  • 测试设计规范。

在测试阶段 

  • 测试脚本 
  • 模拟器。 
  • 测试数据 
  • 测试可追溯性矩阵 
  • 错误日志和执行日志

测试阶段后 

  • 测试结果/报告 
  • 缺陷报告 
  • 安装/测试程序指南 
  • 发行说明 

50.解释STLC。

STLC(软件测试生命周期)是 SDLC 的基本组成部分,用于测试软件并确保满足质量标准。它通常涉及验证活动和确认活动。在这种情况下,不同的活动在整个软件测试过程中以特定的顺序执行。STLC 模型基本上有六个不同的阶段,如下所示: 

  • 需求分析 
  • 测试计划 
  • 测试用例开发 
  • 测试环境设置 
  • 测试执行 
  • 测试周期结束 

51. 写出错误、缺陷和错误之间的区别。

错误:它被定义为编码中的编程错误,因此我们无法编译或运行程序。  

缺陷:定义为测试人员或开发人员建立的实际结果与预期结果之间的差异或差异。缺陷基本上是在产品投入生产后才发现,仅在开发阶段解决。  

错误:它被定义为在测试阶段检测到的软件系统中的故障或不匹配。它对软件功能和性能有影响。 

52. 解释用例测试。

用例测试基本上被定义为一种技术,它帮助开发人员和测试人员识别测试用例,这些测试用例在每个事务的基础上从头到尾运行整个系统。它是黑盒测试的一部分,广泛用于开发可接受级别的测试或系统。  

53. 测试矩阵和追溯矩阵是什么意思?

测试矩阵:它被称为测试工具,用于捕获捕获软件测试所有阶段所需的实际质量、工作量、资源、计划和时间。它仅涵盖生命周期的测试阶段。  

需求可追溯性矩阵(RTM):它被称为文档,通常以表格形式出现,用于从头到尾跟踪和演示需求与项目其他工件之间的关系。简而言之,它在测试用例和客户需求之间进行映射。  

54. 什么是正面和负面测试?

正面测试:这是一种测试过程,其中软件应用程序根据有效数据集作为输入进行验证。它仅用于检查应用程序是否执行了它应该执行的操作。

否定测试:这是一种测试过程,其中软件应用程序针对无效数据集作为输入进行验证。它仅用于检查系统是否在应该执行或不执行时显示错误。在测试用例执行中,负面测试被认为是一个非常关键的因素。 

正面与负面测试:

正面测试负面测试
它通过提供有效数据来测试应用程序或系统。 它通过提供无效数据来测试应用程序或系统。
它接受所有数字和字母值。它不接受任何特殊字符。
执行此类测试以识别一组已知的测试条件。执行此类测试以识别一组未知的测试条件。
它通常在每个应用程序上执行。  它通常在出现意外情况或错误的机会较多的地方执行。
它需要更少的时间,并且可以由知识较少的人来执行。  它需要更多时间,并且只能由专业人员执行。
它确保软件应用程序正常。  它确保软件应用程序 100% 无检测。
它不包括所有可能的情况。 它涵盖了所有可能的情况。
它不如负面测试重要或重要。 它比正面检测更重要、更重要。

55. 严重错误是什么意思?

严重错误被称为影响给定应用程序的大部分功能的错误。它不会干扰或阻止给定应用程序的其他部分的测试。错误仅在它停止软件的核心操作时才被归类为严重错误。

56.软件测试面试题和答案合集:什么是UAT(用户验收测试)?

UAT,也称为最终用户测试,基本上是由最终用户或客户为批准生产版本而执行的一种测试方法。它是 SDLC 的最后阶段之一,仅在软件经过彻底测试后执行。其主要目的是验证端到端的业务流程。它确保开发的软件满足所有要求以进入市场与否。

57. 系统测试可以在任何阶段进行?

软件测试面试题解析:软件的所有组件通常作为一个整体进行测试,以确保整个产品满足指定的要求。所以不行。系统测试不能在任何阶段进行,系统测试必须在所有模块或单元正常工作并就位后才开始,但需要在 UAT 之前进行。 

58.解释猴子测试和性能测试。

猴子测试:猴子测试,也称为随机测试,是一种软件测试技术,其中使用工具或某种自动化机制随机生成数据。系统使用这个随机生成的输入进行测试,并相应地分析结果。在这种类型的测试中没有这样的规则。

性能测试:它是一种非功能性软件测试技术,用于确定不同工作负载条件下的系统参数,如速度、可扩展性和稳定性。它的主要目的是消除性能瓶颈,而不是发现错误。性能测试的一些关键参数包括: 

  • CPU 使用率
  • 内存利用率
  • QPS/TPS(每秒事务数)
  • 平均加载时间
  • 系统吞吐量等

59. 写出测试存根和测试驱动程序之间的区别。

测试驱动程序和测试存根都是测试工具的类型,用于为测试模块或组件提供模拟环境。它们都是专为测试目的创建的虚拟模块。 

测试存根:测试存根用于自顶向下的测试方法,并允许在代码的下层尚未开发时测试代码的上层。当子程序正在构建时,它被用作“被调用的程序”。 

测试驱动程序:测试驱动程序用于自底向上的测试方法,允许在代码的上层尚未开发时测试代码的下层。当主程序正在构建时,它被用作“被调用的程序”。 

60. 解释耐力测试还是浸泡测试?

耐久性测试,也称为浸泡测试,是一种性能测试,通常用于检查系统在持续使用下的性能。其主要目的是确定系统是否可以承受持续的高负载。在此测试期间,还监视内存利用率以识别潜在的泄漏。一些耐久性测试工具包括: 

  • 网络加载 
  • 加载界面 
  • 开放式STA 
  • 加载完成 
  • Apache JMeter 等 

61. 本地化测试的重要性是什么?

本地化测试是一种测试,用于确保软件产品是否在特定语言环境中提供完整的功能和可用性。它仅用于验证内容的准确性和适用性。它不仅与语言学有关,还与传统、共同的群体行为和其他类似因素有关。它通常处理应用程序的功能和 GUI。

62. 解释路径测试。

路径测试是一种专门用于设计测试用例的测试。在这种类型的测试中,程序的控制流图专门设计用于识别一组线性独立的执行路径。它的主要目标是确保每条路径都被覆盖和执行得很好。它还减少或最小化冗余测试的发生。 

63. 基线测试和基准测试是什么意思?

基线测试:这是一种非功能测试,其中运行一组测试以捕获性能信息。使用这些收集到的信息,我们可以对应用程序进行必要的更改,并最终提高应用程序的性能和功能。一般而言,它指的是通常构成任何新创作基础的基准。在此测试期间,发现并解决了许多错误。 

基准测试:这是一种涉及开发人员和 DBA(数据库管理员)的测试,以确定当前的性能信息。使用此信息,可以通过将其与基准(行业标准)相匹配来提高其性能。它的主要目标是将当前和未来的软件版本与其特定的基准进行比较。 

64. 解释模糊测试及其重要性。

模糊测试是一种软件测试技术,其中将大量随机数据(称为模糊)作为输入提供给应用程序,只是为了检测或发现软件应用程序中的安全漏洞和编码错误。它对于较大的项目更有用,但它只能检测到严重的故障或缺陷。它仅用于检查软件的漏洞,并在与 beta 测试、黑盒测试等一起使用时给出更有效的结果。

65. 数据流测试是什么意思?

数据流测试是一种结构化测试,用于分析程序中的数据流向。在这里,程序员可以对数据值和变量执行各种测试。使用此测试,可以确定在程序控制流的每个阶段使用的变量。它通过以下方式帮助我们: 

  • 消除或删除声明后从未使用过的变量  
  • 查明使用但从未声明的变量  
  • 在使用之前释放变量 
  • 查明在使用前多次定义的变量 

66. 敏捷测试的重要性是什么?

敏捷测试基本上是一个使用敏捷方法的软件测试过程,即遵循测试优先设计范式。它从客户的角度评估软件。它不需要任何开发团队完成编码即可开始 QA,而不是测试和编码可以齐头并进。功能在开发时进行测试。它的一些优点包括:  

  • 提高性能,因为它允许所有测试人员和开发人员一起工作 
  • 功能在开发时进行测试 
  • 确保优质产品的顺利交付 
  • 节省时间和金钱 
  • 灵活应变能力强 
  • 提高产品质量并允许开发人员尽早发布软件

67. 有哪些不同的调试类别?

调试的不同类别包括: 

  • 蛮力调试 
  • 回溯 
  • 原因消除 
  • 程序切片 
  • 故障树分析 

有经验的手动测试面试问题

68. 什么是Selenium?它有什么好处?

Selenium是一种 Web 浏览器自动化工具,可自动执行你需要在 Web 浏览器上运行的测试套件。

Selenium 的一些好处包括:

  • 它是开源软件,消除了许可成本。 
  • 它支持所有主要语言,例如 Java、C#、Python、Ruby 等。 
  • 它支持所有主要的网络浏览器,例如 Google Chrome、Firefox、Safari 等。 
  • 你可以将其与其他测试框架和工具集成,为你的软件构建一个全面的测试套件。 

69. 什么是边值分析?

在软件中,许多错误发生在数据值范围的边缘附近。例如,当程序员使用大于号 (>) 而不是大于号或等于 (>=) 运算符时,会导致非一索引错误。

通常,开发人员会错过这些边界情况,因为他们在开发和测试时遵循了一条愉快的道路。边界值分析有助于发现由极值引起的误差。测试人员选择位于数据输入域边界之上和之下的测试数据。

例如,如果输入字段需要长度为 20 个字符的字符串,则测试器将使用长度为 19、20 和 21 的字符串对其进行测试。 

70.什么是回归测试?

回归的字典定义是回到以前的地方或状态的行为。在软件中,回归意味着在开发人员向软件添加新代码或功能后,曾经可以工作的功能突然停止工作。

回归问题在软件行业很普遍,因为新功能一直在增加。开发人员不会孤立地构建这些功能,与现有代码分开。相反,新代码与遗留代码交互并以各种方式对其进行修改,从而引入副作用,无论是否有意。

因此,总是有可能引入新的更改可能会对工作功能产生负面影响。重要的是要记住,即使是很小的更改也有可能导致回归。

回归测试有助于确保新代码或对现有代码的修改不会破坏当前行为。它允许测试人员验证新代码是否与遗留代码兼容。

71. 什么是单元测试?

单元测试是以隔离的方式测试单个代码单元的过程。代码单元可以是方法、类或模块。单元测试旨在专注于最小的代码构建块,以便在以后将它们组合起来以生成功能齐全的软件。

单元测试调用代码并使用预期结果验证结果。如果预期结果和实际结果匹配,则单元测试通过。否则,它失败。

一个好的单元测试具有以下特点:

  1. 它应该测试单个功能。
  2. 它是完全自动化和可重复的。 
  3. 它应该快速运行并提供即时反馈。
  4. 它应该是隔离的,除非需要,否则不应与外部依赖项(例如网络、数据库或文件系统)交互。你可以使用模拟技术来模拟外部依赖项并隔离被测代码。

72.什么是API?

API 代表应用程序编程接口。它是两个软件组件之间的通信方式。API 抽象了软件程序的内部工作原理和复杂性,并允许该 API 的用户只关注使用它所需的输入和输出。 

在构建软件时,开发人员很少从头开始编写软件并使用其他第三方库。API 允许两个软件组件通过提供它们可以理解的接口来相互交谈。

API 的另一个用途是提供应用程序所需的数据。假设你正在构建一个显示温度的天气应用程序。你无需自行构建技术来收集温度,而是访问气象研究所提供的 API。

73. 服务器可以返回哪些不同的 HTTP 状态代码?

HTTP 状态码是一个三位数字,表示传入的 HTTP 请求的状态,即请求是否已完成。

服务器可以为 HTTP 请求发送以下五种类型的响应。

  1. 信息 (100 - 199):这些状态代码提供临时响应。响应由状态行和可选标题组成,并以空行终止。 
  2. 成功 (200 - 299):表示传入的 HTTP 请求已成功接收、理解和接受。 
  3. 重定向 (300 - 399):这些状态代码指示客户端应采取的进一步操作以满足 HTTP 请求。这可能意味着所请求的资源可能已暂时或永久移动。它还可以将客户端重定向到另一个 URL。 
  4. 客户端错误 (400 - 499):表示发起 HTTP 请求的客户端存在问题。 
  5. 服务器错误 (500 - 599):5XX 状态代码表示处理请求时服务器出现问题。 

74. 什么是测试覆盖率?

测试覆盖率是一个指标,表明测试覆盖了多少源代码,允许测试人员验证他们的测试质量。它可以帮助测试人员确定他们是否正在测试他们应该测试的所有内容。

测试覆盖率对不同的人来说可能意味着不同的事情,这取决于他们测试方法的细节。

  1. 产品:这意味着查看测试覆盖率来回答以下问题:你的测试涵盖软件的哪些功能或领域? 
  2. 要求:该软件可能运行良好,但如果不能满足客户的需求,则它对客户没有用处。需求覆盖率表示测试了多少需求。 
  3. 源代码:这通常是开发人员的域,是一种白盒测试技术。开发人员可以检查单元测试覆盖了多少他们的源代码。

75. 浏览器自动化是什么意思?

这是一个在浏览器中自动测试 Web 应用程序功能的过程,其中程序启动浏览器,导航到应用程序,并通过单击按钮或链接与用户界面交互,就像普通用户一样。

唯一的区别是浏览器自动化可以非常快速和频繁地进行测试,而同样的测试需要人工测试人员很长时间。它是自动化测试的一部分。浏览器测试的一些基本工具包括 Selenium、protractor.js 和 cypress。

76. 什么是 A/B 测试?

A/B 测试是与用户一起测试软件的两个或多个不同版本以评估哪个版本性能更好的过程。这是一种测试新功能或现有功能变体的低风险方式。

你可以选择一部分用户使用功能 A。另一组用户使用功能 B。然后使用统计测试评估用户反馈和响应,以决定该功能的最终版本。 

通常,A/B 测试用于测试不同界面的用户体验。这允许团队快速收集反馈并测试他​​们的初始假设。

77. 重新测试和回归测试有什么区别?

回归测试:回归测试,也称为通用测试,围绕重新运行功能和非功能测试。特别是为了确保以前开发和测试的软件在更改后是否仍然执行相同的操作。它可以手动执行,也可以使用自动化测试执行。

重新测试:重新测试,也称为计划测试,用于开发人员修复后的特定错误。检测确定后,进行重新测试以检查相同环境条件下的场景。 

回归与重新测试:

回归重新测试
执行它是为了确保更改没有影响未更改的部分。 执行它是为了确保在开发人员修复检测后通过上次执行中提交的测试用例。 
它不是针对特定的检测修复而执行的。 它通常基于缺陷修复来执行。
它只是以前的版本以功能为中心。它以当前或以前的版本功能为中心。
它可以与重新测试并行执行。需要在回归测试之前执行。 
它不包括错误的验证。它包括错误的验证。
在这种类型的测试中,测试用例可以自动化并且测试风格是通用的。在这种类型的测试中,测试用例不能自动化,测试是有计划的。 
它仅用于通过的测试用例。 它仅用于失败的测试用例。

78. 什么是系统测试和单元测试?写出它们之间的区别。

系统测试:它是一种典型的黑盒测试技术,在完整且完全集成的系统中执行,以评估系统是否符合其特定要求。它必须调查功能性需求和非功能性需求。通常,它由测试人员和开发人员共同执行。

单元测试:在单元测试中,软件的每个组件都经过单独测试。通常,单元测试由开发人员执行。那些模块之间有很多相互依赖关系的系统无法通过单元测试进行测试。 

系统与单元测试:

系统测试单元测试
系统测试方法包括将每个模块视为单独的测试目标,并在每个模块经过测试后集成模块。单元测试的目的是一次只测试一个模块,而不是应用程序的集成版本。
通常,在进行单元测试时,采用单模块测试方法。对于系统测试用例,它包括自顶向下方法测试和自底向上方法测试,所有模块都处于集成模式。
它侧重于系统验证。 它侧重于功能验证。
它通常遵循需求规范。它通常遵循模块的规范。
它也被称为黑盒测试。它也被称为白盒测试。
与单元测试相比,它是一种低级测试。与系统测试相比,它是一种高级测试。

79. 集成测试有哪些类型?

  • 大爆炸测试 
  • 自下而上的测试 
  • 自上而下的测试 

80. 列举一些最流行的集成测试工具。

一些最流行的集成测试工具包括: 

  • DBUnit 
  • Greenmail 
  • Mockito 
  • REST-Assured 
  • JUnit 5 
  • H2 数据库等 

81. 什么是测试线束和测试闭合?

测试工具:测试工具,也称为自动化测试框架,是在开发过程中对软件模块进行单元测试所需的软件和测试数据的集合。它主要由开发人员使用,有助于单元测试用例的自动化和执行。它通常包括两个主要部分,如下所示: 

  • 测试执行引擎 
  • 测试脚本库

测试关闭:测试关闭基本上是一个文档,它提供了在 SDLC 期间执行的所有测试的摘要。它提供了发现和删除的错误的完整详细的分析报告。它通常在测试过程结束之前执行。

82. 解释测试场景。

软件测试面试题解析:测试场景也称为场景测试,被定义为测试用例或用例的高级详细文档。在这种情况下,测试人员从最终用户的角度测试软件应用程序。它通常可以作为较低级别的测试用例或用例创建的基础。测试场景也称为测试条件或测试可能性。它让你了解我们需要测试的内容。

83. 什么是缺陷生命周期?

缺陷生命周期,也称为缺陷生命周期,是一个缺陷在其整个生命周期中经历的各个阶段的生命周期。这个生命周期在测试人员发现或报告缺陷后立即开始,并在测试人员确保缺陷得到解决并且不会再次发生时结束。缺陷生命周期包括以下步骤:

84. 解释基于经验的测试技术。

基于经验的测试技术是一种测试类型,它基于测试人员的测试经验以了解系统的基本领域。这种类型的测试通常用于低风险系统。个人的信息、能力和基础知识是基于经验的技术的测试条件和实验的主要支持者。有四种不同的基于经验的测试技术,如下所示:

85. 软件测试面试题有哪些:写出冒烟测试和健全性测试之间的区别。

冒烟测试:这是一种测试,用于确保程序的急性功能运行良好。它作为质量保证团队是否可以进一步进行测试的确认。  
健全性测试:这是一种无脚本形式的测试,用于确保所做的代码更改运行良好。它由测试团队执行,用于一些基本测试。这种测试侧重于一个或几个功能领域,通常是狭窄而深入的。 

烟雾与健全性测试: 

烟雾测试健全性测试
它的主要目标是衡量系统的稳定性,以便团队可以进行更严格的测试。它的主要目标是衡量系统的合理性,以便团队可以进行更严格的测试。
它通常由开发人员或测试人员执行。它通常由测试人员执行。
它是回归测试的一个子集。它是验收测试的一个子集。
它可以手动执行,也可以使用自动化工具执行。它只能手动执行,不能使用自动化工具。 
一般在开发新产品时进行。它通常在回归测试之后执行。 
它被记录并用于测试应用程序的端到端功能。它没有记录,仅用于测试修改或缺陷修复的功能。
它也被视为验收测试的一个子集。它也被认为是回归测试的一个子集。 

86、农药悖论是什么意思?

农药悖论基本上是一种现象,即对软件进行的测试越多,它就越不受其测试的影响。为了克服这个问题,测试人员应该始终寻找新的策略、方法和测试用例,以便他们能够识别错误并解决它们。 

87. 解释配置测试。

配置测试是一种软件测试技术,用于评估软件的配置需求。它发现系统的最佳配置,在该配置下应用程序可以发挥最佳性能,因此配置测试被认为很重要。它还有助于识别和解决任何兼容性问题。 

88. 说出两个有助于检查测试执行质量的参数。

检查测试执行质量所需的两个参数包括: 

  • 缺陷剔除率:总剔除率与总产量之比。
  • 缺陷泄漏率:发生不合格品的总可能性与总产量之比。

软件测试面试题和答案合集结论

89. 结论

软件测试是一项重要的活动,可以确保质量,让你有信心将软件发布给客户。本文解释了测试过程及其在软件开发中的重要性。它还涵盖了有关手动测试的重要概念,并将引导你掌握手动测试领域。

然而,测试只是良好软件开发策略的一个组成部分。开发团队应该使用高编码标准、最佳实践和模式来减少错误数量。作为一项长期策略,改进测试过程的最佳方法是经常测试、衡量结果、收集反馈并使用它来改进。 

参考:

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: