Devops业务价值流:敏捷测试最佳实践

在迭代增量开发模式下,我们强调按照用户故事的优先级进行软件小功能的频繁交付。由于迭代周期紧凑,测试与开发活动往往并行进行,测试时间相对有限。为确保在这种快节奏的开发环境中依然能够保持产品质量,我们特制定以下测试阶段的工作流规范,旨在明确测试的准入准出标准,以及各相关活动的执行规则。

测试驱动开发的思想

我们秉承测试驱动开发(Test-Driven Development, TDD)的核心理念,将测试视为开发过程不可或缺的一部分。通过先编写测试用例,再编写满足这些用例的代码的方式,我们确保每个功能在开发之初就经过了充分的思考和验证。这一思想不仅有助于提前发现潜在问题,还能促进代码的可测试性和可维护性。

测试工作流规范
  1. 准入标准:

    1. 需求文档清晰明确,无歧义。

    2. 开发计划已确定,包括迭代周期、功能点等。

    3. 测试环境已搭建完毕,且与开发环境保持一致。

    4. 测试用例已根据需求文档编写完成,并通过了评审。

  2. 测试活动执行规则:

    1. 功能测试:验证每个功能点是否按照需求文档实现,确保功能完整性和正确性。

    2. 系统测试:从整体上检查系统的稳定性和性能,确保各功能点之间的协同工作正常。

    3. 探索性测试:测试人员根据对系统的理解和直觉,进行非预设路径的测试,以发现可能的缺陷或改进点。

    4. 补充测试:针对已发现的缺陷进行回归测试,确保问题得到修复,并验证修复后的系统稳定性。

  3. 准出标准:

    1. 所有测试用例均已通过,无未解决的严重缺陷。

    2. 系统性能和稳定性满足既定的质量标准。

    3. 测试报告已编写完成,详细记录了测试过程、结果及建议。

规范测试上下游活动

为确保测试工作的顺利进行,我们还需要规范测试上下游的活动。这包括但不限于:

  • 需求阶段:测试人员需积极参与需求评审,确保对需求有充分理解,并能提出潜在的测试挑战。

  • 开发阶段:与开发团队保持密切沟通,及时了解开发进度和潜在问题,以便及时调整测试计划。

  • 缺陷管理:建立有效的缺陷管理流程,确保缺陷得到及时记录、跟踪和解决。

  • 验收阶段:邀请产品经理、UI团队等相关方进行产品验收,确保产品符合业务需求和设计标准。

6.1 需求评审

6.1.1目标:

确保测试团队对需求有充分理解,指出不明确或需要澄清的地方。

6.1.2具体流程:
  1. 测试工程师提前阅读并熟悉需求文档。

  2. 参与迭代需求评审会议,与产品经理、开发团队等共同讨论需求。

  3. 在会议中及时提出对需求不明确或有疑问的地方,寻求澄清。

  4. 会后整理并输出《Xmind 测试点》或其他形式的思维导图,明确测试重点。

6.2 评估工作量

6.2.1目标:

根据需求文档和测试点,合理评估测试工作量,制定测试计划。

6.2.2具体流程:
  1. 测试工程师根据需求讲解和测试点,估算每个功能模块的测试时间。

  2. 使用《测试计划》模板,详细列出测试活动的时间节点、负责人和预期工作量,测试计划与迭代计划匹配。

  3. 测试负责人收集各功能模块的测试时间,确认工作量估算的准确性和合理性。

  4. 输出《xx项目版本名称测试计划》文档,作为后续测试工作的依据。

6.3 编制测试用例

6.3.1目标:

根据需求文档和测试点,编制全面、详细的测试用例。

6.3.2具体流程:
  1. 测试工程师按照场景描述法,基于测试点编制测试用例。

  2. 每个测试用例应包括前置条件、测试步骤、期望结果和优先级等信息。

  3. 确保每个功能点的测试用例数量不低于10条,以满足测试覆盖率和质量的要求。

  4. 输出Xmind及测试用例文档,供后续测试使用。

6.4 评审测试用例

