记Codes开源免费研发项目管理平台——流程驱动缺陷管理的创新实现

news2024/12/23 14:09:31

继上一回合日报与工时融合集中式填报的创新实现后,本篇我们来讲一讲流程驱动缺陷管理的创新实现。

      肯定会有人说,不就缺陷管理嘛!几个状态完事,爱咋整就咋整,没必要搞流程化,搞流程就是把简单事情复杂化  

      正是基于上述看法,市面上其他的研发管理软件中的缺陷管理,并不支持流程驱动。虽然有些有所谓的工作流配置,但仅仅是页面显示及显示顺序的定义,如从A页面跳到B页面再到C页面,以及每个页面上显示什么属性等;还有另一种常见的就是可以定义缺陷的状态,以及这些状态的演化关系,这两种不是真正意义上的流程驱动,为什么这样说呢?

     对此我们有不同看法,首先,标准的流程一定是包含业务角色的参与者和业务状态的演化;其次通常缺陷管理中只有这几个状态:激活、已解决、已关闭,这很难反映更精细化的业务需要。比如已关闭,是修改后真正的关闭,还是改不了遗留下来的关闭等等,再比如开发和测试对缺陷的有不同意见时,不能通过状态一目了然表达出来,只能看备注等信息,再比如项目参与人员多,测试人员没法知道提交给哪个开发人员修改时,转给谁来分配;再比如开发想把某个缺陷延迟到下版本修改,应设置为什么状态以及由谁来确认可以延迟修改。

    如上所述,缺陷管理确实需要工作流,但是采用通常的工作流的实现方式,不但工作流的配置有门槛,且缺陷流转过程中的交互可能也会变得复杂。工作流是刚需,那如何在不增加使用者负担的基础上,让流程驱动的缺陷管理简单易用呢?

     Codes 产品团队始终以用户为中心,采用化繁为简的方式解决用户痛点。要想解决工作流的复杂度问题,只能另辟蹊跷,且看下述需求分析过程。

  1、需求分析过程如下:

    引入工作流,配置上就会有这两个问题:一,用户要自己会配置工作流,二,要会设计一个合理的缺陷管理的工作流,这极大增加了配置门槛。使用上也会有问题:缺陷的流转控制如何让用户无感知,要不然体验就很差,比如过多的缺陷状态会让用户流转缺陷时晕头转向。我们借用模板的思路来解决配置问题:系统完全可以定义一个最全的流程,然后用户在模板流程上进行裁剪,裁剪时只要勾选不同的流程节点,然后在不同节点上再分配不同的参与人员即可;缺陷的状态转化大致的实现思路:不同的流节点对应不同的状态,然后由流程引擎来控制在什么节点上什么参与者可以演化为什么状态,然后再按状态向上或向下流转;页面交互时,使用人员不需要关注有什么状态,以及能转化为什么状态,系统自动控制,使用人员只需要选好想要转换的状态,然后再根据所选择的状态引导他选择下一流程节点的处理人即可。

     看文字理解起来太累,下面有图有真相,来看看具体的功能实现。

 2、功能实现之流程配置

      如下图所示,一个完整的流程从1提交问题、2到测试交叉、3到分析问题、4到分配问题、5到修改问题、6到开发互验、7到分歧仲裁、8测试确认。这流程可以说是全网最全的一个缺陷流转流程,图中框起来的为必选流程,其他为可选,流程可实时修改。Codes缺陷处理流程配置非常简单:在下图中1、勾选要开启的流程节点  2、指定所勾选流程节点上的相关处理人员。

图片

      测试过程中可以实时调整测试流程,取消某个可选流程时,系统会把停留在该节点上未处理的缺陷自动流转到下一流程。

3、功能实现之缺陷流转

     相关人员处理缺陷时,不用关心缺陷有多少种状态,缺陷控制引擎会自动根据测试流程,缺陷当前状态及处理人员在项目测试流程中所处的的流程节点自动算出来,当前可转换为什么状态以及选了不同状态后谁作为下一处理人。在缺陷管理列表中,点击某个缺陷的状态进入缺陷流转处理。下面用几个示例来说明。

      开发处理缺陷示例

