“我正在寻找一种用于测试自动化的工具!它必须健壮,可靠并且易于维护。我们不是编码员的测试人员应该能够自己使用它。您能帮忙吗?”
几年前,上述要求已到达我们的收件箱中 上班族。它来自寻求更好的方法来自动化大型软件应用程序测试的人。如果这个挑战听起来很熟悉,那么您来对地方了。
测试自动化或自动测试是使用软件(与被测软件分开)来控制测试的执行。
与手动测试相反,自动化测试可以节省测试过程中的时间和资源,从而可以以更高的速度,更高的准确性和更低的成本执行测试。
Gartner定义自动化测试 如下:
自动化测试适用于商业或内部开发的软件或服务,以协助测试过程,包括功能测试和负载/压力测试。自动化测试可提供一致的结果和数据点。好处是易于维护,能够在非高峰时段有效使用资源以及能够基于已执行的测试创建报告。相关的质量管理工具包括用于测试计划,测试用例管理和缺陷管理(质量管理的一部分)的功能。”
测试自动化的使用并不排除手动测试。实际上,他们彼此很称赞。
引入自动化是为了帮助工作中的人们以更智能的方式实现他们的目标,而不是替代工作。
汽车,装配线和计算器只是已引入的技术的一些示例,因为它们使人们可以更聪明地工作,而不是更加努力。
通过在测试中引入自动化功能,测试人员不会被取代,而是免去了繁琐,重复的机器人工作,而可以专注于更高价值的任务,他们使用自己的技能来设计测试案例以确保质量并增加测试范围-定量和定性。
听这集的 解码自动化 上班族的高级布道者Sune Engsig解释了如何治理,稳定的自动化以及具有“自动化思维方式”而不是“手动思维方式”是成功且可扩展的自动化的关键要求。
在我们的博客文章中了解有关此主题的更多信息: 手动测试与测试自动化:10个注意事项
有许多不同类型的测试。有些比其他的更适合自动化。
使用一种或两种方法,在软件开发生命周期的各个阶段进行测试以发现错误。组织测试的另一种方法是通过测试金字塔。
的 测试金字塔 旨在概述从最小的单元到整个连接过程的不同测试级别。级别1在金字塔的底部,进行白盒测试。通常使用黑盒方法来接近2级和3级。
除了测试金字塔中包含的测试类型之外,您还将遇到其他经常使用的测试术语。以下是这些内容及其含义的列表。
在以下文章中,详细了解本指南未涵盖的各种测试类型:
所有这些不同类型的测试可以通过各种方式为软件交付过程增加巨大的价值。在自动化方面,很难说这些测试中的哪项通常取决于产品取决于自动化的最佳选择。
但是,接下来是一些通用准则,说明什么是自动化的良好候选者。
确定流程是否符合自动化要求的一个很好的起点是查看它是否符合以下条件:
如果该过程符合所有这些条件,那么在大多数情况下,它将是自动化的理想选择。
今天, 数字化转型 影响每个市场的业务。他们正在驱动它,或者正在被它驱动。
任何行业都有遭受破坏的风险 市场地位危在旦夕。随着新业务模式的出现和客户需求的不断发展,各地的企业都在努力保持相关性。他们必须改变经营方式。
技术以新的和越来越复杂的方式使用来创造价值。这些包括企业系统的自动化,基于云的商务和跨渠道用户体验。
质量保证(QA)和测试是数字转换的核心。它们是软件开发中的关键过程,这有充分的理由。他们确保在将错误传给最终用户或导致关键系统崩溃之前,先在软件中找到错误。
主动修复错误需要对基础代码进行的每个小更改都进行测试和重新测试。随着软件的发展,重复测试的需求增加。 测试成本很高。
质量检查团队指出,测试活动效率低下是导致测试成本上升的主要因素。
图1:影响质量保证和测试预算峰值的因素
这些是全球开发团队中众所周知的事实。不太普遍的是,人们认识到不仅软件测试成本高昂,而且非常困难。测试需要了解产品所有者和其他利益相关者的期望。了解产品及其环境的固有局限性也是测试人员职业的关键部分。
例如,如果您正在测试视频会议应用程序,那么重要的是要知道常规语音通话在电话上使用时会打断该应用程序,并且该应用程序高度依赖稳定的互联网连接。
测试人员还必须预见最终用户的行为,并使其与需求保持平衡。这涉及在时间和预算限制下制定策略以覆盖尽可能多的产品。涵盖可以想象的每个单一使用场景,以及当软件更改时,都不是一个可行的任务。测试人员一直在平衡探索性测试和可重复清单的需求。
更重要的是,测试人员面临着来自周围各个地方的压力:产品所有者想要更快的版本,开发人员想要持续的反馈,最终用户想要完美的新产品功能。
测试人员面临来自周围各个地方的压力:产品所有者想要更快的版本,开发人员想要持续的反馈,最终用户想要完美的新产品功能。
请考虑以下情形。金融行业的软件解决方案供应商希望每年多次向Web应用程序发布更新。在每次发布之前,产品必须经过仔细的测试。
测试团队由三名全职测试人员组成,已经确定并规划了300个测试用例。这些测试用例中有250个是回归测试。其余50个测试的定义和定义较为宽松,将继续手动执行。
手动完成时,设计,规划和执行250个回归测试用例非常耗时。平均而言,每个测试用例需要一小时的手动测试工作,大约需要六周的测试时间。除了50个探索性测试。
为了满足单个发行版的最低要求,三名测试人员组成的团队必须花整整两周的时间设计和运行测试。
该公司计划在来年发布六种版本–每第二个月发行一次。这将需要总共36周的测试。
250个回归测试用例是可接受的产品质量所需的最低要求。质量检查人员和产品经理知道他们需要更彻底的测试以提高产品质量并保持竞争力。但是没有预算聘请更多测试人员。
为了满足单个发行版的最低要求,三名测试人员组成的团队必须花整整两周的时间设计和运行测试。
有了当前可用的资源,他们就决定进行最低程度的完整性测试。这使测试团队将大部分时间都花在回归测试或产品维护上,而以探索性测试和产品改进为代价。
这种解决方案是不可持续的。随着时间的流逝,回归测试的数量将会增加,测试人员将承受更大的压力,而创新和增长的时间将仍然稀缺。这迫使企业要么增加支出要么错过宝贵的机会。
此外,至少有四个因素导致测试成本上升:
图2:常见的回归测试问题
不管这些因素中的哪一个正在推动对更多测试的需求,结果都是相同的:测试成本将会增加。这造成了不可持续的局面;质量检查团队必须成长,或者测试人员必须提高生产力。无所作为的代价是产品质量的下降,因此失去了市场份额。
图3:随着范围和目标的变化,随时间测试工作量
质量检查团队必须成长,或者测试人员必须提高生产力。无所作为的代价是产品质量的下降,因此失去了市场份额。
对于承受越来越大的压力要求事半功倍的团队,可以引入自动化以减轻测试人员的重复,可预测,繁琐的任务。
从业务角度来看,自动化有三个主要驱动力:降低风险,降低成本和提高生产率。
图4:自动化的关键驱动力
这些自动化驱动程序在组织中的体现不同。以下是三个不同部分中的三个业务示例,他们都认为需要自动化测试。
有许多不同的框架和工具可用于测试自动化。自动测试的结果取决于 实施有多成功,但总的来说,通过自动化测试,可以预期以下结果:
这些积极的成果在 无代码测试自动化 随着实施,采用和执行变得越来越容易和迅速,使用了。在本指南的后面,我们将回到无代码测试自动化的好处,但是您也可以在我们的博客文章中了解到这一点: 无代码测试自动化的7个好处。
重要的是要注意,尽管自动化有很多好处,但它也有其局限性。它只会测试您告诉的内容。尽管这看起来似乎很明显,但请记住重要的一点,因为即使在单元,集成和性能测试通过之后,单个最终用户也可以在几秒钟内使整个系统崩溃。如果用户做了开发人员没想到的事情,这通常会发生。
这就是为什么人类测试人员如此有价值的原因。他们试图预测并模仿最终用户的行为。测试人员在软件开发过程中充当用户的大使。换句话说,测试人员代表用户执行测试。
在选择如何自动化测试时,有许多不同的选择。它们分为三大类:基于代码的框架,低代码工具和无代码工具。
通过以下资源详细了解其中的每个:
根据这些资源的标题,您可能可以猜出我们所倡导的自动化类型。在下文中,我们将更深入地探讨为什么我们认为无代码自动化是前进的方向-即使对于拥有高技能开发人员的团队而言。
测试自动化的积极结果是显而易见的。那么为什么不是所有企业都可以自动化测试呢?
仔细查看大多数测试自动化工具,即可找到答案。
到目前为止,测试自动化工具已规定自动化需要编码。由于测试自动化是在IT部门内部进行的,因此您可能会认为这无关紧要,因为IT部门中的许多人都具有完全的编程能力。
有一个问题:大多数测试人员都不是程序员。他们是业务流程专家。基于代码的自动化解决方案禁止他们为自己的专业领域做出贡献:业务流程的质量。
因此,当测试自动化需要编程时,它要么推送给团队中的开发人员,要么让测试人员自己找出并花费时间-无论哪种方式, 技能差距 最终浪费了宝贵的资源和时间,经常造成瓶颈,并且花费的成本超过了用自动化代替手动任务可以节省的成本。
这就是我们所说的 测试自动化悖论 -在设置和维护测试自动化时,所花费的时间和资源要比通过自动化节省的时间和资源更多。
这就是我们所谓的“测试自动化悖论”-在设置和维护测试自动化时,所花费的时间和资源要比通过自动化节省的时间和资源更多。
但这不是必须的。通过引入不需要编码的自动化,团队可以克服基于代码的解决方案所造成的障碍,并快速看到自动化的好处。
使用无代码,测试人员不需要编程语言的知识来设计和构建自动测试用例。并且消除了对开发人员依赖性的障碍,他们可以与发布周期的步调一致,提高生产率,最大程度地降低风险,从而可以减轻团队的压力。
在我们的白皮书中了解有关无代码测试自动化和测试自动化悖论的更多信息:
无代码测试自动化是测试人员的游戏规则改变者。使用视觉语言而非代码来描述测试的测试自动化工具 是测试人员工作的一种更有效的方法。这有7个原因。
在我们的博客文章中了解有关无代码测试自动化的更多信息 无代码测试自动化如何弥合软件开发中的技能差距 或收听我们的 解码自动化 在“无代码宣言”上,LEAPWORK的创始人克劳斯·托普霍尔特(Claus Topholt)回答了自动化行业中一些最紧迫的问题。
敏捷,DevOps和CI / CD齐头并进,它们在快速交付质量方面发挥着关键作用。接下来是对每种方法的概述,以及可以在其中了解更多信息的资源列表。
敏捷 是一种测试和开发方法或方法,旨在使软件交付生命周期(SDLC)更加灵活和有效。测试自动化等工具可以确保从测试到开发的持续反馈。因此,敏捷测试使企业可以更快地适应市场变化,因此不易受到市场变化的影响。
开发运维 是开发和运营的桥梁。它主要用作职务,但也是一种方法。随着敏捷运动的出现,DevOps越来越需要在保持或提高一定质量标准的同时提高产品发布的频率和速度。 开发运维鼓励从开发到部署的团队之间进行协作和交流,并且需要在整个管道中实现自动化,以实现当今快速交付质量所需的灵活性和连续性。
CI / CD 代表持续集成和持续交付/部署-的确是-持续而不是孤立的瀑布式软件开发方法。 CI / CD管道通常由DevOps构建,是一系列自动化工具,这些工具可以协同工作以确保从开发到部署的恒定,准确的代码流。
本指南介绍了测试自动化的新范例:无代码。
无代码测试自动化为技术专家和业务专家降低了构建和执行自动化的障碍,并帮助团队避免了实施自动化方面的常见陷阱。
听我们的播客 解码自动化 回顾为什么无代码测试自动化可以帮助团队缩小软件开发中的技能差距并构建可维护和可扩展的测试自动化。
接下来,我们将引导您完成测试自动化入门中的重要步骤。这包括找到正确的测试自动化工具,并遵循最佳实践和准则,以帮助您重新考虑或优化现有方法。
作为测试自动化入门的一部分,理想的是制定测试自动化策略。 尤其是在打算在某个时候进行规模扩展的构建测试自动化时,建议不要采用临时的自动化方法。
制定策略不会通过实施严格的流程来抵消敏捷性。相反,它确保您将满足特定业务需求的最重要因素考虑在内。这包括您的业务规模,所从事的行业,所使用的技术以及可用资源。
我们创建了一个 测试自动化策略清单 哪些因素可以着手进行自动化测试。如果您已经开始自动化之旅,它也可以用于优化当前的自动化流程。
该清单将引导您完成以下步骤:
您可能已经可以检查一些项目,而其他一些项目则需要一些工作-甚至可能需要外部顾问的帮助。可以从广义上定义策略,也可以为更狭窄的项目定义策略。
在评估自动化工具时,请通过以下需求清单:
您选择的自动化工具也很可能从与您要自动化的特定技术相关的搜索开始。这里是不同类型技术的概述,以及可以帮助您更多地了解每种技术的资源。
无论选择哪种工具进行自动化测试,都需要考虑如何以最有效和可持续的方式构建自动化测试用例。
一旦了解了构建测试自动化的最佳实践,就需要决定如何创建测试用例。基本上有两种方法可以执行此操作: 测试自动化框架 或使用无代码测试工具。
对您和您的团队而言,哪一种最佳解决方案?
为了回答这个问题,让我们退后一步来讨论什么是测试(自动化)案例,从测试人员的角度来看。
所有这些元素都值得详细介绍,但是其中一个是我们应该如何进行测试自动化的核心。它与如何描述分步过程有关。
测试用例实质上是对业务流程的描述。例如,“登录到应用程序并检查用户名是否正确显示”,或“将商品放入购物篮并检查包括折扣的总额是否正确计算”。
测试用例实质上是对业务流程的描述。
如果您要求测试人员说明他们的日常屏幕任务之一,那么他们很可能会通过以下两种方式之一进行操作:
图6:一个简单的流程图,说明了通用工作流程或业务流程中的步骤
绘制用户界面操作的分步流程图是描述过程的直观而灵活的方式。流程图非常有用,因为它们使您可以分支逻辑,添加来自数据源的输入等等。
因此,一些测试自动化工具是完全围绕可视化GUI / UI流程图的概念开发的。例如, 上班族自动化平台. 实际上,以这种方式记录业务流程有整个行业标准。叫做 BPMN(业务流程模型和表示法).
这是一个示例:在网络应用程序中测试登录表单。可以很容易地将其绘制成流程图,其中每个“构建块”都由一个动作和一个应用程序界面中的元素组成。
图7:标准登录表单
以下流程图说明了自动测试用例的外观。这是一个常规的登录过程,包括以下步骤:
图8:每个“构件”代表测试用例中的步骤的流程图
流程图不只是一个 表示 自动测试用例,它是用于 实际激活并执行测试用例. 基于这种可视化方法的自动化工具使测试人员无需编程即可进行自动化工作。通过消除不必要的代码复杂性,它使他们能够以更简单的方式创建,维护和执行测试自动化。
市场上有几种工具可以用可视化的方法来设计测试用例,但是许多工具是基于非常肤浅的可视化层伪装的程序。
下面是一个示例,说明一旦发生意外情况,“可视自动化工具”如何变成程序员的行话。 在这种情况下,用户仍必须了解编程术语和结构。例如,在定义操作的参数或管理意外情况时。
图9:自动化工具如何依赖程序员术语以牺牲直观性为例的示例
除了构建测试用例之外,还有更多测试自动化的工具。一旦您和您的团队实施了测试自动化工具,并创建了一套自动化测试,可以为质量保证提供足够的覆盖范围,那么您就可以进入自动化旅程的下一个阶段。
您可以采取许多步骤来进一步改善测试流程并增加对测试自动化工具的投资回报。接下来,我们将引导您完成这些步骤。
测试自动化使您可以更快地执行更多测试。这意味着您还将获得更多测试结果。那么如何才能最有效地处理这些问题呢?
可以说,通过测试自动化分析为成功建立团队与实现实施成功同等重要。
这是分析测试自动化结果的四个技巧:
1.设置自动监控,以确保测试人员最有效地利用时间。
2.通过利用您的测试自动化平台的日志记录,调试和检查功能,找出测试用例失败的原因。
3.通过推送或拉取测试结果与您的发布管理平台集成。
4.使用实时测试结果的共享仪表板确保快速透明的反馈。
在扩展上述概述的测试自动化结果的最佳实践时,重要的是考虑如何确保产生可靠测试结果的环境。测试结果的质量仅与测试环境的质量一样好。
良好测试环境的主要要求是:
在我们的博客文章中了解有关如何设置高质量测试环境的更多信息:为什么良好的测试环境对成功实现自动化至关重要
人工智能(AI)是一种有趣的现象,有时甚至是令人生畏的现象。它不再是遥不可及的未来。
软件质量保证世界梦想着人工智能。可扩展,自我完善的数字化劳动力的承诺实在令人难以置信。从理论上讲,有无数种方法可以在测试自动化中利用AI。
但是,迄今为止,还没有人开发出能够独立思考的通用智能计算机程序。 AI在质量保证方面的更高级应用,例如机器人自行设计测试用例, 仍然是小说.
什么 确实存在 是聪明的统计数据分析方法。我们可以称这些人工智能算法。其中一些是机器学习(ML)算法,可以从很小的数据中构建聚类和预测模型。其他算法模仿人类的决策,例如人类与软件交互的方式。例如,图像识别模仿了人类对计算机屏幕上内容的视觉认知处理。如果以正确的方式应用这些算法,它们将具有强大的功能。
了解有关AI,ML和超级自动化的更多信息:
“机器人流程自动化(RPA)是一种生产力工具,允许用户配置一个或多个脚本(某些供应商将其称为“机器人”)以自动方式激活特定的击键。其结果是,可以使用机器人在整个业务或IT流程中模仿或模拟选定的任务(交易步骤),其中可能包括操纵数据,在不同应用程序之间来回传递数据,触发响应或执行交易RPA使用了用户界面交互和描述符技术这些脚本可以覆盖在一个或多个软件应用程序上。”
您可能会注意到,RPA和测试自动化有几个共同点:它们都与提高生产率有关,它们都模仿用户来执行任务,并且都利用用户界面来执行操作。
大多数测试自动化工具不适合RPA,因为它们缺乏企业功能。其中包括治理,变更跟踪和审计跟踪。有趣的是,RPA项目通常从测试自动化工具开始!这是因为它们提供了务实的方式来实现与业务相关的自动化潜力。
了解有关RPA的更多信息: