从事了三年软件测试工作,主要工作是网络存储软件,备份软件,性能评估,自动化测试,系统测试等等。这里是我的职业博客,希望在这里认识更多测试界的朋友。 我的MSN: cityyard@hotmail.com。我的个人博客在http://cityyard.bokee.com/有兴趣的朋友也可以去那里帮我捧场。

发布新日志

  • 答:从哪些方面判断自己是否适合走测试管理路线

    2008-03-30 11:03:02

    既然是软件测试论坛,这里说的管理路线大概是软件测试的管理吧。
    判断是不是适合走管理路线,实际就是设计一个针对个人能力的测试项,好了,回到我们大家都熟悉的问题了
    现在开始对这个测试项一步步拆分测试观点吧。

    从大类分,第一类测试项是管理者需要的通用能力
    这里面可以分成很多小类,很难写全,管理学毕竟是一门学问,只能随便列几个
      1、 是否善于带领团队
          a、是否善于利用团队里不同能力和性格的人合理分工,人尽其用
          b、是否能产生凝聚力让大家力量往一处使
          c、能否协调好上下关系,既不能让上层无休止的压任务而不吭声
             也不能放任属下消极工作带来的效率低下。
          d、是否有较强责任感,管理者不能像普通员工一样,任务来了就做
             做完了等下一个任务,这样的管理者的手下就更加会混事了。
          e、是否能尽量不在工作中掺杂个人感情。

      2、 是否善于制定和展开计划
          a、拿到一个项目首先就是制定计划,计划的制定并不是写几条就可以的
             一般需要有一定经验,同时利用线表日报等工具辅助完成,
             善于统计和整理也非常重要
          b、计划展开过程中要能根据实际情况提前调整计划,把握好进度

      3、 是否能培养人才
          a、能带一个团队打好仗还不是最好的管理者,能把手下带出一帮精兵强将
             才是更加珍贵的管理者,他们堪称是公司的发动机。     
          b、建立完善的交流培训机制,使得新人培养和老员工交流都体制化

      4、 当然了必不可少的必须善于人际关系处理。

    第二类测试项是软件测试管理者特殊的能力
      1、 是否有足够的软件测试经验,接到一个项目知道如何展开,熟知测试与bug的生命周期,熟悉统计数据的制作和分析,能从 统计数据中看出目前项目状况问题所在,知道哪里有问题需要改进。

      2、 是否有较强学习能力一直能保持先进性,作为管理者,个人以为不提倡去一线继续作技术,但是一定要保持关注测试 领域技术动态知道同行们都在做什么,怎么做,这样自己虽然未必会做,但是可以带领团队技术骨干去做。另外较强
    学习能力还在于领导者虽然未必去执行测试,但是一定要能透彻理解要测试的东西。
  • 答:如何量化评估被测试软件的质量

    2008-03-09 10:51:59

    量化评估,最重要的一点是经验。同时科能需要大量统计工作作为铺垫。
    下面我主要从bug统计来说一下我的经验。

    1。测试项目数和摘出bug数预测
        一般来说我们可以根据软件代码行数来粗略估计一个产品可能包含的bug数目和需要的测试项目。现在有些公司流行每千行bug数的标准来制定测试计划,这个标准是通过以往测试经验总结出来的,一般来说,同类的产品,尤其是同一个开发流程的产品,这些数值不应该相差太多,如果相差一个数量级以上,我们几乎可以说,要么是QA出问题了,要么是开发出问题了。

    2。测试bug分级
        使用bugzilla或者Jira之类的缺陷管理系统何以很容易的实现bug分级,一般至少有Fatal, Major, Minor, cosmatic这几种,还有一种特殊的叫做blocker,意思是这个bug会影响测试进度。产品发布前,可以根据实际情况,定一个界限级别,比如要求新出Major为0,并且所有已有的Major全部close等等。

    3。测试bug收敛
        量化评估必不可少的是bug收敛,这个要通过统计每日新出bug并跟踪已有bug制作收敛曲线来实现。收敛曲线的形状发散表明目前产品极其不稳定,收敛曲线开始收敛表示目前产品趋于稳定,完全收敛之后可以认为是发布的时机。

    4。测试bug分布
         bug分布是决定下面测试重点的一个重要的参考数据。首先还是需要统计,找出所有已有的不同级别的bug在各个模块的分布,假如ABC三个模块,A模块bug数目占了总数的60%而且Fatal居多,C模块占了bug的8%那么,我们可以得出这样的结论,软件的不稳定瓶颈在于A模块,是一个薄弱点,需要开发人员集中力量对应。但是C模块也是一个可疑模块,因为出现bug率太低,如果不是开发的太好就是测试方法不当。

    5。测试bug的周期
         一个bug的生命历程是一个完整的轮回,从他出生(open)开始,到调查(Accept)到修复(Fix),再到确认(Verify)是最简单的路线,这个周期越短,说明项目进展越顺利反之则意味着项目进度目前有很大的阻碍。

    6。降级bug数
        降级bug的多少对于软件质量评估也是一个重要参考标准,降级bug也就是由于修正一个bug又作了一个新bug,降级bug数目过多意味着现在的产品在越修越坏。

    一个新的QA团队,在2,3,4,5,6步骤可能会有所迷惑,不知道阈值应该怎样选但如果每次都坚持这样做,很多次之后2,3,4,5,6会给这个团队大量的经验积累,完全可以做到看着统计图估计出一个产品处于什么状态,需要加强哪些方面等等。
  • 答:测试过程中如何应对频繁的版本变更

    2008-03-07 08:48:08

    第一天建立博客,还没一下想好写什么又不想让这里空着,就把我刚参与的每周一问贴过来吧,算作我在这里的第一个印记,希望以后这里将成为我和大家交流测试心得的地方。

    版本变更是我们测试中经常遇到的问题,版本变更一般有几方面的原因,首先是功能没有全部开发完,这种情况一般是比较复杂的功能先实现简单的,然后测试,同时作后续开发。另一种是新功能的引入,比如了解到了竞争对手的一些比较赢得用户的功能希望加入,再一个就是bug的修正。前两个可以看作是开发过程中的版本变更,后一个则是测试中的版本变更,这两者首先要隔离开。

    我们可以通过cvs辅助管理来帮我们解决这个问题。首先当我们决定开始测试的时候,功能A已经完成,功能B还在开发中,这没有关系,我们把当前的测试版标记一个tag做成一个新的branch,比如function_test_A_0_0,而原来的分支我们叫做开发分支比如dev_branch_B_0_15之类的。注意目前function_test_A_0_0和dev_branch_B_0_15仅仅是名字不同,内容是一样的。

    那么接下来开发人员和QA人员要做的事情就明确了。QA人员使用function_test_0_0来测试,发现的问题报告bug给开发人员,开发人员负责提交修改的代码,但是这个代码必须而且只能提交到测试分支function_test_0_0,并且必须保证每次修正一个bug每次提交都做成新的tag,比如修改了一个bug之后,tag名就应该变成function_test_0_1。QA组通过daily build的办法来每天获取测试分支的最新物件来及时测试开发人员的修改,这个build的频度也可以根据开发测试需要修改,比如半日build之类。这样一来我们就保证了这个分支我们做的仅仅是针对A功能的测试和修改,必须严禁开发人员提交自己的开发代码,哪怕是开发人员自己发现了bug,也必须首先上报bug,然后申请修改。

    与此同时,开发人员可以在自己的开发分支上继续新功能的开发,他们的tag也不断增加。这个过程中,也可以把经过QA组承认的测试分支的重大bug修正代码merge到开发分支来,但是禁止从开发分支向测试分支的merge。

    这样当QA组那边认为,测试分支的代码已经达到了一定的品质需求的时候。开发组可以经过和QA组负责人讨论之后,把测试分支的全部代码merge进入开发分支,并关闭测试分支。于是A功能的测试到此告一段落。

    然后我们用把当前的开发分支,比如dev_branch_B_0_30,再做一个新的测试分支出来,比如function_test_B_0_0,新的循环就开始了。测试开发互不干扰,同时bug也能及时修正,修正的bug也可以及时反映在新代码中。

    总之开发和测试是一个分离又统一的过程,分离在于新开发的不稳定的甚至不能跑通的代码不能来影响当前的测试,同时测试中发现的问题开发方能及时解决并交给QA确认,这样我认为是比较高效的。千万不能QA开发一起用一个版本分支,那样一定会乱的。

     

Open Toolbar