parasoft告诉你的企业怎样实现测试自动化

本文将讲述什么是持续测试以及怎么将持续测试应用到企业软件测试中。

作为进入市场战略的一部分,企业越来越关注客户体验,而客户体验的关键部分是他们以快速,无缝的方式遍历软件的能力。为了减少不良客户体验的风险,组织将质量计划加倍,软件开发行业也将持续测试作为主流活动。

什么是连续测试/strong>

连续测试是软件测试的一项原则,在该原则中,所有测试始终在执行,从而为应用程序的质量和运行状况提供连续的反馈。但是为了实现连续测试,组织必须首先采用测试自动化。测试自动化的类型很多,涵盖了从UI层开始的应用程序的整个范围,中间件系统甚至后端系统。了解如何尽可能有效地引入这些不同类型的测试自动化实践,可以使您迈向连续测试的道路。

建立正确的测试自动化策略

现在已经被广泛接受的测试金字塔(由Michael Cohen和Martin Fowler推广)为不同类型的测试活动确定了最佳策略。在最代表测试数量最多的基础上,我们希望建立广泛的单元测试和API测试,这些测试最容易在自动化中运行,但通常需要技术技能来构建。到达测试金字塔的顶部,您会发现自动UI测试和手动测试。我们希望这种类型的测试活动在顶部,因为这是确保客户体验的唯一方法。

大多数人专注于UI测试的“自动化手册”方法,而单元开发人员则以“开发人员应测试”的心态专注于测试金字塔的底部和顶部。尽管这些做法很重要,但专注于顶部和底部会在UI和代码之间的API层中间产生间隙。但是,这种差距只会变得越来越严重,Programmable Web最近的一项调查预测,到2021年,将有22,000多个公开可用的API。API测试比以往任何时候都更加重要,需要成为持续测试策略不可或缺的一部分你正在建造。

通过测试自动化实现连续测试的3个步骤

之前,我曾讨论过如何根据组织的独特需求选择最佳的API测试解决方案,并根据行业和应用程序提出了可能需要的关键功能。从一个API测试解决方案开始很有帮助,该解决方案可以随着您的API测试成熟度的增长而增长。选择工具后,如何开始是三个关键步骤,可以更快地实现功能测试自动化并实现连续测试。

科技是parasoft一级授权代理商,如果您想了解parasoft各类产品,请咨询 客服~帮您选择适合您的最佳产品

步骤1:建立您现有的自动化API的广泛测试范围

要创建广泛的自动化测试,可以从Web记录和API合同构建无脚本测试,然后使用这些测试来连续验证API的运行状况,确保API能够按设计的方式运行。将此视为API的单元测试,但无需费力-这不仅是一种有价值的测试技术,而且它也是您可以执行的最早的功能测试验证类型之一,因为API的服务合同通常是首先要做的事情之一在创建新功能部件或功能时进行编写。

例如,假设团队在我们的银行应用程序中添加了一些新功能。第一步,开发团队发布了新的服务定义。在这种情况下,将生成一张草率的文档。被添加的新服务是RequestLoan服务。该服务接受一系列输入,并与贷款提供者响应以获取新贷款。为了测试该服务,我可以使用Swagger YAML,并为每个单独的操作创建一系列客户端。

ct1

这些客户之一就是请求贷款服务。我可以创建一个正向和负向的系列输入,以验证该服务的行为是否适当。然后,我可以将这些测试重新用于回归目的。

当然,尽管这种测试非常有价值,但这只是API测试难题的一半,因为它无法验证API的实际使用方式。输入步骤2。

步骤2:弥合UI和API之间的鸿沟

API测试策略的第二部分是能够将您对应用程序的人工使用建模为完整的API测试方案。您可以通过利用人工智能来增强您的能力,从而在用户浏览您的应用程序时了解幕后实际发生的事情,并将这些幕后事务解释为API调用,从而开始弥合测试金字塔中的空白。这种类型的测试可让您将用户体验与关键的API测试保持一致。

人工智能是该策略的关键组成部分,因为我们可以可靠地使用人工智能来帮助我们将这些通信分解为关系和模式,以了解如何测试应用程序的业务规则。我们可以将其与我们的单元级API测试结合起来,以广泛涵盖我们的API范围。

继续前面的示例,您会发现请求贷款服务需要我应用程序其他区域的输入。特别:

ct2