图片

    上图中为在修改问题节点上的开发人员处理缺陷时,可演化的状态示例:如设置为"费解/需提供更多信息"或“非错“时就自动打回到测试人员,如设置为”挂起/不计划修“改 或 ”挂起/下版本修改“时就流转到仲裁人处,如设置为”已改“或”已改/同步到测试环境“,就流转到测试确认环节,由测试确认后再关闭。

      测试提交缺陷示例

      如测试提交后下一流程为修改问题,则新提交的问题为“待改”状态;如下一流程为分配流程就”分配“状态并转分配人来处理;如下一流程为析分流程就是”分析“状态并转分析人来处理;如下一流程为测试互验,就是”待置“状态并转互验人来处理,且如互验人认为“待置”的缺陷,描述有问题,可以设置为“修正/描述不当”,或直接“撤销”了。

图片

测试处理开发设置为非错的示例

图片

    这时测试如认可非错的理由,可以”撤销“,不认可选择”分歧“后就转到仲裁人那,由仲裁人来裁决。

仲裁人仲载”分歧“的示例

图片

     仲裁人如认可测试人员的理由,可以改为”待改“,再转开发人员修改,也可认同开发人员,认为这确实不是问题,选”撤销“即可,如果认为确实是一个问题,但是可以不改,就选择”关闭/撤销“并写明理由,如这需要另外的仲裁人来仲裁,选择”仲裁“并选择对应的仲裁人也是可以的。

     不再一一示例了,总之Codes的流程引擎会根据当前缺陷的状态,及所处的流程来控制可转化为的新状态,然后根据所选的新状态,选择下一处理流程的处理人。

4、缺陷流转用时及时效性分析

    快上线前,缺陷一般要求日决,我们要能查看到各环节用时信息Codes 会记录各节点上的用时信息,如下图所示:

图片

   Codes  对于不同等级,不同严重程度的缺陷可以设置不同的整体用时,只要缺陷的从发现到关闭之间的用时超过了设置的标准用时,就认为时效性不足,不达标。下图为达标标准设置:

图片

下图为时效性分析示例数据

图片

还可下钻到人

图片

5、功能实现之缺陷状态演化及不同流程使用场景说明

5.1、缺陷状态及演化

     Codes 中共有27个缺陷状态,听起来很吓人,但是使用的时候一点不吓人,也不需要“硬背”这些状态及它们之间如何转化,因为这27个状态分别对应到不同的流程上,分散下来实际多少状态了,且当前状态能转化为什么状态要依懒下一流程是什么来决定,参见第3节所述及示例。设计这么多状态,就是为了能通过状态就能一目了然了解缺陷的实际情况,不需要进入缺陷详情中查看明细才能明白。因篇幅关系,就不一一列出各流程节点上有什么状态,以及具体状态间的演化逻辑,下面加粗的为具体27个状态:

     “待置”、“修正/描述不当”、“重复”、“无效”、“撤销”、“不再现/需提供更多信息”、“待改/再现”、“待改/不再现”、“待改/未解决”、“待改”、“修改中/持续跟踪”、“费解/需提供更多信息”、“分歧”、“已改”、“已改/同步到测试环境”、“非错”、“关闭/已解决”、“关闭/不再现”、“关闭/撤销”、“关闭/遗留”、“重分配”、“挂起/不计划修改”、“挂起/下版本修改”、“待改/下版本修改”、“分析”、“分配”、“交叉验证”

    下图中框起来的部分,记录了17个常用的状态使用场景。

图片