6.4.1目标:

通过评审确保测试用例的准确性和完整性,提高测试质量。

6.4.2具体流程:
  1. 测试工程师组织测试用例评审会议,邀请产品经理、开发团队等参加。

  2. 在会议中详细介绍测试用例,并接受其他团队成员的提问和建议。

  3. 根据评审结果,对测试用例进行修改和完善,确保覆盖率和质量。

  4. 输出《测试用例》和《自测清单》文档,作为后续测试执行的依据。

6.5 执行迭代测试

6.5.1目标:

根据测试计划,系统性执行测试任务,精准识别并记录产品中的问题,确保产品质量符合预期。

6.5.2具体流程:
  1. 版本接收与验证

    1. 测试工程师接收开发团队提交的测试版本,并进行必要的验证工作,确保版本无误且具备测试条件。

  2. 冒烟测试

    1. 迅速执行冒烟测试,验证测试环境的基本可用性和关键功能的初步实现情况,确保测试能够顺利进行。

  3. 第一轮全量测试

    1. 全面执行测试计划中的全量测试用例,详细记录测试结果与通过率,对功能的完整性和正确性进行全面评估。

    2. 功能性测试:严格对照需求文档,逐一验证每个功能点的实现情况,确保功能的准确性和完整性。

  4. 缺陷管理与回归测试

    1. 根据第一轮测试的详细结果,及时录入新发现的缺陷,并启动回归测试流程,验证已修复缺陷的准确性和修复后系统的稳定性。

  5. 第二轮全量测试

    1. 再次执行全量测试用例,进一步验证产品的质量,确保所有已知问题均得到有效解决,并巩固第一轮测试的成果。

  6. 第三轮全量测试

    1. 系统性测试:从宏观角度全面审视系统的整体性能和稳定性,确保各功能模块之间的协同运作流畅无阻,满足系统级需求。

    2. 探索性测试:测试人员凭借对系统的深入理解与直觉,灵活开展非预设路径的测试,旨在发掘潜在缺陷或改进空间,提升系统的健壮性和用户体验。

6.6 产品验收

6.6.1目标:

邀请产品经理和UI团队进行验收,确保产品符合业务需求和设计标准。

6.6.2具体流程:
  1. 测试工程师在第一轮测试完成后,通知产品经理和UI团队进行验收。

  2. 产品经理和UI团队根据验收标准对产品进行验收,并给出验收结论。

  3. 测试工程师记录验收结论,并在测试报告中体现。

6.7 迭代回顾

6.7.1目标:

从整体上了解团队的研发效能情况,及时发现研发过程的问题,通过问题分解和深入分析,找出问题根因和改进点,从而驱动团队的持续改进

6.7.2具体流程:
  1. 确立复盘会议基调:

    1. 明确复盘会议的基本原则,强调开放、诚实、建设性的沟通氛围。

    2. 重申复盘会议的目的,即促进团队学习与成长,而非指责与批评。

  2. 跟踪改进项进度:

    1. 回顾上一次复盘会议中提出的所有改进项,检查其完成情况。

    2. 对已完成的改进项进行效果评估,对未完成项分析原因并调整计划。

  3. 展示当前效能数据:

    1. 利用图表和数据直观展示团队当前的研发效能,包括进度、质量、效率等方面的关键指标。

    2. 对比目标与实际效能,明确差距所在。

  4. 迭代燃尽图与工作项分析:

    1. 详细解读本次迭代的燃尽图,分析工作项的完成情况、剩余工作量及潜在风险。

    2. 突出关键路径上的工作项,评估其对整体进度的影响。

  5. 收集并整合反馈:

    1. 采用匿名或开放的方式收集参会人员的反馈,涵盖做得好的方面和需改进的方面。

    2. 对反馈进行分类整理,提炼出共性问题与个性建议。

  6. 深入分析与制定方案:

    1. 基于数据和反馈,进行综合分析,找出问题的根源。

    2. 针对每个问题制定具体的改进方案,明确改进方向、预期效果及实施步骤。

  7. 明确责任与时间表:

    1. 为每个改进方案指定负责人,确保责任到人。

    2. 设定合理的期望完成时间,确保改进计划得以有效执行。

  8. 形成改进项列表:

    1. 编制详细的改进项列表,包括改进内容、负责人、期望完成时间等信息。

    2. 确保列表清晰明了,便于跟踪与监督。

  9. 会议纪要撰写与分享:

    1. 整理复盘会议的会议纪要,准确记录会议讨论的重点、决策及改进措施。

    2. 及时将会议纪要发送给所有参会人员及相关利益方,确保信息透明与共享。

  10. 持续优化与跟踪:

    1. 设立定期跟踪机制,确保改进方案得到有效执行。

    2. 根据执行情况适时调整改进策略,形成持续改进的良性循环。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/60356.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

