返回顶部
首页 > 资讯 > 数据库 >内建质量,你真的了解么?
  • 717
分享到

内建质量,你真的了解么?

内建质量,你真的了解么? 2019-07-05 23:07:50 717人浏览 绘本
摘要

    内建质量定义     内建质量作用在开发过程中,要求软件生命周期之间参与的各个角色都需要实时的对软件的质量负责。确保软件在交付到下一环节前已经有了基础的质量保证。其核心目的就是减少因为质量问题导

内建质量,你真的了解么?

 

 

内建质量定义

    内建质量作用在开发过程中,要求软件生命周期之间参与的各个角色都需要实时的对软件的质量负责。确保软件在交付到下一环节前已经有了基础的质量保证。其核心目的就是减少因为质量问题导致的返工,而浪费大量人力成本。

1.敏捷中的内建质量

内建质量是规模化敏捷SAFe的核心价值观,引用下面一段话,我们看一下敏捷中定义的内建质量在讲什么内容(原文出处:https://www.scaledagileframework.com/built-in-quality/)

 

 

简单的翻译过来就是,产品一旦被发布之后就有了好坏之分,通过某些检验方式已经无法提高或保证它的质量,所以质量检验必须内置在产品或服务构建的过程中,而不能在它发布之后。

2.DevOps中的内建质量

devops三步工作法中,第二步就是反馈原则,其中很重要的一个实践就是在源头保障质量,这里主要是指开发部门、测试部门。而在源头保障质量的通俗说法更像是“谁污染谁治理”。 DevOps倡导所有新的功能特性可以像流动的水一样,迭代到用户的终端,而水是不能逆流的,为了保证水流的质量,我们就必须在水流动的途中治理,直到最终交付到用户的手中。这也就是DevOps建设中一个新的理念“liquid software”

 

内建质量实践

 

1. 左移

左移是内建质量最好的实践,把质量问题从源头开始进行检查。

由开发侧发起的单元测试就是最典型的测试左移的案例,虽然高单元测试覆盖率需要投入大量的成本,但是对于某些行业,如金融行业,这个实践是必要的。另外测试左移不止是对代码来讲的,同样在需求评审阶段,就要对需求质量进行评估,推广到市场后是否真的能实现其价值.

随着DevSecOps的兴起,安全左移的重要性也体现出来。我们经历过很多次类似的情况,每当我们把经过了开发测试的软件发布到生产线上,经常会被安全部门或者第三方监管单位找麻烦,归根结底还是因为在开发过程中引入了某些不安全的开源组件,写了有风险的代码,而这些问题可能都是开发人员技术能力之外的。试想一下,如果在开发人员的IDE中直接提示开发代码的安全问题,引用组件的安全问题,并引导开发人员去解决的话,是不是相当于在开发的源头解决了安全问题呢,不但提高了软件的整体安全质量,同样也节省了效能。

2. 门禁

为了贯彻内建质量是否在开发体系中落实,我们需要设置一些质量度量标准,所以在软件生命周期的每个阶段设置质量门禁这种实践孕育而生,在代码提交或集成时,校验单元测试的覆盖率和通过率,检验代码的合规性,验证引用的组件安全性都是质量门禁的实践。如果没有通过质量门禁,说明内建质量没有达到标准,上线后由于质量问题返工的可能性会增加。下述门禁是需要被关注的:

代码质量

单元测试覆盖率

单元测试通过率

测试通过率

基础设施

代码安全性

第三方组件安全性

开源协议扫描

等…

 

内建质量落地

很多DevOps的建设场景中,最终落地的依旧是工具链,工具链是打通从开发到运维基础。为了保障内建质量的建立,两个方面的工具链是不可缺少的,下面罗列了一些常用的工具,如果大家准备在软件生命周期中增加内建质量的建设,可以参考下述工具

1. 专项工具类,解决特定质量检查场景:

源码质量:SonarQube、checkmarx、fortify

单元测试:Junit

自动化测试selenium、postman、yapi

性能测试jmeter

安全:Xray、Dependance-check

 

2. 集成工具类,打通工具链流程,统一展示:

集成工具:jenkins、TFS、gitlabCI、tekton、

制品管理工具:Artifactory

 

总结

    内建质量是精益、敏捷以及DevOps的核心原则之一,有助于避免与需求召回、返工及缺陷修复有关的延迟成本。所以内建质量,势在必行。

 

更多精彩内容可以专注我们的在线课堂

微信搜索公众号:jfrogchina 获取课程通知

您可能感兴趣的文档:

--结束END--

本文标题: 内建质量,你真的了解么?

本文链接: https://lsjlt.com/news/6005.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 内建质量,你真的了解么?
        内建质量定义     内建质量作用在开发过程中,要求软件生命周期之间参与的各个角色都需要实时的对软件的质量负责。确保软件在交付到下一环节前已经有了基础的质量保证。其核心目的就是减少因为质量问题导...
    99+
    2019-07-05
    内建质量,你真的了解么?
  • 内网穿透你真的了解吗?
    前言 内网穿透作为程序员常用的调试手段之一,我们可以通过在个人电脑上运行花生壳或者 frp 等方式,让他人访问我们本地启动的服务,而且这种访问可以不受局域网的限制,当我们使用ngrok,frp等开源框架时,你是否有好奇过它神奇的作用?明明没...
    99+
    2023-08-31
    网络穿透 NAT 内网 后端开发 Linux服务器开发
  • Python LeetCode HTTP 教程:你真的了解它的本质吗?
    Python在数据科学和机器学习领域中拥有非常强大的表现,然而Python也是一种非常适合网络编程的语言。HTTP是网络编程的重要组成部分,而LeetCode则是面试中经常涉及到的算法题库。在这篇文章中,我们将深入探讨Python中的HT...
    99+
    2023-09-19
    leetcode http 教程
  • C++的动态内存管理你真的了解吗
    目录前言用法上对内置类型对自定义类型new/delete底层原理重载类的专属operator new和 operator delete定位newnew/delete与malloc/f...
    99+
    2024-04-02
  • 你真的了解 Unicode 和 UTF-
    目录 引言 ASCII 码 什么是 ASCII 码? ASCII 码都包含哪些字符? ASCII 码的局限在哪里? ...
    99+
    2023-01-30
    你真 Unicode UTF
  • C++静态变量,常量的存储位置你真的了解吗
    目录引言C++对内存的划分如何落实在Linux上自由存储区和堆之间的问题栈常量区静态存储区静态局部变量静态局部变量、静态全局变量、全局变量的异同总结引言 在动态内存的博客中,我提到:...
    99+
    2024-04-02
  • 关于Java Object你真的了解了吗
    导读: 在平时的coding中hashCode()和equals()的使用的场景有哪些?clone深复制怎么实现?wait()和notify()有什么作用?finalize()方法干嘛的?看似coding中使用的不多,不重要,但是有没有跟我...
    99+
    2023-05-31
    java object ava
  • 你真的了解IP地址吗?
    本文已收录于专栏 ⭐️ 《计算机网络》⭐️ 学习指南: IP协议基本认识分类地址多播地址 无分类地址划分方式子网掩码 IP 分片与重组IPv6基本认识IPv4 首部与 ...
    99+
    2023-09-09
    tcp/ip 网络 服务器 网络协议 ip
  • 你真的需要了解Bash吗?
    Bash是一种强大的命令行解释器,它是Linux和macOS操作系统上的默认Shell。尽管它是如此重要,但很多人并不了解Bash的实际用途。在本文中,我们将探讨Bash的重要性以及它如何帮助我们更好地管理和控制计算机系统。 Bash是什么...
    99+
    2023-08-15
    path bash http
  • java的泛型你真的了解吗
    目录泛型的概述和优势自定义泛型类自定义泛型方法自定义泛型接口泛型通配符、上下限总结泛型的概述和优势 泛型概述 泛型:是JDK5中引入的特性,可以在编译阶段约束操作的数据类型,并进行检...
    99+
    2024-04-02
  • 前端 let、const和var你真的了解么?
    1.var 关键字要定义变量,可以使用 var 操作符(注意 var 是一个关键字),后跟变量名(即标识符,如前所述):var message;这行代码定义了一个名为 message 的变量,可以用它保存任何类型的值。(不初始化的...
    99+
    2022-06-01
  • 关于@Autowierd && @Resource 你真的了解吗
    目录关于@Autowierd && @Resource 你真的了解吗1.@Autowierd2.@Resource2.1@Resource具体装配顺序,即指定的注入实...
    99+
    2024-04-02
  • Vue的过滤器你真了解吗
    目录1.过滤器1.1对过滤器的理解1.2全局过滤器:1.3局部过滤器:1.4过滤器的案例总结1. 过滤器 案例中使用到时间格式相关API 1.1 对过滤器的理解 定义:对要显示的数据...
    99+
    2024-04-02
  • Java 缓存:你真的了解它吗?
    在 Java 开发中,缓存是一个非常重要的概念。它可以大大提升应用程序的性能,减少对底层资源的占用,提高用户体验。但是,你真的了解 Java 缓存吗?本文将为大家介绍 Java 缓存的基本概念、分类、应用场景以及常见的缓存框架。 一、缓存...
    99+
    2023-10-06
    缓存 学习笔记 面试
  • 跟Alex学Python之- 你真的了解
      初学编程的小伙伴都会对于深浅拷贝的用法有些疑问,今天我们就结合python变量存储的特性从内存的角度来谈一谈赋值和深浅拷贝~~~预备知识一——python的变量及其存储  在详细的了解python中赋值、copy和deepcopy之前,...
    99+
    2023-01-31
    你真 Alex Python
  • JavaVolatile关键字你真的了解吗
    目录正文并发编程的三要素1.原子性2.可见性3.有序性VolatileVolatile 的内存模型Volatile 的实现原理(1) lock(2) unclock(3) read(...
    99+
    2024-04-02
  • C++的运算符你真的了解吗
    目录前言1 算术运算符2 赋值运算符3 比较运算符4 逻辑运算符总结前言 运算符的作用:用于执行代码的运算 主要有: 1 算术运算符 用于处理四则运算 对于前置递增:将递增运算前...
    99+
    2024-04-02
  • Golang中的泛型你真的了解吗
    目录什么是泛型为什么需要泛型泛型语法类型参数类型集类型推断总结Golang 在 1.18 版本更新后引入了泛型,这是一个重要的更新,Gopher 万众瞩目,为 Golang 带来了更...
    99+
    2023-05-20
    Golang泛型用法 Golang泛型学习 Golang泛型 Go 泛型
  • Python的语法基础你真的了解吗
    目录Python语法基础01-Python快速入门U1-定义变量U2-判断语句U3-循环U4-定义函数U5-面向对象U6-引入python文件02-python的三大优点、七大特色U...
    99+
    2024-04-02
  • C++中的函数你真的理解了吗
    目录1 概述2 函数的定义及调用3 值传递4 函数的常见形式5 函数的声明6 函数的分文件编写作用:让代码结构更加清晰1.2.3.4.总结1 概述 作用:将一段经常使用的代码进行封装...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作