3D-Box-Left
3D盒右

测试自动化:终极指南


有关降低风险,降低成本,
通过测试自动化提高价值。


观看测试自动化
策略网路研讨会:

观看网络研讨会


进行测试
自动化专家:

预约会议

“我正在寻找一种用于测试自动化的工具!它必须健壮,可靠并且易于维护。我们不是编码员的测试人员应该能够自己使用它。您能帮忙吗?”

几年前,上述要求已到达我们的收件箱中 上班族。它来自寻求更好的方法来自动化大型软件应用程序测试的人。如果这个挑战听起来很熟悉,那么您来对地方了。

我们写本指南是因为我们看到太多的测试自动化项目失败了。通常,发生这种情况是由于使用正确的方法可以避免的陷阱。
 
这需要一种思考和使用测试自动化的新方法。这就是本指南所提供的。
 

如何使用本指南

 
在本指南中,我们将回答与测试和测试自动化有关的所有问题,这些知识将使您具备有效而战略性地涉足该领域的知识。
 
无论您是只是想学习测试方面的一些技巧,还是在企业中优化和简化软件开发,本指南都将为您提供帮助。
 
为了使您尽可能轻松地找到所需内容,我们在页面侧面提供了一个菜单栏,以帮助您浏览信息。每个部分的构建方式都使您可以从一个部分跳转到另一个部分。 
 
让我们从头开始。

 

1.什么是测试自动化?

测试自动化或自动测试是使用软件(与被测软件分开)来控制测试的执行。

与手动测试相反,自动化测试可以节省测试过程中的时间和资源,从而可以以更高的速度,更高的准确性和更低的成本执行测试。

Gartner定义自动化测试 如下:

自动化测试适用于商业或内部开发的软件或服务,以协助测试过程,包括功能测试和负载/压力测试。自动化测试可提供一致的结果和数据点。好处是易于维护,能够在非高峰时段有效使用资源以及能够基于已执行的测试创建报告。相关的质量管理工具包括用于测试计划,测试用例管理和缺陷管理(质量管理的一部分)的功能。”

手动与自动测试

测试自动化的使用并不排除手动测试。实际上,他们彼此很称赞。 

引入自动化是为了帮助工作中的人们以更智能的方式实现他们的目标,而不是替代工作。 

汽车,装配线和计算器只是已引入的技术的一些示例,因为它们使人们可以更聪明地工作,而不是更加努力。

通过在测试中引入自动化功能,测试人员不会被取代,而是免去了繁琐,重复的机器人工作,而可以专注于更高价值的任务,他们使用自己的技能来设计测试案例以确保质量并增加测试范围-定量和定性。

听这集的 解码自动化 上班族的高级布道者Sune Engsig解释了如何治理,稳定的自动化以及具有“自动化思维方式”而不是“手动思维方式”是成功且可扩展的自动化的关键要求。

 

在我们的博客文章中了解有关此主题的更多信息: 手动测试与测试自动化:10个注意事项

 

测试类型

有许多不同类型的测试。有些比其他的更适合自动化。 

有两种主要的测试方法:

  1. 黑匣子测试 意味着在不了解其内部工作或实现的情况下测试应用程序。顾名思义,该应用程序就像测试人员的黑匣子,后者提供输入并检查输出。
  2. 白盒测试 (或“玻璃箱测试”)相反。测试人员知道内部工作原理和实施细节(代码,配置等)。依靠这一知识,测试人员可以测试代码中的某些路径。

使用一种或两种方法,在软件开发生命周期的各个阶段进行测试以发现错误。组织测试的另一种方法是通过测试金字塔。

测试金字塔:

测试金字塔 旨在概述从最小的单元到整个连接过程的不同测试级别。级别1在金字塔的底部,进行白盒测试。通常使用黑盒方法来接近2级和3级。 

  • 第1级:单元测试 表示在一个软件中测试代码的单个单元或单元组。单元测试只能使用白盒方法进行,因为单元测试是用代码编写的,并且与软件开发紧密相关。因此,这些测试也由开发人员完成。
  • 第2级:集成测试 意味着测试代码单元之间如何交互。这涉及到测试一系列一起处理流程或业务交易的组件链,有时也包括外部组件。集成测试通常包括测试硬件与软件以及其他基础设施组件之间的交互。
  • 3级: 端到端测试 顾名思义,它是指从头到尾测试一个流程。端到端测试的范围取决于过程,但是端到端测试通常跨越多种技术。端到端测试的目的是确保从用户的角度出发,流程能够按预期工作。因此,通常使用黑匣子方法。

