测试自动化最佳实践


自动化测试是在过去的十五年中引入的,它经历了许多变化。企业测试管理行业引入了新的工具,开源工具更容易获得,同时创新和进步的质量继续影响着市场。自动化测试的流行甚至鼓励自动化提供商贡献几个预先格式化的框架,这些框架旨在规避对深度脚本知识的需求。业界似乎预见了与自动化测试的长期关系。

要自动化什么?

多少钱test automation够了吗?测试自动化顾问们已经写了很多关于这个主题的文章,结果在最好的测试模式上达成了一些一致意见,但在如何实现这些模式上却没有达成一致意见。软件测试的哪些领域可以实现自动化?自动化工具通常用于促进所有测试设计和过程。最好的软件测试工具是那些您可以根据您的测试需要修改的工具。

测试自动化的目的是为测试过程提供自动化的支持。集成,单元和系统测试与自动化测试一起工作得很好。一个热衷于测试设计和执行的QA团队开发自动化测试框架。在测试过程中使用自动化的程度定义了自动化测试的范围。

在系统测试中,自动化最有利于安全性,配置和负载测试。回归测试在开发过程中和发布初期也与自动化一起工作得很好。

测试自动化(Source

测试计划,设计,构建,执行,分析,验证,验证和报告是包括缺陷跟踪,软件和系统配置管理以及软件度量的各个阶段,所有这些阶段都协同工作,并最终作为有效管理策略的统一过程相互依附。适当的自动化在这些测试情况下工作的程度不同,这取决于如何管理测试过程。

团队

QA测试团队是测试项目的人力核心。支持和加强团队成员之间沟通的策略,允许人才的相互联系和观点的集成,提高测试过程的有效性。自动化测试管理监督测试模块的配置,计算软件测试度量,并处理测试可交付成果,允许团队更集中地关注风险评估,项目设计和计划。

团队的效率取决于团队坚持以下测试最佳实践的程度。

  • 分析风险,因为在运行测试过程中降低风险对企业至关重要。
  • 功能规范允许测试与编码并行进行。
  • 评审和检查扩展了调试软件的效率。
  • 多平台测试包括针对不同服务器平台上的性能进行代码修改。
  • 内部BETA是针对有限数量的客户的测试版本。
  • 自动化测试执行涉及使用自动化测试管理进行评估。

每个最佳实践都与测试阶段相关。深入研究可用的测试资源以及战略规划,支持软件项目中的最佳实践。

试验设计

设计测试和测试数据是测试过程中最关键,最耗时的部分。为了有效,测试设计必须精确地指出要测试的软件功能。在设计阶段,基于指定的测试需求识别测试条件,开发有效的测试模块和度量,并确定将产生有效结果的预期行为。自动化测试根据手动测试需求执行评估,以验证自动化过程的可靠性。

使用自动化框架来配置测试模块是自动化测试的特点。自动化框架支持自动化测试脚本的开发,同时也监视和维护测试结果和相关文档。自动化测试套件的结构框架是自动化测试的结构基础。

自动化最好关注已确定的部署优先级因素。手动测试可以先于自动化测试,以贡献测试自动化可以用于回归和其他类型测试的测试条件和数据。

测试计划

讨论开始测试计划过程。在测试计划过程中,按顺序考虑和讨论的因素包括:

  • 风险评估。
  • 确定需求。
  • 确定需求的优先级。
  • 估计所需资源。
  • 评估现有资源。
  • 制定测试计划。
  • 将项目分配给QA团队成员。

QA管理可以将测试计划结构化为正式的文档或与每个团队成员的单独理解。

软件体系结构设计(Source

测试计划回答了测试过程中的人员,内容,时间,地点,方式和时间。测试计划将测试功能分配给每一个对齐的软件测试工具,通过对测试自动化的依赖,促进了确定测试对象,测试内容,测试时间,测试地点,测试方式以及测试时间的测试过程。此外,测试计划场景可以确定哪些测试适合于自动化。测试计划既是文档化的,也是动态的。

作为一个动态的实体,测试计划使QA测试工程师与项目目标保持在正轨上,并且必须不断更新。测试计划将测试需求和设计文档结合起来,作为开发和验证预期结果的测试场景来实现。然后可以使用测试场景来创建控制测试脚本如何响应应用程序的测试条件,用例和数据。

测试执行

执行测试从测试构造开始,测试构造源于测试的设计阶段。自动化测试首先需要编写测试脚本,然后将脚本置于执行状态。测试构建应该与软件开发并行,以保持在sprint和迭代的轨道上。测试脚本和测试工程是可靠测试构建的两个主要人才需求。

测试是手动的,自动化的,还是自动化-手动组合过程的程度由可用资源,企业战略目标和QA团队中不同人才的程度决定。每个过程定位不同类别的错误,准确性取决于直接应用于应用程序特性的测试。高效的评估需要首先验证数据,接下来测试代码功能,然后进行回归测试,以评估和稳定与受影响的应用程序和系统的发布接口。

正在验证结果

测试结果是一组实际输出值,与预期输出进行了比较。虽然手动观察测试输出可能更直观,但自动化测试快速而平滑地产生可靠的测试结果。此外,最佳实践鼓励对测试结果进行比较,以验证以前版本的报告和文档。

测试根据基线工作,基线是从初始需求,测试计划和测试设计中建立的。所有测试过程都是根据这个基线运行的,测试结果也是验证的。如果没有既定的基线,精确度就不复存在,及格/不及格测试标准也无法产生结论性的结果。

报告

报告就是记录整个过程。报告文件管理人员和利益相关者的摘要报告,以及存储并作为反馈提供给开发人员的详细报告。必须在两个报告版本中按严重程度顺序列出尚未解决的已知缺陷。测试结果通常是决定是否发布产品的决策资源。

正在进行的报告嵌入到缺陷跟踪和其他在发布测试之后独立监视应用程序的操作中。

自动化测试

有计划的自动化,或者说自动化的测试管理,和计划一个手动测试项目一样是必要的。自动规划包括:

  • 跟踪和分析哪些区域的代码覆盖率最小,因此风险最大。
  • 重点突出,目标明确的顺序测试布局。
  • 一致的更新,以避免因未解决的缺陷而导致的编码衰减。
  • 持续集成,即时识别新缺陷,快速恢复。
  • 能够从测试套件中运行较小的批处理,以便更快地完成并反馈给开发人员。
  • 可供技术人员和非技术人员使用的自动化工具的集成套件。
  • 多种可重用的自动化测试脚本用于:
    • 烟雾测试。
    • 测试设置。
    • 软件和系统的可靠性。
    • 软件和系统的兼容性。
    • 对象属性。
    • 软件和系统功能。
    • 系统性能。

测试自动化正朝着生命周期测试自动化的方向发展,集成测试过程以相互支持,巩固结果,加速测试以缩短上市时间。自动化测试生命周期包括业务策略。因此,业务分析和涉众优先事项在整个周期中都是响亮的。

软件生命周期更多的是面向管理,而不是面向过程。数据驱动的自动化测试提供了可以在测试自动化过程中日常应用的技术。虽然不是演绎的,但业务管理需求可以激活测试规划和设计中的归纳创新。

软件测试生命周期(Source

测试管理工具与测试生命周期完全集成,以灵活连接来自不同提供商的测试工具。因此,需求管理,性能管理,测试脚本执行和缺陷管理都由一个测试管理提供者和附加组件的选择来顺利地控制。一些提供商还分发了定制的特性,这些特性减少了对冗余手动测试的需求。

假设,限制和成功因素

假设是假设测试所必需的工具。集成工具套件是主要的测试管理,计划,开发和实施传送,必须包括:

  • Adefect backlog 和解析工具。
  • 测试需求管理组件。
  • 配置管理工具。
  • 与桌面工具的集成。
  • 与开发分离的测试。
  • 所遵循的文件化报告和记录。

约束是对过程的限制,如果没有这些限制,测试的成功将是有限的。通常的约束是:

  • 独立于任何一组手动测试的自动化工具和资源。
  • 包含足够人才和人力的自动化团队。
  • 保持团队成员之间以及与管理层之间的高度合作。
  • 始终如一地创建可测试应用程序的开发。
  • 承认有可能进行后期的整体任务授权。

成功因素是基于以下指导方针:

  • 自动化测试是测试工作和全时操作的核心。
  • 与测试设计过程分开开发的测试自动化框架。
  • 独立于任何应用程序的测试框架。
  • 易于扩展的测试框架。

战略目标

战略目标以成功因素为基础,更彻底地详细说明了所概述的成功目标,包括:

  • 为测试设计一种策略,这种策略既可以手动实现,也可以通过测试自动化来实现。
  • 分离测试设计和测试实现,这允许设计人员在测试处理开发测试脚本的同时开发测试。
  • 设计测试用例以合并格式包括导航和执行步骤。
  • 整合关键字测试,数据驱动测试的最佳特性,以及可能包含的功能分解测试。
  • 对每个应用程序版本应用自动构建验证或冒烟测试。
  • 开发自动化regression testing

自动化增加了对具有编码,测试计划和设计方面经验和知识的QA测试人员的关键需求。一些首选的专业化领域是:

  • 领域知识。
  • 具有自动化测试工具的知识。
  • 加速测试特定领域的知识。

测试自动化由提供整个产品生命周期的总体自动化策略的专家领导。专家们必须为每个生命周期阶段确定正确的工具集,将风险缓解和上市时间作为每个战略的首要考虑因素。

通过不断创新,新应用可以开发的速度不断加快。软件测试在新的创新中有些落后于应用程序开发。因此,随着创新不断地将测试推向更具包容性的自动化,工程师们不得不利用自动化测试领域的技能。

对于一个熟练的手动测试人员来说,没有广泛的领域知识,没有编码技能的自动化工程师来说,要融入自动化团队正变得越来越困难。开发自动化测试框架以促进更快地创建测试用例,更快地自动化测试过程,以及更快地执行测试场景,对于软件部署来说正变得更加关键。

测试自动化是测试执行的最高效,最有效的手段。由于减少了人为错误,缺陷大大减少,从而降低了上市时间的成本。因此,很多QA部门都在转向测试自动化。在完成自动化测试脚本之后,自动化的结果更加准确,可以用来轻松地重复测试,或者扩展到其他任务。最佳实践与自动化测试相结合为成功部署创建了一个必不可少的组件。