Codes 开源研发项目管理平台——敏捷测试管理创新解决方案
前言
Codes 是国内首款重新定义 SaaS 模式的开源项目管理平台,支持云端认证、本地部署、全部功能开放,并且对30人以下团队免费。它通过整合迭代、看板、度量和自动化等功能,简化测试协同工作,使敏捷测试更易于实施。并提供低成本的敏捷测试解决方案,如同步在线离线测试用例、流程化管理缺陷、低代码接口自动化测试和 CI/CD,以及基于迭代的测试管理和测试用时的成本计算等,践行敏捷测试。
Codes 敏捷测试功能架构图
1、背景
敏捷开发越来越流行,且敏捷研发取得了一定成效,如下图所证:
敏捷测试是敏捷开发的必然需求
持续交付可以降低发布风险,提⾼可靠性,使软件能够根据⽤户反馈、市场变化和企业战略变更不断进行调整;敏捷测试是持续、快速、有效的测试过程,作为软件交付流⽔线的重要一环,敏捷测试是企业改进加快交付的关键途径。
遗憾的是,测试成了敏捷开发中持续交付的最大短板。为什么测试环节会成为敏捷开发快速交付中的瓶颈,主要有如下7个方面的原因:
1)、用例维护效率低手工测试占比大
2)、测试产出难量化
3)、测试左右移难
4)、测试管理人员和测试执行人员难以高效协同
5)、测试速度慢,碎片化管理
6)、用例重用难或重用方式不便捷
7)、缺陷管理太简陋,主要靠人来推动
VUCA时代,市场要求企业快速响应变化,企业需要集中内部资源,不断试错快速迭代,更加灵活的应对外部变化;存量时代要求越来越高,测试如何”敏捷”起来呢?
2、敏捷测试关键在于什么?
从适配敏捷开发的角度来看,实施敏捷测试关键在于下面5要素
迭代作为测试的实施组织形式;看板让各阶段研发活动公开透明,将测试工作透明化,;自动化可以提高测试效率;度量让测试成果可量化;测试左右移使测试紧跟开发的节奏,且尽早开展测试,右移一可让测试独立维护测试环境,二可确保生产环境任何风吹草动都可被测试感知。
另外从质量管理层次和质量分类上来看,也能证明上述5要素的合理性。
质量管理层次:
质量分类:
3、敏捷测试与传统测试有什么不同
过程都和下图一样,关键在于测试的组织管理形式不同。比如:介入的时机,采用的一些手段不同,整个测试的组织过程是最大的不同。
4、Codes敏捷测试落地实施
Codes让迭代、看板、度量和自动化以井然有序,融会贯通的方式融合到测试协同中;同时又能轻松帮助测试测试左右移,让敏捷测试与“润物细无声”的方式落地。
Codes以迭代来组织测试
Codes 敏捷测试协作图
1)、测试左右移相对来说要难一点,Codes 有很好的解决方案
CI/CD 和接口自动化对没代码能力的同学来说,是个难于跨越的坎;左移只要有需求管理相关功能,就可以需求阶段就介入测试并分解需求为例。接口自动化,CI/CD 都是很能提升测试效率常用手段之后,但是也面临一系列问题,而难以实现。且看下面Codes 的化解之道。
接口测试常见技术问题如图所示:
Codes 一一轻松化解接口测试,如下图:
拖拽生成断言和拖拽提取参数,让接口测试傻瓜化;创新式接口混沌测试,瞬间完成接口健壮性测试(不用穷举,只需配置好混沌规则Codes自去排列组合来执行);另外内置了50多个常用函数,满足日常参数化的需要。
自动推导接口依赖拓补关系图,让接口关系不再是黑匣子,便捷的接口调用链,让接口测试也可以奢侈一把,用上APM的高级功能。
拖拽式接口场景编排,连胶水代码都省了
采用面向对向的属性命名方式,再复杂的对像,用XXX.XXX.XXX 的形式来表达其属性,可读性好,且非常方便在excel 数据驱动文件中进行配置,否则复杂json对像用Excel 没法表达。关于接口测试Codes的完整解决方案详见我们团队成员在testerhome上发表的原创精华贴《测试架构师如何解读测试平台的各种争议》。
CI/CD对于大部分测试来说,只能依赖运维同事,等靠要,很多时候不好配合
Codes 采用创新性零代码CI CD:拖拽式轻松进行流水线编排,屏蔽底层平台复杂性,不会写脚本一样轻松进行流水线编排;帮助测试人员零基础右移,打通测试与运维的壁垒,提升测试效率。
左移可以很好的解决常见的需求管理问题
测试提前介入对需求测试可提前规避一些问题,围绕需求拉通所有研发活动,完整闭环,不怕被甩锅。脑图视图便于梳理需求间的业务逻辑关系。
迭代下从需求开始拉通到测试、到发布,一切活动可追溯,所有干系人信息对齐。
2)、用例管理Codes 也是用独特的创新来解决重用性不高,可维护性不好问题
Codes 测试用例管理敏捷化方案
产品用例库和公共用例库并存。
关键在于产品用例库,产品用例库和项目中的用例可以双向同步,且同步时项目需求也一起同步了。如有变更会自动保存用例历史版本。
线上线下用例不止是导入也可同步,提升用例的维护效率
导出用例到Excel后,线下修改,执行,增加新用例后再同步导入到线上。这也是为什么Codes中没有在平台上评审功能,因为评审不管是线上还是线下,都是一个集体活动,评审时直接在导出的用例上进行修改,修改完成后,再同步到线上;在平台上评审就是单纯走下流程,仅仅是流程合规,没实际用处。
导入用例时如输入的模块,类型,优先级,标签不存在,会自动在系统上创建。
脑图用例保持脑图的简洁,不用指定特殊的格式,保持脑图的本真用法
叶子节点是用例,其他作为模快。脑图也是以文件来维护,只是转标准用例后,两边双向同步。
标准用例也可显示为脑图视图
业务场景用例
把多个单一用例编排组合为业务场景,也是Codes 复用用例的另一种方式,且按业务场景来管理,一目了然。除了单一的功能用例,还有不同的业务场景,特别是流程类功能测试,有了场景不怕漏了,还便于管理。
3)、以迭代为中心来组织和开展测试工作
迭代有三个测试相关的状态:设置迭代为提交测试状态时,将整个迭代的下的需求,和待处理的缺陷提测,会自动给测试人员发通知;然后设置迭代为测试中,表示在进行测试了,设置迭代为测试完成也会给项目全员发通知和迭代报告。交付物放迭代下含测试在内的一切文档。详见《记Codes研发管理平台——多事项闭环迭代的创新实现》。
现实中在某一轮测试中一定是不同的人执行不同的用例,然后测试经理能需要知道整体的测试进度和每个人的测试进度。而传统的测试计划有一个很大的弊端:计划下只分配了用例,没法指定执行人。可能执行人是通过口头约定,口口相传不方便管理;也可能不同人建不同的测试计划,这增加了工作负担,同时没法查看整体进度。
如下图所示,第一步先分配用例,第二步分配执行人,第三步执行用例。另外还可在不同的视图间切换。
第4步 可以查看整体及个体执行进度
还可以在执行人、状态、类别、优先级、需求和脑图视图间切换。下图为脑视图。
如果是回归测试或是对测试用例很熟,可以批量快速执行,如下图所示,左边的树上显示当前执行人所分配用例对应的需求,及各需求下用例数和执行数,如执行完会一个勾。当然也可导出后线下执行再同步到线上。
再回头来看看分配用例到迭代,也就是要执行哪些用例
迭代下,分解需求为用例时,会自动把所分解的用例自动分配到当前迭代下,其他用例需要手动来分配。如下图所示:
上图中“分配”表示把勾选的用例分配到迭代下,可跨页选;“全部分配”表示把当前查询到的所有用例分配到迭代下;最后一个按钮表示把左则需求树上所勾选的需求下的用例分配到当前迭代下。
另外,测试用例如何计算执行工时,全网只有Codes 有解决办法。每个用例有执行成本,也就是执行用时,通过执行成本可以统计到执行用例用时情况,用例个数的多少不代表执行用例工作量。
再回头来看看分配用例执行人,也就是执行用例的人员分工
左边的树显示当前迭代下所有用例对应的需求,且树上各节点上显示用例数和已分配执行人的用例数,如已分完会显示一个勾。分配执行人时,可手动一个一个勾选用例后再分配到执行人,也可在左边树上直接勾需求后把需求下的用例分配给某个执行人
除了上面的快速执行外,我们再来看看用例的常规执行
常规执行会一个一个弹窗显示用例明细,左则显示当前执行人所分配用例对应的需求,及各需求下用例数和执行数,如执行完显示一个打勾。如下图所示:
如果只用脑图用例,直接把脑图文件分到一个或多个迭代下,然后直接在脑图中执行用例,只是在执行前先切换到在哪个迭代下执行即可,从用例管理中心脑图维护中进入。可以导入Xmind ,也可直接在web 编写脑图。
4)、流程驱动的缺陷管理
缺陷也是纳入到迭代下进行处理
传统的缺陷管理有如图所示问题:
Codes 采用创新的流程驱动,能够“因地制宜”, 告别一刀切,可按需实时调整测试流程,以反映不同管控目的;不同流程对应不同的bug状态,更能反映项目实况,并根据流程推动bug状态的演化。
配置工作流太复杂。Codes采用化繁为简配置方式,启用什么流程以及选择流程节点上的处理人员,如下图所示,一个完整的流程从1提交问题、2到测试交叉、3到分析问题、4到分配问题、5到修改问题、6到开发互验、7到分歧仲裁、8测试确认。这流程可以说是全网最全的一个缺陷流转流程,图中标星的为必选流程,其他为可选,流程可实时修改。
相关人员处理缺陷时,不用关心缺陷有多少种状态,缺陷控制引擎会自动根据测试流程,缺陷当前状态及处理人员在项目测试流程中所处的的流程节点自动算出来,当前可转换为什么状态以及选了不同状态后谁作为下一处理人。在缺陷管理列表中,点击某个缺陷的状态进入缺陷流转处理。下面用几个示例来说明。详见《记Codes研发管理平台——流程驱动缺陷管理的创新实现》。
上图中为在修改问题节点上的开发人员处理缺陷时,可演化的状态示例:如设置为"费解/需提供更多信息"或“非错“时就自动打回到测试人员,如设置为”挂起/不计划修“改 或 ”挂起/下版本修改“时就流转到仲裁人处,如设置为”已改“或”已改/同步到测试环境“,就流转到测试确认环节,由测试确认后再关闭。
测试提交缺陷示例
如测试提交后下一流程为修改问题,则新提交的问题为“待改”状态;如下一流程为分配流程就”分配“状态并转分配人来处理;如下一流程为析分流程就是”分析“状态并转分析人来处理;如下一流程为测试互验,就是”待置“状态并转互验人来处理,且如互验人认为“待置”的缺陷,描述有问题,可以设置为“修正/描述不当”,或直接“撤销”了。
流转历史及用时
快上线前,缺陷一般要求日决,我们要能查看到各环节用时信息。Codes 会记录各节点上的用时信息,如下图所示:
关联:缺陷和需求关联,随时可查看需求详情;缺陷还可和用例关联;通过webhook 缺陷还可和gitlab自动关联commit。
5)、统计分析及度量
除了质量大屏还有一系列统计,如缺陷时效,用测试总览,等20多个统计。
测试总览
接口总览
全网独有:提交|打开|待处理|修改|关闭缺6趋势图,能反映出测试和研发团队谁慢。
一共有如下5个缺陷趋势分析
另外还有11个缺陷相关统计,且都可按版本来统计,可选某个版本或的所有版本,有些还可按人分组及不按人分组。
缺陷时效分析,对于要上线前,缺陷日决,及重要缺陷可以很好的管控起来,不会因这些重要缺陷延期而带来风险。且下图中缺陷达标数还可下钻, 显示明细。
测试工作量分析对对比各测试人员工作情况,且每一项可展开查看明细,如下图所示:
测试人员简报,如下图所示:
日执行用例趋势及明细:可按人分组及不分组,不分组就是总趋势。
测试项目简报
项目活跃度明细
开发工作量分析
编写用例用例趋势,可按人分组也可以不分组,不分组显示总趋势
迭代报告,总览
迭代报告,用例明细
还有一系列其他统计 ,不再一一列出,仅列出测试样相关的部分统计分析
6)、生成式全局看板,再也不需手动创建看板
以逆向的方式,也就是通过定义查询条件的方式,来生成看板。所有人共用一个全局看板,定制各自的看板。详见《记Codes 研发管理平台——生成式全局看板的创新实现》。
另外除工具平台外还有两个问题需要自行解决
1)、持续团队构建:团队拓扑结构,协作模式,技术路线,打磨团队的沟通方式。
团队的架构影响了团队的沟通协作的模式,体现在团队研发的产品上,反映了团队的研发效能。团队基于其通信结构生成体系结构,这是康威定律里面说的。团队拓扑是指在一个团队中成员之间的网络结构和关系。它描述了一个团队中成员之间的交互模式和沟通方式,包括信息传递、协作和决策过程等。这里不再展开来讲,可查阅《高效能团队模式》。
2)、流程规范的建设,根据情况建立流程规范。如下两图是已内置于Codes内的流程规范:
因篇幅有限没法一一道来,本文只是选几点进行走马风观花式的介绍,不过依然可以看出来我们一如继往的创新。更多很爽的测试管理相关、缺陷管理相关的功能要到Codes 中去慢慢品味,Codes敏捷测试就像一壶茶越喝越香,且"Codes不限功能本地安装,30人免费"足够一般公司用了,快去试试吧!临池羡鱼不如退而使用Code 。最后以Codes 整体功能架构结束本文,方便大家了解Codes“全景”!
相关文章:

Codes 开源研发项目管理平台——敏捷测试管理创新解决方案
前言 Codes 是国内首款重新定义 SaaS 模式的开源项目管理平台,支持云端认证、本地部署、全部功能开放,并且对30人以下团队免费。它通过整合迭代、看板、度量和自动化等功能,简化测试协同工作,使敏捷测试更易于实施。并提供低成本的…...

耗时一个月,我做了一个网页视频编辑器
最近又肝了一个多月,终于把这个网页视频编辑器做好了,下面我来简单介绍一下如何使用 注意目前该功能还处在测试阶段,可能会有很多问题,后续我会不断修复 体验地址 app.zyjj.cc 界面介绍 整个剪辑界面包括4个区,左边是…...

uniapp 做一个查看图片的组件,图片可缩放移动
因为是手机端,所以需要触摸可移动,双指放大缩小。 首先在components里建个组件 查看图片使用 uni-popup 弹窗 要注意 transform的translate和scale属性在同一标签上不会一起生效 移动就根据触摸效果进行偏移图片 缩放就根据双指距离的变大变小进行缩…...

卡车配置一键启动无钥匙进入手机控车
卡车智能一键启动无钥匙进入手机控车,通过手机应用程序与汽车内置硬件、软件的无线通信,实现对汽车的远程控制。 卡车改装一键启动的步骤包括安装门把手的感应装置、拆卸仪表台和门板,取出内部的待接线束,并将一键启动…...
计算机网络基础概念 交换机、路由器、网关、TBOX
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、VLAN是什么?二 、交换机三、路由器四、网关五、TBOX六、问题1 、网关和交换机的区别2、网关和路由器的区别 总结 前言 工作有感而发࿰…...