现在,尽管我可以任意提供customerID和accountAccountID,但我确实需要它们存在于我的应用程序中。因此,我将需要创建一个动态方案,在该方案中,我首先查询单个用户以获得客户ID和帐户ID,以便我可以将该信息传递给请求贷款服务,并确保动态方案按所述方式工作。确保我正在使用真实的动态数据,以确保可以充实因API相互交互而存在的行为。

这些类型的技术将使我们能够向左移API测试实践,并在可能的最早阶段为我们的应用程序创建广泛的覆盖范围。一旦实现,此实践的第三个关键组成部分就是我们理解和适应变化的能力。

步骤3:通过可维护的变更管理过程确保信心

我已经与很多人谈论过他们的功能测试计划,一旦他们的应用程序更改了,他们的计划就停滞了。这是常见的情况,因为测试人员将大部分时间都花在构建丰富而出色的API测试上,而只是在应用程序的API发生更改时才让它们中断。这可能会产生累积效应,从而降低对API测试策略的信心,因为测试人员将大量时间用于维护API测试,而不是建立新的价值。

变更管理是任何功能测试策略的关键部分,而AI在这里也可以成为关键的推动者。通过自动扫描服务定义(是的,与最初创建测试用例的服务定义相同)来确定您的API何时更改,您可以了解何时会受到影响,然后构建用于将现有服务迁移到新服务的模板版。

回到银行应用程序示例的第一部分,我声明了将新服务添加到我的应用程序中。这实际上代表API的更改。自从我使用服务定义创建了第一轮基准测试以来,我现在可以相互比较服务定义的不同版本,不仅可以识别已更改的内容,还可以构建一个映射来更新现有的测试用例:

ct3

在查看变更模板后,不难看出,不仅添加了新服务,而且还重构了我现有的许多服务。在上图中,您会注意到让客户拥有一系列新字段。使用变更管理工作流程,您可以主动识别服务变更,同时管理现有测试用例的更新,以便您可以尽快从变更中恢复。

可以说,这是在制定其功能测试策略时必须建立的最重要的实践,并且从一开始就对质量有理解和承诺将有助于您和您的组织采用这种实践。

片状测试环境如何/h3>

因此,凭借出色的测试自动化功能,可以轻松地在此处停止测试。但是请说您花了很多时间来构建这种丰富而强大的功能测试策略,并将其作为自动夜间连续测试过程的一部分在您的环境中运行测试,并且在查看结果时您会发现很大一部分您的测试因系统无法控制而失败。这是否意味着您的测试不合格现在对技术超出测试范围的系统负责吗/p>

这不是一个罕见的故事。我们知道功能测试只能与执行它们的测试环境一样有效。不稳定,不可用或只是普通的不稳定测试环境会降低我们从功能测试工具中获得的投资回报。因此,我必须至少简短地提到稳定测试环境的最佳方法之一,那就是:服务虚拟化

不要与虚拟机(即硬件虚拟化)相混淆,服务虚拟化使您能够实际模拟在不同硬件之间进行通信的服务。例如,考虑一个调用数据库的应用程序。您在测试环境中实际上是否需要该数据库果没有所需的数据怎么办用服务虚拟化,您可以记录与数据库的事务,然后使用该记录创建该数据库的模拟版本,以及针对测试环境所需的所有行为。但是,当然,它并不仅限于数据库-它可以是任何类型的服务,例如SOAP或REST API,甚至是TCP和微服务。

作为制定可持续的API测试策略的一部分,您需要制定可持续的服务虚拟化策略,首先要回答以下问题:

哪些服务适合虚拟化/strong>

如何创建虚拟服务/strong>

如何维护虚拟环境/strong>

如何将虚拟环境部署为持续测试策略的一部分/strong>

服务虚拟化是可持续的连续测试策略的关键推动力,但是了解在何处,何时引入它以及如何使其尽可能有效是成功的关键。

怎么办/h3>

通过此文章您或许对如何将API测试集成为持续测试策略的一部分有了更好的了解,在软件开发的初期阶段与API测试工具供应商合作将提高您的开发速度,更快地交付产品,祝您持续测试愉快!


科技是parasoft一级授权代理商,如果您想购买parasoft产品,请咨询 客服~

更多parasoft文章资讯敬请关注科技。

标签:自动化测试

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年10月11日
下一篇 2019年10月11日

相关推荐

发表回复

登录后才能评论