除了测试金字塔中包含的测试类型之外,您还将遇到其他经常使用的测试术语。以下是这些内容及其含义的列表。

  • 功能测试 用于确保作为软件要求的一部分而指定的功能能够按最终用户的观点正常工作。 
  • 回归测试 可以被描述为“重复功能测试”,但不应与 重新测试。构建新功能后,回归测试可确保软件的旧功能继续按预期运行。随着产品的发展,回归测试的数量也随之增长,使其成为大型企业最耗时的测试类型之一。它也是自动化的最佳人选之一。 了解有关自动执行回归测试的更多信息。
  • 探索性测试 是一种动手操作的临时方法,可以在没有范围的情况下很少或没有计划地测试软件。测试人员依赖于他或她的经验以及对典型陷阱和业务需求的了解。探索性测试通常被认为是创建重复测试任务以供以后执行的重要基础。它使用黑盒方法。由于这种方法的不可预测性,因此无法实现自动化。
  • 负载测试 (也称为压力测试)是指测试软件在日益不利的条件下的行为,例如以每秒登录数衡量的大量用户流入,或诸如购物篮操作之类的业务交易高峰。尽管负载测试属于黑盒测试类别,但是分析和理解负载测试的结果非常复杂,通常需要深入的代码和基础架构知识。
  • 性能测试 意思是测试软件的不同部分在处理所需业务交易方面的速度和有效性方面的表现。在正常使用情况下,某个功能必须执行的最大秒数阈值通常是软件非功能性要求的一部分,并使用黑盒方法进行了测试。
  • 渗透测试 用于模拟敌对方的攻击以评估软件的安全性。例如,电子商务平台可能会使用这种方法来确保黑客无法访问信用卡号或其他机密数据。它通常使用黑盒方法执行,但是由具有深厚编码技能的高技能专家尝试“打开黑盒”以利用内部内容。
  • 可用性测试 意味着从最终用户的角度测试软件,并着重于用户友好性,美观性和导航效果。它使用黑盒方法。
  • 用户验收测试(UAT) 是少数几种类型的测试之一,不是由测试软件的供应商或生产商执行,而是由接收软件的客户或客户大使执行。进行这种类型的测试是为了确保软件符合要求并可以从客户的角度预期运行。通常用作支付可交付成果之前的最终大门。 UAT使用黑盒测试方法执行。
  • UI测试 表示测试用户界面。用户界面是用户在使用应用程序时看到的内容。 UI测试自动化工具通常是记录用户与界面的交互并自动模拟这些交互的工具。
  • API测试 表示测试开发人员向第三方开发人员公开的应用程序编程接口(API)。确定API是否满足对功能,可靠性,性能和安全性的期望。尽管API测试需要代码技能,但是通常只需要使用黑盒测试即可执行,因为仅需要了解API的输入和输出参数即可。

在以下文章中,详细了解本指南未涵盖的各种测试类型:

所有这些不同类型的测试可以通过各种方式为软件交付过程增加巨大的价值。在自动化方面,很难说这些测试中的哪项通常取决于产品取决于自动化的最佳选择。

但是,接下来是一些通用准则,说明什么是自动化的良好候选者。

哪些类型的测试可以自动化?

确定流程是否符合自动化要求的一个很好的起点是查看它是否符合以下条件:

  • 该测试是高度重复的,并且如果手动完成(例如回归测试),则需要很长时间才能执行
  • 测试路径是可预测的,这意味着在通过手动测试之前已经证明它可以验证过程
  • 该测试容易出现人为错误,可能是因为该测试具有高度重复性并涉及数据迁移

如果该过程符合所有这些条件,那么在大多数情况下,它将是自动化的理想选择。


2.为什么要测试自动化?

今天, 数字化转型 影响每个市场的业务。他们正在驱动它,或者正在被它驱动。

