一、认识BUG

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

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

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

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

二、获取BUG

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

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

深入BUG分析_第1张图片

1 BUG属性

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

三、管理BUG

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

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

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

深入BUG分析_第2张图片

2 BUG管理

四、分析BUG

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

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

1.BUG分析的目的

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

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

2.BUG分析的根本

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

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

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

深入BUG分析_第3张图片

3 BUG分析根本

3.BUG分析的层次

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

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

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

深入BUG分析_第4张图片

4 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分析

深入BUG分析_第5张图片

5深入BUG分析

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

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

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

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

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

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