您的位置:软件测试 > 软件项目管理 > 成本管理 >
如何估算测试工作量
作者:网络转载 发布时间:[ 2013/5/8 16:52:32 ] 推荐标签:

代码行, 是来源与英文line of code.那么代码行分析方法是是对软件产品的源代码的行数进行测量.但是仔细想想,可能会有以下疑问:

    是计算物理行数,还是程序的命令数量?
    空行是否计算?
    注释是否计算?
    预定义文件是否计算?
    不同版本如何计算?
    这里面是否设计到一系列的规则定义问题?
    开发过程种的配置脚本,编译脚本是否计算?
    共享文件(例如共享的开发库文件种的头部文件)如何计算?

那么现在的一般规则是计算物理行数,不计算空行,不计算注释.对于其他选项,一般为计算源文件根目录下的所有文件.所以代码行指的是指所有的可执行的源代码行数,包括可交付的工作控制语言 (JCL : job control language) 语句、数据定义、数据类型声明、等价声明、输入 / 输出格式声明等。常使用的单位有: SLOC(single line of code)、KLOC(thousand lines of code)、 LLOC(logical line of code)、PLOC(physical line of code)、NCLOC (non-commented line of code)、DSI(delivered source instruction)。其中SLOC和KLOC比较常用.

代码行分析方法对技术人员是有意义的,因为它的确从某种程序上反映了软件的规模,并且是物理上可测量的.但是这种方法也存在如下诸多问题.

    在需求、计划、设计阶段因为本身没有代码行,需要靠估算来解决。总体上估算准确度不高,除非有多年的类似项目经验。估算的准确程度取决于是否有同类项目的数据和估算人员的经验。在编码、测试、实施阶段可以直接数出来。
    在满足客户的要求以及反映进度方面的能力差强人意,对于管理者意义不大.因此项目很难从整体上跟踪代码行数的指标采取行动.
    近来可视化编程工具的大量采用,以及模板库,类库的广泛采用,在程序的结果中有大量自动生成的代码或者复杂的自动配置脚本或资源文件设置,在采用这些工具的项目中,用代码行分析方法得到数值的意义已经大大降低.
    对于不同的编程语言来说,代码行也缺乏可信转换方式.

尽管代码行方法有很多缺点,但是由于它容易使用,操作成本低(如果采用适当的支持工具),还是推荐使用代码行作为软件项目管理的参考和补充手段.
(三) COCOMO模型

代码行分析方法作为一种度量估计方法,在20世纪80和90年代得到非常广泛的发展,在业界开发了又许多中估算工作量和进度的参数模型,其中的COCOMO模型,它的新版本是COCOMO II模型.

COCOMO,英文全称为constructive cost model,中文为构造性成本模型.它是一种精确、易于使用的,基于模型的成本估算方法,早由勃姆 (Boehm) 于 1981 年提出。从本质上说是一种参数化的项目估算方法,参数建模是把下那个目的某些特征作为参数,通过建立一个数字模型预测项目成本(类似于居住面积作为参数计算的整体的住房成本).

在COCOMO模型中,工作量调整因子(Effort Adjustment Factor, EAF)代表多个参数的综合效果,这些参数使得项目可以特征化和根据COCOMO数据库中的项目规格化.每个参数可以定位很低,低,正常,高,很高.每个参数都作为乘数,其值通常在0.5到1.5之间,这些参数的乘积作为成本方程中的系数.

COCOMO用3个不同层次的模型来反映不同程度的复杂性,他们分别为

    基本模型 (Basic Model). 是一个静态单变量模型,它用一个以已估算出来的源代码行数 (LOC) 为自变量的函数来计算软件开发工作量。
    中间模型 (Intermediate Model). 则在用 LOC 为自变量的函数计算软件开发工作量的基础上,再用涉及产品、硬件、人员、项目等方面属性的影响因素来调整工作量的估算。
    详细模型 (Detailed Model) 包括中间 COCOMO 模型的所有特性,但用上述各种影响因素调整工作量估算时,还要考虑对软件工程过程中分析、设计等各步骤的影响。

同时根据不同应用软件的不同应用领域,COCOMO模型划分为如下3种软件应用开发模式:

    组织模式(Organic Mode).这种应用开发模式的主要特点是在一个熟悉稳定的环境种进行项目开发,盖项目与近开发的其他项目有很多相似点,项目相对较小,而且并不需要许多创新.
    嵌入式应用开发模式 (Embedded Mode).在这种应用开发模式种,项目受到接口要求的限制.接口对整个应用的开发要求非常搞,而且要求项目有很大的创新,例如开发一种全新的游戏.
    中间应用开发模式 (Semidetached Mode).这时介于组织模式和嵌入式应用开发模式之间的类型.

COCOMO 模型具有估算精确、易于使用的特点。在该模型中使用的基本量有以下几个: (1)DSI( 源指令条数 ) ,定义为代码行数,包括除注释行以外的全部代码。若一行有两个语句,则算做一条指令。 (2)MM( 度量单位为人月 ) 表示开发工作量。 (3)TDEV( 度量单位为月 ) 表示开发进度,由工作量决定。 (4)COCOMO 模型重点考虑 15 种影响软件工作量的因素,并通过定义乘法因子,从而准确、合理地估算软件的工作量。

但是COCOMO也存在一些很严重的缺陷,例如分析时的输入时优先的,不能处理意外的环境变换,得到的数据往往不能直接使用,需要校准,只能得到过去的情况总结,对于将来的情况无法进行校准等.

(四)功能点分析方法之一-原理篇

功能点分析法 (FPA:function point analysis) 是一种相对抽象的方法,是一种”人为设计”出的度量方式,主要解决如何客观,公正,可重复地对软件地规模进行度量的问题.

FPA 法由 IBM 的工程师艾伦 · 艾尔布策 (Allan Albrech) 于 20 世纪 70 年代提出,随后被国际功能点用户协会 (IFPUG:The International Function Point Users' Group) 提出的 IFPUG 方法继承,从系统的复杂性和系统的特性这两个角度来度量系统的规模,其特征是: “ 在外部式样确定的情况下可以度量系统的规模 ” , “ 可以对从用户角度把握的系统规模进行度量 ” 。功能点可以用于 “ 需求文档 ” 、 “ 设计文档 ” 、 “ 源代码 ” 、 “ 测试用例 ” 度量,根据具体方法和编程语言的不同,功能点可以转换为代码行。经由 ISO 组织已经有多种功能点估算方法成为国际标准,如: ① 加拿大人艾伦 · 艾布恩 (Alain Abran) 等人提出的全面功能点法 (full function points) ; ② 英国软件度量协会 (UKSMA : United Kingdom Software Metrics Association) 提出的 IFPUG 功能点法 (IFPUG function points) ; ③ 英国软件度量协会提出的 Mark II FPA 功能点法 (Mark II function points) ; ④ 荷兰功能点用户协会 (NEFPUG:Netherlands Function Point Users Group) 提出的 NESMA 功能点法,以及软件度量共同协会 (COSMIC:the Common Software Metrics Consortium) 提出的 COSMIC-FFP 方法,这些方法都属于艾尔布策功能点方法的发展和细化。

功能点分析方法具体包括两部分,一部分是测量的具体步骤和方法,通常称为功能点规模测量方法(Functional Size Measurement, FSM),另一部分则是功能点分析方法的具体应用.除非特别说明,通常的情况下并不分开讨论,而是统称为功能点分析方法(Functional Point Analysis, FPA),包括对应用软件的规模测量活动和后续应用测量结果进行适当的项目管理活动.

功能点分析方法有一些相对完整的,自成体系的概念,主要包括基础功能部件(Base Function Component, BFC), BFC类型,边界,用户,本地化,功能领域,功能规模,功能点规模测量的范围,功能点规模测量过程,功能点规模测量方法,功能性需求,质量需求,技术性需求,数值调整以及调整因子等15个关键概念.

功能点分析的基本计数是依据标准计算出的系统 ( 或模块 ) 中所含每一种元素的数目:

① 外部输入数 (EI : external input) :计算每个用户输入,它们向软件提供面向应用的数据。输入应该与查询区分开来,分别计算。

② 外部输出数 (EO : external output) :计算每个用户输出,它们向软件提供面向应用的信息。这里,输出是指报表、屏幕、出错信息,等等。一个报表中的单个数据项不单独计算。

③ 外部查询数 (EQ : external query) :一个查询被定义为一次联机输入,它导致软件以联机输出的方式产生实时的响应。每一个不同的查询都要计算。

④ 内部逻辑文件 (ILF : internal logical file) :计算每个逻辑的主文件,如数据的一个逻辑组合,它可能是某个大型数据库的一部分或是一个独立的文件。

⑤ 外部接口文件 (EIF : external interface file) :计算所有机器可读的接口,如磁带或磁盘上的数据文件,利用这些接口可以将信息从一个系统传送到另一个系统。

上一页12下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd