软件测试教程:如何执行测试

Home / Article 百晓生 2019-3-6 3621

没有任何软件可以完美无缺。但这是创造垃圾的许可吗?缺少的成分是我们不愿量化质量。为了提高质量,确保软件应用的有效性非常重要。需要进行软件测试以确保应用程序运行时没有任何故障。在本文中,我们将告诉您有关测试不同方面的所有信息。

软件测试简介

今天的技术世界完全由机器主导,它们的行为由驱动它的软件控制。软件测试为我们所有的后顾之忧提供了经济高效的解决方案。

软件测试是评估软件应用程序功能以查找任何软件错误的过程。它检查开发的软件是否满足指定的要求,并识别软件中的任何缺陷以获得高质量的产品。它基本上是执行一个系统来识别与实际要求相反的任何间隙,错误或缺少的要求。


它也被称为验证和验证软件产品的过程。它检查软件产品是否:

  • 满足指导其设计和开发的业务和技术要求

  • 按要求工作

  • 可以实现具有相同特征

现在,让我们进一步了解软件测试的基础知识。

软件测试基础

首先,我将回答这个问题:什么是软件开发生命周期?

软件开发生命周期

软件开发生命周期(SDLC)是软件行业用于设计,开发和测试高质量软件的过程。SDLC旨在生产满足或超出客户期望的高质量软件,并在时间和成本估算中完成。下图描绘了SDLC中涉及的各个阶段。

图:软件开发生命周期 - 软件测试教程

要求阶段

需求收集和分析是软件开发生命周期中最重要的阶段。业务分析师根据客户业务需求从客户/客户收集需求,并在业务需求规范中记录需求(文档名称因组织而异)。

分析阶段

完成需求收集和分析后,下一步是定义并记录产品需求并获得客户的批准。这是通过SRS(软件需求规范)文档完成的。SRS包含在项目生命周期中设计和开发的所有产品要求。

设计阶段

这个阶段有两个步骤:

HLD  -  高级设计 - 它提供了要开发的软件产品的体系结构,由架构师和高级开发人员完成

LLD - 低级设计  - 由高级开发人员完成。它描述了产品中的每个功能应如何工作以及每个组件应如何工作。

此阶段的结果是高级文档和低级文档,它作为下一阶段的输入

发展阶段

所有级别的开发人员(老年人,青少年,新生)都参与了这个阶段。这是您开始构建软件代码的阶段。

测试阶段

软件准备就绪后,会将其发送到测试部门,在那里他们会针对不同的缺陷进行彻底测试。他们要么手动测试软件,要么使用自动测试工具,并确保软件的每个组件都能正常工作。一旦质量保证确保软件没有错误,它就会进入下一个阶段,即实施。

部署和维护阶段

成功测试后,产品将交付/部署给客户使用。部署由部署/实施工程师完成。一旦客户开始使用开发的系统,就会出现实际问题并需要不时地解决。解决客户发现的问题是在维护阶段。

 如果您想了解有关软件测试过程中涉及的不同阶段的更多信息,那么您可以阅读有关软件测试生命周期的博客。了解了这一点后,让我们进一步了解V&V模型。

验证和验证模型

V模型现在是最广泛使用的软件开发过程之一。V模型的引入实际上证明了从需求阶段开始实施测试。V模型也称为验证和验证模型。

什么是软件测试中的验证和验证?

验证:验证是一种静态分析技术。在这种技术中,测试是在不执行代码的情况下完成的。示例包括:评论,检查和演练。

验证:验证是一种动态分析技术,通过执行代码完成测试。示例包括功能和非功能测试技术。

在V模型中,开发和QA活动同时完成。没有称为测试的离散阶段,而是从需求阶段开始测试。验证和验证活动齐头并进。为了理解V模型,让我们看看下图:

V&V模型 - 软件测试教程 -  Edureka

在典型的开发过程中,左侧显示开发活动,右侧显示测试活动。如果我说在开发阶段验证和验证都与实际开发活动一起进行,那应该没有错。

LHS

如前所述,左派活动是发展活动。通常,我们想知道:  在开发阶段我们可以做些什么测试?但这就是这个模型的美妙之处,它表明测试也可以在开发活动的所有阶段进行。

RHS

右侧显示测试活动或验证阶段。

正如您已经对此获得了一些见解,让我们进一步了解可以测试软件的不同方法。

软件测试方法

测试软件有三种方法,它们如下:

黑盒测试

白盒测试

灰箱测试

黑盒测试:这是一种软件测试方法,其中测试项目的内部结构/设计/实现不为测试人员所知。

白盒测试:这是一个软件测试方法,其内部结构/设计/实施的项目进行测试是已知的测试仪。

灰盒测试:这是一种测试技术,使用有限的系统内部功能信息执行。

软件测试级别

软件测试中的级别是正在测试软件/系统的每个单元或组件的过程。系统测试的主要目标是评估系统是否符合指定的需求。有各种测试级别,有助于检查软件测试的行为和性能。这些测试级别旨在识别缺失区域以及生命周期状态开发之间的协调。在SDLC模型中,有一些特征阶段,例如需求收集,分析,设计,编码或执行,测试和部署。

所有这些阶段都经历了软件测试级别的过程。主要有四个测试级别,它们是:

单元测试

集成测试

系统测试

验收测试

基本上,它从单元测试阶段开始,到验收测试结束。

软件测试文档工件

记录测试用例将有助于您估计测试覆盖率以及跟踪和跟踪要求所需的测试工作量。与软件测试相关的一些常用文档工件包括:

测试计划