任何行业都有遭受破坏的风险 市场地位危在旦夕。随着新业务模式的出现和客户需求的不断发展,各地的企业都在努力保持相关性。他们必须改变经营方式。

技术以新的和越来越复杂的方式使用来创造价值。这些包括企业系统的自动化,基于云的商务和跨渠道用户体验。

质量保证(QA)和测试是数字转换的核心。它们是软件开发中的关键过程,这有充分的理由。他们确保在将错误传给最终用户或导致关键系统崩溃之前,先在软件中找到错误。

主动修复错误需要对基础代码进行的每个小更改都进行测试和重新测试。随着软件的发展,重复测试的需求增加。 测试成本很高。

质量检查团队指出,测试活动效率低下是导致测试成本上升的主要因素。

 

影响测试预算的因素

图1:影响质量保证和测试预算峰值的因素

 

这些是全球开发团队中众所周知的事实。不太普遍的是,人们认识到不仅软件测试成本高昂,而且非常困难。测试需要了解产品所有者和其他利益相关者的期望。了解产品及其环境的固有局限性也是测试人员职业的关键部分。

例如,如果您正在测试视频会议应用程序,那么重要的是要知道常规语音通话在电话上使用时会打断该应用程序,并且该应用程序高度依赖稳定的互联网连接。

测试人员还必须预见最终用户的行为,并使其与需求保持平衡。这涉及在时间和预算限制下制定策略以覆盖尽可能多的产品。涵盖可以想象的每个单一使用场景,以及当软件更改时,都不是一个可行的任务。测试人员一直在平衡探索性测试和可重复清单的需求。

更重要的是,测试人员面临着来自周围各个地方的压力:产品所有者想要更快的版本,开发人员想要持续的反馈,最终用户想要完美的新产品功能。 

 

测试人员面临来自周围各个地方的压力:产品所有者想要更快的版本,开发人员想要持续的反馈,最终用户想要完美的新产品功能。

 

无所作为的代价

请考虑以下情形。金融行业的软件解决方案供应商希望每年多次向Web应用程序发布更新。在每次发布之前,产品必须经过仔细的测试。

测试团队由三名全职测试人员组成,已经确定并规划了300个测试用例。这些测试用例中有250个是回归测试。其余50个测试的定义和定义较为宽松,将继续手动执行。

手动完成时,设计,规划和执行250个回归测试用例非常耗时。平均而言,每个测试用例需要一小时的手动测试工作,大约需要六周的测试时间。除了50个探索性测试。

为了满足单个发行版的最低要求,三名测试人员组成的团队必须花整整两周的时间设计和运行测试。

该公司计划在来年发布六种版本–每第二个月发行一次。这将需要总共36周的测试。

250个回归测试用例是可接受的产品质量所需的最低要求。质量检查人员和产品经理知道他们需要更彻底的测试以提高产品质量并保持竞争力。但是没有预算聘请更多测试人员。

 

为了满足单个发行版的最低要求,三名测试人员组成的团队必须花整整两周的时间设计和运行测试。

 

有了当前可用的资源,他们就决定进行最低程度的完整性测试。这使测试团队将大部分时间都花在回归测试或产品维护上,而以探索性测试和产品改进为代价。

这种解决方案是不可持续的。随着时间的流逝,回归测试的数量将会增加,测试人员将承受更大的压力,而创新和增长的时间将仍然稀缺。这迫使企业要么增加支出要么错过宝贵的机会。

此外,至少有四个因素导致测试成本上升:

  1. 跨设备,系统和平台进行测试的需求不断增加。 将测试范围从例如一个Web浏览器扩展到两个或扩展到包含移动设备会影响工作量。
  2. 测试用例的数量不断增加。 随着每次产品更新,涵盖更多功能所需的测试用例数量都会增加。新功能会影响需要重新测试的现有功能;常见的回归测试问题。

回归测试问题

图2:常见的回归测试问题

  1. 发布管道已成熟。 团队不希望仅进行一次回归测试,而是希望在发布管道的多个阶段运行测试。这有助于为开发人员提供最快的反馈,但同时也需要大量测试。
  2. 管理层希望增加发行数量。 为了保持其最新产品的市场地位,该公司希望每年发布更多产品。这意味着他们必须加快发布周期。

