正如金钱让世界变得圆满,自动化使测试世界变得圆满。
自动化已不仅仅是一个流行词,现在已成为大多数组织骨干软件发布的关键部分。 但问题仍然存在,Test Automation是否以正确的方式完成? 或者更大的问题应该是,有没有正确的方法来进行测试自动化? 答案通常取决于......它取决于在测试下的应用程序,环境,数据,架构和大量其他因素中发挥的许多不同因素。
对于任何重大项目或任务,人们确实需要一个计划或一种策略来实现自动化。 许多人使用象限,金字塔和其他模型作为参考,以便在决定自动化方法时使车轮运动,例如围绕一些优秀模型(包括我自己的自动化三角模型)的一些精彩细节。
在我10年的测试自动化世界经验中,我的观察和经验使我在制定测试自动化战略时考虑了一些关键要素。 我将在下面讨论其中的一些。
1.测试用例的情况 - 测试管理工具或类似工具
让我们一路回到起步。 无论您是在探索性测试世界中使用特定的测试管理工具还是检查表/思维导图等,都有一个潜在的目标。 目的是为您解决测试任务带来某种规划或结构 。 在这个阶段,不管你信不信,这是第一个需要考虑测试自动化想法的地方。您应该在定义测试用例/方案期间识别典型的自动化候选者。
围绕测试管理工具或类似工具的另一个方面是它为所有人提供的可见性和透明度的关键要素。 测试自动化不应孤立地发生,并且提供完整的透明性,可追溯性和团队可见性的工具能力越好,与测试自动化工作的相关性就越高。 永远不要低估这个元素带来的力量,特别是对于一个正在发展的敏捷世界 - 团队游戏对任何组织的成功至关重要。 每个人都应该在您的团队自动化工作在相同层面上思考。 这里可以看到在测试覆盖范围,测试结果,测试趋势和各种花式自动化统计数据的可见性方面。
在某些情况下可能与测试管理工具相关的另一点或者可能是像Jenkins或Gitlab这样的CI / CD支持工具之类的外部工具,能够批量或在管道中执行这些自动化测试/脚本,计划或需求。 这是从存在于特定机器上的脚本的旧时代向前迈出的一步,并且通过在执行之前运行每个测试来执行相当繁琐的顺序
2.自动化的地方 - 告诉我在哪里!
关于自动化策略的另一个关键因素是“Where”和“What”自动化。 在某种程度上,上面讨论了“什么”自动化,在这种情况下自动化的“Where”并不是指特定的测试环境,而是与应用程序层进行自动化。 我们是在讨论前端或后端的自动化,我们是在谈论API还是UI,甚至可能是DB。 然后,E2E测试的问题进入,甚至进一步发展到多个跨系统E2E测试。正如您所见,自动化在做之前需要进行大量思考。 因此,在决定“在哪里”关注自动化工作之前,通常团队间和测试人员的讨论至关重要
3.工具选择 - 明智地选择
你知道的事情并没有变得容易
现在我们已经知道了“为什么以及在哪里”为自动化工作选择正确的自动化工具,这一更加艰巨的任务变得至关重要。 在某些情况下,公司购买已经工具,自动化现在必须遵守这个预先选择的工具,我在这篇文章中不会涉及。 如果命运在测试人员手中,那么工具的选择应该跨越多个区域。 关于工具选择的一些快速想法如下:
a)技术工具 - >工具可以自动化我们的Web应用程序吗? 该工具可以自动化我们的桌面应用吗? 它是否支持API自动化? 移动平台怎么样?
b)工具支持 - >是否有帮助提供有关问题,崩溃或工具维护的帮助。 该工具的新版本多久发布一次?
c)语言支持 - >所选工具支持哪种编码语言? 它是否支持Java和/或Javascript等多种语言。 在招聘和招聘时,这个问题也变得相关。
您的生态系统中可能还有许多其他要点与工具选择相关,但以上几点是首要考虑的因素。
4.环境稳定 - 保持整洁 clean code
这是一个经常被忽视的领域,但该领域的疏忽或不稳定几乎可以使所有测试自动化工作无效。 想想这一点,想象一下拥有最闪亮,制作精美的新时代游艇!但是你把它带到最最崎岖的水面上航行。 这将是一场史诗般的失败!
如果有稳定的环境,这正是它要的感觉。 有关环境正常运行时间的问题,依赖性可用性 (无论是本地还是外部)需要在此处解决。 这里想到的一个例子是类似于测试应用程序登录功能,依赖于谷歌API。 如果与外部服务的连接中断并且您的测试依赖于它,那么您的自动化测试就会变得十分脆弱。
找到解决环境问题的方法,并在增加自动化工作量时提出使环境更稳定的方法变得至关重要。
5.数据,数据和更多数据
数据是另一个对自动化方法至关重要的概念。 数据很复杂并且可能带来许多挑战,这主要取决于每种情况下可能存在的众多排列 。 硬编码自动化测试输入和变化几乎是不受欢迎的,因此在许多情况下,因为通过为每次执行提供随机数据,可以极大地增强脚本找到缺陷的能力。 通过这种方法,您可以大大增加每个独特数据场景中发现缺陷的可能性。 在某种程度上,这可以看作是一种自动化探索性测试的形式,这是一种双赢的局面。
因此,专注于寻找随机生成或获取不同数据输入组合的方法,以加强您的自动化工作,无论是从表格,文件还是API获取数据,这绝对值得研究。 这里要考虑的一点是速度方面。 读取这些数据会减慢你的脚本吗? 它会减慢多少? 这些是在考虑如何处理数据与覆盖业务时,需要作为一个团队性问题进行的进一步的讨论。
在结束时
总而言之,这一切都始于你如何开始。 对于经过深思熟虑的自动化方法,必须牢记自动化不仅仅会发生。 早期自动化候选人识别,可见性,团队互动和总体规划是必不可少的基础。 一旦建立起来,就需要解决其他关键因素,如工具选择,自动化水平,数据和环境问题,以使您的自动化在您的世界中取得成功。