当我们谈论持续测试,以及持续交付和 DevOps 时,“自动化”一词就泛滥了。从根本上讲,我们都了解自动化的含义 - 使用某种技术来完成一项任务。但是,当我们从连续测试的角度谈论自动化时,我们需要考虑一些细微差别。
两种自动化测试
在一般测试尤其是连续测试的世界中,有两种自动化类型:
- 自动化测试
- 测试自动化
尽管似乎用两种不同的方式表达同一件事,但这些术语实际上具有截然不同的含义。
自动化测试是通过自动化(例如一组回归测试)进行特定测试的行为,而不是手动进行,而测试自动化是指自动化跟踪和管理不同测试的过程。
无论自动化测试和测试自动化对连续测试都很重要,但是后者的确是更重要的。
为什么测试自动化对连续测试至关重要
要完全理解为什么测试自动化对连续测试如此重要,必须弄清楚连续测试到底需要什么以及为什么会这样。
连续测试是一种相对较新的软件测试方法,旨在始终确保质量。
在传统环境中,测试会在开发周期结束时完成。但是,随着越来越多的公司朝着 DevOps 和连续交付模型发展,在该模型中,软件一直在不断开发中,并且必须始终准备就绪,可以进行测试,直到最终无法使用为止。这就是进行连续测试的地方 - 确保开发的每个阶段的质量。
因此,对于连续测试,而不是在周期结束时进行大规模测试,它会在需要时始终以小片段形式进行。
尽管始终确保质量对于此模型至关重要,但这并不是全部。所有开发和测试发生的速度也很重要。这是因为,如果管道中的某些内容停滞或崩溃,它将阻止其他所有事情并减慢新开发的发布。鉴于需要更快,更定期地发布新版本,为这种持续交付和测试模型铺平了道路,这一障碍阻碍了采用这种方法的目的。
该“如何”和“为什么”让组织性,一致性和速度必须支持连续的测试模型,而这也正是自动化测试可以提供帮助。在连续测试环境中管理所有测试需求是一项艰巨的任务 - 需要付出巨大的努力才能跟踪哪些环境已部署了新代码,何时需要测试每个代码以及这些需求如何重新集成到持续不断的移动过程中提供软件。
测试自动化通过自动跟踪和管理所有这些测试需求(包括不同测试覆盖多少系统以及覆盖所有活动部件可能需要其他类型的测试)来减轻这种负担。
为此,测试自动化在帮助确保团队在流水线的所有点上保持高质量标准方面大有帮助。此外,它使测试人员可以将更多的时间和精力集中在创建有效的测试用例上,以确保软件的质量,因为他们不再为管理所有测试需求的细节所困扰。
测试自动化通过自动跟踪和管理所有这些测试需求(包括不同测试覆盖多少系统以及覆盖所有活动部件可能需要其他类型的测试)来减轻这种负担。
使测试自动化成为现实
从理论上讲,测试自动化的概念非常适合在连续测试环境中运行的测试人员。但是当现实来袭时会发生什么?
在典型的实际场景中,当测试人员需要安排和验证测试用例时,他们:
- 与产品负责人进行沟通以收集产品要求,并提炼产品负责人要解决的问题的实质。
- 将这些产品需求分解为用户故事,然后增加工作单位来创建功能正常的软件。这通常需要与开发人员,分析师和操作员团队合作。
- 编写测试用例的组合(自动化,探索性,回归等),以满足这些要求的约定。
- 跟踪每个步骤的完成进度,为每个阶段运行适当的测试用例:
* 组成功能组件的 Developer 分支
构成支持该功能所需的部分系统和服务的部署工件
回归,以便对组件的更改或添加不会影响工作系统的其他方面
功能验证,以确保产品按照产品所有者的意愿进行操作并正确解决问题 *
考虑到这种情况,测试人员真正需要使测试自动化成为现实的解决方案可以帮助自动化为特定工作项创建测试用例并安排测试运行以执行那些测试用例的过程。
理想情况下,此解决方案应允许通过以下方式实现测试自动化:
- 标记需要为其创建测试用例的工作项列表,以自动引起测试人员的注意
- 与 ALM 集成,以便在 ALM 中创建特定类型的任务时,也可以在测试自动化工具中创建该任务的副本并呈现给用户
- 允许用户通过逻辑容器分离和分类工作项目,如功能,组件或冲刺,以方便用户,以确保适当的覆盖每个管道
拥抱连续测试
随着 DevOps 和持续交付模型成为常态,持续测试也将如此。而为了让连续测试工作成功的,测试人员需要现在就开始考虑将采取什么管理自带的整个开发流程注入测试的变化。
显然,测试自动化将成为连续测试人员武器库中的关键武器,因为它能够跟踪管道中各个点上需要进行的所有不同测试。
技术类文章精选
- java 一行代码打印心形
- Linux 性能监控软件 netdata 中文汉化版
- 接口测试代码覆盖率(jacoco)方案分享
- 性能测试框架
- 如何在 Linux 命令行界面愉快进行性能测试
- 图解 HTTP 脑图
- 将 swagger 文档自动变成测试代码
- 五行代码构建静态博客
- 基于 java 的直线型接口测试框架初探
- JUnit 中用于 Selenium 测试的中实践
非技术文章精选
- 为什么选择软件测试作为职业道路?
- 写给所有人的编程思维
- 成为优秀自动化测试工程师的 7 个步骤
- 手动测试存在的重要原因
- 成为自动化测试的 7 种技能
- 功能测试与非功能测试
- 自动化和手动测试,保持平衡!
- 自动化测试生命周期
- 如何在 DevOps 引入自动化测试
大咖风采
- Tcloud 云测平台 – 集大成者
- Android App 测试工具及知识大集合
- 4399AT UI 自动化 CI 与 CD
- Android App 常规测试内容
- JVM 的对象和堆