主题一、我们可以参考的东软及金蝶软件质量过程管理
1、 东软质量过程改进体系:
优秀的人才要发挥最大的潜能需要有正确的过程。过程决定质量,通过对过程进行持续改进,实现向客户交付高质量软件产品。什么是软件过程改进?下面供参考:软件过程也就是软件产品的生产过程,也包括软件维护之类的维护过程,而对于其他的过程并不关注。
对于软件企业来说,软件过程是整个企业最复杂、最重要的业务流程,软件产品就是软件企业的生命,改进整个企业的业务流程,最重要的还是要改进它的软件过程。要想高效率、高质量和低成本地开发软件,必须以改善软件生产过程为中心,全面开展软件工程和质量管理手段。有些软件企业之所以落后,不是因为技术落后,而是对软件生产的管理落后。对软件生产过程的管理在整个软件企业的管理中起了决定性作用。
提高软件质量的几个点:全程监控,系统支持,持续改善,不间断的投入
东软软件过程改进参考:
(1) 有专门的质量体系,有公司级、事业部级、项目级的质量改善中心,有成熟的过程体系管理框架,并提供培训、咨询 整个过程改善中心有156人,均有3年及以上的开发、管理经验
(2) 有专门的质量总监
(3) 进行项目监控,会列用于缺陷预防的checklist,同时还定期召开缺陷原因分析会议,找到问题的根本原因并给予解决
(4) 对外宣扬通过CMMI(V1.2) Level5级认证,这容易让人觉得表面功夫做得很足,但东软还是有很好的内部评估机制的,比如在不同部门间进行评估、检查质量体系的执行情况、根据以往的经验及检查结果识别一些新的质量过程改进机会、收集优秀事迹,通过面谈、访谈等形式检查过程改进的落实情况,光检查项就有100多项
(5) 过程财富的收集及共享:总结、推荐、质量月报、专门的共享交流平台、过程改善沙龙、每年两次的质量总结会议
(6) 东软过程管理历程:打基础――质量体系固化――深入展开――成熟、快速复制
(7) 发现的缺陷按阶段进行划分,实行过程改进前后,2000年和2007年进行对比:
2000年:
l 系统测试之前发现的缺陷:30%
l 系统测试时发现的缺陷:67%
l 客户反馈的缺陷:5%
2007年:
l 系统测试之前发现的缺陷:71%
l 系统测试时发现的缺陷:28%
l 客户反馈的缺陷:0.~%
有一个问题我没有搞清楚,不知道东软系统测试之前发现的缺陷是如何衡量计算的?
(9)缺陷密度,实行过程改进前后,缺陷密度减少90%。有关缺陷密度,请参考以下解释:缺陷密度=已知缺陷(Number of known defects)/软件规模(size),已知缺陷可以是软件开发周期各个阶段发现的缺陷,如需求评审中的缺陷,代码评审中发现的缺陷,单元测试中发现的缺陷,集成测试中发现的缺陷等。软件规模就是软件的大小,目前一般有两种度量方法,用功能点(FP)表示或者用千行代码(Kloc)表示。利用缺陷密度可以比较不同的软件模块的缺陷密度,从而判断问题集中的模块,根据80/20法则解决问题;利用软件不同版本的缺陷密度也可以判断软件的质量,预期软件的发布。
2、 金蝶
(1) 金蝶软件开发模式采用IPD,质量管理体系持续改进,不单单像CMMI那样仅仅指软件研发过程,而是跟市场、业务联系很紧密,貌似跟我们公司采用的NPD是一样的.
(2) 敏捷开发的模式,老话题了,主要是为了需求的不失真,实现效率提升、快速迭代,避免实际结果和客户想要的偏离,核心理念为适应而非预测;强调以人为本,注重人的智慧、创造力。
(3) 公司有专门的创新实验室、软件工程过程组
(4) 作为辅助工具,有专门的研发管理平台,它是一个协同工作平台,可以对项目中的每项工作,如需求、开发、测试计划、设计、代码、缺陷等及角色,如项目经理、开发及测试人员、需求进行管理、分析,可以从各种指标上对产品进行质量评估、数据收集分析,还可以计算每个人的绩效及奖金;不过它仅仅是一个量化工具,缺点是不容易激发人的创造力。
(5) 软件质量分析的几个维度:功能性、可靠性、支持性、性能、可用性
主题二、软件测试相关
1、 判断测试结束的两个点:缺陷收敛;遗留问题有后续的解决办法
2、 目标决定过程,过程决定质量,我们的关注点:高效的测试及提高测试覆盖度
3、 如何提高效率:
(1) 提高测试资源复用率
(2) 提高有效测试工时率
(3) 与开发人员配合:记录和开发协作点的数量,提高协作点的正确率,一个协作点比如,开发承诺几点编译一个版本,那么我们可以到那个时间点检查是否编译成功
(4) 测试进度与项目实际进度贴合度好,可以检查工期贴合率、项目变化率
(5) 自动化
4、 有效度量测试用例覆盖度的几个条件:
(1) 定义基线,对现有用例进行有效管理
(2) 定义单位:明确测试用例的粒度
(3) 确定最小测试范围
(4) 更好的设计测试用例,如何合理的覆盖多个功能点?
(5) 每轮新增测试用例量
主题三、其他
(1) 质量改进不能一蹴而就,对软件进行更细的分析
(2) 质量的提高需要领导的重视
个人感觉上述一些点仅供参考,不同的公司有不同的情况,比如我们如果照抄人家进行大跃进,成立专门的软件过程改进中心,可能实际条件不允许,但首先要有提升软件质量的决心。从意识和觉悟入手。对于一个做产品的公司来讲,根据自己的软件开发成熟度进行有效的分析、形成一套成熟的属于自己的软件过程体系框架、还是很有必要的,不过这是个长期的过程。
再比如如果我们照抄人家开发一套项目管理的工具,那在现有条件下与提升产品质量相比,提升产品质量可能优先级更高一些。
同时,软件质量的度量伴随着软件过程(质量)改进也是一项很复杂的过程。