不管这些因素中的哪一个正在推动对更多测试的需求,结果都是相同的:测试成本将会增加。这造成了不可持续的局面;质量检查团队必须成长,或者测试人员必须提高生产力。无所作为的代价是产品质量的下降,因此失去了市场份额。  

随着时间的推移测试工作量

图3:随着范围和目标的变化,随时间测试工作量

 

质量检查团队必须成长,或者测试人员必须提高生产力。无所作为的代价是产品质量的下降,因此失去了市场份额。

 

测试自动化的三个驱动力

对于承受越来越大的压力要求事半功倍的团队,可以引入自动化以减轻测试人员的重复,可预测,繁琐的任务。 

从业务角度来看,自动化有三个主要驱动力:降低风险,降低成本和提高生产率。

自动化的三个驱动力

图4:自动化的关键驱动力

这些自动化驱动程序在组织中的体现不同。以下是三个不同部分中的三个业务示例,他们都认为需要自动化测试。

  • 竞争者不断增加的压力威胁着保险公司 并发现市场对其在线自助服务应用的反应不佳。为了支持更好和更频繁地发布此Web服务,该公司的数字团队实施了自动化测试,以更频繁,更广泛地进行测试。它们是由降低风险和降低成本的需求驱动的。
  • 一家软件提供商正在分散他们的测试人员资源,而且必须依靠开发人员来帮助在关键冲刺期间进行测试。 为了避免为测试分配更多的成本和宝贵的开发时间,该公司将回归测试自动化。他们受到控制成本的需求,从而提高了生产率。
  • 一名医疗保健提供者经历了临床系统严重中断的情况。 为了提高患者的安全性,该组织的IT部门可以自动执行对临床关键系统的监视。它们是由降低风险的需求驱动的。

测试自动化的好处

有许多不同的框架和工具可用于测试自动化。自动测试的结果取决于 实施有多成功,但总的来说,通过自动化测试,可以预期以下结果:

  • 提高生产力: 一旦测试自动化,便可以高精度执行更多测试。 
  • 更快的反馈: 如果在软件开发生命周期(SDLC)中更快,更早地执行测试,则也可以更快地将反馈提供给开发人员。
  • 加快上市时间: 更快的测试执行和连续的反馈循环意味着可以缩短整体SDLC,并可以提高发布频率。
  • 成本效益: 优化资源后,可以降低成本。
  • 提高敏捷性和市场响应能力: 较短的发布周期使企业可以更好地响应更改并确定资源的优先级。
  • 减少人为错误的风险:自动化允许以高精度执行重复的,可预测的测试。从而将人为错误的风险降到最低。
  • 品质提升:更有效的测试意味着可以最大程度地扩大测试范围和频率。
  • 更高的工作满意度:由于消除了重复性很高的任务,因此测试人员可以获得更高的工作满意度。

这些积极的成果在 无代码测试自动化 随着实施,采用和执行变得越来越容易和迅速,使用了。在本指南的后面,我们将回到无代码测试自动化的好处,但是您也可以在我们的博客文章中了解到这一点: 无代码测试自动化的7个好处。

测试自动化的局限性

重要的是要注意,尽管自动化有很多好处,但它也有其局限性。它只会测试您告诉的内容。尽管这看起来似乎很明显,但请记住重要的一点,因为即使在单元,集成和性能测试通过之后,单个最终用户也可以在几秒钟内使整个系统崩溃。如果用户做了开发人员没想到的事情,这通常会发生。

这就是为什么人类测试人员如此有价值的原因。他们试图预测并模仿最终用户的行为。测试人员在软件开发过程中充当用户的大使。换句话说,测试人员代表用户执行测试。

测试自动化入门套件

 

3.如何自动化测试

在选择如何自动化测试时,有许多不同的选择。它们分为三大类:基于代码的框架,低代码工具和无代码工具。

通过以下资源详细了解其中的每个:

根据这些资源的标题,您可能可以猜出我们所倡导的自动化类型。在下文中,我们将更深入地探讨为什么我们认为无代码自动化是前进的方向-即使对于拥有高技能开发人员的团队而言。

 

测试自动化悖论

测试自动化的积极结果是显而易见的。那么为什么不是所有企业都可以自动化测试呢?

