三种常见的测试自动化类型

我们先从基础开始!了解两种常规测试模式和三种常见的测试自动化类型。

我们都经历过:在现实生活中,经常出现的编程表情包是什么?

有两个抽屉不能同时打开的橱柜。

这个表情包很好地总结了这一点:每个抽屉式导航栏单独运行都非常好,但与其他抽屉式导航栏组合使用时,它们会互相堵塞,并且无法正常工作。请确保两个抽屉式导航栏能够很好地协同工作,并且能够同时运行。

同一个橱柜,但有两个抽屉,可以同时打开。

在 Web 开发中应用这一点:您编写了一些测试,您甚至可能实现了 100% 的测试覆盖率,但当其他部分就绪后,您的应用仍然需要正常运行。单元本身可以发挥很好的效果,但彼此之间却不尽相同。编写一些测试至关重要,但这只是理想的项目测试设置的一部分。首先,您需要确定需要确保应用质量的哪些方面以及如何实现这一点。

简而言之,在开始编写实际测试代码之前,您需要一个计划。关于如何进行实际测试这一主题,让我们从一开始就做一个纯净的答案,并回答两个基本问题:

  • 您希望如何测试?
  • 您希望进行哪些测试?

本文重点介绍回答第一个问题需要了解的一般事项。首先,我们先来了解有哪些测试模式,然后再重点介绍常见的测试类型。在后面的文章中,我们将回答第二个问题,合并答案,然后确定最适合您项目的测试策略。现在就试试吧!🙌

从基础知识开始:常规测试模式

在回答如何测试的问题时,要阐明的第一点非常抽象。您应该手动测试还是让计算机接管测试?但是重要的是,不要在这里陷入二元思维模式。

手动测试与自动测试

如果您请质量保证工程师定义测试,他们可能会先将其细分为两种“模式”:

  • 手动测试。这是由实际人员进行的典型测试方法。质量保证工程师点击该应用,检查它能否正常运行,同时尝试破坏它。最常见的方法是探索性测试,在此类测试中,工程师根据预定义的路径或核对清单,根据应用了解情况调查应用。
  • 自动化测试。这类测试由计算机执行。质量保证工程师会实现此功能,以自动处理重复的单调测试。

本系列指南将主要介绍自动化测试。但是,您不应只专注于一种测试方式。虽然自动化可以节省大量时间和精力,但人工测试和手动测试始终发挥着至关重要的作用。相反,测试自动化应该可以使人们腾出时间专注于探索性测试和创造性地解决问题。例如,确保用户体验质量或保护高风险业务逻辑。换言之,自动化技术是您的后盾。❤️

不透明框与透明框

至此,您已经定义了常规测试模式。不过,这些还不够。为了规划测试策略,还有一个问题需要回答:是应该知道应用的后台运行方式,还是更适合在没有这些知识的情况下进行测试?根据答案,派生和选择测试用例时有两种程序可供选择:

  • 不透明盒测试(或黑盒测试)。评估基准时,应分析组件或系统的功能性或非功能性要求(规范),而不考虑其内部结构。
  • 透明盒测试(或白盒测试)是将上述盒子的内部结构考虑在内的过程。换句话说,您的应用在后台的工作原理。

这两个流程都适用于手动测试和自动测试。不过,常规测试模式的某些方面可能更侧重于这两种模式中的一种,我们稍后会加以介绍。现在,我们进一步将测试自动化分为不同类型。

测试自动化操作类型:您希望如何测试?

随着您进一步解答“如何”问题,您已经决定进行一些手动测试。不过,选择和应用测试自动化类型更具挑战性。自动化测试的类型与您要在项目中创建的指标密切相关。下面我们就来详细了解一下最重要的几个指标。

如前文提到的表情包所示,您已经遇到过两种类型的测试:单元测试和集成测试。端到端测试是需要考虑的第三个重要因素。但还不止这些。我们来详细了解一下。

单元测试

单元测试是一种测试类型,在这种测试中,应用的微小可测试部分或单元经过单独测试,可以独立测试能否正常运行。这些单元的范围可以有所不同,包括函数、类或接口、服务或完整组件。它们的主要特性是执行速度、隔离和舒适性。如果您想深入了解单元测试,请参阅这篇单元测试指南

显示输入和输出的单元测试的简化描述。

集成测试

集成测试侧重于组件或系统之间的交互。换言之,它们能否协同发挥作用。API 或组件测试的典型示例是集成测试。

简化的集成测试描述,显示了两个单元如何协同工作。

端到端测试

这些测试通常称为界面测试,此名称可以更好地解释它们的功能。这些测试会与应用的界面(包括完整的应用堆栈)进行交互,并从两端测试您的应用。

端到端测试简化描述,将计算机作为机器人,正在观察工作流。

如果您参考质量保证理论,则测试与系统测试类似。这些测试会模拟真实用户及其互动。端到端测试需要更多的运行时,因为它们涉及整个系统,而更多的运行时需要更多的计算能力。因此,这项额外的工作会增加维护成本。

视觉界面测试

界面测试的一个有趣的子类别是视觉测试。这些测试是经过扩展的端到端测试,提供一种验证应用可见输出的方法。此类测试会在更改后截取一张屏幕截图,再截取另一个包含“现状”(或黄金文件)的屏幕截图,然后将这些结果提供给人工审核员进行检查和检查。换句话说,它有助于在页面外观中找到“视觉 bug”,而不仅仅是功能性 bug,而不是明确写成断言。

静态分析

这里还需要介绍静态分析。从教科书上来说,这并不是测试类型。不过,它在以后的质量检查策略中会成为一个重要的方面。您可以想象一下,它就像拼写检查功能一样:它会在不运行程序的情况下扫描代码以查找更严重的缺陷和语法错误,从而检测代码样式问题。这一简单的措施可以防止许多 bug。如果您想更详细地了解静态分析,不妨阅读一下此文章。

各种形式的测试:这些测试是如何协同发挥作用的?

在搜寻所有这些问题的答案时,您或许能通过一些类比找到可能的解决方案。特别是在网络和测试社区中,开发者倾向于使用这些类比来了解应该针对哪种类型进行多少次测试。

许多形状,如金字塔、钻石、冰锥、蜂巢和奖杯;代表测试策略。

此图描绘的以下五个策略是最常见的策略:

  • 测试金字塔
  • 测试菱形
  • 测试冰锥(也称为“测试披萨”)
  • 测试蜂巢
  • 测试奖杯

这真的需要处理大量信息。您应如何基于所有这些因素决定匹配的测试策略?不用担心,我们会为您提供帮助。在下一篇文章中,我们将更详细地讨论这些不同的策略,并说明如何选择最适合您项目的策略。敬请期待!🔥