测试场景

测试用例

可追溯性矩阵

让我们简要讨论它们中的每一个。

测试计划:测试计划提供将用于测试应用程序的大纲策略。

测试场景:测试场景可以视为单行语句,通知应用程序将在其中进行实验的区域。需要此工件来确保从开始到结束测试的整个过程。

测试用例:这是一组条件或变量,测试人员在这些条件或变量下确定被测系统是否满足要求或是否正常工作。开发测试用例的过程也有助于发现应用程序的要求或设计中的问题。在测试期间正在检查许多类型的测试用例。他们是:

功能测试用例

负面错误测试用例

逻辑测试用例

物理测试用例

UI测试用例

可追溯性矩阵:它也称为需求可追踪性矩阵(RTM)。它包含一个表格,用于在创建产品的SDLC模型时草拟要求。该记录工件可以实现用于前向跟踪,其可以从设计到编码,或者也可以实现用于向后跟踪,这与前向跟踪相反。

什么是缺陷管理流程?

通常,缺陷管理可以定义为检测错误并修复错误的过程。有必要说在软件开发过程中不断出现错误。他们是软件行业的一部分。这是因为软件开发是一个非常复杂的过程。团队成员通常处于严格的时间范围内。他们每天必须编写大量代码,他们通常没有时间考虑如何避免错误。因此,每个软件开发项目都需要一个有助于检测缺陷并修复缺陷的过程。

缺陷管理或错误跟踪的过程通常在产品测试阶段进行。如果没有意识到这一点,就很难理解缺陷管理的本质。软件测试可以以两种不同的方式进行。通常,开发人员自己测试他们的产品。但是,还有一种基于用户参与的测试。最终用户通常具有报告他们已识别的错误的能力。然而,这不是最好的测试方法,因为用户可能无法找到所有错误。

缺陷管理过程通常包括四个步骤。

第一步是缺陷检测阶段

错误管理过程的第二步专门用于编写错误报告

第三步是修复bug的阶段

在最后一步中,将创建错误列表

Bug生命周期

甲缺陷的生命周期是在其中一个缺陷其整个寿命期间经历不同阶段的处理。它在缺陷发现时开始,在缺陷关闭后结束,确保不再生。缺陷生命周期与测试期间发现的错误有关。

它可能因组织政策,使用的软件开发模型(如敏捷,迭代),项目时间表,团队结构等因素而因组织而异,也可能因项目而异。

错误或缺陷生命周期包括如下图所示的步骤:

Bug生命周期 - 软件测试教程 -  Edureka

  1. 新增内容:第一次记录并发布缺陷时。它的状态是新的。

  2. 已分配:在测试人员发布错误后,测试人员的负责人会批准该错误是真实的,并将错误分配给相应的开发人员和开发人员团队。它的状态是指定的。

  3. 打开:在此状态下,开发人员已开始分析并处理缺陷修复程序。

  4. 修复:当开发人员进行必要的代码更改并验证更改时,他/她可以将错误状态设置为“已修复”,并将错误传递给测试团队。

  5. 测试:在此阶段,测试人员对开发人员给他的已更改代码进行测试,以检查缺陷是否已修复。

  6. 已验证:测试人员在开发人员修复后再次测试该错误。如果软件中没有该错误,他会批准该错误已修复并将状态更改为“已验证”。

  7. 重新打开:如果开发人员修复了错误后错误仍然存在,则测试人员将状态更改为“重新打开”。这个bug再次经历了生命周期。

  8. 关闭:修复错误后,测试人员会对其进行测试。如果测试人员认为软件中不再存在该错误,他会将错误状态更改为“已关闭”。此状态表示该错误已得到修复,测试和批准。

  9. 重复:如果错误重复两次或两个错误提到相同的错误概念,那么一个错误状态将更改为“重复” 。

  10. 拒绝:如果开发人员认为该错误不是真的,他会拒绝该错误。然后将错误的状态更改为“已拒绝”。

  11. 延期:错误,更改为延迟状态意味着错误预计将在下一版本中修复。将错误更改为此状态的原因有很多。其中一些是bug 的优先级可能很低,缺少发布时间或者bug可能对软件没有重大影响。

手动测试面临的挑战

手动测试意味着(Web)应用程序由QA测试人员手动测试。测试需要在每个环境中手动执行,使用不同的数据集,并且应记录每个事务的成功/失败率。

看一下上面的一个穷人的图像,他手动验证记录的交易。他所面临的挑战导致疲劳,无聊,工作延误,错误以及由于手工操作而导致的错误。这导致自动化测试的发明。

现在,让我们深入研究软件测试的最后一个主题 - 自动化测试如何胜过手动测试。

自动化测试与 手动测试

自动化测试每次都胜过手动测试。为什么?因为它更快,需要更少的人力资源投资,不容易出错,可以频繁执行测试,并支持回归和功能测试。

让我们采用与前面提到的类似的例子。假设有一个登录页面,我们需要验证所有登录尝试是否成功,那么编写一段代码将非常容易,这将验证所有事务/登录尝试是否成功(自动测试)案件执行)。

此外,可以以在不同环境和Web浏览器中测试这些测试的方式对这些测试进行配置。还有什么可以做的?您可以通过在一天中的特定时间安排结果文件来自动生成结果文件。然后,您还可以根据这些结果自动生成报告,而不是。

关键是自动化测试使测试人员的工作变得更加简单。查看上面的图片,其中显示了相同测试仪工作的更轻松的环境。

本文链接:https://www.it72.com/12500.htm

推荐阅读
最新回复 (0)
返回