过程质量管理实践组合应用

  仪器信息网 ·  2011-04-02 14:41  ·  11510 次点击
随着项目的复杂度日趋复杂,设计及实现的重构日趋频繁,项目对的要求也越来越高。项目质量管理所涉及的内容是多方面的,本文根据过程质量管理的实践积累,结合作者所管理项目的质量提升过程,讲述了几种项目过程质量管理方法的组合应用,并对项目质量管理工作的一些心得及经验进行了总结。
软件项目的质量满足其目标要求所需要的过程,它涵盖了项目开发的整个生命周期,从项目初期计划的编制、质量目标的设定,到需求、设计、实现、测试等过程中的质量控制、质量保证,到最后的项目验收。本文并不涉及项目质量管理的所有方面,而是描述了所在项目对质量控制的几种具有代表性的重要手段,并将项目质量控制工作的一些心得与大家分享,真诚希望能够为进行改进的组织带来帮助。
在宝信研究开发部,所有项目的开发均遵循CMM/CMMI的过程模型,成熟的过程使得这些项目的质量一直保持在一个可控的范围内,且随着组织过程的持续改进与完善,项目的质量也在持续不断地提高。
在部门过程的指导下,作者所的的定量项目工作不断深入,且建立了项目级的过程能力基线。通过对以往项目的历史数据的分析以及多个项目的积累,项目组陆续在同行评审、静态代码分析、自动化测试、持续集成等几方面进行了深入的探索,并逐步将项目的过程质量管理提高到一个更高的水平。
小规模、高覆盖率、高频率的同行评审。
同行评审是由同行对产品实行的有组织、有的检查,以找出缺陷和需要更改的地方。同行评审的基本目标是在软件工程过程的早期,通过协助软件开发人员标识和修复其中的错误,改进质量。在以往的项目实践中,虽然项目组在项目的各个阶段都进行同行评审活动,但由于一些方面的原因(例如执行时间、频率),使得同行评审没有达到预期的效果。例如,对于需求说明书,如果在所有功能模块都分析完成后才进行同行评审,很显然,花1~2小时的时间去评审一份长达上百页、花费数周完成的文档,效果是可想而知的。
针对同行评审执行效果不佳的问题,项目组在每次评审的规模、评审覆盖率及评审频率三方面进行了改进。对于每次评审的规模,项目组认为不应过多,最好是进行小规模的同行评审,例如,每次评审一个需求用例、一个模块的接口设计、一个实现类的代码等等,随着每次评审规模的减小,每次评审将更具针对性,当然也就能发现更多的潜在缺陷。由于评审规模的减小,每次评审的覆盖率将极大提高,例如,花1小时从1万行源代码中选择500行代码进行评审,评审的覆盖率为5%,而花10分钟评审100行代码,则可以做到100%的覆盖率。小规模、高覆盖率的同行评审是一种“轻量级”的同行评审,每次评审均只针对一个原子级的产品(例如一个用例、一个类等),在这种“轻量级”的评审方式的推动下,项目组的同行评审活动的频率非常高,平均达到每周进行6~7次同行评审,且每次都力争做到100%的覆盖率,这使得项目组的同行评审缺陷密度较之历史数据提高了数倍。
高覆盖率的单元测试、功能验证测试、界面测试及负载测试。
自动化测试是保证项目质量的一种重要手段,随着项目的复杂度日趋复杂,设计及实现的重构日趋频繁,自动化测试在项目质量控制中的作用将更加显着。在项目的需求、设计及编译阶段,项目组就始终如一地贯彻了自动化测试的思想。提起自动化测试,首先让人想到的就是单元测试,确实,项目组引入的第一种自动化测试便是单元测试。单元测试是一种白盒测试,针对实现代码进行逻辑验证。单元测试的引入虽然提高了项目质量,但由于单元测试主要关注于“单元”,因此,对于功能模块的集成、用户需求的验证以及性能的测试,单元测试就难以满足要求了。
经过几个项目的实践及改进,在单元测试的基础上,项目组陆续引入了功能验证测试、界面测试及负载测试。功能验证测试是对用户操作场景进行集成测试,以验证用户提出的需求是否实现;界面测试则是通过录制测试脚本,模拟用户对软件进行操作,以达到功能测试的目的;按照一定的策略,通过模拟多个用户并发操作,可以进行项目的负载测试。功能验证测试、界面测试及负载测试是对单元测试的重要补充。
目前,过程质量thldl.org.cn项目组通过单元测试、功能验证测试、界面测试及负载测试等的配合使用,非界面代码自动化测试的代码覆盖率达到80%左右,主场景界面的测试覆盖率达到60%左右,这极大地降低了项目的缺陷密度,使得项目的质量提高到一个较高的水平。

0 条回复

暂无讨论,说说你的看法吧!

 回复

你需要  登录  或  注册  后参与讨论!