文章图片
下面列出了一些最常见的软件测试面试问题或QTP面试问题和答案。
1)什么是PDCA周期以及适合进行的测试?
正常的软件开发过程包括四个步骤。简而言之, 这些步骤称为PDCA。
文章图片
PDCA代表计划, 执行, 检查, 执行。
- 计划:它定义了目标和实现该目标的计划。
- 执行/执行:取决于计划阶段决定的计划策略。根据此阶段完成。
- 检查:这是软件开发阶段的测试部分。它用于确保我们按计划进行并获得期望的结果。
- 行动:此步骤用于解决在检查周期内是否发生任何问题。因此, 它将采取适当的措施, 然后再次修改计划。
2)白盒, 黑盒和灰盒测试有什么区别?
黑盒测试:黑盒测试的策略基于需求和规范。它不需要了解所测试软件的内部路径, 结构或实现的知识。
白盒测试:白盒测试基于内部路径, 代码结构和被测试软件的实现。它需要完整而详细的编程技巧。
灰盒测试:这是另一种类型的测试, 其中我们查看正在测试的盒子, 这样做只是为了了解它是如何实现的。之后, 我们关闭盒子并使用黑盒测试。
以下是白盒, 黑盒和灰盒测试之间的差异:
黑匣子测试 | 灰箱测试 | 白盒测试 |
---|---|---|
灰盒测试知道内部程序的有限知识。 | 在白盒测试中, 完全需要程序的实现细节。 | |
它具有中等粒度。 | 它具有很高的粒度。 | |
这也称为半透明测试。 | 这也称为玻璃箱测试, 透明箱测试。 | |
这也是用户接受度测试。 | 测试人员和程序员主要这样做。 | |
测试用例由程序的内部细节组成。 | 测试用例由程序的内部细节组成。 |
【推荐!软件测试面试题精品合集】在生命周期的早期设计测试可以防止缺陷出现在主代码中。
4)缺陷类型有哪些?
缺陷有三种类型:错误, 丢失和多余。
错误:由于要求实施不正确而发生这些缺陷。
缺失:用于指定缺失的内容, 即未实施规范或未适当注意客户的要求。
额外:这是产品中包含的额外设施, 最终用户没有提供。它始终是与规格的差异, 但可能是客户所需的属性。但是, 由于与用户要求不同, 因此被认为是缺陷。
5)什么是探索性测试?
针对应用程序的同时测试设计和执行称为探索性测试。在此测试中, 测试人员将使用其领域知识和测试经验来预测系统在何处以及在什么条件下可能会异常运行。
6)什么时候应该进行探索性测试?
在发布软件之前, 将进行探索性测试, 作为最终检查。它是对自动回归测试的补充活动。
7)在生命周期的早期设计测试有什么优势?
它可以帮助你防止代码中的缺陷。
8)告诉我有关基于风险的测试的信息。
基于风险的测试是一种基于风险对测试进行优先排序的测试策略。它基于详细的风险分析方法, 该方法将风险按优先级进行分类。首先解决最高优先级风险。
9)什么是验收测试?
进行接受测试以使用户/客户能够确定是否接受软件产品。它还可以验证软件是否遵循一组商定的接受标准。在此级别上, 对系统进行了用户可接受性测试。
文章图片
验收测试的类型为:
- 用户接受测试:也称为最终用户测试。这种类型的测试是在测试人员测试产品之后执行的。用户验收测试是针对用户需求, 需求和业务流程执行的测试, 以确定系统是否满足验收标准。
- 操作验收测试:在产品投放市场之前执行操作验收测试。但是, 它是在用户验收测试之后执行的。
- 合同和法规接受测试:在合同接受测试的情况下, 将根据某些标准对系统进行测试, 并在合同中制定标准。在法规接受测试的情况下, 将检查软件应用程序是否符合政府法规。
- Alpha和Beta测试:Alpha测试是在开发环境中进行的, 然后再发布给客户。输入来自Alpha测试人员, 然后开发人员修复了该错误以提高产品质量。与alpha测试不同, beta测试在客户环境中执行。客户执行测试并提供反馈, 然后实施反馈以提高产品质量。
可访问性测试用于验证残疾人(聋人, 盲人, 智障人士等)是否可以访问软件产品。
11)什么是临时测试?
临时测试是测试阶段, 测试人员尝试通过随机尝试系统的功能来” 破坏” 系统。
12)什么是敏捷测试?
敏捷测试是一种使用敏捷方法的测试实践, 即遵循测试优先设计范式。
13)什么是API(应用程序编程接口)?
应用程序编程接口是一组正式的软件调用和例程, 可被应用程序引用以访问支持的系统或网络服务。
14)你所说的自动化测试是什么意思?
通过使用无需手动干预即可执行测试的软件工具进行的测试称为自动测试。可以在GUI, 性能, API等中使用自动测试。
15)什么是自下而上的测试?
自下而上的测试是一种测试方法, 它遵循集成测试, 首先测试最低级别的组件, 然后再测试较高级别的组件。重复该过程, 直到测试顶层组件为止。
16)什么是基准测试?
在基准测试中, 运行一组测试以捕获性能信息。基线测试通过使用收集的信息并在应用程序中进行更改来提高应用程序的性能和功能。基准将应用程序的当前性能与以前的性能进行比较。
17)什么是基准测试?
基准测试是将应用程序性能与其他组织提供的行业标准进行比较的过程。
这是一个标准测试, 用于指定我们的应用程序相对于其他应用程序的位置。
18)哪些类型的测试对Web测试很重要?
有两种类型的测试对于Web测试非常重要:
- 性能测试:性能测试是一种测试技术, 其中可以测量系统的质量属性, 例如响应性, 不同负载条件下的速度和可伸缩性。性能测试描述了在产品投放市场之前需要改进哪些属性。
- 安全测试:安全测试是一种确定要从入侵者保存数据和资源的测试技术。
Web应用程序和桌面应用程序之间的区别是Web应用程序向世界开放, 潜在的许多用户在不同时间同时访问该应用程序, 因此负载测试和压力测试非常重要。 Web应用程序也容易受到各种形式的攻击, 主要是DDOS, 因此对于Web应用程序, 安全测试也非常重要。
20)验证和确认有什么区别?
验证和确认之间的区别:
Verification | Validation |
---|---|
验证是动态测试。 | |
验证在验证之后进行。 | |
验证评估产品。 | |
失效测试, 对实际产品进行测试。 | |
输出无效的实际产品。 |
重新测试和回归测试之间的差异列表:
Regression | Retesting |
---|---|
重新测试是检查最终执行失败的测试用例的测试过程。 | |
对缺陷修复程序进行重新测试。 | |
缺陷验证是回归测试的元素。 | |
无法执行自动化以进行重新测试。 | |
重新测试也称为计划测试。 | |
回归测试可以与重新测试同时进行。重新测试的优先级高于回归测试。 |
预防性测试的设计较早, 而反应性测试则是在软件生产后进行的。
23)退出标准的目的是什么?
退出标准用于定义测试级别的完成。
24)为什么使用决策表测试?
决策表由一列中的输入组成, 而输出在同一列中但在输入下方。
决策表测试用于测试系统, 其规格采用规则或因果组合的形式。你在表中得到的提示将探索输入的组合以定义产生的输出。
25)什么是alpha和beta测试?
这些是alpha和beta测试之间的主要区别:
No. | 阿尔法测试 | Beta测试 |
---|---|---|
它总是由软件开发站点的开发人员完成。 | 它始终由客户在其站点上执行。 | |
它也由独立测试团队执行 | 不能由独立测试团队执行 | |
它不向市场和公众开放。 | 它向市场和公众开放。 | |
它始终在虚拟环境中执行。 | 它始终在实时环境中执行。 | |
它用于软件应用程序和项目。 | 用于软件产品。 | |
它遵循白盒测试和黑盒测试的类别。 | 这只是黑匣子测试的一种。 | |
没有其他名称可知。 | 这也称为现场测试。 |
随机测试也称为猴子测试。在此测试中, 经常使用工具随机生成数据。数据是使用工具或某种自动机制生成的。
随机测试有一些限制:
- 大多数随机测试都是多余且不切实际的。
- 需要更多时间来分析结果。
- 如果你不记录用于测试的数据, 则无法重新创建测试。
负面测试:当你输入无效的输入并收到错误时, 称为负面测试。
积极测试:当你输入有效输入并期望根据规范完成的某些操作被称为积极测试。
28)测试独立性有什么好处?
测试独立性非常有用, 因为它避免了作者定义有效测试的偏见。
29)什么是边界值分析/测试?
在边界值分析/测试中, 我们仅测试确切的边界, 而不是击中中间位置。例如:如果有一个银行应用程序, 你最多可以提取25000, 最低可以提取100。因此, 在边界值测试中, 我们仅测试高于最大值和低于最大值的情况。这涵盖了所有方案。
下图显示了上述银行应用的边界值测试。TC1和TC2足以测试银行的所有条件。 TC3和TC4是重复/冗余测试用例, 它们不会为测试增加任何价值。因此, 通过应用适当的边界值基础知识, 我们可以避免重复的测试用例, 这些用例不会为测试增加价值。
30)你将如何测试Web应用程序的登录功能?
有很多方法可以测试Web应用程序的登录功能:
- 使用有效的登录名登录, 关闭浏览器并重新打开, 然后查看你是否仍在登录。
- 登录, 然后注销, 然后返回登录页面以查看你是否真正注销。
- 登录, 然后返回同一页面, 你是否再次看到登录屏幕?
- 会话管理很重要。你必须关注我们如何通过Cookie或网络会话来跟踪已登录的用户?
- 从一个浏览器登录, 然后打开另一个浏览器以查看是否需要再次登录?
- 登录, 更改密码, 然后注销, 然后查看是否可以使用旧密码再次登录。
性能测试:性能测试是一种测试技术, 可以确定系统在各种负载条件下的性能, 例如速度, 可伸缩性和稳定性。该产品在投放市场之前已经过性能测试。
软件测试的类型为:
文章图片
1.负载测试:
- 负载测试是一种测试技术, 其中以不断增加的负载测试系统, 直到达到阈值为止。
- 负载测试的主要目的是检查负载增加时系统的响应时间。
- 负载测试是非功能性测试, 意味着仅测试了非功能性需求。
- 执行负载测试以确保系统可以承受重负载
- 压力测试是一种测试技术, 用于在硬件资源(例如CPU, 内存, 磁盘空间等)不足时检查系统。
- 在压力测试的情况下, 在系统加载进程数且硬件资源较少的情况下测试软件。
- 压力测试的主要目的是检查系统故障并确定如何从该故障中恢复, 这称为可恢复性。
- 压力测试是非功能性测试, 意味着仅测试了非功能性需求。
- 峰值测试是负载测试的子集。当负载变化时, 这种类型的测试会检查应用程序的不稳定性。
- 测试期间需要考虑不同的情况:
- 第一种情况是不允许用户数量, 以使系统不会承受沉重的负担。
- 第二种情况是向额外的连接器提供警告, 这会减慢响应时间。
- 耐久性测试是负载测试的子集。这种类型的测试会检查系统的行为。
- 耐力测试是非功能性测试, 意味着仅测试了非功能性需求。
- 耐力测试也称为浸泡测试。
- 耐久性测试检查诸如内存泄漏的问题。当程序在使用后没有释放其分配的内存时, 就会发生内存泄漏。有时, 即使在使用后, 应用程序也不会释放其内存, 而这种无法使用的内存会导致内存泄漏。当应用程序长时间运行时, 这会导致问题。
- 在此测试过程中查看的一些主要问题是:
- 内存泄漏是由于某个应用程序引起的。
- 由于数据库连接而导致内存泄漏。
- 内存泄漏是由于第三方软件引起的。
- 容量测试是一种测试技术, 其中在增加数据量时对系统进行测试。
- 体积测试也称为洪水测试。
- 容量测试是非功能性测试, 意味着仅测试了非功能性需求。
- 例如:如果我们要应用卷测试, 则需要扩展数据库大小, 即, 将更多数据添加到数据库表中, 然后执行测试。
- 可伸缩性测试是一种测试技术, 可确保系统按最终用户不断增长的需求按比例运行。
- 以下是此测试期间检查的属性:
- 响应时间
- 通量
- 性能测试所需的用户数
- 门槛负荷
- CPU使用率
- 内存使用情况
- 网络使用
比较基础 | 功能测试 | Non-functional testing |
---|---|---|
功能测试是一种测试技术, 用于检查应用程序的功能是否符合需求规范。 | 非功能测试会检查所有非功能方面, 例如性能, 可用性, 可靠性等。 | |
功能测试是在非功能测试之前实施的。 | 功能测试后执行非功能测试。 | |
这取决于客户的要求。 | 这取决于客户的期望。 | |
功能要求可以轻松定义。 | 非功能性需求无法轻松定义。 | |
功能测试可以通过手动测试执行。 | 无法通过手动测试执行非功能测试。 | |
以下是功能测试的类型:单元测试验收测试集成测试系统测试 | 以下是非功能测试的类型:性能测试负载测试压力测试体积测试安全测试安装测试恢复测试 |
静态测试 | 动态测试 |
---|---|
动态测试是在软件开发生命周期的后期完成的测试过程。 | |
在代码部署之后执行动态测试。 | |
它在验证阶段实施。 | |
对于动态测试, 必须执行代码。 | |
在动态测试的情况下, 将执行测试用例。 |
正面测试 | 阴性测试 |
---|---|
负测试意味着通过提供无效数据来测试应用程序。 | |
在否定测试的情况下, 测试人员将始终在应用程序中检查无效的一组值。 | |
负面测试是通过考虑负面观点来完成的, 例如:通过提供诸如” Akshay123″ 的值来检查名字字段。 | |
它验证未知条件集。 | |
否定测试通过提供无效的数据集来测试系统的行为。 | |
负面测试的主要目的是通过提供无效的数据集来破坏项目。 | |
负面测试试图证明该项目不能满足所有客户需求。 |
数据库面试问题 |
SQL面试题 |
Android面试题 |
MySQL面试问题 |
Java OOP面试问题 |
Java字符串和异常问题 |
JDBC面试问题 |
JSP面试问题 |
休眠面试问题 |
它的粒度低。
也称为不透明盒测试, 封闭盒测试, 输入输出测试, 数据驱动测试, 行为测试和功能测试。
这是一项用户接受度测试, 即由最终用户完成。
由于内部细节未知, 因此测试用例是由功能规范制定的。
验证是静态测试。
验证发生在验证之前。
验证评估计划, 文件, 需求和规格。
在验证中, 输入内容是检查清单, 问题清单, 演练和检查。
验证输出是一组文档, 计划, 规格和需求文档。
回归是一种软件测试, 它检查代码更改是否不影响应用程序的当前功能。
回归测试的主要目的是对代码所做的更改不应影响现有功能。
缺陷验证不是回归测试的元素。
可以执行自动化以进行回归测试, 而手动测试则可能既昂贵又耗时。
回归测试也称为通用测试。
回归测试与执行在较早版本中传递的测试用例有关。重新测试与执行先前失败的测试用例的关系。
1)
2)
3)
4)
5)
6)
7)
描述
执行
重点地区
需求
手动测试
测试类型
静态测试是白盒测试技术, 它是在软件开发生命周期的初始阶段完成的。
静态测试是在代码部署之前执行的。
它在验证阶段实施。
在这种类型的测试过程中不会执行代码。
在静态测试的情况下, 将为测试过程创建检查清单。
积极测试意味着通过提供有效数据来测试应用程序。
在进行正面测试的情况下, 测试人员将始终在应用程序中检查一组有效值。
通过考虑正面观点来进行正面测试, 例如:通过提供诸如” Akshay” 的值来检查名字字段。
它验证已知的测试条件集。
肯定测试通过提供有效的数据集来检查系统的行为。
积极测试的主要目的是证明该项目能够根据客户要求很好地工作。
积极的测试试图证明该项目符合所有客户要求。
工作/人力资源面试问题
PL / SQL面试问题
Oracle面试问题
SQL Server面试问题
Java基础面试问题
Java多线程问题
Java Collection面试题
Servlet面试问题
春季面试问题
推荐阅读
- 推荐!最好的Python面试题合集都在这里了
- 进阶面试!Shell脚本面试问题精品汇总
- 精品推荐!Selenium面试题合集详解
- 推荐!Ruby面试题精华汇总合集
- Mybaits 源码解析 ----- 面试源码系列(Mapper接口底层原理(为什么Mapper不用写实现类就能访问到数据库()))
- 淘宝APP商品搜索API提取
- [LeetCode] 435. Non-overlapping Intervals
- Flutter-AppBar
- Android Studio 配置快速生成模板代码