技术开发 频道

为盈利而测试

    •  软件测试的经济目的 

    事实上,作为软件开发企业来说,投入人力,资金搞软件测试的最终目的还是离不开经济效益。而对与测试项目的管理也不能离开这个大前提。软件测试的经济效益主要来自以下两个方面。一是满足用户需求,提高产品的竞争力,最终提高产品的销售量。二是尽早发现缺陷,降低售后服务成本。而软件测试的最终目的就是使它带来的经济效益最大化。

    •  满足用户需求,提高产品的竞争力,最终提高产品的销售量。

    一个学生编写程序可能是为了学习语言,算法,技巧等知识。一个科研人员编写程序可能是为了验证某个理论,计算某个结果,或实现某个算法。而一个软件企业生产一个软件则只有一个目的 – 盈利。同其他所有企业一样,要盈利,首先要把用户当作上帝。只有满足了用户的需求,并能使用户用的方便、用的放心,用户才会心甘情愿地掏钱。所以作为软件品质的最后把关者,软件测试要把用户的想法放在第一位。从设计测试计划到构造测试用例,从实际进行测试到跟踪缺陷处理,都要从用户的角度去考虑每一个问题。

    首先,用户花钱购买软件实际上是购买软件的功能。所以软件测试首先要保证用户所需的功能都能正确而可靠地实现。在设计测试计划时应从用户实际可能使用本软件的基本流程或典型使用脚本出发,分析各个功能的重要性和相关性,再根据现有资源及时间构造和筛选测试用例。

    其次,要想保住老用户、吸引新用户,产品的质量是关键。对于一个传统工业企业来说,一个产品的质量也许可以用一连串的行业指标来界定;而对软件企业来说,一个软件的质量是完全由用户来评价的。用户对软件质量的评价通常包含下列五个方面:

    •  可靠性

    •  安全性

    •  性能

    •  易用性

    •  外观

    因而软件测试也要针对这几个方面构造相应的测试用例。

    •  尽早发现缺陷,降低后继质量成本

    那么是不是说找缺陷就不重要了呢?当然不是。软件测试的另一个经济目标是尽早发现缺陷,降低修复及售后服务成本。显然,每一个已发布产品中的缺陷除了会影响产品及企业的声誉外,还会直接增加产品的售后服务成本。无论是派人到现场调试,或研发、发布补丁程序都要远比在发布前的修复成本昂贵数十倍,甚至数百倍。

    事实上,许多统计资料表明,开发过程每前进一步,发现和修复一个缺陷的平均成本要提高 10 倍。在代码复查阶段,平均 1-2 分种能发现和修复一个缺陷,在初始测试阶段要 10-20 分钟。在集成测试时要花费 1 个小时或更多,在系统测试时要花 10-40 个小时。所以软件测试除了可以揭示和评估软件产品的可靠性之外的首要任务,就是要在开发过程中尽可能早地找到可能存在的各种缺陷,并找出非常好的的解决方案。一旦在某一 “ 变换 ” 过程的工作产品成了次品,那末后继的所有 “ 变换 ” 过程的工作产品也永远是一个次品。

    现在再来分析上节所导出的成本公式 (3)

    C n = (k 1 k 2 …k n N 0 +k 2 k 3 …k n NS 1 +k 2 k 3 …k n NR 1 +…+NS n +NR n )×(CT n +CR n )

    再设定不再是把软件测试和修复都留到最后,而是前移到每个 “ 变换 ” 过程 Pi 后,且设定对每个中间工作产品的缺陷捕获率和缺陷修复率分别为 RTi 和 RRi ,那末整个软件产品的测试和缺陷修复总成本为:

    CT = CT 1 +CT 2 +CT 3 +…+CT n

    = N 0 ×RT 1 (CT 1 + RR 1 ×CR 1 )

    + (N 0 (1-RT 1 ×RR 1 )+NS 1 +NR 1 ))×RT 2 (CT 2 + RR 2 ×CR 2 )

    + (N 0 (1-RT 1 ×RR 1 )+NS 1 +NR 1 ))×((1-RT 2 ×RR 2 )+NS 3 +NR 3 ))RT 3 (CT 3 + RR 3 ×CR 3 )

    +……

    + (N 0 (1-RT 1 ×RR 1 )+NS 1 +NR 1 ))×((1-RT 2 RR 2 )+NS 3 +NR 3 ))×…

    ×( (1-RT n-1 ×RR n-1 )+NS n +NR n )…))×RT n (CT n + RR n ×CR n ) …… (4)

    由 (4) 可知,当

    N 0 =NS 1 =NR 1 = NS 2 =NR 2 =…=NS n =NR n =0

    时,有

    CT=0

    显见,这就是人们期望的在每个 “ 变换 ” 过程 P i 中均实现最理想的 “ 零 ” 缺陷目标的结果。但是,这是不可能的,因为至今软件项目涉及的诸多的 “ 变换 ” 过程 P i 还是人工介入的,尤其是由多人或众多团队介入后,引入缺陷是难免的,所以,控制成本的中心任务之一就是如何预防和减少对每一 “ 变换 ” 过程 P i 所引入的缺陷数。现在再回到上节中的 “ 变换 ” 过程 P i 模型 -- 图- 2 ,即:

0
相关文章