欢迎来到天天文库
浏览记录
ID:26455800
大小:81.50 KB
页数:10页
时间:2018-11-27
《面向软件开发过程的软件质量控制》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、面向软件开发过程的软件质量控制IT人
2、2009-06-11
3、投稿新! 一、软件质量定义 ISO9000:2000《质量管理体系-基础和术语》中把产品定义为:“过程的结果”,而且这种结果是非自然性的,也就是说实际上这种结果是人们所预期的,而不像的打雷下雨那样具有自然性。 二、国内软件质量管理发展概况 在国内软件业开始诞生和起步的时候,软件企业在质量管理方面比较落后,大部分的软件企业没有设置专门的测试组织和招聘专职的测试人员。软件产品的质量完全依赖于程序设计和编写者的技术水平和工作效果。这种依赖使得软件产品的质量水平低下
4、。 虽然国内一些软件企业在2000年左右开始建立内部的测试小组,但仍然只起到了“事后检验”(即在已集成的版本上进行的一些基于用户操作层面上的测试和检验)的功能,大部分产品质量缺陷仍然无法及时和较全面的被发现和解决,更不用说“预防缺陷”。 即使这种具有“事后检验”功能的测试小组被建立,但由于没有必要的支持,以及人力资源投入严重不足,导致测试小组在软件质量上的贡献和业绩表现并不佳。同时由于对产品质量的认识缺乏全面的理解,仅仅建立一个测试小组对产品质量的提升很有限。 随着中国WTO的发展步伐,国内涌现出了越来越多的软件企业,
5、其中以外包企业为主,外包软件开发公司一般都需要取得一定的资质认证才能够接到来自国外的委托项目,其中以CMMI认证为主。国内软件行业即将迎来一个新的发展时期――规范与规模化。 三、面向软件开发过程的质量识别与控制 对是质量管理来说,结果很重要,过程也很重要。 我们的产品质量低下时,通常只讨论责任问题。 为什么、是什么原因导致产品质量低下?我们真正花在解决质量问题的时间非常之少。 (一)获取过程质量 有过程就必然有过程质量。 软件产品是需要经过一系列的过程才得以形成的 根据软件工程理论,在瀑布式软件开发过程中定义
6、了软件产品的基本开发过程:需求分析-->系统设计和详细设计-->代码编写/单元测试-->集成测试-->系统测试。 以瀑布式软件开发过程为例: (1)在软件需求定义阶段会产生“需求质量”; (2)在软件设计阶段会产生“设计质量”; (3)在软件实现阶段会产生“实现质量”(如程序代码质量、图像素材质量、音乐质量、版本制作质量等等)。 (二)过程质量控制 过程质量控制=规范+输入/输出标准+反馈(控制点或检查点) 从整个研发过程看,我们需要制定一些规章制度和项目研发规范来使工序部门之间的工作能够协调开展,比如设置工序
7、部门的工件输入、输出标准,让质量低下的工件不会流入下一个工序环节,起到“缺陷预防”的作用。 如果我们单独看某一个工序部门(如负责需求分析的产品组,为了确保需求描述文档的准确性与易读性,可以制定一种“需求设计规范”或“需求文档编写规范”来使需求设计工作实现内部理解一致,即让需求分析人员编写出格式统一,表述统一的需求文档。这样的文档才能便于程序员去理解和实现,同时测试人员也可以从这样的高质量需求文档中获益,提高测试工作质量。同样的在程序设计方面,可以制定“程序设计规范”、“代码编写规范”来实现程序设计质量的提升。 假设我们将
8、软件最终质量分解到过程中,为:“需求质量”、“设计质量”、“实现质量”、“发布和维护质量”。质量控制点一般设置在工序节点处,这样比较经济一些。如下图所示: 控制点一般采用“评审”或“审查”为主,当然技术手段也很重要。 1、需求管理与质量 目前,迭代式开发方式已基本替代了瀑布式开发方式而被越来越多的企业所采用。迭代式开发方式主要解决了风险与需求变更问题,那么需求管理在迭代式开发方式中也显得极为重要,需求管理好了,项目开发过程将会事半功倍,开发将会有节奏,项目可视化程度将会得到提高;需求管理不好,项目将面临频繁返工、功能混
9、乱、重构代码工程次数高、测试用例维护成本太高和工作低效率、低质量的境地。 无论是哪种软件产品(即使是游戏产品),软件需求必须首先规划好、组织好,比如采用FPA(FunctionPointAnalysis)或者MkII(ISO14143/1)。当前也有相当多的游戏开发人认为游戏是一种比较特殊的软件产品,游戏的内容基本上属于“创意”,传统的软件需求管理方法不适用于游戏项目。其实事实上并非如些,因为游戏也是软件,只是该软件的质量特性增加了“游戏性”,传统软件的功能性、性能性、安全性、稳定性等质量特性同样具备。 需求文档作为软件
10、特征的描述的主要载体,它是软件开发过程的起点。 需求质量特性一般可以有: 审查类别审查内容 需求完整性需求优先级 外部硬件,软件接口,通讯接口 计算部分,是否有必要的算法 正确性需求是否有相互矛盾的地方 需求是否超出项目范围 需求是否明确无二义性的描述 质量性能目标是否给
此文档下载收益归作者所有