5.2、同流程使用场景说明

     在Codes中,对于每个项目,可以从Codes提供的流程中选取部分或全部流程作为当前项目的测试流程,测试过程中可以实时调整测试流程,取消某个可选流程时,系统会把停留在该节点上未处理的缺陷自动流转到下一流程。

     提交问题:必选流程,人员主要为测试人员,不在这一流程节点上的人员也可填报缺陷,但不在这一流程节上的人员不能关闭缺陷。

      测试互验:可选流程,带新人时,再如何强调写缺陷的要求及规范,新人记不住,可让资深测试工程师或是导师来做为新人把关,通过测试互验流程,手把指出新人写的缺陷存在的问题,带一两个月新人就能快速成长,使新人能编写高质量的缺陷;也可以在开发人员处理缺陷前,测试人员内部对新提交的缺陷进行review,省去了缺陷描述带来的理解上的差异,或是其他人在复现时带来的沟通成本,如果团队是分布式的沟通成本非常高。

     分析问题:可选流程,分析缺陷产生的原因,估算修复缺陷需要的时间及期限,一般为技术经理、系统分析师来做分析工作。

      分配问题:可选流程,当团队较大或项目太大,一个模块就是一个子系统,测试人员搞不清所提的缺陷提交给哪个开发人员来修改时,就要开启分配流程,测试人员只要提交到分配人即可;一般分配人应该为研发经理、研发组长等,可以有多个分配人。Codes 也支持按模块预分配,就不需要分配流程。

      * 修改问题:必选流程,此为修复缺陷的环节,设置的人员是研发人员。

        开发互检:此为研发工程师修改完缺陷后,互相之间的交叉检查。设置的人员是研发人员。

      * 分歧仲裁:必选流程,当开发认为不是问题,并设置为“非错”状态,但测试坚持认为是问题,测试就可以设置为“分歧”,就转到仲裁人处进行仲裁;研发工程师要求缺陷延期修改,或不计划修改某个缺陷,或让缺陷遗留时,由仲裁人进行裁决。一般仲裁人为研发经理、产品经理等。

      * 测试确认:必选流程,且不需要再指定确认人,复用提交问题环节的测试人员,何何人都可提交缺陷,但只有测试人员才能确认缺陷是否可以关闭。

     最后打个总结:流程驱动的缺陷管理就是:”因地制宜”, 告别一刀切,可按需实时调整测试流程,以反映不同管控目的;不同流程节点对应不同的缺陷状态,更能反映项目实况,并根据流程推动缺陷状态的演化。创新不是为了玩新奇,是为了解决问题,Codes上述实现方式确实化繁为简。下一次我们来聊聊Codes 0代码接口自动化测试,也是很酷的功能,欲知后事如何且看下回分解。匠心打磨,持续创新是Codes的产品基因

有客官可能不知道Codes是什么,小C在这里最后补一句:

Codes重新定义SaaS模式的一站式研发管理平台

云端认证+程序及数据本地安装+不限功能+30人免费

 扫码查看Codes详细介绍

图片

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

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

相关文章

ViewModel原理分析

认识 ViewModel ViewModel 是一种用来存储和管理UI相关数据的类。 ViewModel 的作用可以从两个方面去理解: UI界面控制器:在最初的MVC模式中,由于 Activity / Fragment 承担的职责过重,因此在后续的 MVP、MVVM 模式中&#xff…

iOS 通过PacketLogger 抓包蓝牙数据包

当使用iOS平台调试蓝牙外设时,需要抓取蓝牙数据包,那么如何获取iOS端设备与蓝牙设备之间通信的蓝牙数据包呢? 一、资料准备 1、苹果手机 2、Xcode开发工具 3、Apple开发者账户 二、环境搭建 2.1、手机环境搭建 手机浏览器访问地址&…

nginx: [error] invalid PID number ““ in “/run/nginx.pid“

两种问题,我自己碰到的情况 ./nginx -s reload执行命令后报错 nginx: [error] invalid PID number ““ in “/run/nginx.pid“ 第一种情况,pid被注释了 /usr/local/nginx/conf/nginx.conf #user nobody; worker_processes 1;// 可能是这里被注释了…

吴恩达2022机器学习专项课程C2W2:2.23 选修_反向传播算法的工作原理(什么是导数图计算大型神经网络)

目录 引言一.导数的计算1.epsilon与导数的关系2.其它导数符号形式3.导数小结 二.小型神经网络的计算图1.什么是计算图(前向传播过程)2.反向传播计算过程3.验证反向传播的计算结果4.为什么用反向传播计算导数? 三.扩大神经网络的计算图1.计算反…

精准导航:用A*算法优化栅格地图的路径规划【附Matlab代码】

目录 1.算法原理2.代码讲解3.结果展示4.代码获取 1.算法原理 A* 算法是一种基于传统图搜索的智能启发式算法,它具有稳定性高、节点搜索效率高等优点。主要原理为:以起点作为初始节点,搜索初始节点旁 8 个邻域,并通过启发函数评估…

Kubernetes 二进制安装

目录 一、环境介绍 1.1、本节实验环境 1.2、实验拓扑 1.3、实验要求 1.4、实现思路 二、系统环境准备 2.1、主机配置 2.2、安装 Docker 2.3、设置防火墙 2.4、禁用 SELinux 三、生成通信加密证书 3.1、生成 CA 证书 3.2、生成 server 证书 3.3、生成 …

最大的游戏交流社区Steam服务器意外宕机 玩家服务受影响

易采游戏网6月3日消息:众多Steam游戏玩家报告称,他们无法访问Steam平台上的个人资料、好友列表和社区市场等服务。同时,社区的讨论功能也无法正常使用。经过第三方网站SteamDB的确认,,这一现象是由于Steam社区服务器突…

【MySQL03】【 Buffer Pool】

