当前位置: 首页 > news >正文

深入BUG分析

一、认识BUG

软件BUG是由于软件开发者的疏忽和失误造成的。

软件BUG是软件生命周期内发现和未被发现的所有问题总和。

全面质量管理和全程软件测试:软件BUG不单指软件测试阶段发现的软件系统的功能性错误,还应包括软件开发过程中需求、设计、开发等阶段评审过程发现的问题,以及软件发布后客户发现并反馈的问题,同时还包括那些隐藏在软件内部未被发现的问题。

所有软件BUG都应被有效管理。

二、获取BUG

获取BUG数据是进行BUG分析的第一步,完整、清晰的BUG数据记录是进行BUG管理和分析的关键。

将BUG按属性进行记录,以适应不同维度、不同指标的分析需要。

软件BUG的生存环境和生命周期决定了软件开发过程中的人、过程、组织等各个环节、各种方法和措施都会造成BUG的产生,通过BUG分析可以发现软件开发环节、方法和措施的不足,通过多维度、多层次的分析发现BUG的产生根源和改进方法,通过改进提高软件产品质量,提升人、过程、组织的能力和适应性。

三、管理BUG

管理的目的在于使管理对象能够规范、高效工作,从管理中获取更高收益。

软件BUG管理的目的在于实现BUG管理的标准化、流程化、规范化,使软件开发过程中发现的BUG都能够被完整记录、有效跟踪。同时使用统计分析方法,发现BUG产生的原因、研究预防和解决方法、有效实施,实现软件、过程、人和组织的持续改进。

软件BUG管理过程和工具应满足信息录入、跟踪查询和统计分析三类主要功能。

四、分析BUG

分析就是将研究对象的整体分为各个部分、方面、因素和层次,分别加以考察、认识。

软件BUG分析是将软件生命周期中所有BUG作为研究对像,分析BUG产生的阶段、产生的模块、产生的原因,发现软件生命周期中过程、阶段、技术、人和组织存在的问题,以及软件开发过程中各关键环节和要素之间的协作问题,通过调整、改进和控制,提高软件质量、节省软件成本,提升组织生产力,交付优质软件成果。

1.BUG分析的目的

基本BUG分析是基于测试阶段发现的BUG,通过BUG的分布和趋势研究,发现BUG产生的根源,及早采取调整和控制措施,预防和控制问题的蔓延和新问题的产生,提升软件质量。

深入BUG分析是基于软件生命周期中的所有BUG,使用统计分析方法,通过BUG的共性发现软件生命周期中技术、人、过程、项目和组织存在的问题,揭示软件质量、过程质量、人员能力、组织能力之间的关系,加强软件精细化管理,促进人、过程、组织持续性改进。

2.BUG分析的根本

质量不是检查出来的,而是生产出来的。

人创造了软件,构建了软件质量,同时也产生了大量BUG。人是软件生产的主体,众多不同个性和技术能力的人组成了软件组织,人的软件活动构成了软件的生产过程。

人决定了软件的质量,软件BUG分析的根本最终落脚于对人的分析。通过BUG分析发现软件生命周期中人的缺陷和不足(技术、沟通、规范性等),制定有针对性的方法和训练提高人员技术能力、沟通能力,增强软件过程人为活动的规范性,减少人为的疏忽和失误,最终构建有效的软件过程,提升组织的综合生产力,提高软件成果交付质量。

3.BUG分析的层次

软件BUG分析分为四个层次:基本分析、过程分析、人员分析、组织分析。

通过BUG的层次分析,提升BUG的使用质量,发现软件生命周期中存在的问题,推动人、过程、组织的持续改进,体现BUG的价值。

BUG分析基于不同分析指标的BUG数量统计展开分析,常见方式有占比、趋势、分布、对比等方法,使用饼图、折线图、柱状图、散点图等进行图形化展示。

1)BUG的基本分析

BUG的基本分析是BUG其它层次分析的基础。

BUG的基本分析基于软件项目的当前的BUG数据信息,通过聚类分析方法展示BUG在当前软件项目中的分布情况、发展趋势,评价当前软件及项目质量。常见分析指标包括BUG状态、解决状态、严重程度、软件模块、软件版本等。

BUG的基本分析的不足在于只局限于BUG产生的阶段(多集中于测试阶段)和软件本身,针对项目当前某个模块或是功能的质量进行评价,缺少对项目整体和软件开发全局的认识。

2)BUG的过程分析

BUG的过程分析基于组织的度量目标和标准化过程定义,对比BUG的统计数据,对软件过程进行了有效控制,对软件过程和软件开发质量进行评价,并及时进行纠偏和整改。

BUG的过程分析的不足在于仍然只关注软件本身,只关注过程而忽视了细节,重视对比标准的偏差而不能发现产生偏差的原因并制定有效的纠偏方案。

