UML软件工程组织

软件不当测试的经济学影响
谭朝晖(转载自计算机世界报)    2002年08月22日

 

三、软件缺陷的影响的经济学模型

  如前所述,测试的不当性是相对测试的可改进性而言的。所以,一般理解不当测试的成本等同于改进后测试的获利。

  不当测试的经济学影响可以表征为不当测试的获利和改进后测试的获利差,即:


  EW=Σ△DP+Σ△EP

  其中:

  EW表示不当测试的经济学影响;
  Σ△DP表示所有开发商在不同测试环境下的获利差;
  Σ△EP表示所有最终用户在不同测试环境下的获利差;

3.1 软件开发商获利分析

3.1.1 软件开发商成本获利计算方法

  软件开发商的获利是其收入和成本之差。
  收入值等于软件产品的数量和价格的乘积,即:
  TR=pq
  其中,TR表示收入,p表示软件产品价格,q表示软件产品数量。

  软件开发商的成本包括研发(R&D)成本和生产成本。研发成本是产品开发过程(包括测试活动)中一次性消耗的固定成本。生产成本是产品生产、分发和售后服务过程中发生的成本。

  假定在研发过程中需消耗n种资源(X11、…X1n),每种资源的单价分别为W11、….W1n,则研发成本为:

3.1.2 影响软件开发商获利的因素

  研发成本(尤其是测试过程)会严重影响软件质量,如下式所示:
  Q=f(ΣX1i)+e

  其中,Q表示软件质量。f’>0,f”<0

  软件质量对于软件的价格和销售量有非常大的影响,从而直接影响软件生产商的收入。

  研究表明,影响软件质量的边际成本呈指数增长,而产品发布后由于软件质量好减少售后服务的边际收入则增长平缓。换言之,要提高产品质量,将越来越需要付出更大的努力。而不管质量如何,售后服务的工作量未见显著变化。这是因为,售后服务的工作量的多少主要取决于用户的需求,用户能忍耐的程度。另一方面,软件售后服务不象硬件维护,需要到现场的次数少、不需要更换部件、软件故障具有很多共性。

  作为软件开发商,总是在上述因素(收入、边际成本、边际收入等)中寻找一个平衡点,以达到利润最大化的目的。

3.2 最终用户获利分析

  最终用户的收入同样等于其产品的单价乘以产品的数量,即TR=py。

  最终用户的成本包括四个部分:
  (1) 购前成本,即购买软件之前发生的成本,如产品选型分析、招标组织费用等;
  (2) 软件成本,即购买软件的费用;
  (3) 购后成本,即购买软件之后发生的成本,如软件维护;
  (4) 其他和该软件无关的一些费用。

  依前述模型,最终用户的获利可以表达为:

3.3 软件质量对市场价格的影响

  在市场经济下,软件开发商将软件产品价格确定在MR=MC这一点,即边际收入等于边际成本,如图1所示。软件质量提高时,有望增加销售量,这样用于售后服务的边际成本会降低,即MC曲线会下移。由MR=MC确定的的价格会上涨,净收入也会提高。

  当然,最终用户对软件质量存在一个可忍受和可接受的范围。如果软件质量始终处于最终用户不能接受的范围,则上述分析结果不能成立。

3.4 测试工具对成本的影响

  测试工具对成本的影响体现在如下几个方面:

  (1) 改进的测试工具会导致“质量鸿沟”变窄。所谓质量鸿沟是指最终用户能接受的软件质量水平的波动范围。

  (2) 改进的测试工具有助于提高软件质量,从而减少售后服务(发现并纠正软件故障)的成本,并不断推动软件质量的持续提高。

  (3) 测试工具对研发成本的影响取决于最终用户对软件质量的评估结果。总的来说,若不考虑市场的影响,改进的测试工具需要消耗的测试资源和其他成本会减少。

  (4) 改进的测试工具有可能最终促进产生公认的软件质量评估标准,最终用户据此评判软件产品的质量,而不是象现在这样,对于软件质量“王婆卖瓜,自卖自夸”。统一的标准将促进软件生产商增加投资,不断提高软件质量。

3.5 不当测试的时间成本

  如前所述,不当测试延迟了软件产品推向市场的时间,因而需支付时间代价。时间代价主要体现在:

  (1) 后入市场者需要支付更多的“学习”费用。尤其是先入市场者建立了事实标准、掌握了核心技术和知识产权后,后入市场者的“学费”非常高。

  (2) 随着软件产品被越来越多的用户接受,产品的价值得以提升,先入市场者具有很多天然的优势。

  (3) 一般说来,一旦最终用户熟悉老产品、掌握了老产品后,他不见得很容易的改变去使用新的产品,而更愿意流在“贼船”上。

  最近的研究发现,先入市场者能保持十年的优势。

四、结论

  软件缺陷对软件开发商、最终用户有很大影响,并可能给国民经济带来巨大损失。通过改进软件的测试方法,有望弱化软件缺陷的负面影响。

 



版权所有:UML软件工程组织