自动化或手动测试:保持平衡!

如果您是一名测试人员,那么您必须就自动或手动测试进行讨论。 这并不是什么新鲜事,许多技术人员对此都有不同的看法。 无论您是一个大型团队,已经建立了自动化框架,还是小型团队,对于自动化来说都是新手,为了获得最大效率,始终必须保持这种平衡。

无疑,自动化测试具有提高效率,加快回归速度并因此有助于及时交付项目的好处。 它还可以手动删除重复的测试用例或回归用例,并节省测试人员的生命。

但是,在考虑自动化之前,您应该评估一些要点。 您一定已经听过“您无法使所有内容自动化”的说法,这是非常正确的。

在许多情况下,需要进行手动测试。 实际上,手动测试本身的最大缺点是它的最大优点是需要人工干预! 在某些情况下,需要人类的直觉和直观性来测试系统。 仅举几例,在以下情况下,手动测试起着至关重要的作用-

  1. 可用性测试-这是根据了解应用程序的难易程度来测试应用程序。 这是为了测试应用程序与将要使用它的用户之间的交互性。 这些测试无法自动执行,必须手动执行。
  2. UI和UX测试-UI和UX测试不能自动进行,即使您尝试也只能在一定程度上进行自动化脚本可以用来测试布局,css错误和html结构,但不能提供整个用户体验自动化,因为它非常主观。
  3. 探索性测试-塞姆·坎纳( Cem Kaner)于1984年创造了该术语,将探索性测试定义为:“一种软件测试风格,强调个体测试人员的个人自由和责任,以通过对待与测试相关的学习来不断优化其工作质量。 ,测试设计,测试执行和测试结果解释是在整个项目中并行运行的相互支持的活动。”
  4. 临时测试-这是完全计划外的测试,依赖于测试人员的洞察力和方法。 没有准备好进行此测试的脚本,必须手动执行。
自动化或手动测试:保持平衡!

自动化测试的优点

在某些情况下,自动化测试是有益的,并且实际上可以减少工作量并提高生产率。 我们来看一下-

  1. 回归测试回归案例大部分是重复的,我们可以将它们自动化一次并及时执行。
  2. 负载测试在负载测试的情况下,自动化非常有用。 负载测试可识别各种工作负载下系统中的瓶颈,并检查负载逐渐增加时系统如何做出反应,这可以通过自动化来实现。
  3. 性能测试-性能测试定义为一种软件测试,用于确保软件应用程序在预期的工作负载下能否正常运行。 在这种类型的测试中,自动化非常有用。

除此之外,可以将重复的测试用例自动化。 牢记以上几点,您可以决定自动化的内容,方式和原因。

什么,为什么以及如何实现自动化-有时要在手动和自动化之间保持平衡可能非常棘手。 我已经看到许多积极进取的管理人员都在推动一切自动化。 但这是最好的方法吗?

在开始自动化之前,您需要回答以下三个问题:

1)什么需要自动化?

首先让我们考虑一下到底需要自动化什么。 在这里,“精确”是指“需求” /“功能” /“应用”的哪一部分是寻求自动化的候选人。 通常将要自动化的应用程序称为AUT(被测应用程序)。很有可能一部分功能可以自动化,而其余功能可以手动测试。

这需要深入研究该功能,测试用例和所需的工作。 有时,知道开发人员将如何实现该功能在决定是否可以自动化以及在多大程度上实现自动化至关重要。

2)为什么要自动化?

这个非常重要。 为什么需要自动化? 是否因为它减少了工作量并提高了效率? 还是因为它将长期受益? 还是只是常规? 在我担任质量检查人员的任期内,我发现一些经理人积极地希望所有东西都自动化,而没有分析这可能会增加工作量并且没有收获。 您可能最终会问自己几个问题-

  1. 这是一次性的要求,将来永远不会出现吗? 那时我们可能不需要自动化。
  2. 自动化解决方案是否复杂? 您还需要了解被测应用程序的复杂性。 如果将其自动化导致自己构建并行应用程序,则没有自动化的意义。
    但是在某些情况下,解决方案很复杂,但功能或AUT仍在不断变化,并且长期计划开发,那么从长远来看,自动化可能会有所帮助。
  3. 时间限制-交付中可能存在时间限制。 那时,经理的角色对于决定投资自动化还是寻求人工至关重要。
  4. 测试团队的资源和技能-这也是一个重要因素。 测试团队中有多少自动化工程师可以利用其带宽进行AUT? 通常,对于小型团队来说,这是自动化的决定因素。

3)如何自动化?

这是指找到解决方案。 为什么和如何相互关联。 因此,您可能会找到“回答方式”,并得到“为什么”的答案,反之亦然。

如何决定我们将如何自动化AUT。 如果您要使整个应用程序或一个小功能实现自动化,请不要将其与AUT或功能混淆。 有时对于小型应用程序,您不需要完整的自动化框架。

有各种可用的工具,它们不需要编码就可以解决需求。 例如, CloudQA的TruBot是这样一种工具,它具有许多方便的工具用于不同类型的测试,并且对于小型应用程序非常用户友好。

除此之外,只需编写一个shell脚本即可满足各种要求。

当AUT很大且不断进行改进时,就需要一个完整的自动化框架。 那时,可以在每个功能发布之前执行回归分析,并且自动化可以大大减少工作量。

自动化框架的开发需要编码技能和时间,因此在进入该框架之前,测试人员应始终分析ROI(投资回报率),然后制定相应的计划。

自动化还使您有信心,可以最大程度地覆盖回归测试,并且不会因添加新功能而破坏现有功能。

结论

我们得出的结论是,仅手动或仅自动化不是正确的方法。 两者之间应该保持平衡,我希望以上几点将有助于找到正确的平衡。

翻译自: https://www.javacodegeeks.com/2019/02/automated-manual-testing-keeping-balance.html