labview禁用8080端口
需求背景 最近电脑上安装了labview全家桶,发现idea的8080端口项目启动报错,一直提示8080端口被占用。最简单的办法就是找到8080端口的服务,然后关闭这个服务。但是我不想这么做,我想把labview的web服务器的端口给修改了。 操作教程 1、cmd查看8080端口 2、windows进程 同…...
字符串的KMP算法详解及C/C++代码实现
1. 原由 紧接上文,我们知道了暴力匹配的算法在时间运行上的缺陷,假设字符串T的长度为n,字符串P的长度为m,则整个算法的时间复杂度为O( n * m ),而对于一个复杂的现实情况而言 n >> m >> 2 (即…...

2024年数学建模比赛题目及解题代码
目录 一、引言 1. 1竞赛背景介绍 1.1.1数学建模竞赛概述 1.1.2生产过程决策问题在竞赛中的重要性 1.2 解题前准备 1.2.2 工具与资源准备 1.2.3 心态调整与策略规划 二、问题理解与分析 三、模型构建与求解 3.1 模型选择与设计 3.1.1 根据问题特性选择合适的数学模型类…...

BERT 论文逐段精读【论文精读】
BERT: 近 3 年 NLP 最火 CV: 大数据集上的训练好的 NN 模型,提升 CV 任务的性能 —— ImageNet 的 CNN 模型 NLP: BERT 简化了 NLP 任务的训练,提升了 NLP 任务的性能 BERT 如何站在巨人的肩膀上的?使用了哪些 NLP 已有的技术和思想ÿ…...
在Flask中实现跨域请求(CORS)
在Flask中实现跨域请求(CORS,Cross-Origin Resource Sharing)主要涉及到对Flask应用的配置,以允许来自不同源的请求访问服务器上的资源。以下是在Flask中实现CORS的详细步骤和方法: 一、理解CORS CORS是一种机制&…...

在桌面商业分析应用程序中启用高级 Web UI
挑战 Mercur Business Control 应用程序在企业界,尤其是金融领域,拥有悠久的应用历史。它帮助企业处理、可视化和分析海量数据,从而做出明智的商业决策。 随着产品的不断演进和现代化,Mercur Solutions AB 为该应用创建了 Web 客…...

CentOS Stream 8 通过 Packstack 安装开源 OpenStack(V版)
1、环境规划以及网卡配置 controller IP:192.168.235.101 compute IP:192.168.235.102 控制节点 [rootluck ~]# cd /etc/sysconfig/network-scripts/ [rootluck network-scripts]# vi ifcfg-ens160 [rootluck network-scripts]# cat ifcfg-ens160 TYP…...
OpenSSL工具验证RSA证书
openssl x509 是一个用于处理 X.509 证书的命令行工具。常用的 openssl x509 命令: -in <file>:指定输入文件。-out <file>:指定输出文件。-noout:不输出证书信息。-text:以文本格式输出证书信息。-pubke…...

架构师白话分布式系统
对于分布式系统的定义,大致可以理解为如下的两个点 分布式系统从整体的体量来说,它内部是由很多的服务器、服务实例组成。所提供的用户服务是由一组相互独立运行的服务器来提供。对于用户来说,这个多服务器的系统就跟一个服务器一样,感觉不到每个单独的服务器实例的存在。从…...
C++ 中 vector 的常用功能介绍
在 C 中,vector 是一种常用的动态数组容器,提供了方便的自动扩展、内存管理以及各种便捷的操作方法。它是 C 标准模板库(STL)的一部分,适用于需要动态存储和管理大量元素的场景。 在本文中,我们将简要介绍…...

[QT] QT事件与事件重写
一.事件 事件(event)是由系统或者 Qt本身在不同的场景下发出的。当用户按下鼠标、敲下键盘,或者是窗口关闭等都会发出一个相应的事件。 一些事件在用户操作时发出(如鼠标/键盘事件); 另一些事件则是由系统自动发出(如计时器事件)。 Qt窗口中对于产生的一系列事件都…...

c# 视觉识别图片文字 二维码
1.二维码识别 插件 ZXing.Net using System; using System.Drawing; // 如果你使用的是System.Drawing.Common using ZXing;class Program {static void Main(){string imagePath "path_to_your_qr_code_image.png";var barcodeBitmap (Bitmap)Image.FromFile(im…...

UEFI——访问PCI/PCIE设备(二)
一、支持访问PCI/PCIE设备的Protocol UEFI中提供了两个主要的模块来支持PCI总线,一是PCI Host Bridge(PCI主桥)控制器驱动,另一个是PCI总线驱动。这两个模块是和特定的平台硬件绑定的,在这种机制下,屏蔽了…...

决策树算法的介绍与应用
目录 引言 决策树算法的基本原理 表格总结:决策树的构建步骤 决策树算法的 MATLAB 实现 示例:使用决策树进行分类预测 决策树的应用场景 表格总结:决策树的主要应用领域 决策树的优势与局限 结论 引言 决策树是一种广泛应用于数据挖掘…...

杰发科技Bootloader(3)—— 基于7801的APP切到Boot
为了方便在APP中跳转到Boot重新进行升级,有两种办法,7840同样可以使用。 1. 调用reset接口进行复位,复位后会先进Boot,再自动跳转到App。 NVIC_SystemReset(); 2. 直接使用跳转指令,参考Boot跳转到App代码࿰…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...

Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...

什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...