下面列出了最常被问到的软件测试面试问题或QTP 面试问题和答案。
正常的软件开发过程有四个步骤。简而言之,这些步骤被称为 PDCA。
PDCA 代表计划、执行、检查、行动。
开发人员负责项目的“规划和构建”,而测试人员负责项目的“检查”部分。
黑盒测试:黑盒测试的策略是基于需求和规范。它不需要了解被测试软件的内部路径、结构或实现。
白盒测试:白盒测试基于被测试软件的内部路径、代码结构和实现。它需要完整和详细的编程技能。
灰盒测:这是另一种类型的测试,我们查看正在测试的盒子,它只是为了了解它是如何实现的。之后,我们关闭盒子并使用黑盒测试。
以下是白盒、黑盒和灰盒测试之间的区别:
黑盒测试 | 灰盒测试 | 白盒测试 |
---|---|---|
黑盒测试不需要程序的实现知识。 | 灰盒测试知道内部程序的有限知识。 | 在白盒测试中,完全需要程序的实现细节。 |
它具有低粒度。 | 它具有中等粒度。 | 它具有很高的粒度。 |
它也被称为不透明盒测试、封闭盒测试、输入输出测试、数据驱动测试、行为测试和功能测试。 | 它也被称为半透明测试。 | 它也被称为玻璃盒测试、透明盒测试。 |
它是用户验收测试,即由最终用户完成。 | 这也是一个用户验收测试。 | 测试人员和程序员主要做这件事。 |
由于内部细节未知,测试用例由功能规范制定。 | 测试用例由程序的内部细节构成。 | 测试用例由程序的内部细节构成。 |
在生命周期的早期设计测试可以防止缺陷出现在主代码中。
存在三种类型的缺陷:错误、缺失和额外。
错误:这些缺陷是由于需求未正确实现而发生的。
Missing:用于指定缺少的东西,即没有实施规范,或者没有适当地注意到客户的要求。
额外:这是最终客户未提供的产品中包含的额外设施。它始终与规范存在差异,但可能是客户所需的属性。但是,由于与用户要求的差异,它被视为缺陷。
针对应用程序的同步测试设计和执行称为探索性测试。在此测试中,测试人员使用他的领域知识和测试经验来预测系统在何处和在何种条件下可能会出现意外行为。
探索性测试是在软件发布之前进行的最终检查。它是自动回归测试的补充活动。
它可以帮助您防止代码中的缺陷。
基于风险的测试是一种基于风险对测试进行优先级排序的测试策略。它基于详细的风险分析方法,该方法按优先级对风险进行分类。首先解决最高优先级的风险。
验收测试的目的是使用户/客户能够确定是否接受软件产品。它还验证软件是否遵循一组商定的验收标准。在这个级别,系统测试用户的可接受性。
验收测试的类型是:
可访问性测试用于验证软件产品是否可供残障人士(聋人、盲人、智障人士等)访问。
临时测试是一个测试阶段,测试人员试图通过随机尝试系统的功能来“破坏”系统。
敏捷测试是一种使用敏捷方法的测试实践,即遵循测试优先设计范式。
应用程序编程接口是一组正式的软件调用和例程,可以被应用程序引用以访问支持的系统或网络服务。
使用无需人工干预即可执行测试的软件工具进行测试称为自动化测试。自动化测试可用于GUI、性能、API等。
自底向上测试是一种遵循集成测试的测试方法,其中首先测试最低级别的组件,然后测试更高级别的组件。重复该过程,直到测试顶级组件。
在基线测试中,运行一组测试来捕获性能信息。基线测试通过使用收集的信息并在应用程序中进行更改来提高应用程序的性能和功能。Baseline 将应用程序的当前性能与其以前的性能进行比较。
基准测试是将应用程序性能与其他组织提供的行业标准进行比较的过程。
这是一项标准测试,它指定了我们的应用程序相对于其他应用程序的位置。
有两种类型的测试对于 Web 测试非常重要:
Web 应用程序和桌面应用程序之间的区别在于 Web 应用程序对世界开放,可能有许多用户在不同时间同时访问该应用程序,因此负载测试和压力测试很重要。Web 应用程序也容易受到各种形式的攻击,主要是 DDOS,因此对于 Web 应用程序而言,安全测试也非常重要。
验证和确认的区别:
确认 | 验证 |
---|---|
验证是静态测试。 | 验证是动态测试。 |
验证发生在验证之前。 | 验证发生在验证之后。 |
验证评估计划、文件、要求和规范。 | 验证评估产品。 |
在验证中,输入是检查表、问题列表、演练和检查。 | 失效测试,以实际产品进行测试。 |
验证输出是一组文档、计划、规范和需求文档。 | 无效的实际产品是输出。 |
重新测试和回归测试之间的差异列表:
回归 | 重新测试 |
---|---|
回归是一种软件测试,它检查代码更改不会影响应用程序的当前特性和功能。 | 重新测试是检查在最终执行中失败的测试用例的测试过程。 |
回归测试的主要目的是对代码所做的更改不应影响现有功能。 | 对缺陷修复应用重新测试。 |
缺陷验证不是回归测试的一个要素。 | 缺陷验证是回归测试的一个要素。 |
可以为回归测试执行自动化,而手动测试可能既昂贵又耗时。 | 无法为重新测试执行自动化。 |
回归测试也称为通用测试。 | 重新测试也称为计划测试。 |
回归测试涉及执行在早期构建中传递的测试用例。重新测试关注执行那些较早失败的测试用例。 | 回归测试可以与重新测试并行进行。重新测试的优先级高于回归测试。 |
预防性测试设计得更早,而反应性测试则是在软件制作完成后设计的。
退出标准用于定义测试级别的完成情况。
决策表由一列中的输入组成,输出在同一列中但在输入之下。
决策表测试用于测试规范采用规则或因果组合形式的系统。您在表格中获得的提醒探索了输入组合以定义产生的输出。
这些是 alpha 和 beta 测试之间的主要区别:
不。 | 阿尔法测试 | 测试版 |
---|---|---|
1) | 它始终由软件开发站点的开发人员完成。 | 它始终由客户在其站点执行。 |
2) | 它也由独立测试团队执行 | 它不是由独立测试团队执行的 |
3) | 它不向市场和公众开放。 | 它对市场和公众开放。 |
4) | 它始终在虚拟环境中执行。 | 它始终在实时环境中执行。 |
5) | 它用于软件应用程序和项目。 | 它用于软件产品。 |
6) | 它遵循白盒测试和黑盒测试的类别。 | 它只是一种黑盒测试。 |
7) | 它不以任何其他名称为人所知。 | 它也被称为现场测试。 |
随机测试也称为猴子测试。在此测试中,通常使用工具随机生成数据。数据是使用工具或某种自动化机制生成的。
随机测试有一些限制:
负面测试:当您输入无效输入并收到错误时,称为负面测试。
正面测试:当您输入有效输入并期望根据规范完成某些操作时,称为正面测试。
测试独立性非常有用,因为它避免了作者在定义有效测试时的偏见。
在边界值分析/测试中,我们只测试确切的边界而不是中间。例如:如果有银行申请,最多可以提现25000,最少可以提现100。所以在边界值测试中,我们只测试高于最大值和低于最大值。这涵盖了所有场景。
下图显示了上述银行应用的边界值测试。TC1 和 TC2 足以测试银行的所有条件。TC3 和 TC4 是重复/冗余测试用例,不会为测试增加任何价值。因此,通过应用适当的边界值基础,我们可以避免重复的测试用例,这不会增加测试的价值。
有很多方法可以测试 Web 应用程序的登录功能:
性能测试:性能测试是一种测试技术,它决定了系统在各种负载条件下的速度、可扩展性和稳定性等性能。该产品在投放市场之前经过性能测试。
软件测试的类型有:
1. 负载测试:
2.压力测试:
3. 尖峰测试:
4. 耐力测试:
5. 体积测试:
6. 可扩展性测试
比较基础 | 功能测试 | 非功能测试 |
---|---|---|
描述 | 功能测试是一种测试技术,它检查应用程序的功能是否在需求规范下工作。 | 非功能性测试会检查所有非功能性方面,例如性能、可用性、可靠性等。 |
执行 | 功能测试在非功能测试之前实施。 | 非功能测试在功能测试之后进行。 |
重点地区 | 这取决于客户的要求。 | 这取决于客户的期望。 |
要求 | 可以轻松定义功能需求。 | 非功能性需求不容易定义。 |
手动测试 | 功能测试可以通过手动测试来执行。 | 非功能测试无法通过手动测试进行。 |
测试类型 | 以下是功能测试的类型:单元测试验收测试集成测试系统测试 | 以下是非功能测试的类型:性能测试负载测试压力测试体积测试安全测试安装测试恢复测试 |
静态测试 | 动态测试 |
---|---|
静态测试是一种白盒测试技术,它在软件开发生命周期的初始阶段完成。 | 动态测试是在软件开发生命周期后期完成的测试过程。 |
在代码部署之前执行静态测试。 | 代码部署后进行动态测试。 |
它在验证阶段实施。 | 它在验证阶段实施。 |
在此类测试期间不执行代码。 | 动态测试需要执行代码。 |
在静态测试的情况下,为测试过程制定检查表。 | 在动态测试的情况下,执行测试用例。 |
阳性检测 | 阴性测试 |
---|---|
正面测试意味着通过提供有效数据来测试应用程序。 | 否定测试是指通过提供无效数据来测试应用程序。 |
在正面测试的情况下,测试人员总是检查应用程序是否有一组有效的值。 | 在否定测试的情况下,测试人员始终检查应用程序中的无效值集。 |
积极测试是通过考虑积极的观点来完成的,例如:通过提供诸如“Akshay”之类的值来检查名字字段。 | 否定测试是通过考虑否定的观点来完成的,例如:通过提供诸如“Akshay123”之类的值来检查名字字段。 |
它验证一组已知的测试条件。 | 它验证未知的一组条件。 |
正面测试通过提供有效的数据集来检查系统的行为。 | 否定测试通过提供无效数据集来测试系统的行为。 |
正面测试的主要目的是证明项目按照客户要求运行良好。 | 负面测试的主要目的是通过提供无效的数据集来破坏项目。 |
正面测试试图证明该项目满足所有客户要求。 | 负面测试试图证明该项目不满足所有客户要求。 |
软件测试中有多种可用的模型,如下所示:
以下是冒烟、健全性和试运行测试之间的差异:
烟雾测试 | 健全性测试 | 干运行测试 |
---|---|---|
它是浅的、广泛的和脚本化的测试。 | 它是狭隘、深入和无脚本的测试 | 空运行测试是一种在内部减轻可能故障影响的过程。 |
当构建到来时,我们将编写自动化脚本并执行脚本。所以它会自动执行。 | 它将手动执行。 | 例如,一家航空航天公司可能会在首次试飞前使用新飞机和跑道进行试飞。 |
它将采用所有基本功能并执行高级测试。 | 它将需要一些重要的功能并进行深入的测试。 |
要测试任何 Web 应用程序,例如Yahoo、Gmail等,我们将执行以下测试:
我们可能已经在一个平台上开发了该软件,并且用户可能会在不同的平台上使用它。因此,他们可能会遇到一些错误并停止使用该应用程序,并且业务可能会受到影响。因此,我们将进行一轮兼容性测试。
我们可以分辨出 2-5 个测试用例。
最初,我们习惯写 2-5 个测试用例,但在以后的阶段我们写大约 6-7 个,因为那时我们有更好的产品知识,我们开始重用测试用例,以及对产品的体验.
我们将编写大约 7 个测试用例,以便我们可以查看 7*3=21 个测试用例。我们可以说每天有 25-30 个测试用例。
我们每天可以运行大约 30-55 个测试用例。
正确答案是测试团队不好,因为有时软件测试的基础定义没有产品是零错误的。
我们可以手动跟踪错误,如下所示:
在自动化的帮助下跟踪错误,即错误跟踪工具:
我们在市场上有各种错误跟踪工具,例如:
基于产品:在基于产品的公司中,他们将只使用一种错误跟踪工具。
服务型:在服务型公司,他们有很多不同客户的项目,每个项目都会有不同的bug跟踪工具。
由于以下原因,该软件可能存在错误:
我们将在需要检查所有要求是否正确执行时进行测试,并确保我们提供正确的优质产品。
当我们有以下情况时,我们可以停止测试:
我们可以为以下类型的测试编写测试用例:
不同类型的测试 | 测试用例 |
---|---|
烟雾测试 | 在这里,我们将只编写标准功能;因此,我们可以提取一些具有所有必要功能的测试用例。因此,我们不必编写冒烟测试的测试用例。 |
功能/单元测试 | 是的,我们为单元测试编写测试用例。 |
集成测试 | 是的,我们为集成测试编写测试用例。 |
系统测试 | 是的,我们为系统测试编写测试用例。 |
验收测试 | 是的,但在这里客户可能会编写测试用例。 |
兼容性测试 | 在这里,我们不必编写测试用例,因为与上面相同的测试用例用于在不同平台上进行测试。 |
临时测试 | 我们不为 Adhoc 测试编写测试用例,因为有一些随机场景或想法,我们在 Adhoc 时间使用。但是,如果我们确定了关键错误,那么我们就会将该场景转换为测试用例。 |
性能测试 | 我们可能不会编写测试用例,因为我们将在性能工具的帮助下执行此测试。 |
可用性测试 | 在这方面,我们使用常规检查表;因此,我们不编写测试用例,因为这里我们只测试应用程序的外观。 |
可访问性测试 | 在可访问性测试中,我们也使用检查表。 |
可靠性测试 | 在这里,我们不编写手动测试用例,因为我们使用自动化工具来执行可靠性测试。 |
回归测试 | 是的,我们为功能、集成和系统测试编写测试用例。 |
恢复测试 | 是的,我们为恢复测试编写测试用例,并检查产品如何从崩溃中恢复。 |
安全测试 | 是的,我们为安全测试编写测试用例。 |
全球化测试: 本地化测试 国际化测试 | 是的,我们为 L10N 测试编写测试用例。 是的,我们为 I18N 测试编写测试用例。 |
追溯矩阵 | 测试用例审查 |
---|---|
在这里,我们将确保每个需求至少有一个测试用例。 | 在此,我们将检查是否涵盖了特定要求的所有场景。 |
以下是用例和测试用例之间的显着差异:
测试用例 | 用例 |
---|---|
它是描述输入、操作和预期响应的文档,用于根据客户要求控制应用程序是否正常工作。 | 它是对客户需求的详细描述。 |
它源自测试场景、用例和 SRS。 | 它源自 BRS/SRS。 |
在开发测试用例的同时,我们还可以找出规范中的漏洞。 | 业务分析师或 QA 负责人准备它。 |
我们可以执行手动和自动化测试。首先,我们将看到我们如何执行手动测试:
不同类型的测试 | 设想 |
---|---|
烟雾测试 | 检查是否编写了基本功能。 |
功能/单元测试 | 检查笔芯、笔身、笔帽和笔尺寸是否符合要求。 |
集成测试 | 将笔和笔帽组合起来,并整合其他不同尺寸的产品,看看它们是否工作正常。 |
兼容性测试 | 各种表面,多种环境,天气条件,把它放在烤箱里然后写,把它放在冰箱里写,试着在水上写。 |
临时测试 | 放下笔开始书写,保持垂直向上书写,在墙上书写。 |
性能测试 | 测试笔的书写速度。 |
可用性测试 | 检查笔是否使用方便,是否可以流畅地书写更长的时间。 |
可访问性测试 | 残疾人使用它们。 |
可靠性测试 | 掉下来写,继续写,看漏不漏 |
恢复测试 | 把它放下来写。 |
全球化测试 本地化测试 | 价格应该是标准的,到期日期格式。 |
国际化测试 | 检查笔上的打印是否符合国家语言。 |
现在,我们将看到如何在笔上执行自动化测试:
为此拿一个滚筒,现在在滚筒上放一些纸,然后将笔连接到电机并打开电机。笔开始在纸上书写。一旦钢笔停止书写,现在观察它在每页上书写的行数、每条轨道的长度,并将所有这些相乘,这样我们就可以得到钢笔可以写多少公里。
原文链接:https://codingdict.com/