文章目录 一、前言二、缓冲池(Buffer Pool )1. 缓冲池的概念2. LRU List、Free List 和 Flush List2.1 Free 链表2.1.1 缓冲页的哈希处理 2.2 Flush 链表2.3 LRU 链表2.3.1 简单 LRU 链表2.3.2 优化后的 LRU 列表2.3.3 更进一步的优化 3. 脏页的刷新4. 多…

光猫、路由器的路由模式、桥接模式、拨号上网

下面提到的路由器都是家用路由器 一、联网条件 1.每台电脑、路由器、光猫想要上网,都必须有ip地址。 2.电脑获取ip 可以设置静态ip 或 向DHCP服务器(集成在路由器上) 请求ip 电话线上网时期,猫只负责模拟信号和数字信号的转换,电脑需要使…

从零开始:腾讯云轻量应用服务器上部署MaxKB项目(基于LLM大语言模型的知识库问答系统)

使用腾讯云轻量应用服务器部署和使用MaxKB项目 前言 一, MaxKB介绍 MaxKB是基于LLM大语言模型的知识库问答系统,旨在成为企业的最强大脑。它支持开箱即用,无缝嵌入到第三方业务系统,并提供多模型支持,包括主流大模型…

c# 输出二进制字符串

参考链接 C#二进制输出数据_c# 输出二进制 123.5的方法-CSDN博客https://blog.csdn.net/a497785609/article/details/4572112标准数字格式字符串 - .NET | Microsoft Learnhttps://learn.microsoft.com/zh-cn/dotnet/standard/base-types/standard-numeric-format-strings#BFo…

医学领域科技查新点提炼方法!---附案例分析

医学领域的查新项目研究范围较广,涉及基础医学、临床医学、中医学、预防医学、卫生学、特种医学等众多与人类健康和疾病有关的科学。查新目的主要包括立项、成果鉴定和报奖,有的期刊投稿也要求作者提供查新报告。 医学领域查新项目的两极化较明显&#…

dynamic多数据源的简单使用

背景 这几天搞了个saas项目,里面用到了多数据和execl模板导出功能, 其实我是经常用到的,但没在博客中写过,最近有点时间,正好稍微写一下。 方便大家使用 这次我先写多数据,execl模板导出下次有空在写。 使…

找好看的简历模板,就上这6个网站。

找好看的简历模板就上这6个网站,免费下载! 1、菜鸟图库 个人简历模板|WORD文档模板免费下载 - 菜鸟图库 站内有超多办公类素材,PPT、world、excel模板都能找到,简历模板有非常详细的分类,风格类型也很多,想…

Kafka 如何基于 KRaft 实现集群最终一致性协调

01 架构概览 Zookeeper 提供了配置服务、分布式同步、命名服务、Leader 选举和集群管理等功能,在大数据时代的开始很多开源产品都依赖 Zookeeper 来构建,Apache Kafka 也不例外。但是随着 Kafka 功能的演进和应用的场景越来越多: 基于 Zoo…

linux命令别名与shell函数

# 修改网卡配置 alias vinetwork"vi /etc/sysconfig/network-scripts/ifcfg-ens33" 1. 方法和调用在同一个文件 # 定义shell函数,返回值通过$?获取 function say_hello(){ echo "hello shell" return 1 } # 使用shell函数 say_hello # 执行脚本后接收返…

怎么解决Hbuilderx的侧边栏不显示文件目录问题

第一步:找到视图 第二步:再视图中找到(显示项目管理器等左边视图)点击就可以了!

时间卷积网络(TCN):概述及与CNN和RNN的比较

TCN 时间卷积网络(TCN):概述及与CNN和RNN的比较1. 时间卷积网络(TCN)定义与特点应用场景 2. 卷积神经网络(CNN)定义与特点应用场景 3. 循环神经网络(RNN)定义与特点应用场…

【Mongodb】Mongodb亿级数据性能测试和压测

一,mongodb数据性能测试 如需转载,请标明出处:https://zhenghuisheng.blog.csdn.net/article/details/139505973 mongodb数据性能测试 一,mongodb数据性能测试1,mongodb数据库创建和索引设置2,线程池批量…

FatFs文件系统移植到MCU平台详细笔记经验教程

0、准备工作 在移植FatFs文件系统前,需要准备好一块开发板,和一张SD卡,且需要已经实现开发板正常的读写SD卡或其它硬件设备。 本文笔记教程中使用的硬件设备是STM32F407VET6开发板(板载SD插槽),配备8G和32G…