仔细查看大多数测试自动化工具,即可找到答案。

到目前为止,测试自动化工具已规定自动化需要编码。由于测试自动化是在IT部门内部进行的,因此您可能会认为这无关紧要,因为IT部门中的许多人都具有完全的编程能力。

有一个问题:大多数测试人员都不是程序员。他们是业务流程专家。基于代码的自动化解决方案禁止他们为自己的专业领域做出贡献:业务流程的质量。

因此,当测试自动化需要编程时,它要么推送给团队中的开发人员,要么让测试人员自己找出并花费时间-无论哪种方式, 技能差距 最终浪费了宝贵的资源和时间,经常造成瓶颈,并且花费的成本超过了用自动化代替手动任务可以节省的成本。

这就是我们所说的 测试自动化悖论 -在设置和维护测试自动化时,所花费的时间和资源要比通过自动化节省的时间和资源更多。

 

这就是我们所谓的“测试自动化悖论”-在设置和维护测试自动化时,所花费的时间和资源要比通过自动化节省的时间和资源更多。

 

但这不是必须的。通过引入不需要编码的自动化,团队可以克服基于代码的解决方案所造成的障碍,并快速看到自动化的好处。

使用无代码,测试人员不需要编程语言的知识来设计和构建自动测试用例。并且消除了对开发人员依赖性的障碍,他们可以与发布周期的步调一致,提高生产率,最大程度地降低风险,从而可以减轻团队的压力。

在我们的白皮书中了解有关无代码测试自动化和测试自动化悖论的更多信息:

新的号召性用语

 

无代码测试自动化

无代码测试自动化是测试人员的游戏规则改变者。使用视觉语言而非代码来描述测试的测试自动化工具 是测试人员工作的一种更有效的方法。这有7个原因。

无代码测试自动化的好处

  1. 无代码可让测试人员适应开发周期的步伐,因为它的设置非常容易,快捷。
  2. 无代码减少了维护负担,并且使团队可以轻松地扩展自动化,因为它不需要大量的脚本。
  3. 无代码可以释放资源并以较低的成本进行更好的测试,因为测试人员不必花时间在编码或学习编码上,并且开发人员无需学习如何自动化。测试人员可以专注于测试,而开发人员可以专注于开发。
  4. 无代码使团队可以扩展测试自动化的范围,因为它易于扩展并且可以跨平台工作,与之相反。基于代码 .
  5. 无代码由于其易用性和可视化语言而提高了团队之间的采用和协作。
  6. 无代码简化了文档编制和报告过程,因为通过可视化界面,测试可以自动记录,并且可以更轻松地进行检查。
  7. 由于上述所有要点,无代码加快了发布流程,并通过允许更有效的测试来支持CI / CD。

在我们的博客文章中了解有关无代码测试自动化的更多信息 无代码测试自动化如何弥合软件开发中的技能差距 或收听我们的 解码自动化 在“无代码宣言”上,LEAPWORK的创始人克劳斯·托普霍尔特(Claus Topholt)回答了自动化行业中一些最紧迫的问题。


 

无代码测试自动化在敏捷,DevOps,CI / CD和连续测试中的作用

敏捷,DevOps和CI / CD齐头并进,它们在快速交付质量方面发挥着关键作用。接下来是对每种方法的概述,以及可以在其中了解更多信息的资源列表。

敏捷

敏捷 是一种测试和开发方法或方法,旨在使软件交付生命周期(SDLC)更加灵活和有效。测试自动化等工具可以确保从测试到开发的持续反馈。因此,敏捷测试使企业可以更快地适应市场变化,因此不易受到市场变化的影响。 

白皮书敏捷测试
下载我们关于敏捷测试的白皮书

 

开发运维

开发运维 是开发和运营的桥梁。它主要用作职务,但也是一种方法。随着敏捷运动的出现,DevOps越来越需要在保持或提高一定质量标准的同时提高产品发布的频率和速度。 开发运维鼓励从开发到部署的团队之间进行协作和交流,并且需要在整个管道中实现自动化,以实现当今快速交付质量所需的灵活性和连续性。

白皮书_DevOps_封面 下载我们关于DevOps和测试自动化的白皮书

CI / CD

