从所有手动测试过渡到自动化测试

软件测试 自动化测试 手动测试
2022-01-19 14:58:48

现在我的公司只做手动测试。我们已经讨论过开始一些自动化测试了一段时间,但它根本没有起飞。自动化测试似乎是帮助我们的 QA 人员专注于具有挑战性的问题并将常规修复和测试留给自动化系统的好方法。有没有人对我如何可以提出建议:

  1. 鼓励采用自动化测试(主要是在管理方面)
  2. 确定一些可以很容易地被自动化测试取代的当前测试
  3. 选择一个好的自动化测试软件(我们显然有 Automation Anywhere,但我不知道这是否是一个开始自动化测试的好产品)
4个回答

我在自动化和手动测试方面做了很多工作,我对您的三个问题的看法是:

  1. 回归有多少麻烦?这可能是您最大的潜在时间/成本节省。任何需要长时间、无聊的回归测试的东西都是一个很好的目标——只是要小心不要过度销售。有很大的增加成本,以确保您的开始阶段将比正常操作效率低且成本更高。一旦你有了一个基本的框架并运行了一些简单的(最好是具有良好投资回报率的简单 - 这取决于你的应用程序)测试,你就可以保证这个特性在每个版本中都有效,而无需做还要别的吗。

  2. 我部分地碰到了上面当前的测试问题:对于初学者来说,最好的选择是经常使用的东西,有长时间或乏味或耗时的回归测试,可能经常中断,或者是关键任务。作为一般规则,从符合以下两个或多个标准的简单事物开始:如果您的应用程序计算税收,则任何具有任何税收场景的交易都是一个很好的起点。你的基本目标应该(在我看来非常谦虚!)是达到 80/20 规则:自动化 20% 的应用程序,而你的 80% 的使用量。(登录/注销和会话管理是其他好的、简单的目标)。

  3. 好的自动化软件取决于您的应用程序和您的需求。您需要考虑的关键事项是您是否正在处理 Web 应用程序(有许多免费或低成本的工具可用于处理 Web 应用程序)、Windows 应用程序、移动应用程序、Linux、Mac 等。您需要一些可以查看您正在测试的软件的东西,至少足以识别您正在与之交互的各种组件并调用它们的公共方法。维护调用诸如“SubmitButton.ClickButton()”之类的自动化比基于屏幕上像素位置进行交互的自动化要容易得多。

祝你好运,祝你自动化愉快。

首先,如果您查看此网页的右上角,您将看到一个标有“搜索”的白色框。如果您单击该框,键入“自动化”,然后按回车,您将看到许多有关自动化的问题和答案的链接。我相信值得你花时间仔细检查你在那里看到的东西。

这是一个很大的话题,但如果是我,我会首先决定我的主要动机是节省时间还是找到更多的错误。

如果您的主要动机是节省时间,您应该从自动化一些常见的、耗时的设置任务开始,例如,生成测试数据或自动安装和配置您的产品。这些事情是一个很好的起点,因为它们是可衡量的,这对您的管理可能很重要。如果您可以通过此报告可量化的成功,则可能更容易证明其他类型的自动化是合理的。根据我的经验,自动化设置任务也比自动化测试需要更少的编程技能。

如果您现在有严重的质量问题,并且您怀疑自动化测试可能会帮助您发现更多错误,那么您应该确定自动化可以帮助您的一些特定领域。有许多用于识别自动化测试的策略,例如特别容易出错的区域、测试特别耗时或容易出错的区域,或者具有一组可能的输入但具有易于预测的输出的区域。

请注意,尽管工具供应商和自动化测试布道者声称,自动化测试并不是灵丹妙药。此外,与所有软件一样,自动化测试需要前期投资,然后进行持续维护。像对待任何大型项目一样接近自动化:从小处着手,诚实对待结果,并准备好在没有实现目标时改变策略。

我最近离开了微软,在那里我们为一家规模较小的公司提供了很多自动化,只有一点自动化来帮助开始自动化大量测试的过程。幸运的是,这里的管理层已经意识到他们需要加强自动化,但是即使在承认他们需要更多的自动化之后,实际上提供必要的资源来启动和运行自动化还是有点困难。

因为我的公司已经取得了一些自动化成功,也有一些自动化失败,我知道我需要做的一件事是在开发人员和管理层以及其他利益相关者之间建立对我们自动化的信心。出于这个原因,我选择了一些回报丰厚的简单项目作为前几个要处理的项目,以显示生产力和周转时间的显着提高。实际上,我创建的前两个工具甚至不一定是自动化的。第一个是通过将数据插入日志文件来帮助手动测试的工具,这将使数据在通过我们的产品运行时更容易使用,该产品会解析该日志并将其插入数据库。这个工具非常简单,但让我们能够做更多的深度测试,增加我们的信心,同时也加快了这个过程。第二个只是修改一些现有的自动化测试并添加一些工具以使用单一机制 a) 启动自动化 (mstest) b) 记录和报告结果以及 c) 在构建之上运行构建。第三个是我在这个答案中概述的自动部署验证工具:部署测试总之,当试图说服管理层(和其他任何人)自动化可以加快测试并提高您的信心水平时,有一些具体的例子很好,所以像这样的几个已经增加价值的快速工具可能真的很有用在说服管理层让你做得更多。

我计划处理的下一个部分是 UI 自动化框架(在当前 selenium/webdriver 构建之上的抽象),然后在 HTTP 和数据库层进行更深入的测试。

我不熟悉 Automation Anywhere,但我知道正确的自动化工具套件很大程度上取决于您正在测试的内容。您是在谈论 UI 自动化,还是在谈论其他额外的自动化?它是什么类型的 UI - 网页、Windows 应用程序、flash、silverlight 等?您需要在哪些操作系统/浏览器/环境中运行自动化?通常,自动化的成功与您的实现有关,而不是与您使用的底层框架有关。一个常见错误的例子是使用现成的框架,上面没有抽象,通常使用记录器等工具来记录和回放测试用例。虽然这会让你快速上手,如果不是不可能的话,它也会使您的自动化的维护和稳定性变得困难。花时间投资构建适当的抽象,它将使开发和维护您的自动化测试变得更加简单。

  1. 强调在添加新功能时长期节省时间。您可能会自动化您的回归,并能够花时间彻底测试新功能并捕获如果找不到可能会花费更多钱的错误。很少看到预先节省的钱,这通常使销售自动化测试管理变得困难。期待挑战。;)

  2. 如果您的软件中只有 API 部分,您可以专注于测试它作为概念证明,而无需处理基于 UI 的测试。这可以在 Watir (Ruby) 等低成本工具上快速构建原型,让您快速入门。

  3. 这是关于测试工具的一个明确的观点。为工作选择合适的人。如果不了解您的产品的更多信息,就很难给出好的意见。有些供应商出售极其昂贵的系统,有些框架和 API 是免费的。如果成本是一个问题,并且通常是您提出的要求,那就让它成为您的指南。