软件的质量成本有哪些?
质量成本是为了使产品满足一定的质量要求而进行的质量活动的总成本,包括了预防、检测和修复缺陷的相关工作需要花费的成本。
通常情况下,质量成本可以分为四个类别:预防成本、检测成本、内部失效成本、外部失效成本。
对于软件质量成本来说也是这样,所不同的是软件的这几种成本都有它特有的一些活动存在。
预防成本
预防成本指的是用来预防质量问题产生的活动成本。对于软件产品来说,这些质量问题可能包括代码错误、设计错误、用户手册错误,以及维护性差的复杂的代码等。
为了预防这些软件质量问题的产生而进行的产生预防成本的主要活动包括:
培训:通过对开发人员进行软件开发过程、方法和工具的培训,可以极大地降低质量问题的产生。而由此带来的培训费用就是预防成本,其中包括培训讲师、场地和各种培训设备的费用,以及参加培训人员投入的时间。
制定和推广开发过程:好的软件开发过程能够有效地预防缺陷,基于GJB5000A/CMMI的软件开发过程,已经被证明能够很好地预防缺陷的发生。这种预防成本的组成可能包括:开发过程的制定、推广和更新所需要投入人力、引进的工具和设备。
建立和维护软件重用库:软件复用开发可以极大地提高软件开发的效率,预防部分质量问题。软件复用开发需要建立和维护软件重用库,而重用库的建立需要投入人员进行分析、设计和测试,同时也需要有相应的工具支持可重用构件的管理、检索以及下载使用。这些都是预防成本。
检测成本
检测成本是指在开发过程中或开发活动结束之后,用来发现软件质量问题的活动成本。它与预防成本的区别在于:检测成本以发现缺陷为目的,而预防成本以避免缺陷的发生为目的。和软件质量检测成本有关的活动有:
代码走查。
单元测试。
集成测试。
系统测试。
验收测试。
设计评审。
内部失效成本
内部失效成本是指在产品交付给客户之前产生的失效成本。对于软件来说,主要就是在开发过程中由于修复评审、测试等活动发现的错误、缺陷而带来的成本。具体来说,与内部失效成本有关的活动有:
各种开发和管理活动的返工。
缺陷修复。
确认测试和回归测试。
延迟交付的直接成本。
延迟交付的机会成本。
外部失效成本
外部失效成本是在产品交付给客户之后产生的失效成本。对于软件来说,就是在软件交付给用户之后,因处理用户在使用过程中出现的质量问题所带来的成本。和外部失效成本有关的活动包括:
软件维护。
其他技术支持活动。
丢失客户。
公司声誉损失。
总的软件质量成本将是这四个类别的成本的总和。在统计软件质量成本时需要注意的是,这四种类型的质量成本并不是完全独立的,有时候它们之间是相互重叠的。
这正是:
质量成本四类型,预防检测要进行
内外失效有成本,统计起来不轻松
参考书目:软件测试管理,作者:郑文强,马均飞,出版社:电子工业出版社