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组件来实现这种表格。 以下是这次需要用到的数据表格,已知左侧违章名称是固定的,而月份是不固定的,在后端返回数据格式已确定的情况下,需…

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…

浅谈单片机的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集群模式…

使用GPT-SoVITS训练语音模型

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

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

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

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格式文件,必…

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

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

游戏引擎学习第六天

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

vivado+modelsim: xxx is not a function name

xxx is not a function name vivado问题:xxx is not a function name原因 vivado问题:xxx is not a function name 在写verilog modelsim仿真时,遇到error:xxx is not a function name。 原因 该变量xxx在仿真文件里,如下图红框所示&#…

云计算在教育领域的应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 云计算在教育领域的应用 云计算在教育领域的应用 云计算在教育领域的应用 引言 云计算概述 定义与原理 发展历程 云计算的关键技…

立体工业相机提升工业自动化中的立体深度感知

深度感知对仓库机器人应用至关重要,尤其是在自主导航、物品拾取与放置、库存管理等方面。 通过将深度感知与各种类型的3D数据(如体积数据、点云、纹理等)相结合,仓库机器人可以在错综复杂环境中实现自主导航,物品检测…

模拟鼠标真人移动轨迹算法-易语言

一.简介 鼠标轨迹算法是一种模拟人类鼠标操作的程序,它能够模拟出自然而真实的鼠标移动路径。 鼠标轨迹算法的底层实现采用C/C语言,原因在于C/C提供了高性能的执行能力和直接访问操作系统底层资源的能力。 鼠标轨迹算法具有以下优势: 模拟…

JavaWeb——Web入门(8/9)- Tomcat:基本使用(下载与安装、目录结构介绍、启动与关闭、可能出现的问题及解决方案、总结)

目录 基本使用内容 下载与安装 目录结构介绍 启动与关闭 启动 关闭 可能出现的问题及解决方案 问题一:启动时窗口一闪而过 问题二:端口号冲突 问题三:部署应用程序 总结 基本使用内容 Tomcat 服务器在 Java Web 开发中扮演着至关重…

PostgreSQL中如果有Left Join的时候索引怎么加

在PostgreSQL中,当你的查询包含多个LEFT JOIN和WHERE条件时,合理地添加索引可以显著提高查询性能。以下是一些具体的优化步骤和建议: 1. 分析查询 使用 EXPLAIN ANALYZE 命令分析你的查询,了解查询的执行计划,识别出连…

通过DNS服务器架构解释DNS请求过程

在前面的章节,这里,基于PCAP数据包和RFC文档详细介绍了DNS请求和响应的每个字段的含义。但是在现实的网络世界中,DNS请求和响应的数据包是怎么流动的,会经过哪些设备。本文将着重说明一下目前网络空间中DNS请求和响应的流动过程。 当前网络空间中比较常见DNS请求的流程如下…

aspose如何获取PPT放映页“切换”的“持续时间”值

aspose如何获取PPT放映页“切换”的“持续时间”值 项目场景问题描述问题1:从官方文档和资料查阅发现并没有对切换的持续时间进行处理的方法问题2:aspose的依赖包中,所有的关键对象都进行了混淆处理 解决方案1、找到ppt切换的持续时间对应的混…