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

发表于:2010-5-07 14:50

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:伍治平    来源:51Testing软件测试网采编

  摘要:随着项目的复杂度日趋复杂,设计及实现的重构日趋频繁,项目对质量管理的要求也越来越高。项目质量管理所涉及的内容是多方面的,本文根据实践积累,结合作者所管理项目的质量提升过程,讲述了几种项目过程质量管理方法的组合应用,并对项目质量管理工作的一些心得及经验进行了总结。

  关键词:项目质量管理

  一、前言

  软件项目的质量管理指的是保证项目满足其目标要求所需要的过程,它涵盖了项目开发的整个生命周期,从项目初期质量计划的编制、质量目标的设定,到项目需求分析、设计、实现、测试等过程中的质量控制、质量保证,到最后的项目验收。本文并不涉及项目质量管理的所有方面,而是描述了所在项目对质量控制的几种具有代表性的重要手段,并将项目质量控制工作的一些心得与大家分享,真诚希望能够为进行改进的组织带来帮助。

  二、背景

  在宝信研究开发部,所有项目的开发均遵循CMM/CMMI的过程模型,成熟的过程使得这些项目的质量一直保持在一个可控的范围内,且随着组织过程的持续改进与完善,项目的质量也在持续不断地提高。

  在部门过程的指导下,作者所管理的项目的定量项目管理工作不断深入,且建立了项目级的过程能力基线。通过对以往项目的历史数据的分析以及多个项目的积累,项目组陆续在同行评审、静态代码分析、自动化测试持续集成等几方面进行了深入的探索,并逐步将项目的质量提高到一个更高的水平。

  三、做法与实践

  1. 同行评审

  小规模、高覆盖率、高频率的同行评审。

  同行评审是由同行对软件工作产品实行的有组织、有计划的检查,以找出缺陷和需要更改的地方。同行评审的基本目标是在软件工程过程的早期,通过协助软件开发人员标识和修复其工作中的错误,改进软件质量。在以往的项目实践中,虽然项目组在项目的各个阶段都进行同行评审活动,但由于一些方面的原因(例如执行时间、频率),使得同行评审没有达到预期的效果。例如,对于需求说明书,如果在所有功能模块都分析完成后才进行同行评审,很显然,花1~2小时的时间去评审一份长达上百页、花费数周完成的文档,效果是可想而知的。

  针对同行评审执行效果不佳的问题,项目组在每次评审的规模、评审覆盖率及评审频率三方面进行了改进。对于每次评审的规模,项目组认为不应过多,最好是进行小规模的同行评审,例如,每次评审一个需求用例、一个模块的接口设计、一个实现类的代码等等,随着每次评审规模的减小,每次评审将更具针对性,当然也就能发现更多的潜在缺陷。由于评审规模的减小,每次评审的覆盖率将极大提高,例如,花1小时从1万行源代码中选择500行代码进行评审,评审的覆盖率为5%,而花10分钟评审100行代码,则可以做到100%的覆盖率。小规模、高覆盖率的同行评审是一种“轻量级”的同行评审,每次评审均只针对一个原子级的工作产品(例如一个用例、一个类等),在这种“轻量级”的评审方式的推动下,项目组的同行评审活动的频率非常高,平均达到每周进行6~7次同行评审,且每次都力争做到100%的覆盖率,这使得项目组的同行评审缺陷密度较之历史数据提高了数倍。

  2. 自动化测试

  高覆盖率的单元测试、功能验证测试、界面测试及负载测试。

  自动化测试是保证项目质量的一种重要手段,随着项目的复杂度日趋复杂,设计及实现的重构日趋频繁,自动化测试在项目质量控制中的作用将更加显著。在项目的需求、设计及编译阶段,项目组就始终如一地贯彻了自动化测试的思想。提起自动化测试,首先让人想到的就是单元测试,确实,项目组引入的第一种自动化测试便是单元测试。单元测试是一种白盒测试,针对实现代码进行逻辑验证。单元测试的引入虽然提高了项目质量,但由于单元测试主要关注于“单元”,因此,对于功能模块的集成、用户需求的验证以及性能的测试,单元测试就难以满足要求了。

  经过几个项目的实践及改进,在单元测试的基础上,项目组陆续引入了功能验证测试、界面测试及负载测试。功能验证测试是对用户操作场景进行集成测试,以验证用户提出的需求是否实现;界面测试则是通过录制测试脚本,模拟用户对软件进行操作,以达到功能测试的目的;按照一定的策略,通过模拟多个用户并发操作,可以进行项目的负载测试。功能验证测试、界面测试及负载测试是对单元测试的重要补充。

  目前,项目组通过单元测试、功能验证测试、界面测试及负载测试等的配合使用,非界面代码自动化测试的代码覆盖率达到80%左右,主场景界面的测试覆盖率达到60%左右,这极大地降低了项目的缺陷密度,使得项目的质量提高到一个较高的水平。

31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号