发布新日志

  • 测试工作量统计新方法

    2008-07-16 16:34:56

    最近老大让我做测试计划,改了N次,心里还没底,晕死!

    发现一篇好东东,相当有用,特别是对于测试组长和测试经理。

    偶看不懂CMMI里的度量呀

    测试工作量统计新方法


    ■ 沈雪芳



    软件测试作为软件生命周期中不可或缺的重要环节,正在受到越来越多的重视。然而,在实际项目测试工作中却存在一个突出的问题,就是测试工作量的统计问题。如何统计更科学、更准确,本文作者在实际工作中进行了摸索和尝试。

    虽然,目前测试工作越来越受到企业的重视,已形成规模,参与测试工作的人越来越多,投入也越来越大。但与之不协调的是没有一个配套的、较为合理的工作量统计方法。原有的测试工作量计算方法,一般是把测试人员进入项目的时间与进入项目的人员数量相乘,得到项目测试的工作量。该计算方法由于计算方便,容易操作,深受众多项目的推崇。

    但是,随着测试在项目的重要性的加深,测试工作分工日益细化,测试资源强调有效重用,测试团队协作越来越强,使用这种方法已经不能满足测试工作量计算的需要了:上级领导不了解整个测试团队资源的使用情况;测试团队负责人难于对项目测试任务实际执行过程产生的工作量、成本进行跟踪;项目组在考核绩效时,遗漏了部分测试人员的工作量。

    所以,在项目测试领域急需一种新的工作量统计方法。笔者将这方面的一些实践进行了总结,供读者朋友参考。

    其基本思路如下:首先就任务类型的设置要达成一致;其次从每日的工作量收集开始,将测试任务按照一定的类别进行分类;然后将工作量数据按照不同的需求进行统计,得出不同的统计表;最后对这些统计表的数据进行分析,得出相应的结论。

    设置任务类型

    设置任务类型,是每日工作量数据录入的前提。任务类型需要在整个测试团队内达成一致,这样大家有了相同的标准,得出的数据才具有统计的意义。本文以某公司的项目测试为例进行介绍,其任务类型如表1所示。

    这里提到的测试任务类型,在实践中会根据项目实际需要进行调整。例如,新增“测试工具学习”任务类型等。

    另外,在表1所示的任务类型中,有一项比较灵活的任务类型——沟通。有的团队认为沟通都是有目的、有目标的,是一个为完成具体测试任务所进行的中间活动,所以他们把沟通作为具体测试任务的一部分。也就是说,对于这样的团队,他们没有“沟通”这个任务类型。有的团队则认为将沟通的内容很难划清界限,为避免测试人员填写工作量时发生混淆,所以,将“沟通”作为独立的任务类型。笔者认为这属于任务类型定义问题,测试团队可以根据已经存在的约定俗成进行设置,只要在整个团队内达成一致就可以的。


    表1 测试任务类型分类

    记录工作量基础数据

    这项工作由团队成员根据当天的工作任务完成情况进行记录。它是后续工作量统计的基础,所以要保证这项基础数据收集的准确性,切不可应付了事,最好能在当天下班前填写好当天工作量分配情况。

    坚持记录时间需要很强的自我约束能力,所以每天填写工作量记录需要一定的坚持力。在填写工作量记录时,需要为每个任务选择相应的任务类型,填写工作任务持续时间。工作任务持续时间最好不超过4个小时,这是为了避免填写的任务过粗,不利于发现工作过程中的问题。

    及时记录、数据准确,是这个环节工作的原则。本例中某公司使用的工作量记录表格如表2所示。

    统计人力占用情况

    这项工作主要统计测试团队所有成员在各个项目中的投入情况,或者说是项目对测试人员的人力占用情况,每周统计一次。通过对人力占用情况进行统计,测试团队负责人可以得到一份人力占用表。这份人力占用表的主要用途的有三个:

    ● 供测试团队负责人和上级领导使用,方便他们了解测试团队对项目的支持情况及项目占用测试资源的情况。

    ● 让上级领导间接了解测试团队的人员饱和度。如果测试团队负责人要申请新增测试资源时,将整个团队的历史人力占用表作为数据证据提供给上级领导,可以增强申请的说服力。

    ● 提供给项目经理参考。避免项目经理在进行项目人员绩效考核时,遗漏了部分测试人员的工作量。

    这项人力占用情况统计工作,笔者建议使用者在每周末进行。统计结束后,测试团队负责人将统计结果作为测试团队工作汇报的一部分提交上级领导。本例中,某公司在某一周测试团队人力占用情况如表2所示。


    表2 工作量记录表格

    在本文的例子里,测试团队在项目1一共投入了B、C、D三个人,B、C成员是100%资源投入。因为项目后续工作安排未知,而B、C成员又属于项目1核心测试人员,因此这两名成员的退出时间未知。另外一个测试成员D因为不属于项目1的核心测试成员,所以他参与2个项目。同时因为项目2规模较小,所以成员D在项目2中投入20%的资源,在项目1中投入80%的资源。考虑到公司在2005年3月将要启动一个新项目,所以,经过和项目1的项目经理协商后达成一致,计划成员D在2005年2月退出该项目,这样他在2005年3月将投入新启动的项目。

    通过及时更新、跟踪这张表的数据,可以对团队内测试人员的工作情况心中有数,并可根据公司业务发展、部门建设、人员发展需要,合理安排团队成员的工作。


    表3 测试团队人力占用表

    统计项目测试工作量投入情况

    这项统计工作是在每日工作量统计的基础上整理得到的。每周测试团队成员提交工作汇报时,会将本周的工作量数据整理后一起提交。测试团队负责人定期(每周或半个月)对团队成员提交的数据进行汇总,并整理到项目工作量投入表中。这就解决了在实际测试执行过程中,测试人员无法对测试工作量进行跟踪的问题。

    笔者曾经碰到一个项目,该项目的测试计划只安排了1.5人日的工作量,但是实际上该项目在测试计划上总共投入了9人日的工作量。经过分析,笔者发现是两个原因导致这个问题的发生:一是测试人员在填写每日工作量记录时,部分任务的“任务类型”选错了;二是该项目测试组长在估算测试工作量时,没有考虑到实际测试执行过程中也需要进行测试计划工作,如每次测试执行的计划、实际工作过程中的计划更新工作等。通过这次分析后,该项目的测试工作量没有再发生这么大的偏差了(偏差率=(计划值-实际值)/计划值×100%)。所以说,测试工作量的统计、分析可以帮助使用者发现一些问题,并改进使用者的工作。某公司某一项目的测试团队工作量投入情况如表4所示。


    表4 某项目测试工作量统计表

    通过这张统计表格,可以很清楚地了解某个人的工作量投入情况,及具体测试任务使用的工作量情况。

    汇总项目测试数据

    在项目关闭时,测试团队负责人把整个项目测试过程中产生的数据以及项目基础数据进行汇总。测试过程中产生的数据包括:测试工作量、测试投入成本,它的数据来源于表四;项目基础数据包括:项目规模、项目总成本、项目总工作量,这些数据是向项目经理获取的。这里提到的测试成本,是把每个测试人员的人力成本系数和工作量数据相乘得到的。所有相关人可以通过这张统计表了解项目组中测试占开发总工作量的比例,以及项目组用在测试上的开销情况。这项工作是测试团队资产沉淀的很重要的一项工作。主要用途是:从项目角度对项目测试整体情况进行分析;把测试团队所承接测试的项目进行纵向对比,总结共性,发现问题。

    例如,可以对这些项目的测试数据进行分析,得出测试工作量估算公式。再如,笔者曾经通过数据的对比,发现测试文档编写工作量占整个测试工作量的比例较大。通过进一步分析,发现测试用例的维护占用了测试设计很大一部分的工作量,从而应考虑在团队内改进测试用例管理方法。某公司两个项目的测试数据如表5所示。


    表5 某测试团队测试项目资产库——测试数据

    参考项目背景,笔者对几个项目的测试数据进行分析后,得到了项目测试总人力成本的估算公式:测试总人力成本=20%×项目总人力成本。

    另外,通过把几个项目的各项测试类型所花费的工作量进行对比分析后,笔者得出各项测试任务的工作量相对于测试总工作量的分配比例。对于后续的项目,项目测试组长可以参考这个分配比例进行测试工作量的估算。

    当然,上面介绍的估算公式和工作量比例,只是适用于笔者所在的测试团队。不同测试团队、项目组、公司组织情况都不一样,这里介绍这个例子,目的只是说明测试工作量统计的一个用途。

    表6 某测试团队各项测试任务的工作量比例

    总结

    测试工作量的统计,是整个测试团队管理的基础。测试团队的管理、决策、策划等需要数据的支持,即用数据说话,所以,数据的收集、统计是很重要的。有了这些数据之后,我们就可以将它应用到绩效考核和项目成本核算上。

    在本文中,笔者主要介绍的是测试团队的工作量统计,但实际上这些方法不仅适用于测试团队,也适用于个人、项目团队或者整个公司组织。实施时只需要调整“任务类型”等与测试有关的属性,并做一定的扩展即可。

    本文使用的表格,都是在Excel中建立和维护的。在团队规模不是很大时,或者处于试用初期时,使用很方便、实施成本也低。但是如果团队规模较大,团队成员比较多,数据量较大的话,这种手工方式就显得有些力不从心了。读者可以自行开发一个工作量管理系统,使用数据库的方式来记录、分析这些数据。在使用初期可先实现每日工作量数据的录入,以及针对个人、项目、任务类型等属性的统计分析功能即可。

     

  • 新的生活就要开始了

    2007-06-29 13:06:39

    新的工作终于定下来了,一颗心落地了.

    不知道将要面对的是什么,可以肯定的是,将要有很长一段时间的学习生活了...

    将好消息告知好友时,她却告诉我,她的工作丢了.这让我心里很难受,跟同学联系了一下,看看能否帮得上她.

    不过,现在的工作还有一个结尾,还有一个交接过程.要离开现在的单位,还真是有些失落,两年多的相处,大家关系都比较融洽,于是,工作起来也很开心,最重要的是,给了大家一种归属感.不知道新的公司能否有一个好的氛围.

    希望在临走前能找一个合适的回归测试工具,来解决当前软件的回归测试工作,这样离开这个单位,也无憾了.

     

     

  • JAVA?JAVA!

    2007-06-22 10:31:08

    记得04年学了一段时间JAVA,当时就没搞明白.

    当现在不得不再学的时候,那个地方依然是个死角,JAVA的运行环境,JAVA虚拟机.....晕

    致于数据类型\类等那些东西,都可以继续学习,可是这个运行环境

  • 琪琪落泪了

    2007-06-20 10:59:39

    今天偶然看到,琪琪因为母亲比较传统无法接受她的法籍男友,一向孝顺的她于是就分手了.当听天自己的新歌时,却落泪了.不知道她是否因想起了这段已经结束的感情,但她的心情可以体会.

    一向很少关注娱乐圈的事情,甚至不认识好多大腕明星,而且记住一个演员都会比较困难,但是,不知道为什么,一直对琪琪如此的喜欢,一直感觉她像个邻家女孩或邻班的女同学,很亲切,很平常.

    也许是因为喜欢她的风格吧,看上去并不张扬的外表,骨子里却很有韵味....

  • 路漫漫其修远兮?

    2007-06-15 13:37:45

    经过这一段时间,面试了两家,其中一个在初试后很久(感觉)有了上周六的复试,到现在一直没有回音.另外一家,目前估计早被PASS了吧.

     

    路漫漫其修远兮,吾将努力继续求索......

  • 寻找软件测试的机会

    2007-05-18 15:33:55

     

    昨天投了不少简历,不知道会怎么样,因为之前没有进行过专业的测试,只是单纯功能性的的手工测试,希望能够得到一些机会!!

  • 一位前辈工程师职业发展的忠告

    2007-05-18 15:25:53

    转自 stomic地盘,用以擎示!!!

    1]好好规划自己的路,不要跟着感觉走!根据个人的理想决策安排,绝大部分人并不指望成为什么院士或教授,而是希望活得滋润一些,爽一些。那么,就需要慎重安排自己的轨迹。从哪个行业入手,逐渐对该行业深入了解,不要频繁跳槽,特别是不要为了一点工资而转移阵地,从长远看,这点钱根本不算什么,当你对一个行业有那么几年的体会,以后钱根本不是问题。频繁地动荡不是上策,最后你对哪个行业都没有摸透,永远是新手!

    可以做技术,切不可沉湎于技术。千万不可一门心思钻研技术!给自己很大压力,如果你的心思全部放在这上面,那么注定你将成为孔乙己一类的人物!适可而止为之,因为技术只不过是你今后前途的支柱之一,而且还不是最大的支柱,除非你只愿意到老还是个工程师!

    [3]不要去做技术高手,只去做综合素质高手!在企业里混,我们时常瞧不起某人,说他“什么都不懂,凭啥拿那么多钱,凭啥升官!”这是普遍的典型的工程师的迂腐之言。

    很牛吗?人家能上去必然有他的本事,而且是你没有的本事。你想想,老板搞经营那么多年,难道见识不如你这个新兵?人家或许善于管理,善于领会老板意图,善于部门协调等等。因此务必培养自己多方面的能力,包括管理,亲和力,察言观色能力,攻关能力等,要成为综合素质的高手,则前途无量,否则只能躲在角落看示波器!技术以外的技能才是更重要的本事!!从古到今,美国日本,一律如此!

    [4]多交社会三教九流的朋友!不要只和工程师交往,认为有共同语言,其实更重要的是和其他类人物交往,如果你希望有朝一日当老板或高层管理,那么你整日面对的就是这些人 。了解他们的经历,思维习惯,爱好,学习他们处理问题的模式,了解社会各个角落的现象和问题,这是以后发展的巨大的本钱,没有这些以后就会笨手笨脚,跌跌撞撞,遇到重重困难,交不少学费,成功的概率大大降低!

    [5]知识涉猎不一定专,但一定要广!多看看其他方面的书,金融,财会,进出口,税务, 法律等等,为以后做一些积累,以后的用处会更大!会少交许多学费!!

    [6]抓住时机向技术管理或市场销售方面的转变!要想有前途就不能一直搞开发,适当时候 要转变为管理或销售,前途会更大,以前搞技术也没有白搞,以后还用得着。搞管理可以培养自己的领导能力,搞销售可以培养自己的市场概念和思维,同时为自己以后发展积累庞大的人脉!应该说这才是前途的真正支柱!!!
    [7]逐渐克服自己的心里弱点和性格缺陷!多疑,敏感,天真(贬义,并不可爱),犹豫不决,胆怯,多虑,脸皮太薄,心不够黑,教条式思维。。。这些工程师普遍存在的性格弱点必须改变!很难吗?只在床上想一想当然不可能,去帮朋友守一个月地摊,包准有效果 ,去实践,而不要只想!不克服这些缺点,一切不可能,甚至连项目经理都当不好--尽管你可能技术不错!
    [8]工作的同时要为以后做准备!建立自己的工作环境!及早为自己配置一个工作环境,装备电脑,示波器(可以买个二手的),仿真器,编程器等,业余可以接点活,一方面接触市场,培养市场感觉,同时也积累资金,更重要的是准备自己的产品,咱搞技术的没有钱 ,只有技术,技术的代表不是学历和证书,而是产品,拿出象样的产品,就可技术转让或与人合作搞企业!先把东西准备好,等待机会,否则,有了机会也抓不住!

    [9]要学会善于推销自己!不仅要能干,还要能说,能写,善于利用一切机会推销自己,树 立自己的品牌形象,很必要!要创造条件让别人了解自己,不然老板怎么知道你能干?外面的投资人怎么相信你?提早把自己推销出去,机会自然会来找你!搞个个人主页是个好注意!!特别是培养自己在行业的名气,有了名气,高薪机会自不在话下,更重要的是有合作的机会...

    [10]该出手时便出手!永远不可能有100%把握!!!条件差不多就要大胆去干,去闯出自己的事业,不要犹豫,不要彷徨,干了不一定成功,但至少为下一次冲击积累了经验,不干永远没出息,而且要干成必然要经历失败。不经历风雨,怎么见彩虹,没有人能随随便便成功

  • 生活,值得我们活着

    2007-05-17 16:07:18

    一滴水的存在,一朵花的存在,一粒沙的存在, 一切生命的存在,想一想都是那么美好.

    我们可以感受到这一切的存在,包括我们自己的存在. 

    生命给了我们一种状态--存在;若干形式--呼吸,行走,微笑...... 

    当清晨或温柔或妩媚的阳光,暖暖撒在我们的身上,

    是的,总有一面是阳光无法照射到的.可是你会因为另一侧小小的
    阴影而感到不快乐吗? 

    你会笑着说: "不,这就是生活.我享受这一切."

    生命值得我们活着.好好的活着,狠狠地活着,酸甜苦辣的活着...

    每一个生命都是唯一,这是多么不可思议.是怎样的千辛万苦? 

    几世的恩怨情仇?是巧合还是注定?我们不得而知,唯有珍惜,

    从开始的那一秒到离开的那一瞬...... 

    许多美好,还未等我们经过,转瞬即逝. 

    错过多少并不重要,其中有多少是被放弃? 

    是谁给出了活着的定义.我们向着金钱前行......... 

    所有的人都适应这样的活法吗? 

    不,我们是唯一,或贫穷或富有,或幸福或悲伤,  

    或勤劳或懒惰,或放纵或矜持,或热烈或宁静. 

    或坚强或懦弱...是生活,是我们的生活. 

    不是每个决定都是正确,至少是我们自己的选择. 

    我们是自己生命的见证,这样还不够伟大吗? 

    当视觉的类同感逊色消磨着生活的画面, 

    我们的眼睛不再清澈, 

    伸出双手,在空中胡乱捕捉, 

    为什么,有的人在笑,有的人在哭. 

    有的人渐渐安静,有的人渐渐抓狂

    庆幸的是,生命对于我们是未知.电影的情节永远待续, 

    这会激发演员无限的潜力吗,你会为之兴奋?还是为之苦恼? 

    总是在收拾房间的时候,舍不得丢舍,每一样陪我们走过, 

    属于过我们的生命,都无法被抹掉,即使被遗忘,它也是不可缺少, 

    因为,一路走来,没有留白,一秒一秒,一步一步,直到静止,直到悬空...

Open Toolbar