面向软件开发过程的软件质量控制.doc
面向软件开发过程的软件质量控制 一、软件质量定义 ISO9000:2000《质量管理体系-基础和术语》中把产品定义为:“过程的结果”,而且这种结果是非自然性的,也就是说实际上这种结果是人们所预期的,而不像的打雷下雨那样具有自然性。 二、国内软件质量管理发展概况 在国内软件业开始诞生和起步的时候,软件企业在质量管理方面比较落后,大部分的软件企业没有设置专门的测试组织和招聘专职的测试人员。软件产品的质量完全依赖于程序设计和编写者的技术水平和工作效果。这种依赖使得软件产品的质量水平低下。 虽然国内一些软件企业在 2000 年左右开始 建立内部的测试小组,但仍然只起到了“事后检验”(即在已集成的版本上进行的一些基于用户操作层面上的测试和检验)的功能,大部分产品质量缺陷仍然无法及时和较全面的被发现和解决,更不用说“预防缺陷”。 即使这种具有“事后检验”功能的测试小组被建立,但由于没有必要的支持,以及人力资源投入严重不足,导致测试小组在软件质量上的贡献和业绩表现并不佳。同时由于对产品质量的认识缺乏全面的理解,仅仅建立一个测试小组对产品质量的提升很有限。 随着中国 WTO 的发展步伐,国内涌现出了越来越多的软件企业,其中以外包企业为主,外包 软件开发公司一般都需要取得一定的资质认证才能够接到来自国外的委托项目,其中以 CMMI 认证为主。国内软件行业即将迎来一个新的发展时期――规范与规模化。 三、面向软件开发过程的质量识别与控制 对是质量管理来说,结果很重要,过程也很重要。 我们的产品质量低下时,通常只讨论责任问题。 为什么、是什么原因导致产品质量低下?我们真正花在解决质量问题的时间非常之少。 (一)获取过程质量 有过程就必然有过程质量。 软件产品是需要经过一系列的过程才得以形成的 根据软件工程理论,在瀑布式软件开发 过程中定义了软件产品的基本开发过程:需求分析 系统设计和详细设计 代码编写 /单元测试 集成测试 系统测试。 以瀑布式软件开发过程为例: ( 1)在软件需求定义阶段会产生“需求质量”; ( 2)在软件设计阶段会产生“设计质量”; ( 3)在软件实现阶段会产生“实现质量”(如程序代码质量、图像素材质量、音乐质量、版本制作质量等等)。 (二)过程质量控制 过程质量控制=规范 +输入 /输出标准 +反馈(控制点或检查点) 从整个研发过程看,我们需要制定一些规章制度和项目研