如何划分测试自动化的级别?

在过去的50年里,自动化,即让机器或计算机在没有人为干预的情况下执行其任务的过程,已经彻底改变了制造业。自动化过程控制着计算机芯片的制造,装卸机器以人类无法达到的精度组装电路板,机器人组装汽车的速度如此之快,以至于一些汽车厂可以做到 每两分钟生产一辆新车。 

在过去的十年里,自动化已经变得越来越普遍。 机器人过程自动化 现在大企业经常使用它来提高日常和重复性任务的效率。测试自动化是一项大生意,它允许测试在没有它的情况下是不可能的。

在许多情况下,这种自动化是纯机械驱动的,例如,使用巧妙设计的运动顺序,让机器人拿起一个零件,将其旋转到位,并将其固定。最近增加了某种程度的智力。例如,允许拾取和放置机器“看到”正在拾取的零件,以便它们可以旋转它们并确保它们的位置正确。在这个博客中,我们将研究更广泛的行业和测试自动化中的不同自动化水平。

什么是自动化

韦氏词典 定义自动化 作为“使一个装置、一个过程或一个系统自动运行的技术”或“用机械或电子装置代替人类劳动对一个装置、过程或系统进行自动控制的操作”,这些定义抓住了这样一个观点:自动化就是让一台机器扮演一个人的角色来接管一项任务。通常,这是为了使任务更快更有效,但在某些情况下,这可能是因为任务是危险的(例如。 清除受污染的核废料 或者是因为人力成本相对较高。 
在测试行业,自动化就是让计算机自动执行QA测试。从测试网站前端的哑脚本,到跨多种浏览器类型测试web应用,甚至到使用机器学习自动生成测试的系统。在这里,主要目的是增加能够执行的测试的数量和范围。这并不是要把人从测试中完全排除,而是要确保尽可能多的重复测试是自动完成的,尤其是 回归测试。

自动化模型

大量的研究人员试图定义模型来评估给定过程或系统实现的自动化水平。在这里,我们将看到几个更有趣的。一般来说,这些模型要么从控制过程的人的角度考虑问题,要么从机器实际操作的角度考虑问题。 
最著名的以机器为中心的模型之一是汽车工程师协会 分类学 自动驾驶车辆的自动化水平。如果包含非自动化的0级,它们将定义6个自动化级别。
 

  • 驾驶员辅助。在这里,车辆只能在巡航控制和车道保持等方面提供帮助。 
  • 部分自动化。在这里,车辆接管了更多的转向和加速/制动元素,但仅在严格控制的情况下。例如自动换道或自动停车。 
  • 条件自动化。在这里,车辆不仅可以控制转向和加速/制动,还可以监控环境,并在驾驶员需要收回控制权时发出警告。这类似于特斯拉汽车的自动驾驶模式。
  • 自动化程度高。在这里,车辆本身执行大多数驾驶任务,只要它保持在定义的用例内,比如在两个已知位置之间驾驶。人类驾驶员根本不起任何积极作用,但仍然能够收回控制权。 
  • 全自动化。在这个级别上,车辆完全自主地执行所有驾驶操作。现在没有人驾驶,实际上,车上也没有人操纵的控制装置。 

在他们1999年的论文中 Parasuraman、Sheridan和Wickens建立了一个人类与自动化交互的类型和级别模型,确定了采取任何行动需要完成的四项主要任务。这些是信息获取或感知;信息分析;决策与行动选择;行动和执行。Endsley和Kaber 提出了一个模型,该模型基于人类还是计算机执行这4项任务。

测试自动化的级别

同样,在他1980年的论文《计算机控制与人的疏离》中,谢里丹考察了自动化在决策方面的10个阶段: 

1.人类考虑替代方案,做出并实施决策。
2.计算机提供了一套人类在决策时可能忽略的备选方案。
3.计算机提供了一组有限的备选方案,由人类决定实施哪种方案。
4.计算机提供了一组有限的备选方案并提出了建议,但人类仍然做出并实施最终决策。
5.计算机提供了一组受限制的备选方案,并提出了一个建议,如果人类同意,它将予以实施。
6.计算机做决定,但在实施前给人否决权的选择权。
7.计算机作出并执行决策,但必须事后通知人。
8.计算机作出并执行决策,只有在被要求时才通知人类。
9.计算机作出并执行决策,只有当它认为有必要时才通知人类。
10.如果计算机认为应该做决定,它就做出并执行决定,只有当它认为这是必要的时候,它才会通知人类。

所有这些模型都有一个共同点,即自动化过程涉及决策和对决策采取行动。 

在一个 2017年博客,Gil Tayar,一位 Applitools,研究了如何将自动驾驶汽车的SAE模型应用于测试自动化。在自动化的各个阶段,他都用同样的名字。

1、协助。在这里,人类编写测试,并且必须维护它以反映任何更改。人工智能仅用于执行简单的验证步骤,并协助前端进行目视检查。
2、部分自动化。在这里,人类仍然需要编写测试并监视更改,但是人工智能能够协助验证更改。
3、条件自动化。在这里,人类编写测试,但人工智能验证每一个变化,并作出任何需要的更新。
4、自动化程度高。在这里,人工智能承担着编写测试的角色,但是人引导着过程并定义了测试应该做什么。
5、全自动化。在这里,人工智能完全负责编写和维护测试,而无需任何人工指导。
将此模型应用于函数化

结论

有许多模型可以对自动化程度进行分类。在这里,我们只看了一小部分。正如我们所看到的,这些模型既可以从人的角度看自动化,也可以从机器的角度看自动化。最广泛引用的车型之一是自动驾驶汽车的SAE分类法。我们看到了Applitools的朋友们如何将这个模型应用于测试自动化。根据他们的模型,我们的自动化测试已经非常接近实现全自动化。然而,我们觉得仍有改进需要改进,我们的测试工程师正在不断努力改进我们的软件,推进最先进的测试自动化水平!

源自公众号  筋斗云Tester



留言