1316016 发表于 2009-8-6 21:12:08

一个预估自动化开发任务量的方法

我想了一个预估自动化开发任务量的公式,大家一起看一下,在影响因素或者权值,初始值 或者公式本身有什么需要改进的。

在完成一个Auto Test Case的时候,影响我们所用时间的因素有:

          a. Frame的大小: 通过界面中的对象多少而定
          b. Frame是否为新开发的,这将直接影响到我们代码及对象库的重用
          c.操作步骤归类,基本可以归纳为:增加,修改,查询,删除及一些过渡的步骤,并且可以将步骤简单的归纳为:
                Function OperationName()                  
                     判断界面是否切换正确或者是否存在
                     Click new / update / select / delete
                     input data
                     Click Submit / Save
                     Check new / update / select / delete succ or not
                End Function
          d.操作时是否有分支,
                  如删除一个ASIT,会提示是否需要应用在Old App中,和是否应用到其他的ASIT Group中,这样就有四个分支
          e.某项操作是否需要循环
                     如:search CAP,需要输入不同类型的数据,但是开发代码不必重复开发,只需在DataTable中构建数据
          f:Debug Time
                     与代码量成正比
          g:Case 设计与TestLink上传
                     与代码量成正比
鉴于以上原因,我简单的构造了一个函数,计算一个Test Point开发所需要的时间

Frame Type Description 权值Operate Type Description ManDay
Old FrameA 0~5 Object 0.1Add 一个功能四分之一天 0.25
Old FrameB 5~20Object 0.7Edit 一个功能四分之一天 0.25
Old FrameC more than 20 1Search 一个功能四分之一天 0.25
New FrameA 0~10 Object 1Delete 一个功能四分之一天 0.25
New FrameB 10~20Object 2Operation Step 一个功能四分之一天 0.25
New FrameC more than 20 3   
      
Type Description 系数   
Switch 一个分支,五分钟 0.010416667   
Loop 一个分支,五分钟 0.010416667   
Debug 总量的0.1 0.1   
Case Doc 总量的0.1 0.1   



ManDay = (OperateTypeManDay + (LoopNum -1) * 系数 + SwitchNum * 系数)* FrameType权值* (1 + Debug系数 + CaseDoc系数)      (LoopNum不为0,如果为0,则直接不写该项)

Exp1: 在一个新的,Object为15个的Frame,开发删除功能,且删除功能有四个分支(是否需要应用在Old App中,是否应用到其他的ASIT Group),没有Loop

ManDay = (0.25 + 4*0.010416667) * 2 *(1 + 0.1 + 0.1) = 0.7

Exp2: 在一个旧的,Object为10个的Frame,开发查询功能,没有分支,Loop为20

ManDay = (0.25 + (20-1 )*0.010416667 ) * 0.7 = 0.37625

woza 发表于 2009-8-7 09:22:05

做自动化和做开发类似。多数时间是花在设计上面。如果LZ计算的东西都知道了,其实设计也基本完成了,写代码很快的。貌似做估计的时候,一般不会去估计”写“代码要花多少时间,因为没有意义。

不过LZ的实践精神非常值得我辈学习。

[ 本帖最后由 woza 于 2009-8-7 09:23 编辑 ]
页: [1]
查看完整版本: 一个预估自动化开发任务量的方法