CI / CD 代表持续集成和持续交付/部署-的确是-持续而不是孤立的瀑布式软件开发方法。 CI / CD管道通常由DevOps构建,是一系列自动化工具,这些工具可以协同工作以确保从开发到部署的恒定,准确的代码流。

观看我们的在线研讨会,了解持续不断的敏捷测试

 

4.测试自动化入门

本指南介绍了测试自动化的新范例:无代码。 

无代码测试自动化为技术专家和业务专家降低了构建和执行自动化的障碍,并帮助团队避免了实施自动化方面的常见陷阱。

听我们的播客 解码自动化 回顾为什么无代码测试自动化可以帮助团队缩小软件开发中的技能差距并构建可维护和可扩展的测试自动化。

 

接下来,我们将引导您完成测试自动化入门中的重要步骤。这包括找到正确的测试自动化工具,并遵循最佳实践和准则,以帮助您重新考虑或优化现有方法。 

创建测试自动化策略

作为测试自动化入门的一部分,理想的是制定测试自动化策略。 尤其是在打算在某个时候进行规模扩展的构建测试自动化时,建议不要采用临时的自动化方法。 

制定策略不会通过实施严格的流程来抵消敏捷性。相反,它确保您将满足特定业务需求的最重要因素考虑在内。这包括您的业务规模,所从事的行业,所使用的技术以及可用资源。 

我们创建了一个 测试自动化策略清单 哪些因素可以着手进行自动化测试。如果您已经开始自动化之旅,它也可以用于优化当前的自动化流程。 

测试自动化策略清单

该清单将引导您完成以下步骤:

  1. 从自动化角度看项目范围
  2. 选择测试自动化方法
  3. 自动化相关风险分析
  4. 测试自动化环境的定义和选择
  5. 与自动化相关的日常任务和程序的执行计划
  6. 关于释放控制的决定
  7. 有关如何分析失败的测试用例的计划
  8. 审查策略和提供反馈的程序

您可能已经可以检查一些项目,而其他一些项目则需要一些工作-甚至可能需要外部顾问的帮助。可以从广义上定义策略,也可以为更狭窄的项目定义策略。

获取清单:测试自动化策略

观看我们的网络研讨会,了解如何制定成功的测试自动化策略

查找测试自动化工具

在评估自动化工具时,请通过以下需求清单:

  • 技术能力涵盖了您企业的所有主要应用,例如Salesforce,SAP,Oracle等
  • 强大的治理功能,包括身份验证,访问控制,版本控制和完整的审核跟踪。
  • 作业既可以在台式计算机上本地运行,也可以在虚拟机和云中远程运行。
  • 报告和分析功能和/或与PowerBI,Tableau或类似产品的集成。
  • 允许非程序员的业务用户直观地设计流程,而无需编写代码。

在此处下载完整的自动化工具清单。

您选择的自动化工具也很可能从与您要自动化的特定技术相关的搜索开始。这里是不同类型技术的概述,以及可以帮助您更多地了解每种技术的资源。

技术类型:

ERP和CRM系统:

 

5.如何构建自动化测试用例

无论选择哪种工具进行自动化测试,都需要考虑如何以最有效和可持续的方式构建自动化测试用例。

构建测试自动化的最佳实践

除了制定战略以实现自动化成功之外,还应遵循许多最佳实践以实现期望的结果。

测试自动化中的大多数错误都是可以预见的,可以通过遵循 建立可维护和可扩展的测试自动化的最佳实践.

构建测试自动化指南
  • 通过自动化逐步增加测试范围: 规划逐步使您的测试套件自动化。我们建议首先着重于最容易实现自动化的流程。在大多数情况下,您会发现到目前为止,这是相对简单且重复性很强的流程,占用了您的大部分测试时间。
  • 建立隔离的测试用例: 首先构建仅测试一件事的测试用例。这样,毫无疑问在测试用例失败时会出什么问题。最好不要使用一个测试自动化工具来构建可重用的组件,而不是在一个测试用例中捆绑多个测试。这样,很容易重用其他测试用例中包含的逻辑,并且使创建新测试用例所需的时间最小化。
  • 构建独立且独立的自动化测试用例: 通过这种方式,它们都可以立即被调度为随时随地并行执行,即在不同环境中执行。
  • 确保测试自动化的集体所有权: 请记住,自动化的成功取决于团队的集体知识。采用所有测试人员都可以使用的测试自动化平台,使自动化成为所有团队成员日常工作的自然组成部分。
  • 使用技术上合适的工具: 实施测试自动化是一项长期的战略选择,应按这样处理。在评估自动化工具时,请查看整个组织并确定所有可能成为自动化目标的应用程序和技术。确定测试案例需要在不同技术之间移动的场景,例如Web和桌面应用程序,然后选择具有匹配功能的自动化平台。

在我们的指南中了解有关如何构建可维护和可扩展的测试自动化的更多信息。

创建测试用例

一旦了解了构建测试自动化的最佳实践,就需要决定如何创建测试用例。基本上有两种方法可以执行此操作: 测试自动化框架 或使用无代码测试工具。

对您和您的团队而言,哪一种最佳解决方案?

为了回答这个问题,让我们退后一步来讨论什么是测试(自动化)案例,从测试人员的角度来看。

测试用例的元素:
  • 名称或其他唯一标识符
  • 必须循序渐进的过程
  • 一组输入(测试数据)
  • 一组预期结果
  • 一组执行测试的先决条件

所有这些元素都值得详细介绍,但是其中一个是我们应该如何进行测试自动化的核心。它与如何描述分步过程有关。

测试用例实质上是对业务流程的描述。例如,“登录到应用程序并检查用户名是否正确显示”,或“将商品放入购物篮并检查包括折扣的总额是否正确计算”。 

 

测试用例实质上是对业务流程的描述。

 

如果您要求测试人员说明他们的日常屏幕任务之一,那么他们很可能会通过以下两种方式之一进行操作:

  • 他们将任务的每个步骤从上至下列出为要点。然后他们意识到这种方法过于严格,因为某些步骤相互链接,因此很难在项目符号列表中显示
  • 他们绘制了一个流程图,其中的框表示在应用程序的用户界面中正在执行的每个步骤或动作。操作包括单击按钮,输入密码,从字段中读取文本值等。

 

 

说明业务流程的流程图

图6:一个简单的流程图,说明了通用工作流程或业务流程中的步骤

 

 

绘制用户界面操作的分步流程图是描述过程的直观而灵活的方式。流程图非常有用,因为它们使您可以分支逻辑,添加来自数据源的输入等等。

因此,一些测试自动化工具是完全围绕可视化GUI / UI流程图的概念开发的。例如, 上班族自动化平台. 实际上,以这种方式记录业务流程有整个行业标准。叫做 BPMN(业务流程模型和表示法).

这是一个示例:在网络应用程序中测试登录表单。可以很容易地将其绘制成流程图,其中每个“构建块”都由一个动作和一个应用程序界面中的元素组成。

 

登录表单

图7:标准登录表单

 

以下流程图说明了自动测试用例的外观。这是一个常规的登录过程,包括以下步骤:

  1. 单击电子邮件地址字段
  2. 输入电子邮件地址
  3. 对密码重复相同的步骤(未显示)
  4. 点击“登录”按钮,
  5. 搜索要显示在屏幕上的用户名

 

带有构建块的流程图

图8:每个“构件”代表测试用例中的步骤的流程图

 

流程图不只是一个 表示 自动测试用例,它是用于 实际激活并执行测试用例. 基于这种可视化方法的自动化工具使测试人员无需编程即可进行自动化工作。通过消除不必要的代码复杂性,它使他们能够以更简单的方式创建,维护和执行测试自动化。

阅读更多:如何在整个应用程序中自动化测试和过程

市场上有几种工具可以用可视化的方法来设计测试用例,但是许多工具是基于非常肤浅的可视化层伪装的程序。

下面是一个示例,说明一旦发生意外情况,“可视自动化工具”如何变成程序员的行话。 在这种情况下,用户仍必须了解编程术语和结构。例如,在定义操作的参数或管理意外情况时。

 

依赖编程的自动化工具

图9:自动化工具如何依赖程序员术语以牺牲直观性为例的示例

 

测试自动化入门套件

 

6.充分利用测试自动化

除了构建测试用例之外,还有更多测试自动化的工具。一旦您和您的团队实施了测试自动化工具,并创建了一套自动化测试,可以为质量保证提供足够的覆盖范围,那么您就可以进入自动化旅程的下一个阶段。

您可以采取许多步骤来进一步改善测试流程并增加对测试自动化工具的投资回报。接下来,我们将引导您完成这些步骤。

分析测试自动化结果

测试自动化使您可以更快地执行更多测试。这意味着您还将获得更多测试结果。那么如何才能最有效地处理这些问题呢?

可以说,通过测试自动化分析为成功建立团队与实现实施成功同等重要。 

这是分析测试自动化结果的四个技巧:

1.设置自动监控,以确保测试人员最有效地利用时间。
2.通过利用您的测试自动化平台的日志记录,调试和检查功能,找出测试用例失败的原因。 
3.通过推送或拉取测试结果与您的发布管理平台集成。
4.使用实时测试结果的共享仪表板确保快速透明的反馈。

在概况介绍中详细了解每个步骤:如何分析测试自动化结果

 

建立良好的测试环境

在扩展上述概述的测试自动化结果的最佳实践时,重要的是考虑如何确保产生可靠测试结果的环境。测试结果的质量仅与测试环境的质量一样好。

良好测试环境的主要要求是:

  • 通过处理第三方系统依赖性,使有问题的应用程序可测试。可以通过以下两种方式之一来完成此操作:
    • 通过依赖应用程序内部的模拟数据或使用代理服务来封装应用程序以进行测试。 
    • 只需设置自动监控功能,例如调用所有相关第三方服务的网页。
  • 使测试环境适合您的DevOps管道。这包括与负载平衡器,部署,服务帐户,环境安装等有关的注意事项。
  • 确定如何管理测试数据。有几种方法可以确保测试数据具有一定的质量,包括:
    • 从生产数据基线
    • 引导数据库
    • 创建包含数据生成本身的测试用例

在我们的博客文章中了解有关如何设置高质量测试环境的更多信息:为什么良好的测试环境对成功实现自动化至关重要

 

测试自动化,人工智能和超自动化

人工智能(AI)是一种有趣的现象,有时甚至是令人生畏的现象。它不再是遥不可及的未来。

软件质量保证世界梦想着人工智能。可扩展,自我完善的数字化劳动力的承诺实在令人难以置信。从理论上讲,有无数种方法可以在测试自动化中利用AI。

但是,迄今为止,还没有人开发出能够独立思考的通用智能计算机程序。 AI在质量保证方面的更高级应用,例如机器人自行设计测试用例, 仍然是小说.

什么 确实存在 是聪明的统计数据分析方法。我们可以称这些人工智能算法。其中一些是机器学习(ML)算法,可以从很小的数据中构建聚类和预测模型。其他算法模仿人类的决策,例如人类与软件交互的方式。例如,图像识别模仿了人类对计算机屏幕上内容的视觉认知处理。如果以正确的方式应用这些算法,它们将具有强大的功能。

了解有关AI,ML和超级自动化的更多信息:

 

测试自动化和机器人过程自动化

Gartner定义机器人过程自动化(RPA) 如下:

“机器人流程自动化(RPA)是一种生产力工具,允许用户配置一个或多个脚本(某些供应商将其称为“机器人”)以自动方式激活特定的击键。其结果是,可以使用机器人在整个业务或IT流程中模仿或模拟选定的任务(交易步骤),其中可能包括操纵数据,在不同应用程序之间来回传递数据,触发响应或执行交易RPA使用了用户界面交互和描述符技术这些脚本可以覆盖在一个或多个软件应用程序上。”

您可能会注意到,RPA和测试自动化有几个共同点:它们都与提高生产率有关,它们都模仿用户来执行任务,并且都利用用户界面来执行操作。

大多数测试自动化工具不适合RPA,因为它们缺乏企业功能。其中包括治理,变更跟踪和审计跟踪。有趣的是,RPA项目通常从测试自动化工具开始!这是因为它们提供了务实的方式来实现与业务相关的自动化潜力。

了解有关RPA的更多信息:

测试自动化入门套件

前进,今天实现自动化

自己尝试LEAPWORK或立即预订演示。免费。

开始试用
图书演示
上班族_Footer_Boxes