一、引言pmp.mypm.net
J.M.Juran认为质量控制是一个常规的过程,通过它度量实际的质量性能并与标准比较,当出现差异时采取行动。由此,DonaldReifer 给出软件质量控制的定义:软件质量控制是一系列验证活动,在软件开发过程的任何一点进行评估开发的产品是否在技术上符合该阶段制定的规约。training.mypm.net
二、软件缺陷分析项目管理者联盟
在IEEE 1983 of IEEES tandard729 中对软件缺陷下了一个标准的定义:从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。service.mypm.net
软件缺陷是一个更广的概念,而软件错误(error)属于缺陷的一种———内部缺陷,往往是软件本身的问题,如程序的算法错误、语法错误或数据计算不正确、数据溢出等。软件错误往往导致系统某项功能的失效,或成为系统使用的故障。软件的故障、失效是指软件所提供给用户的功能或服务,不能达到用户的要求或没有达到事先设计的指标,在功能使用时中断,最后的结果或得到的结果是不正确的。training.mypm.net
软件缺陷的产生主要是由软件产品的特点和开发过程决定的,如软件的需求经常不够明确,而且需求变化频繁,开发人员不太了解软件需求,不清楚应该“做什么”和“不做什么”,常常做不合需求的事情,产生的问题最多。同时,软件竞争非常激烈,技术日新月异,使用新的技术也容易产生问题。www.mypm.net
从软件自身特点、团队工作和项目管理等多个方面进一步分析,就比较容易确定造成软件缺陷的一些原因细节,归纳如下:pmp.mypm.net
(一)软件自身特点造成的问题。项目管理者联盟
需求不清晰,导致设计目标偏离客户的需求,从而引起功能或产品特性上的缺陷。系统结构非常复杂,而又无法设计成一个很好的层次结构或组件结构,结果导致意想不到的问题或系统维护、扩充上的困难;即使设计成良好的面向对象的系统,由于对象、类太多,很难完成对各种对象、类相互作用的组合测试,而隐藏着一些参数传递、方法调用、对象状态变化等方面问题。项目经理圈子
新技术的采用,可能涉及技术或系统兼容的问题,事先没有考虑到。项目经理圈子
对程序逻辑路径或数据范围的边界考虑不够周全,容易在边界条件出错或超过系统运行环境的复杂度。项目管理者联盟
系统运行环境的复杂,不仅用户使用的计算机环境千变万化,包括用户的各种操作方式或各种不同的输入数据,容易引起一些特定用户环境下的问题;在系统实际应用中,数据量很大,可能会引起强度或负载问题。项目管理者联盟
对一些实时应用系统,要进行精心设计和技术处理,保证精确的时间同步,否则容易引起时间上不协调,或不一致性所带来的问题。项目经理圈子
没有考虑系统崩溃后系统的自我恢复或数据的异地备份等问题,从而存在系统安全性、可靠性的隐患。项目管理者联盟
由于通信端口多、存取和加密手段的矛盾性等,会造成系统的安全性或适用型等问题。项目管理者联盟
(二)软件项目管理的问题。项目管理论坛
缺乏质量文化,不重视质量计划,对质量、资源、任务、成本等的平衡性把握不好,容易挤掉需求分析、评审、测试等时间,遗留的缺陷会比较多。系统分析时对客户的需求不是十分清楚,或者和用户的沟通存在一些困难。开发周期短,需求分析、设计、编程、测试等各项工作不能完全按照定义好的流程来。开发流程不够完善,存在太多的随机性和缺乏严谨的内审或评审机制,容易产生问题。文档不完善、风险估计不足等。项目管理者联盟
(三)团队工作的问题。bbs.mypm.net
不同阶段的开发人员相互理解不一致,软件设计人员对需求分析结果的理解偏差,编程人员对系统设计规格说明书中某些内容重视不够,或存在着误解。设计或编程上的一些假定或依赖性,没有得到充分的沟通。项目组成员技术水平参差不齐,新员工较多,或培训不够等原因也容易引起问题。项目管理者联盟
软件缺陷是由很多原因造成的,但如果把这些缺陷按整个软件开发周期的结果———软件产品(市场需求文档、规格说明书、系统设计文档、程序代码、测试用例等) 归类起来,统计结果发现,规格说明书是软件缺陷出现最多的地方。项目管理者联盟
软件产品规格说明书是软件缺陷存在最多的地方,主要原因如下:club.mypm.net
用户一般是非计算机专业人员,软件开发人员和用户的沟通存在较大困难,对要开发的产品功能理解不一致。项目管理培训
由于软件产品还没有设计、开发,完全靠想象去描述系统的实现结果,所以有些特性还不够清晰。项目管理论坛
用户的需求总是在不断变化的,容易引起前后文、上下文的矛盾和需求描述的不一致。www.mypm.net
需求分析没有得到足够重视。在规格说明书设计和写作上投人的人力、时间不足。排在产品规格说明书之后的是设计,编程排在第三位。而许多人印象中,软件测试主要是找程序代码中的错误,从分析看,这是一个误区。项目管理者联盟
|