📜  测试工具和自动化-策略,成本,风险和收益

📅  最后修改于: 2021-08-24 04:32:50             🧑  作者: Mango

测试工具可能非常有用。实际上,某些工具是必不可少的。例如-事件跟踪系统。通常,工具旨在提高测试的效率和准确性。因此,非常重要的一点是,我们认真选择工具并正确实施它们。很多时候,人们已经观察到,好的工具也无法正确实施,从而导致效率低下。同样,脚本和数据的持续维护对于获得测试工具的好处也非常重要。

在大多数情况下,自动化等同于测试执行自动化。虽然在大多数情况下是正确的,但测试的其他方面也是自动化的。

测试自动化策略:
首先,应该清楚地理解,测试工具并不等同于拥有自动化策略。期望获得工具将解决测试问题是不现实的。因此,以下是一些重要的测试自动化策略:

  1. 首先-
    长期自动化-自动化一组只能运行几次的测试用例不是一个好主意。就工具的成本(如果已获得许可)和创建脚本的努力而言,这不会给您带来投资回报(ROI)。
  2. 仅自动化那些可自动化的测试,即可以无人值守运行的测试,不需要人工判断即可解释测试结果。
  3. 如果手动完成,则自动化容易出错的测试,例如数据加载,回归测试。
  4. 仅对具有有效业务案例的测试进行自动化,即,您应该具有以下想法:在自动化之间直到被测试的应用程序退出之前,测试需要运行多少次。如果测试用例是一次可能很少运行的一次性方案,并且是边缘方案,则没有自动化的意义。
  5. 自动执行需要在多个浏览器/设备/操作系统/环境/硬件/配置上进行测试的测试。它将提供良好的投资回报率。
  6. 自动化测试策略应针对项目量身定制,以提供最佳结果。我们可以有一个通用的策略,但它可能无法给出最佳或最佳结果。我们应该始终为自动化量身定制策略。
  7. 在无法进行手动测试的地方实现自动化测试。示例—性能测试。
  8. 自动化可随时间维护的测试:很多时候,创建了自动化测试,并且仅在很少的运行中成功,并且随着UI布局的改变,测试需求也随之改变。但是,由于各种原因,测试不会更新,或者新团队可能不知道在哪里进行更改。因此,脚本应该是模块化的,并且易于理解以使其可维护。

测试自动化成本:
在任何任务中,我们都需要确定成本,风险和收益。关于成本-我们可以将其分为初始成本和经常性成本。自动化的初始成本包括-

  1. 评估并选择正确的工具。不要选择工具,以后再练习。
  2. 购买工具许可证或适应开源工具或开发自己的自定义工具。
  3. 学习或培训使用该工具
  4. 将工具与整个测试过程以及过程中的其他工具集成在一起。

经常性费用:

  1. 脚本和工具的维护成本
  2. 在使用许可工具的情况下,持续的许可费用。
  3. 工具支持费(如果有)。
  4. 随着团队的不断变化和团队成员的不断变化,持续的培训成本。
  5. 基于技术升级的脚本不断改进。

在最终确定工具之前进行POC总是一个好主意。但是,请注意,进行POC时通常会遗漏经常性费用。因此,如果成本是决定项目/组织工具的驱动因素,请谨慎行事。

测试自动化风险:

  1. 不切实际的期望–
    首要风险是工具的不切实际期望。这是相当普遍的,尤其是在先前的自动化经验有限的项目和组织中。测试工具不会将一个困难的测试问题变成一个简单的问题。
  2. 低估了引入该工具所需的时间,成本和精力–
    建立测试框架,与其他工具集成,计划和培训将要使用该工具的人员始终需要付出巨大的努力。
  3. 低估了获得积极的自动化回报所需的时间和精力–
    自动化投资的正回报意味着减少了总体测试工作量,缩短了测试执行时间,增加了覆盖范围。一个组织可能要花费数年的时间才能获得自动化的积极回报。
  4. 供应商问题
    就像无法提供技术支持,无法通过软件测试平台中的更改来更新自动化工具一样,免费工具也会随着时间的推移获得许可。
  5. 低估了手动测试的需要-
    作为自动化专家,我们应该了解并非所有测试都可以自动化。因此,总体上将需要持续的手动工作。同样,通过重复的自动化测试,我们最终可能会遇到一个名为“农药悖论”的问题,而在该问题中我们没有发现任何新问题。因此,我们应该仔细地将手动测试器和自动化结合起来。
  6. 测试脚本和数据的可维护性
    您可能会生成易碎,难以维护的脚本和框架。这是组织和项目所犯的一个重大错误,后来又因无法获得自动化投资的回报而遭受损失。因此,我们应该仔细设计可维护,健壮和模块化的框架,以便可以重复使用测试脚本和数据,并减少缺乏脚本可维护性的风险。

测试自动化的好处:

  1. 节省时间,减少工作量,更好的覆盖范围,更好的执行时间可预见性是自动化的一些明显好处。
  2. 可靠性,自动化测试工具比人工软件测试器更可靠,更一致,因为一旦设计了健壮的脚本,测试就不会那么容易出错了。
  3. 更适合重复测试,适用于使用不同数据集测试重复步骤,跨浏览器测试,回归测试。
  4. 使用性能测试之类的工具可以进行无法手动完成的测试。这有助于降低风险。