el-table 纵向垂直表头处理

项目中表格展示会遇到需要纵向垂直表头情况,下面,我们基于el-table组件来实现这种表格。 以下是这次需要用到的数据表格,已知左侧违章名称是固定的,而月份是不固定的,在后端返回数据格式已确定的情况下,需…

Rust 模板匹配——根据指定图片查找处于大图中的位置(支持GPU加速)

Rust 模板匹配——根据指定图片查找处于大图中的位置(支持GPU加速) 01 前言 在手搓RPA工具的时候,总会碰到不好定位的情况,那么,就需要根据小图来找到对应屏幕上的位置(以图识图),这个需求也比较简单。想到市面上也有不少RPA工具都有这个功能,那么人家有的,俺也可以…

Spring框架之策略模式 (Strategy Pattern)

策略模式(Strategy Pattern)详解 策略模式(Strategy Pattern)是一种行为型设计模式,用于定义一系列算法,并将每种算法封装到独立的策略类中,使它们可以相互替换,从而使算法的变化独…

HDFS和HBase跨集群数据迁移 源码

HDFS集群间数据迁移(hadoop distcp) hadoop distcp \ -pb \ hdfs://XX.14.36.205:8020/user/hive/warehouse/dp_fk_tmp.db/ph_cash_order \ hdfs://XX.18.32.21:8020/user/hive/warehouse/dp_fksx_mart.db/HBase集群间数据(hbase ExportSnap…

Sql server查询数据库表的数量

SELECT count(*) FROM sys.objects WHERE typeU --统计表数量 SELECT NAME FROM sys.objects WHERE typeU --列出表名称 或者 SELECT COUNT(*) FROM SysObjects Where XTypeU --统计表数量 SELECT Name FROM SysObjects Where XTypeU --列出表名称 --判断字…

浅谈单片机的gcc优化级别__以双音频信号发生器为例

IDE: CLion HOST: Windows 11 MinGW:x86_64-14.2.0-release-posix-seh-ucrt-rt_v12-rev0 GCC: arm-gnu-toolchain-13.3.rel1-mingw-w64-i686-arm-none-eabi 一、简介 gcc有多种优化级别,一般不选择的情况下&#x…

Ceph MDS高可用架构探索:从零到一构建多主一备MDS服务

