说起质量管理,在ISO/GJB9000体系,从产品开发与设计、采购、工艺、生产到不合格品管理,有一揽子解决方案;在CMM/GJB5000中,也有软件质量保证过程域,对软件的过程和产品的符合性进行客观评价。
但是,以上两种方式都不是软件质量管理。前者,不能适应软件的研制过程;后者,单纯的规范性检查并不能确保软件的质量。
软件质量管理应当汲取二者之长,不仅抓过程质量,同时也要抓产品质量;既要建立有效的质量目标,又要借助技术手段实现质量计划。
具体来说,软件质量管理就是要制定有效的软件质量目标,利用质量保证、技术评审、软件测试等手段,再加以过程改进,确保质量目标的实现。
1、制定软件的质量目标
在谈软件的质量目标之前,先谈谈什么是软件质量。对于质量,有这样一个非常形象的比喻:
古时候人们以为长得结实、饭量大就是健康(廉颇就曾被问“尚能饭否”置疑其身体是否健康),这显然是不科学的。现代人总是通过考察多方面的生理因素来判断是否健康,如测量身高、体重、心跳、血压、血液、体温等。如果上述因素都合格,那么表明这人是键康的。类似的,软件质量也是许多质量属性的综合体现,通过改善软件的各种质量属性,从而提高软件的整体质量(否则无从下手)。
软件的质量属性有很多,如正确性、精确性、健壮性、可靠性、容错性、性能、易用性、安全性、可扩展性、可复用性、兼容性、可移植性、可测试性、可维护性、灵活性等。
在这些软件质量因素中,以往在大多重视软件的正确性和性能这两个因素,但对于军用软件,特别是关键程度较高的软件,就不应仅仅把这两个因素作为质量目标,还就将健壮性、可靠性、安全性等一并列为质量目标。
软件的质量要素如此之多,受时间和成本所限,开发人员不可能把所有的软件质量属性做好,所以,对于特定的软件,要分析出那些对软件整体质量影响最大的质量因素和客户最关心的质量因素。
在确定软件的质量因素之后,应以量化的形式定义软件的质量目标。对于正确性,可以定义这样的质量目标:
软件需求的实现率100%。
软件需求的测试覆盖率100%。
测试用例通过率100%。
对于可靠性、安全性这样的质量因素,制订质量目标时应从需求定义开始考虑:
可靠性需求描述100%可测试。
2、制订质量计划
质量计划包括质量保证计划、技术评审计划和软件测试计划。质量计划应围绕质量目标来制订。
例如:对于“软件需求实现率100%”这样的质量目标,质量保证计划就应该包括软件研制任务书产品审核、软件需求规格说明产品审核、软件设计说明产品审核、代码审核等产品评价;也包括需求管理过程审核、需求开发过程审核、技术解决方案过程审核等过程评价计划。而技术评审计划则要做好软件研制任务书、需求规格说明、软件设计说明的技术评审。和质量目标密切相关的这些质量活动不得裁剪。
3、做好质量控制的准备工作
无论是质量保证、技术评审还是软件测试,都应对本年度的软件质量目标有针对性地做好准备工作。
对于“软件需求实现率100%”这样的质量目标,质量保证活动定义产品检查单时应包括“需求规格说明中的需求追踪是否完整”、“设计说明中的需求追踪是否完整”这样的检查项;定义过程检查单时应包括“建立的需求跟踪矩阵是否完整”这样的检查项。而在需求规格说明的技术评审检查单应当包括“需求规格说明是否覆盖全部的软件任务书的各项需求”;在软件设计说明技术评审检查单中应包括“软件部件设计是否覆盖全部的软件需求”这样的检查项。
4、做好缺陷跟踪
对质量保证、技术评审和软件测试发现的问题,要做好缺陷跟踪,确保发现的问题得到解决,并分析缺陷原因,建立经验教训库,避免同样的问题重复发生。
5、做好过程改进
如果发现由于过程原因导致上述质量活动不能顺利进行,或者产生普遍性的问题,应及时提交给EPG,以对软件过程即时或事后进行改进。软件开发结束时,应对软件的质量问题进行原因分析,并通过对软件过程改进消除这些问题原因,以帮助软件质量管理的水平进一步提高。
综上所述,建议的软件质量管理应当有明确的质量目标,有针对性的质量计划,做好质量保证、技术评审和软件测试,以及质量问题的跟踪和过程改进。
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。