发布新日志

  • 敏捷测试下采取怎样的反馈机制

    2016-12-13 16:43:29

    去年开始,下定决心闯入互联网,不为别的,就是冲着互联网浮躁的薪水。
      一年多时间以来,从公司的第一个测试工程师,到现在15人的测试团队leader,别人叫我测试总监,但我觉得我只是一个测试团队打杂的人。培养了几个骨干,分担了不少活。
      在这一年的时间里,每次我面对乱七八糟的开发流程,我都拿敏捷来安慰我自己,告诉我自己这就是互联网正常的敏捷开发模式。但在每一次大版本上线后,面对线上问题反馈,面对数据修复,面对开发焦躁的表情,面对老板一次次的抱怨。测试作为开发流程的最后一关,总需要进行一次次的总结,和被教导,需要进步。然后我一次次的总结,一次次在例会上咆哮:
      1.需求可以再完善一点吗?改动能早一点吗?
      2.开发人员需要懂点业务吗?需要自测吗?能不能别没开发完成就说提测?
      3.发布版本频率能不能控制一下?一天别动不动就丢页面,丢JAR包上去?
      总结之后,大家也就意识到团队是问题,团队,测试只是一个环节。团队需要项目经理去打造,我能说的能做的不多。
      但这次总结,我想总结一下,在这样的开发流程下面,测试应该怎样面对,说直接的就是该如何存活?
      1.必须做好反馈。测试从始至终,大致过程就是预防BUG、发现BUG、总结BUG。其中最关键的当然是发现BUG了。所以发现了BUG要及时反馈,在敏捷下,很短的测试时间里,大概就3-5天的测试时间,耽误不起。所以发现阻碍测试的问题,必须马上反馈。所以,我成立的反馈机制如下:
      1)项目测试进度日报:已经进入提测阶段的项目,项目测试负责人在完善下班前,必须发出当天进度邮件,陈述当天的测试进度。什么功能可测,是否通过,什么功能不可测,为什么不可测。
      进度日报的作用,个人觉得有以下作用:
      1.曝光开发进度,开发人员为了满足进度,在没完成开发就提测
      2.项目经理只问能否上线,但不跟进测试过程遇到的问题,比如测试环境,就通过邮件声明测试进度
      3.邮件备案,一旦延期,项目经理难逃其责
      2)项目测试进度周报:每周四晚上,项目测试负责人要发项目测试进度周报,这主要是例会需要,因为是老板最关注的。
  • 黑盒测试之做好功能交接

    2016-12-13 14:10:40

    项目中出现人员变动时,你一定遇到过被动的接受别人的项目或者功能模块,而在交接过程中,不可避免的会出现功能细节和测试注意点的遗漏,那么当这些功能出现问题或者变动时,你要如何保证项目质量呢?我们又是否有方法最大程度的避免交接遗漏呢?
      下面,小编就分享一些项目中的经验给大家~
      ·        功能交接过程
      1)交接前:
      a.     阅读相关文档(需求、流程图以及交接人的总结文档),确保在正式交接前对该功能有整体了解;
      b.     罗列自己的疑问,明确功能难点;
      c.      查看bug列表,明确易出问题的环节;
      2)交接中:
      a.     解除疑问;
      b.     抓住重点和逻辑复杂的模块,尽量细致的提问和了解;
      c.      依据bug列表,挖掘隐藏的”坑”;
      d.     不能出现模棱两可的答案,对方不确定的,及时找其他人员确认;
      3)交接后:
      a.     梳理功能流程、逻辑流程和测试点;
      b.     及时记录和更新交接文档;
      ·        交接功能出现问题
      1)接到问题反馈:
      a.确认问题现象,尝试重现和定位问题原因;
      b.明确问题出现的原因;
      c.及时反馈给相关人员,确认后续解决办法;
      2)问题跟进中:
      a.以问题为中心,深入了解该功能逻辑,挖掘隐藏问题;
      b.求助开发或组内白盒测试同学,评估修改后的影响范围;
      3)问题跟进结束:
      a.总结问题出现原因和漏测原因;
      b.评估后续测试改进方法;
      c.更新组内相关功能文档;
      ·        交接功能变动或优化
      1)           需求提出:
      a.将该功能作为新功能,全面了解和评估;
      b.重新梳理功能的流程和逻辑;
      c.确认变动和优化的影响范围;
      2)           测试过程:
      a.变动和优化的部分,当作新功能测试,确保全面;
      b.影响范围评估,确认合理的回归范围;
      c.确认是否有前期遗留的问题需要解决;
      d.标记需要更新的用例,方便后期维护;
      3)           测试完成:
      a.及时更新组内相关文档,以备查询;
      b.有确认遗留或待改进的问题,记录备忘;
      总结:
      1.     前期熟悉功能,在交接过程中才能有针对性的提问和分清重点;
      2.    及时梳理功能模块,有助于更快更精准的掌握功能模块;
      3.  后期及时的更新相关文档,避免遗漏和遗忘;
  • 关于项目管理,我们要学会哪些方式?

    2016-12-13 14:09:50

    任何管理,从本质上来讲,都是管人。项目管理也不例外,一个项目能否顺利完成,要看项目组的成员是否有一致的目标,并且愿意为这个目标主动去付出,直至项目完成。
      太多项目管理的干货在教大家如何进行项目管理,要用哪些工具,使用哪些方法,很少有从对人的管理的角度去说如何进行项目管理的。这篇文章主要讲如何从管理“人”的角度进行项目管理。
      01、项目开始要树立目标
      我曾有幸参与到公司核心战略产品早期的产品立项过程,为了快速推出产品占领市场,我们组建了一支由产品经理和技术研发组成的可以说是精英团队,进行封闭式开发。在项目正式开始之前,在立项宣讲会上,产品总监给这支精英团队分析了目前的形式、市场的情况,以及我们的产品出来了之后,将会搅动怎样的风云。整个宣讲的核心思想是:“我们正在做的事情,是改变整个外卖行业的事情,是能够为社会创造价值的事情,在座每一个人的付出,都将为这个价值贡献一份力量。”
      宣讲带来的影响是,整个团队连续加班甚至通宵2个星期,提前完成项目计划,给市场推广留足了准备时间。通过这个事情,我感触特别深刻,因为自己亲自参与到整个过程,整个团队凝聚在一起,爆发出来的战斗力,可以战胜一切困难。在后面兼任项目经理的时候,我也注意到将这一点运用到项目管理中,在几个重要的产品推出时,都起到不错的效果。
      给团队树立一个可以达到的目标,这个目标不一定是多么的远大,可以是一个产品的细节的改动能够带来多少转化率的提升,可以是一个模块的重构能够带来整个流程上更顺畅的体验,也可以是一个新的功能给公司带来成本的节约,这样的目标能够帮助团队统一思想意识,让团队每个人对目标认可,融小我于大我,从而增强团队凝聚力,提高生产效率。
      02、布置工作要明确要求
      我曾经给项目组的一个同事安排了一个预研性的任务——研究外卖小票图片识别,当时就是这么口头上跟他说的。一个星期之后,我去检查预研的结果,当然结果是让我失望的,最终这个预研性的任务也没有应用到产品中去。
      后来我总结了一下,这次任务失败的原因。首先,我没有告诉他,预研这个技术的背景是什么,为什么要去识别小票上的信息;其次,我没有告诉他,预研这个技术要达到什么样的标准才算完成,例如识别的速度要达到多少,准确率要达到多少,识别的信息要能够结构化等等;然后,我没有说明,这个预研性的任务需要在什么时候完成,紧急不紧急。
      而这些往往是作为一个初步担任管理职位的人经常容易犯的错误,当你要布置工作时,你要详细的告知任务的背景,有助于其理解他所做的事情;要告知验收的标准,有助于其不偏差的完成任务;要告知完成的时候,以便于其做好工作计划。有时候一项任务有可能会涉及到多人,这时你还要明确每个人的分工和主要的责任人。
      有时候你觉得团队没有执行力的时候,先反问自己有没有做到上述的这些事情。
      03、做一个主动推动事情的人
      很多人尝试把一些项目管理的方法论运用到实际管理去,却怎么做也做不好,他们纠结于用实体形式的看板还是软件形式的看板;看板上的贴条是不是格式不对;项目周报的格式应该是怎样的,然后指望通过这些工具和方法论就能够把项目管理做好,实际上项目管理远远不止如此。
      项目迭代开始后,不要指望开发人员每天会自动的更新任务进度,事实上,你往往会看到,他们总在迭代的最后阶段一下子变更了好几个需求的状态;你也不要指望通过项目周报来掌握项目迭代的进度,当你一周之后才发现项目存在延期的风险时,已经来不及了。
      你需要经常询问项目成员需求完成的情况,一方面是根据成员完成的情况及时做好前后端的对接或任务调整;一方面当你发现项目存在风险时,提前规避或提前说明;最后,对项目组成员已经完成的需求给予肯定,对项目组成员在工作上遇到的问题给予帮助,扫清迭代中的障碍。
      除了主动的去了解项目成员完成任务的情况,在项目管理过程中,还要善于去发现问题,发现流程上的不足,不断的改进改善流程,把例外变成例内。
      方法论再好,需求分解的再详细,项目迭代都不会自动实现,做项目管理不是做甩手掌柜。
      04、会互相尊重
      在项目管理过程中,你可能会遇到在项目进行到某一阶段,遇到了突发情况,项目无法正常进行下去。此时,某些项目管理者可能会使用自己的职能,直接提出解决方案,让项目成员执行。敏捷迭代的方法论中有说,团队要自组织,要尊重团队每个人员的专业能力。
      项目经理代表的不是他的专业能力,而是代表他所管理的这个群体的整体利益,
      这种情况你唯一要做的事情,就是帮他排除障碍,
      如果他需要讨论,你就帮助他召集相关人员讨论;如果他需要查阅资料,你就帮他准备好相关的材料。当你尊重了别人的能力,你也会收获更多的尊重和领导力。
      05、开放式交流
      做项目管理,除了需要管理项目迭代,还需要管理人。
      员工处于什么状态,你心理是否有数,那个谁谁谁最新为什么情绪这么低落,那个谁谁谁最近为什么这么消极,那个谁谁谁最近表现还可以,那个谁谁谁最近实现的需求老是出严重bug是不是遇到了什么事情。不良的风气很容易影响团队的价值倾向,我曾经在一家公司工作时,离职的时候,整个团队几乎全部解散,就是因为消极的团队氛围导致。
      我在兼任项目经理期间,几乎每个星期都会找一个项目成员聊聊工作的情况,了解他工作中有没有遇到什么问题,以至于HRBP向我咨询某些员工的情况时,惊讶于我对员工的了解。有些事情需要项目经理主动去了解,而不是听取他人的评论,多沟通,多交流,是做项目管理另外一件重要事情。
      06、帮助团队成员成长
      最后这一点,是我做项目管理以来,感触最深的,也是我学习到的最宝贵的经验。
      我所代表的是团队整体的利益,对外我是无线项目组的项目经理,别人认可你是因为你的团队是执行力最强的团队,而别人的对你的认可来自于团队成员每一个人的付出,你无法居功自傲的说是因为你自己很牛逼。
      深深认识到这一点,我曾多次跟我的好友说,我不够资格当这个项目经理。
      为了帮助团队成员成长,你需要做的事情是把成员付出的努力及时的让上级知晓,做到这一点并不难,只需要在周报中,时不时的告知上级,谁谁谁在这次迭代中,花了多少心思,为项目付出了多大努力,为其争取尽可能的福利。
      另外,鼓励成员互相分享心得,把自己的经验与他人共享,共同成长。最后,当团队遇到问题时,你要作为第一责任人主动思考原因,而不是直接责问他人为什么没有把事做好。除了这些,帮团队争取福利,组织好的拓展活动,加强团队成员之间的凝聚力,这些都是作为项目经理力所能及的。
  • 测试负责人和测试工程师在日常工作的区别

    2016-12-13 13:56:38

    作为负责人,要考虑的事情比较多,要从大局观、整体项目周期上看待问题。而测试工程师平时只要做好分配的任务就行,不需要考虑太多事情。以下是从项目各个阶段来描述作为测试负责人应该要做的工作,也算是我对平时管理工作的一个总结。
      一、需求阶段
      要参与需求评审,了解以后要做的项目,做到心里有数
      熟悉需求,并组织测试人员分析需求,把需求疑问整理文档,与产品人员讨论。
      二、开发阶段
      了解开发进度,主动与项目经理沟通,询问近期要提测的项目,做好测试准备工作。
      如果提测有并行且人力有限的情况下,划分好优先级和重要性,根据优先级、重要性由高到低开始,优先级的安排要经过领导点头。
      和项目经理沟通开发测试安排,是按模块提测还是整体提测。
      和项目经理沟通如何迭代,bug修改完毕再发版,还是修改部分后先发版,边测边改。遇到致命bug如何处理等。
      三、测试阶段
      1、用例设计
      分配用例设计任务
      把控时间进度
      组织用例评审
      2、测试计划、测试方案、测试排期制定
      合理分配好资源
      根据项目情况采用合适的测试方法等
      3、提测
      3.1接口提测
      根据接口数量采用不用的测试方法
      3.2系统提测
      协调搭建测试环境
      传达测试开始
      做好提测版本备份及时间记录
      4.冒烟测试
      组织冒烟测试,查看提测版本质量,提早发现致命bug
      5、执行测试
      把控项目时间、进度
      把控项目质量
      监控测试结果,bug数量
      及时了解存在问题、难题,并推动解决
      分析bug,模块bug较多的要重点测试
      6、回归测试
      根据情况制定适当的回归测试方法
      7、结束总结
      测试报告
      项目总结
      测试的各个阶段,都要记录好时间表,如:用例设计时间,测试时间,每次发版时间,致命bug阻碍测试时间等
      四、闲时阶段
      以上是有项目的情况下要做的事情,项目不忙时,也不能天天闲着,除了适当的休息外,要组织
      1、新技术研究并分享
      2、组织培训,关于测试方面或其他方面等
  • 测试经理每天到底在忙些什么?

    2016-12-13 13:50:46

    今天这个主题,其实主要还是想聊聊,老徐到底每天在忙些什么?
      测试经理,只是一个泛称,很多公司没有测试经理岗位,可能是测试主管,或者测试组长。
      当然,不排除很多公司,没有测试管理岗,没有测试负责人,统一归属研发总监管,或者项目经理管。
      今天,主要聊聊测试部门负责人/测试组负责人,到底每天在忙些什么?
      同样,排除个案,排除奇葩,那些不在讨论范围。
      测试经理主要忙碌的事(只是简要列出,不同公司,不尽相同,权当参考,欢迎讨论)
      1、参与软件项目的需求分析,关注项目需求的可测性,并能预先评估项目的风险;
      2、负责软件项目的测试方案制定,设计关键测试数据和评审测试用例,负责主导测试场景分析。
      3、负责实施软件测试,完成对产品的集成测试与系统测试,对产品最终质量负责;
      4、负责对系统问题进行跟踪分析和报告,参与重要产品的测试技术攻关及复杂问题定位;
      5、管理测试团队,负责关键测试技术和测试工具的研究、开发和推广,支撑IT测试过程管理提升团队专业能力;
      6、通过总结、对内交流、技术钻研和培训,进行测试过程和测试方法的持续改进。
      7、结合IT产品业务与技术特点,主导IT测试能力建设工作
      8、测试团队,人才梯队建设(人才补充、替换、物色)。
      9、公司各部门横向沟通、交流、资源对接。
      等等。
      其实,基于公司的具体现状,负责的内容可能会完全不同。
      如上,简单做个参考就行。
      总之,质量负责人,流程制定人,关键事项推进人。
      出了质量问题,必须抗住,并分析之,避免重复出现。
  • 移动APP项目研发流程及版本规划

    2016-12-13 13:32:01

    一个移动APP项目研发规模可大可小,但都离不开以下几个成员:产品经理、ui设计师、前端开发、后端开发、测试等。如何合理安排项目成员工作、确保项目顺利进行呢?一个清晰合理的项目研发流程控制很重要。
      项目研发流程一般来说分3个阶段
      第一阶段:需求策划。在需求阶段产品经理内部进行需求讨论:讨论下版本需求重点是什么,做什么功能,怎么做。通过反复调研、讨论、输出交互方案。确认需求可行性:产品在输出交互方案后找相应的开发讨论需求方案是否可行,这个讨论阶段产品和开发的思维方式不同,往往会擦出新火花、新惊喜;但讨论控制不好或者会演化为产品和程序员的撕逼大战,呵呵。UI设计:设计师将产品的交互方案变得更生动精美,不过精美的设计稿不见得都能实现出来。在这个过程中产品经理需要协调设计师和前端人员的沟通,制定设计规范。同时保证设计稿的质量,出稿进度。需求宣讲:产品经理将交互方案和实现逻辑完善以及将上版本的bug、其他优化需求等整合出完整的版本需求文档后,拉上项目所有成员宣讲。宣讲目的主要让项目成员清楚新版本需求的重点是什么,做什么功能,为什么做(重点讲);简单介绍怎么做,讲解交互方案或设计稿,给大家有一个整体的印象,让大家都了解版本功能的意义。
      第二阶段:需求研发。项目启动:需求宣讲后,开发根据产品需求文档进行需求评审,评估出研发周期、提测时间、预发布时间点、正式发布时间点。产品根据评审结果发送项目启动邮件。研发:需求研发过程中,产品跟进研发进度,保持与开发沟通确保需求被正确理解,及时解决研发过程中发现的新问题。测试用例:产品、测试、开发共同确认版本测试用例,并同步研发过程中变更的需求和细节。提测:产品验收开发输出的功能模块,并输出体验回归文档;测试根据用例验证需求逻辑,提bug、优化给开发。内网环境测试通过后,测试继续验证预发布环境、正式环境。
      第三阶段:版本发布。客服培训:测试验证的过程中,版本发布前,产品提前给客服培训新版本内容。发布:后端开发、运维人员将代码发布外网环境,前端输出外网正式包。产品运营将正式包上传各大安卓市场或ios -appstore提审。升级:所有安卓渠道包更新好,或者appsore审核通过,新版本也没有发现什么问题时,后端开发和运营人员打开升级配置,并发送升级通知。运营报告:版本发布完毕还未算完呢,运营人员在新版本发布后,收集用户反馈,进行数据监测、数据分析;评估新版本功能效果和影响,验证新版本功能以及输出下版本需求开发和优化建议。
      ----哥不是分隔线----
      从以上APP项目研发流程来看,每一个版本研发都要经历以上3个阶段12环节,理论图上看是一条完整的流水线,但是如何保证流程顺畅进行?如何使项目成员工作效率最大化?这十分考验产品经理/项目经理的版本规划能力。当然项目成员间的默契和沟通也很重要。
      从笔者实践经验来看,要保证流水线顺畅,理想情况产品需求文档要领先前端开发2个版本,设计领先前端开发1个版本,后端开发领先前端开发半个版本。即在当前项目启动同时,产品经理已经在调研讨论下下版本需求;设计开始搞下版本的稿子;当前项目进行到一大半时,后端已经完成当前版本的需求,并开始准备下版本的需求预研。
      版本规划是产品经理根据需求优先级和开发进度预估定出来的,即每个版本要做什么,重点是什么,研发时间,上线时间等。一般来说,项目每发布一个版本都应该有它的意义和主打功能。
      App首个版本相对来说时间较长:app需要搭配开发环境,确定app技术框架,以及研发各种基础系统等。像这样时间较长的版本研发,产品经理和技术在需求评估时要将开发需求分阶段进行并且设置里程碑(尽量不超过3个),在每个里程碑(最长不超过1周)时间点,产品经理需要确认完成的情况,发现问题及时调整研发计划,控制项目风险,保证项目如期完成。
      后续开发的每一个版本都应该至少有一个重要功能,版本研发周期最好控制在2周-3周内。这样的好处一方面是保证项目成员有个良好的开发节奏,使研发效率最大化;另一方面保证每个版本有新东西给到用户体验,以及符合各大市场申请首发条件,获得免费的推广资源(ps:一般首发活动可以获得几千到几万的免费用户,还是挺吸引的)。当然重大功能上线的话,确保上线后版本的稳定性,可以将研发周期延至1个月,或者进行灰度发布。要尽量避免安排超过一个月研发周期的版本,否则要将长版本设置为若干个里程碑验收。经验来看研发周期过长往往会导致研发技术人员精力分散,工作拖沓,积极性下降。
      一般情况不建议频繁发布小版本,因为每个版本发布都需要测试,打包,发布市场,发升级配置和升级提醒等。频繁发布小版本造成测试和运营重复性工作增加,造成资源浪费;用户侧看频繁的升级提醒也是件很讨厌的事情。另外,建议外网运营客户端版本最多不要超过4个。维护老版本成本还是比较高的,比如做新功能还要考虑新老版本兼容情况,和各种后台数据接口升级、更新的兼容问题等。
      在特殊的情况下,有紧急的bug和漏洞时,才建议紧急发布一个bugfix版本。
  • 敏捷游戏项目测试策略

    2016-12-13 13:28:57

    敏捷游戏项目测试策略(二)-摸着石头过河


     

    以笔者所在项目为例,在项目初期我们也遇到了上文所说的各种困境,后来我们做了很多努力和探索,终于让项目逐步走上正轨,基本规避了大部分问题,那么我们是怎么做的呢?

     

    笔者总结了下,基本可以用下面的12字真言概括,即:做减法、改思想、定流程、常总结。

     

    我们通过实际例子来详细描述下12字真言,以及我们通过这么做取得了哪些效果。

     

    一:做减法。为什么做减法?作为测试本身来讲,做减法是痛苦的,意味着某些更稳妥或从前被验证过有效的测试流程要做改变,也意味着保证品质的难度增加。然而为了整体项目的进度我们不得不这么做。那么我们怎么做才能在做减法的同时做好品质保证呢?

    1.1,抛弃不必要的流程:

    1.1.1)砍掉回归测试的大部分内容。如果我们按照传统的方式做测试,我们至少要做详细的回归测试,而实际项目版本更新速度是1周更新1版,时间根本来不及,只能砍,但是怎么保证品质呢?在做减法的基础上做加法,更加细化版本上线前的checklist检查,基本做到类似回归的概念,但是时间会减少很多。砍多加少,整体上是做减法。

    1.1.2)砍掉不必要的测试用例评审。用例评审继续做,但是只做重点功能的用例评审,非重点功能用例不再评审。

    1.1.3)砍掉会议中的无效时间。会议需要谁谁参加,只讨论必要内容,非群体沟通私下进行。

     

    1.2,分拆功能测试与非功能测试。

    项目组测试只测试游戏功能本身,其他的类似sdk测试,性能测试等统一放到平台组去做,让专业的人做专业的事,提升效率。项目中的测试人员减少了,但是更加专注于版本功能本身,从而也有利于保证质量本身。

     

    1.3,灵活的集中测试。

    举个实际例子,比如app提交审核前的检查,放到项目里做可能会耗费较长时间才能做完,而且鉴于测试人员的经验,还可能会发生遗漏现象。我们的办法是临时抽调几个对app审核非常熟悉的人,大家坐在会议室里,快速的把检查点做完。即能保证质量也能提升效率。

     

    二:改思想:思维不改变,则执行无效率。

    2.1,拒绝等待。

    2.1.1)以前经常遇到某项工作没开始是因为等别人的结果,这种理由经常让人无可奈何。我们怎么做的呢?在每日进度核对(这个流程我们后面会讲)上,我们详细的核对每项任务开始结束时间,如有有必须等上一项任务完成才能开始的情况出现,我们会安排新的任务来填充这段等待时间。以此来保证工作饱和度。

    2.1.2)另一个层面,敏捷项目,测试是不能等开发都开发完毕打好包后再开始测试的,而是任何一个功能开发完毕,甚至一个功能中某个阶段开发完毕,我们立刻更新资源到本地,然后立刻开始测试,尽量保证测试与开发同步进行。

    2.1.3)坚决不等,我们测试要催促开发按时或提前提交代码,让我们能尽早开始测试工作。

     

    2.2,少抱怨,多思考。

    这里不是说不能抱怨,在我们的团队中我们甚至鼓励相互吐槽,目的是让大家尽可能从多方面得到反馈,哪些地方做的不好要及时改进,我们这种抱怨可以说是正方向的激励方式,大家关注的不再是抱怨本身,而是工作出了问题,怎么能第一时间得到反馈,怎么能想办法把问题解决掉,从而以后不再范同样的错误。

     

    2.3,随时沟通。

    当然这一项也可以归并到拒绝等待里面,单拿出来说是笔者个人认为再敏捷项目,沟通变得比以往更重要。我们项目中会提倡随时沟通的概念,有问题不要发邮件,或者聊天软件留言,尽量找到责任人工位,随时当面沟通,提升沟通效率和信息准确性。最怕的就是大家坐的很近还要通过邮件你来我往的沟通,不仅浪费大量时间,还会再沟通过程中降低信息的准确性。

     

    2.4,抛弃内网bug数量的概念。

    笔者经历过很多公司,很多项目中的测试管理者非常重视内网bug提报的数量,如果时间充裕的话,我觉得没什么问题,但是再敏捷项目,这可能成为项目的一个阻力。我个人认为提报bug很重要,但是比数量则失去了其本身的意义。在敏捷项目由于各种条件限制,我们把指标更换为外网事故数量。以此来衡量测试对项目质量保证工作的好坏。注意此处外网事故指的是通过现有技术手段能够测出来而没有测出来的bug

     

    三:定流程:

    3.1,优化流程,并坚决执行。

    不合适的流程一定要优化,还是说个项目真实实践流程改进的例子,之前项目任务不拆分,每周一大家开个会定下本周做什么就完事了,结果经常出现功能延期,版本无法定期或足量上线的情况。大家很郁闷,因为没法定量,很难确定到底是哪个环节出问题,等知道哪个环节出问题,再做调整时间上也来不及了。痛定思痛我们仔细分析讨论后,逐步把所有当周任务都拆分到每人每天工作量的细度,并每天下班前一起核对当天的完成量,这样我们能及时了解到版本进度,一旦出了问题,也可以及时协调资源来弥补。这个流程实施后,基本杜绝了版本延期的风险。

     

    3.2,及时反馈,随时改进。

    流程不是一成不变的,要根据实际工作情况及时调整改进。还是举个实际例子。我们的测试绩效考核内容变更过好几次。因为每个项目工作内容不大一样,而且由于我们分拆功能测试和平台测试,导致工作差异进一步扩大。所以我们前前后后根据实际情况调整了好几次绩效考核方案。最后调整到考核方案基本能跟实际工作内容相匹配。

     

    四:常总结:

    4.1,不在同一个地方失败2次。

    我们经常会发现同一个bug会在不同的版本中出现,弄的大家挺没有面子。我们发现这个问题后,做了2个措施,让这种情况大大的降低了。一是我们每周组织一次测试部门与运营部门的事故核对会议,通过相互监督促进测试人员更加谨慎小心。二是我们开发了一套外网事故数据系统,将以往的各种外网事故数据都上传到数据系统中,让各个项目都能借鉴,尽量规避相同的问题再次出现。

     

    游戏测试工程师之殇(三)-策略篇

    接上两篇,本篇我们主要谈谈在整体游戏测试工程师综合素质趋于下降的趋势下,处在中小公司的游戏测试的工程师们为了做好日常工作和管理工作,应该采取怎样的措施呢?在此笔者结合近两年来在不同的项目采取的实践,来谈一谈这个问题。

    三,策略篇

    正式开始之前,继续解释一下,本文谈及的很多问题在BAT这种巨无霸公司里面是不存在的,毕竟他们有钱有时间去培养和沉淀。主要还是谈论在中小公司存在的问题。中小公司在资源投入上和知识沉淀上存在很多局限性,但是问题也是可解的,只要我们不断的努力寻求解决之道,努力结合公司实际情况不断改进,我相信在中小公司的测试工作都可以与BAT相媲美,无论是技术还是管理。毕竟,毛爷爷说过星星之火,可以燎原,微小的力量也许有一天也会发展成燎原之势。

    好了,我们正式谈谈在中小公司可以采取的最佳实践有哪些?基本都是笔者经历过的几家公司不断总结实践而来,大家可以多多探讨,也许有更好的方式方法,一起来提升游戏测试工作。

    01)把尽可能多的工作checklist化。

    俗话说好记性不如烂笔头,一个游戏项目,研发领域各种各样的系统非常多再加上运营后各种各样的工作内容,单靠脑袋去记,很难避免遗忘,而任何遗忘都可能导致非常严重的事故。同样作为一些新人或者能力不够高的测试工程师,如何把工作做细致,尽可能的保证测试质量,各种检查内容checklist化是很好的一个解决方案。无需掌握太多技能和经验,一步一步自习按照检查列表走,就能保证不出问题。这也是我们放心让新手和经验不足的工程师承担更多工作和责任的有效机制。

    02)培训培养。

    在小公司搞培训培养很难,但是从投入产出比来讲,我们可以就适当的内容和技术进行一些培训,耗用尽量少的资源,来让团队的人员不断成长。这里的培训也不一定是指专门拿出时间来給大家讲课,也可以以多种形式进行,比如就某项技术或流程写成文档,让大家在业余时间学习。比如安排一项特定的任务,让员工在实际工作中去应用学习等等。一味的只让员工工作,而不去培养他们,从长远看,反而是对公司不利的。员工不断的成长的同时也能为其工作岗位带来更大的价值,从而提升了公司的整体价值。

    03)鼓励和帮助员工进行一些新技术和新方法的探索。

    在工作中,有的员工可能对某项技术有兴趣,那么我们应该鼓励和支持这种探索学习,引导他们把探索的技术应用到实际工作中,甚至为他们提供一些专业的书籍或者不限于公司内部的培训机会。员工和公司都会在这种探索学习中受益。举两个实际的例子,一个是笔者之前服务的公司,笔者的一个同事对ruby很有兴趣,团队鼓励和支持她,并给予了很多时间上的支持,从而完成了游戏后端的自动化测试框架。另一个例子是笔者现在服务的公司,某员工对自动化很感兴趣,笔者就跟她一起研究了基于pythonselenium自动化测试,并在公司外联系了培训机构,利用业余时间給他们进行培训。我们最终把该自动化测试框架推广到了实际工作中,一定程度上提升了web测试小组的工作效率。

    04)专业小组。

    在笔者其他文章中也提到过这种方式,在中小公司,测试的技术实力和沉淀都是有限的,那么面对某些专业的测试工作,我们可以临时抽调一些经验丰富的测试人员组成一个测试小组,对这些专业化的测试任务进行测试,从而尽可能的提升测试效率。这个小组的工作内容也在工作过程中持续总结积累,自身也在不断成长,一些东西可以文档化的积累下来。那么当我们再次面临这种专业化比较高的任务时,我们就可以从容的去应对。这种方式比较适合人手不够多的中小公司。

    05)绩效考核方式的变革。

    很多公司对测试人员的考核过多的集中在bug数量上,笔者个人认为这在中小公司是不适合的。在考核日常工作上,笔者认为bug数的考核已经不再适应当前环境和时代,笔者把这方面的考核变更为工作量与事故比这种方式,工作量高,事故低都会带来更大的比值结果,相对公平和有效一些。毕竟我们绩效考核的目的还是促进员工不断进步,而不是消极的去惩罚员工。另外,笔者把员工的个人成长也放到绩效考核占比之中,虽然一个季度很快就过去了,但是日积月累的不断成长,还是会在绩效考核中有所体现,从而給员工自身带来实实在在的好处。

    06)事故总结。

    尽量保持每周都进行事故总结,中小公司在这方面反而是有优势的,不用费尽力气组织n多人一起开会,随便找个会议室就解决了。出错不怕,人非圣贤,大家在工作中都会范错误,怕的是在同一个地方犯错,我们经常组织事故总结的目的就在于希望大家能不断总结经验教训,不断保持谨慎务实的工作态度,这样整个测试团队就会逐渐重视自身的问题,从而不断的改进自身,达到自我进化的目的。一些经验不足和能力不足的测试工程师也会在不断总结中受益。

     

Open Toolbar