发布新日志

  • 测试老兵的唠叨

    2011-06-20 17:50:40

    测试老兵的唠叨

      作为一个测试老兵,写点唠叨的话,给测试新人一些参考,也作为自己的一个纪念。

      1)测试人员或团队不能保证软件的质量

      很长的时间以来,测试人员总是被看做是“质量保证”人员,但作为一个超过10年的一线测试老兵来说,从心而论,测试人员或团队却不能保证高质量的软件产品。为了说明这个观点,我举几个例子。大家可能都知道,软件产品的最初版本(Version 1),通常来说都是由很多质量问题(Bug),这是一个非常普遍的现象,小公司的软件产品是这样,大公司的软件产品也是这样的。难道是Version 1软件产品没有测试人员么?还是测试人员的水品不行?显然都不是。另外一个现象就是,很多成熟的软件产品也会出现很多质量问题,例如很多大型软件基本上每个月都与补丁以及安全漏洞。那么到底是什么原因呢?其背后的根本原因是测试人员无法保证软件产品的质量。有了测试团队,并非一定能够解决质量问题,并非一定能够保证软件质量。有了好的测试团队,也未能够百分百保证软件的质量。再举一个类比的例子,现在所有的房屋建设都有监管机构,但是豆腐工程仍然是层出不穷,显然监管机构不能绝对保证质量。

      2)测试人员的价值在哪里?

      既然测试人员不能保证质量,那么测试人员的价值在哪里呢?我也曾经多次问过自己,最后我总结出测试人员的价值在于为产品开发提供有价值的质量反馈。这里面的”有价值“,应该体现为深入的,系统的和犀利的见解(Insights),另外这些见解应该和软件质量息息相关,这些都是质量保证的一个重要环节。而质量保证本身是由整个项目组共同努力的目标或结果,而绝非测试人员能够独自保证的。对于日常的测试活动,例如功能测试性能测试和安全性测试等等,这些活动的目标都是为质量提供有价值的反馈:反馈包括不同的层次和类型,例如产品缺陷(Bug),设计优化建议,用户体验反馈等等;从大类来说可以分为产品属性,用户体验和流程优化三个方面。

      测试人员提供的价值和医生为病人提供的价值很相似:医生为患者提供了关于健康的有价值的反馈,但是不能保证病人一定能被治愈。医生会做很多检查工作,就像软件质量的度量指数;医生开的方子就像测试人员提供的质量反馈一样。

      另外,测试人员往往产品的专家,同时也是非常了解客户,所以测试人员的见解往往非常有价值,而且是独特的。

      3)测试人员的职责

      讨论清楚了测试人员的价值后,再谈谈测试人员的职责就比较容易了。总的来说,质量保证的任务是一定的,无非来说有些有开发人员来做,有些是测试人员来做,有些是项目经理来做,没有统一明确的分工,每个团队都有自己的特点。这种分工通常没有一个确定的模式。影响这种分工的包括人员的特长和开发测试比例等因素。举例来说,据谷歌测试总监介绍,谷歌公司的开发测试比例为10:1,微软的测试总监也“微软测试之道”中提到微软的开发测试人员通常为1:1 到2:1之间。据我所知,很多的软件公司也基本上也2:1-3:1之间。因此,测试人员的职责在各个公司各不相同。比如说,在10:1的公司,我相信测试人员是不可能有时间为项目写具体功能测试用例或性能测试用例等,那么这种测试人员可能会在更高层次上提供质量反馈,比如说质量保证流程,需求审查等等。因此,无论哪种公司,测试人员的价值都应该是一致,就是有价值的质量反馈。这

      种价值应该得到团队的认可和确实帮助了产品质量的保证。

      4)测试人员的发展

      测试人员发展和开发人员发展类似,分为管理路线和工程师路线,管理路线包括测试主管,测试经理,测试总监等;工程师路线包括工程师,高级测试工程师,测试架构师等等。但是从公司的需求来说,绝大部分公司对于测试总监和测试架构师的需求都不是很多,其主要原因是大部分软件产品的复杂性,高级测试经理带领团队就足以实现提供质量反馈的价值。对于测试架构师的需求也是一样,只有当系统足够复杂,才有业务的需求,举例来说在微软Windows和搜索都有自己的测试架构师。

  • 好的测试职业发展文章

    2008-10-18 11:52:58


    测试职业规划


    内容如下:
    作为一名测试新人加入团队,大多数情况下,项目组成员都是一种热情欢迎的态度,并且主动提供力所能及的支持和帮助,如何快速熟悉项目业务和测试环境,尽快投入到实际工作中去,我谈谈个人的经验和一些看法,供同行参考:


    1
    、寻找新公司的团队元老:

      
    一般来说,一个新人进入新公司,都要指定一个师傅带一段时间,这也就是我们说的测试前辈。很多时候,测试前辈都是经验非常丰富的测试高人,如何您和他相处融洽,关系不错,凭他个人丰富的业务经验,给您指点迷津,也许会比你自己摸索10倍的时间效果还好。很多的测试新手,刚进入新公司时,自高自大,眼高收低,测试前辈都不愿意交,结果到了试用期转正答辩的时候,一问三不知,被迫离开公司,被炒鱿鱼。这样的例子我看到的不下于10例,很可惜丢失了很多工作机会。

    2
    、虚心的学习态度:

    刚到一家新公司,保持谦虚的学习态度非常必要。记得我刚毕业那年,公司招聘了一个测试主管,他有45年的工作经验,阅历算是不简单,也是我们心目中的牛人吧。但是那个人,除了听总监的话以外,对于我们部门的其它人来说,他简直是自高自大,目中无人,根本不把部门里的其他人放到眼里,觉得部门的人都不如他。他作为一个空降兵,老员工和新员工,对他都很冷漠,碰到什么问题,需要小组成员帮忙的时候,大家都不愿意帮助他,互相推诿,并且经理也找他谈了几次话,效果不明显,结果他呆了不到2个月,估计是自己觉得很不开心,被迫离开了公司。其实,保持低姿态,谦虚的学习态度,必不可少。

    3
    、阅读项目相关的文档:

      
    一般来说,新人一到公司,就会安排到项目中去。作为测试新手,快速阅读相关的需求文档详细设计文档用户手册特别关键。我们能够通过需求规格说明书等文档,快速熟悉系统相关的知识,获取编写测试文档的相关信息。如果项目已经编好了用户手册,您完全可以根据文档的步骤,一步一步傻瓜式的熟悉每项功能。只有掌握的这些文档的精髓,测试才会变得异常轻松呀。

    4
    、快速熟悉项目相关业务知识:

    刚到新公司的测试人员,如果你是跳槽到以前做过的相近行业,有丰富的经验了,那么您熟悉业务没什么大的问题。如果您换的新公司是您以前都没有接触到的行业,那你一定得努力一点,买些相关的业务知识看看非常必要。我深有体会,以前从一家通讯公司跳槽到做银行系统的公司,业务完全两样,很多业务知识都是从零开始。不过有一定的工作经验,学习起来也挺快,关键取决于个人是酷爱学习和坚强的学习毅力。

    5
    、尽快介入了解被测试系统:

       
    刚跨入一家新公司,如果被测试系统已经开发的差不多了,部分功能已经OK了。你可以部署到测试环境下,尝试从直观测试的角度去尽快了解系统,尽快结合文档熟悉起来。很多的时候,通过页面操作实际的系统比看文档效果好的多,并且印象更深刻,熟悉系统更快。新加入公司的朋友不防试一试。

    6
    、了解公司类似的相关产品:

       
    大多数的公司,都不可能在每个行业都非常强,基本上都是在某一个较小的领域很强势,公司主要就是研发强势相关业务的产品。所以说,相关的产品一般来说是很多的,如果要你测试的系统没有开发完毕,如果时间和条件允许,不妨先了解一下公司类似的产品,以便尽快熟悉起来。大多数情况下,公司很多的产品都是相通的,大部分的产品是在不同的客户要求下,修改了部分功能和界面而已。个人认为:了解类似的产品,也是测试新手快速熟悉产品的一条捷径。

    7
    、尽量多参加项目的各种会议:

       
    每个项目,特别是在项目的启动阶段,大会小会不断,很多时候项目组成员抱怨居多,都认为很浪费时间,耽误开发进度。如果作为测试新手的您这个时候加入,那太好了,多参加这样的讨论会。大部分时间都是在讨论项目的重点和关键,如果大家意见不一致,必然要对不一致的东西展开细节讨论,您肯定是收益匪浅。特别是对业务方面的讨论,您参加几次讨论,比您看10篇需求还强,并且理解也很透彻。如果您对需求有所了解,但是部分功能模块还有问题,就可以在讨论会上随时提出来,大家一起讨论,共同解决。如果有这样的机会,切勿放弃哟。

    8
    、阅读类似项目已有的测试用例:

       
    如果项目已经启动并进入了测试阶段,如果你在这个时候介入,通常情况下负责人都会给你提供整个项目或部分需要你测试的部分模块的测试用例。这些测试用例也是您快速上手测试的重要参考资料。如果还没有编写测试用例,你就介入了,那你就得重头开始,您可以阅读项目类似的测试用例,并结合以前项目的测试经验,根据公司相关的测试用例模板开始编写测试用例。如果在编写测试用例中碰到您不了解和很难处理的问题,您可以记入测试需求疑问表格,等部门开会时,提出来大家讨论。最好不要碰到一个问题就去问,经常打乱人家的思路,弄得别人嫌烦,那就不值了。

    9
    、查看缺陷数据库中旧有的缺陷:

       
    一般的测试缺陷跟踪系统,都是按模块来分类软件缺陷的。如果老大给你分配了测试任务,你就可以有目的的去熟悉即将测试的模块缺陷。登录系统后,对缺陷进行筛选,尝试按测试前辈的Bug描述步骤进行操作,看看是否能够重新缺陷?这种方法能够借鉴测试同行的经验,尽快发现问题,避免测试的盲目性。一来可以拓宽您的视野,避免递交类似问题的Bug或是重复的Bug,二来还可以为您快速熟悉被测试系统添砖加瓦。

    10
    、必须明白自己领导是谁:

       
    一般的员工进入公司,公司和部门领导很多,搞不清楚谁管我,碰到问题问谁?谁可以帮忙解决问题?如果真是这样那就麻烦了。部门领导臃肿的情况实在是太多了,有的公司,既有2测试经理,又有几个测试主管,还有多个项目经理和研发总监,不知道工作向谁回报,对哪个领导负责。弄得每个领导都回报,很累呀!!我的做法是:测试项目中负责领导只有一个那就是测试主管,测试主管负责安排和分配每个测试人员的工作和任务,我直接Review测试主管。如果项目中碰到有什么解决不了的问题,组内成员可以直接找我,同时我也定期加入项目参加部分测试,了解测试项目的一些进展情况,必要时还要找一些人谈心。这样,工作汇报比较简单明了,很轻松。

    11
    、熟悉与测试相关的管理软件的使用:

      
    我说的这个测试相关的软件包括缺测试需求管理软件(如TestDirectorQC)、陷跟踪管理软件(如:TestTrack ProTestDirector等等)、版本配置管理工具软件(CVSVSS,还是SVN等等),具体熟悉到什么程度,那就要看您的职位了。如果您是一般的工程师,那你就只了解一般的使用就够了,如果您是测试经理,您不仅要了解一般的使用,还要更深层次的了解软件的权限和项目的配置,因为您要作为该软件的Admin,碰到问题大部分都由您搞定呀,高工资不是那么好拿的呀,哈哈!!!如果作为新入职的您,连这些都不会,那你就得加把油了,不然到了测试启动阶段,你才开始熟悉管理软件,那么你觉的能够快速展开测试吗?

    12
    、注意沟通技巧,把握请教良机:

      
    为了尽快熟悉项目,展开测试工作,沟通技巧必不可少。您作为新入职的测试人员,尽量了解每个开发人员开发的模块和每个开发人员的性格特点,寻找一些共同语言,拉近与开发人员的距离,让他们对您产生好感。只有这样,当您碰到问题的时候,他们才会鼎立的帮助您。如果您与开发人员关系不好,看了就觉的很讨厌,那他们肯定不会帮助您的,更不原意和您配合,当您提错Bug的时候,他们就会抓住这些Bug不放,有时候还要说您什么都不懂,这样你就很郁闷,肯定呆不长久的,只有走人的份了,呵呵。特别是开发人员很窝火的时候,您更要多一些理解和宽容,切勿火上浇油,您可以给他一些表扬,给他一些鼓励。他一听准开心死了,总觉得还是您们最了解我,把您当成自己人。这个时候,你再问开发人员问题,他也许态度就不一样了,他准会仔细的给你讲解,并且以后的什么事情,他也会百厌齐烦地帮助您的,因为他觉您最了解他们,无意识的把您当成了好朋友和哥们。还有的时候,开发人员有空过来测试部门逛逛,准备和您交流时,一定要把握机会,和开发人员开开玩笑和一些必要赞赏,也能够调节和开发人员的关系。总之,这一点做起来真的很难,如果做的好,那效果确实就不一样了。

Open Toolbar