文章目录 Ceph实现MDS服务多主一备高可用架构当前 mds 服务器状态添加 MDS 服务器验证ceph集群当前状态当前的文件系统状态设置处于激活状态 mds 的数量MDS 高可用优化分发配置文件并重启 mds 服务 Ceph实现MDS服务多主一备高可用架构 Ceph 的元数据服务(MDS&#…

PySpark 数据处理实战:从基础操作到案例分析

Spark 的介绍与搭建:从理论到实践_spark环境搭建-CSDN博客 Spark 的Standalone集群环境安装与测试-CSDN博客 PySpark 本地开发环境搭建与实践-CSDN博客 Spark 程序开发与提交:本地与集群模式全解析-CSDN博客 Spark on YARN:Spark集群模式…

鸿蒙 APP 发布上架

证书创建与打包: https://developer.huawei.com/consumer/cn/doc/app/agc-help-releaseharmony-0000001933963166 不同环境多渠道打包: //todo 备案相关 一、除了发布应用商店以外,还有3个渠道,都适合小规模内测。 【1】开放式测试:发给指定白名单用户 【2】发布企业内…

使用GPT-SoVITS训练语音模型

1.项目演示 阅读单句话 1725352713141 读古诗 1725353700203 2.项目环境 开发环境:linux 机器配置如下:实际使用率百分之二十几, 3.开发步骤 1.首先是准备数据集,要求是wav格式,一到两个小时即可, 2.…

Python学习从0到1 day27 Python 高阶技巧 ③ 设计模式 — 单例模式

此去经年,再难同游 —— 24.11.11 一、什么是设计模式 设计模式是一种编程套路,可以极大的方便程序的开发最常见、最经典的设计模式,就是我们所学习的面向对象了。 除了面向对象外,在编程中也有很多既定的套路可以方便开发,我们称之为设计模…

Go开发指南-Gin与Web开发

目录: (1)Go开发指南-Hello World (2)Go开发指南-Gin与Web开发 Gin 是一个用 Go 语言编写的轻量级、高性能的 Web 框架,主要用于构建 API 服务和微服务。由于其简洁的 API 设计和强大的路由功能,Gin 在 Go 社区中广受欢迎。 运行Web程序 创…

3.2 软件需求:面对过程分析模型

面对过程分析模型 1. 需求分析的模型概述1.1 面对过程分析模型-结构化分析方法1.2 结构化分析的过程 2. 功能模型:数据流图初步2.1 加工2.2 外部实体(数据源点/终点)2.3 数据流2.4 数据存储2.5 注意事项 3. 功能模型:数据流图进阶…

Android Studio 运行模拟器无法打开avd

问题:已经下载了HAXM 打开模拟器时还是提示未下载HAXM,无法打开avd 解决方案: 控制面板 -> 启动或关闭Windows功能,打开图下两项,后重启电脑重启Android Studio:

Qt文件系统-二进制文件读写

实例功能概述 除了文本文件之外,其他需要按照一定的格式定义读写的文件都称为二进制文件。每种格式的二进制文件都有自己的格式定义,写入数据时按照一定的顺写入,读出时也按照相应的顺读出。例如地球物理中常用的SEG-Y格式文件,必…

【AI技术】PaddleSpeech部署方案

【AI技术】PaddleSpeech部署方案 技术介绍优点缺点 部署基础环境的搭建分步详解国内镜像源切换所需环境1 g所需环境2 vim所需环境3 cuda所需环境4 cudnn所需环境5 ssl源码拉取PaddleSpeech环境安装 部署文件分享DockerHub 技术介绍 PaddleSpeech是飞浆平台的一款TTS框架。 优…

【Python无敌】在 QGIS 中使用 Python

QGIS 中有 Python 的运行环境,可以很好地执行各种任务。 这里的问题是如何在 Jupyter 中调用 QGIS 的功能。 首先可以肯定的是涉及到 GUI 的一些任务是无法在 Jupyter 中访问的, 这样可以用的功能主要是地处理工具。 按如下方式进行了尝试。 原想使用 gdal:hillshade ,但是…

ARXML汽车可扩展标记性语言规范讲解

ARXML: Automotive Extensible Markup Language (汽车可扩展标记语言) xmlns: Xml name space (xml 命名空间) xsd: Xml Schema Definition (xml 架构定义) 1、XML与HTML的区别,可扩展。 可扩展,主要是…

flink实战 -- flink SQL 实现列转行

在 SQL 任务里面经常会遇到一列转多行的需求,下面就来总结一下在 Flink SQL 里面如何实现列转行的,先来看下面的一个具体案例. 需求 原始数据格式如下: namedatatest[{"content_type":"flink","url":"111"},{"content_type&quo…

游戏引擎学习第六天

这节讲的内容比较多: 参考视频:https://www.bilibili.com/video/BV1apmpYVEQu/ XInput 是微软提供的一个 API,用于处理 Windows 平台上 Xbox 控制器(包括有线和无线)及其他游戏控制器的输入。它为开发者提供了一组函数,用于查询控…