3)BUG的人员分析

BUG的人员分析关注BUG产生的最根本的因素“人”,基于BUG的基本分析和过程分析,发现人在软件生命周期中存在的缺陷和不足,通过合理调配人员、增加培训、加强管控等方式,减少软件过程中人的疏忽和失误,从根本上促进软件过程改进,提升软件质量,降低软件成本,为项目的精细化管理提供数据支撑。

BUG的人员分析的不足在于获得的分析结果只能反映到某个项目或某个团队的生产能力现状和改进结果,不能提供给组织进行参考,无法提升BUG的分析价值和作用。

4)BUG的组织分析

BUG的组织分析关注组织的良性生存与发展,组织的强大在于保存现有核心竞争力的同时,发现和弥补不足、扩大竞争优势。BUG的组织分析基于BUG的人员、过程和基本分析,为组织内其它项目的评估、管理提供有价值的参考信息;为组织内相关职能部门的工作改进方案提供数据支撑,实现组织资源的合理配置;关能及时发现组织中存在的漏洞,及时改正、持续改进,保证组织的运营的高效、可持续、健康发展。

BUG的组织分析将BUG分析的视角从细节扩展到过程、从个人发展到组织,自下而上形成支撑,自上而下产生影响,极大提高了BUG的使用质量和使用效率,将BUG价值极大化。

五、深入BUG分析

1.BUG是软件生命周期中的重要的数据,应当被足够的重视和利用。

2.注意组织内BUG数据积累,使用标准流程和成熟的缺陷管理工具对BUG进行管理,并通过缺陷工具提供的分析方法对BUG进行基本分析。

3.深入BUG分析,提高BUG使用质量,挖掘BUG使用价值。

4.基于BUG数据统计,加强层次化分析。按项目、过程、阶段、模块、技术、人等不同维度和层次,在同一软件的生命周期内进行纵向关联分析,不同软件之间进行横向对比分析,获取多维度、多层次分析数据,实现精益化软件开发、度量和管理。

5.使用数据挖掘方法,分析BUG的产生与软件开发过程中的人、过程、组织间的关联关系,发现BUG产生的深层次原因,研究解决方案,预防和降低BUG的产生,形成从BUG分析到组织生产能力提升的数据支撑,完成组织生产能力提升到个人素质增长的正向驱动。

6.利用第三方数据分析工具,高效的对BUG数据进行抽取、清洗、转换,基于强大的分析功能实现BUG分析的多维度、多层次动态分析展示,提升BUG的分析效果,实现BUG可视化、精细化管理,为软件组织的精益化管理提供多方位的数据支持。


转载于:https://juejin.im/post/5b86502ee51d4538de116cd5

相关文章:

  • HTML5的优缺点
  • 2018腾讯广告算法大赛总结/Rank7-复习代码
  • Android Studio NDK:三、打包SO
  • 7×14小时陪伴,DaDaBaby核心课程升级背后到底有多少考量?
  • java中hashset重写equals方法中只比较属性值的问题
  • WPF 标题栏 右键窗口标题添加关于对话框
  • 利用矩阵快速幂转换的题目
  • 最新软件工程师薪资大揭秘!你的薪资达到平均水平了吗?
  • Java自学之路(小白向)
  • 由两个栈组成队列
  • jenkins1
  • 为什么要用到Nginx来做负载均衡?通俗的解释
  • hdu_2955
  • Linux常用命令 — 用户管理useradd、passwd、who、w
  • Python(可变/不可变类型,list,tuple,dict,set)
  • 4个实用的微服务测试策略
  • Apache的基本使用
  • C++类的相互关联
  • ERLANG 网工修炼笔记 ---- UDP
  • Git学习与使用心得(1)—— 初始化
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • JDK 6和JDK 7中的substring()方法
  • js学习笔记
  • Netty 4.1 源代码学习:线程模型
  • QQ浏览器x5内核的兼容性问题
  • SQLServer之创建数据库快照
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • Xmanager 远程桌面 CentOS 7
  • 创建一种深思熟虑的文化
  • 机器学习学习笔记一
  • 京东美团研发面经
  • 配置 PM2 实现代码自动发布
  • 前嗅ForeSpider教程:创建模板
  • 实现菜单下拉伸展折叠效果demo
  • 最近的计划
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • Spring Batch JSON 支持
  • Spring第一个helloWorld
  • 如何用纯 CSS 创作一个货车 loader
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • #LLM入门|Prompt#3.3_存储_Memory
  • #微信小程序:微信小程序常见的配置传旨
  • (C语言)fread与fwrite详解
  • (分布式缓存)Redis哨兵
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • .NET Micro Framework初体验(二)
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试