首页 > 其他分享 >质量内建实践的八大特质

质量内建实践的八大特质

时间:2023-06-06 14:45:33浏览次数:37  
标签:特质 八大 迭代 持续 实践 线上 交付 内建 质量

在前面的文章《质量内建落地的四要素》中,聊过质量内建落地要面临的挑战,以及在团队内落地质量内建,最核心的四个要素:组织+文化+方法+工具。

上周日晚上在面向星球内部同学的分享时,我也大略介绍了要实践质量内建需要具备的八大特质,由于内部分享的内容太多,关于质量内建只是做了大致介绍。这篇文章,我会分享和质量内建的八大特质相关的内容。

 

质量内建的核心

质量内建的作用是在软件的整个生命周期中,要求参与的各个角色实时对软件的质量负责,确保软件在交付到下一环节前已经有了基础的质量保证。

目的是为了减少因为前期风险不可控而导致后期的修复成本增加,进而浪费大量资源。与其说质量内建是一套方法论,我更认为其本质是一种思想和文化。

通过全生命周期的全员对质量负责的理念,来指导在实际的软件研发过程中关注质量,提高设计和构建质量

概括来说,质量内建的核心有这几点:全体负责、控制风险、关注和提高质量

软件的整个生命周期如下图产品迭代闭环图所示:

全体负责,即意味着参与项目的各个角色,如项目负责人、项目管理、产品、研发、测试、运维等多个角色都对最终的线上产品交付质量负责一定责任。

控制风险,即在软件生命周期中的每个环节,都要利用质量门禁的作用尽早的介入需求设计、产品设计和技术方案设计等环节,

通过评审、提问等方式,尽可能多的发现存在的漏洞和不足,然后通过制定科学合理符合项目实际情况的准入准出标准,来保证每个环节流转到下一环节的产出物达标。

至于提高质量,这是软件测试或者说质量保障工作一直以来的目标。

那么如何做到通过质量内建来持续提高最终的交付质量呢?我个人认为需要具备八个特质。

 

质量内建的八大特质

从上述的产品迭代闭环模型图和质量内建的核心内容来看,质量内建的八个特质如下图:

持续评估

质量内建的核心之一在于控制风险,风险可以分为过程风险和结果风险。

在产品迭代生命周期中,从计划到线上交付这个过程中存在的可能影响产品质量的因素,都叫做过程风险。比如:需求不明确、资源不足&技术实现方案难度大耗时长,都属于过程风险。

因此需要通过持续评估的方式,根据现状不断调整项目的资源投入,控制项目进度,以确保风险在可控范围内。

持续改进

通过持续评估发现过程风险后,在技术实现层面就需要不断改进方案。

比如选择更轻量级的技术框架,比如通过快速迭代的方式尽快交付可测试验证的产品,快速发现问题。这样做的目的是在有限的时间资源限制下,提高过程效率。

持续验证

技术实现层面的更快交付,意味着测试验证这一环节要跟上。以往我们所熟悉的系统测试、整体提测这种时延较长的测试方法就有必要进行改进。

比如通过大量的自动化测试来提高验证效率,将自动化测试集成到CI流水线里面。

持续交付

传统的软件产品迭代方式,蒙头憋大招,可能一个月线上发布一次,这样会导致测试验证范围过大,且交付后的风险范围也会变大。

而持续交付的价值在于,每次线上产品发布的范围更具体,风险控制和测试验证成本更低,也能以更快的方式知道最终的交付结果。

当然,为了降低线上交付的风险,近几年业内也有很多有效的技术实践,比如灰度发布、蓝绿发布。

持续巡检

测试同学日常工作的大部分时间,都是花费在测试环境的结果验证上,但其实一个软件产品真正的质量如何,在于线上发布之后的结果。

受限于账号权限、风控安全等原因,当前业内对于产品线上发布后的质量验证其实做的比较少,这就导致了我们对于线上质量的感知和风险控制是比较滞后的,往往只能疲于应付各种线上问题和故障复盘。这样做不能说是无用功,但本质上是一种刻舟求剑亡羊补牢的措施。

因此在产品交付线上后,通过线上的持续巡检手段,不断发现可能存在的结果风险,也是保障和提高质量的重要措施。

线上持续巡检,既可以通过自动化的方式进行巡检,也可以通过监控发现或者人工盯盘的方式来持续进行。

持续度量

记得有次面试一个测试负责人岗位,面试官问了这样一个问题:如何定义一个产品的质量好坏?

我的回答是:线上没问题或者线上问题少,且问题可以被及时发现和处理,可以将问题带来的风险和影响控制在可接受范围内,就可以看做这个软件产品的质量是比较好的。

线上产品的交付质量,需要明确的指标来进行度量,且这种度量手段一定要持续进行,才能获得精准的线上质量。

持续运营

技术本身不能直接创造利润,但技术通过实现业务的目标,提高用户体验,可以为企业带来利润,这个时候技术的价值才能体现出来。

只有通过持续度量线上产品质量,才能知道我们围绕质量所开展的一系列技术工作,是否产生了正向价值,产生的价值是多少。

持续的运营这种围绕产品质量的技术实践和质量文化,才能不断支撑业务目标达成,提高用户体验。

持续反馈

产品线上交付后,通过对业务目标是否达成,以及对具体的业务目标进行评估,才能知道技术的实践哪里做得好,哪里还需要优化。且产品交付后,用户的体验和反馈建议,往往也是产品后续迭代的方向。

因此需要建立线上的持续反馈机制,将用户建议、客诉、线上问题等通过复盘分析等方式,得到下一步的改进方向。并在后续的迭代中持续评估改进,通过持续验证,提高交付质量。

 

质量内建的这八大特质,需要围绕产品迭代闭环模型来理解和实践。

实践过程中,需要组织自上而下的推动和宣导质量内建的文化,制定合理的流程规范来保证实践方向,需要合理的激励措施和错误预算空间来冗余。

需要采用适合自身状况的方法,选择合适的技术框架和工具来辅助和提高过程效率。

 

标签:特质,八大,迭代,持续,实践,线上,交付,内建,质量
From: https://www.cnblogs.com/imyalost/p/17460483.html

相关文章

  • [c++实践]关于标准库中字符串的高效处理
    [c++实践]关于标准库中字符串的高效处理无论什么程序,都需要大量的使用字符串,c++标准库提供了std::string对字符串进行处理。熟悉std::string实现逻辑的都知道,std::string库比较耗时的操作主要在内存的分配与字符串的拼接。因为内存分配实际上还是使用的malloc,但是在多线程......
  • 浅谈 ByteHouse Projection 优化实践
    预聚合是OLAP系统中常用的一种优化手段,在通过在加载数据时就进行部分聚合计算,生成聚合后的中间表或视图,从而在查询时直接使用这些预先计算好的聚合结果,提高查询性能,实现这种预聚合方法大多都使用物化视图来实现。Clickhouse社区实现的Projection功能类似于物化视图,原始的概念......
  • Dapr在Java中的实践 之 服务调用
    服务调用通过服务调用(Service-to-serviceInvocation),服务可以使用gRPC或HTTP这样的标准协议来发现并可靠地与其他服务通信。Dapr采用边车(Sidecar)、去中心化的架构。要使用Dapr来调用服务,可以在任意Dapr实例上使用invoke这个API。边车编程模型鼓励每个服务与自己的Dapr实例......
  • OCR -- 文本识别 -- 实践篇
    OCR--文本识别--理论篇本章将详细介绍如何基于PaddleOCR完成CRNN文本识别模型的搭建、训练、评估和预测。数据集采用icdar2015,其中训练集有4468张,测试集有2077张。CRNN是基于CTC的算法,CRNN是较早被提出也是目前工业界应用较多的方法。主要用于识别规则文本,有效快的预测速......
  • GitOps 最佳实践(下)| 基于 Amazon EKS 构建 CI/CD 流水线
    了解了 GitOps的概念以及CI/CD流水线的架构,完成了构建GitOps风格的CI/CD流水线的前两部分,恭喜开发者们!我们一起在GitOps最佳实践的道路上已经实现了大半。接下来,我们一起看看构建CI/CD流水线最佳实践的后两个部分:通过IaC部署云基础架构在AmazonEKS集群上部署......
  • 手把手实践丨基于STM32+NBIOT+华为云IOT设计智能井盖
    摘要:本文介绍基于STM32微控制器、BC26NBIOT模组和华为云IOT平台,实现了一款智能井盖系统。本文分享自华为云社区《基于STM32+NBIOT+华为云IOT设计的智能井盖》,作者:DS小龙哥。一、概述智能井盖是一种通过物联网技术实现对井盖状态监测和管理的设备。当前介绍基于STM32微控制器,B......
  • 文盘Rust -- tokio绑定cpu实践
    tokio是rust生态中流行的异步运行时框架。在实际生产中我们如果希望tokio应用程序与特定的cpucore绑定该怎么处理呢?这次我们来聊聊这个话题。首先我们先写一段简单的多任务程序。usetokio::runtime;pubfnmain(){letrt=runtime::Builder::new_multi_thread(......
  • 课程实践项目设计
    一、学生宿舍管理系统用例图    根据项目用户故事,在学生宿舍管理系统中,用户故事的用例图描述了用户在系统中的各种操作情景,包括学生登陆、管理员登陆、查看学生入住信息等操作。 二、学生宿舍管理系统类图和活动图类图描述了系统中各种类及其之间的关系。在此处,主要......
  • 对于安卓发送 http 请求的实践
    配置权限配置要注意配置的位置1添加网络权限<manifest><application>.......</application><uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permissionandroid:name="android.permission......
  • 课程实践项目设计
    用户故事:领域层:完成以下的判断操作:1.根据两支队伍每场的得分情况判断出每一场的赢家2.根据两支队伍的胜利场数来判断出胜利队伍3.根据得分和失分点判断每支队伍的薄弱点数据源层:记录每支队伍的得分情况以及胜利场以及分别记录两队队员的得分方式和得分情况并实现,每队至少25分,第五......