测试,不应该只是肤浅的~~

发布新日志

  • 测试不该只是肤浅的--记录崭新的成长历程

    2009-10-24 18:23:03

    现在是早上5点46分,我身在美国cambridge家的阁楼上.
     
    很偶然的再次翻到51testing这个论坛,很偶然的翻到这个刚刚工作时建立,已经废弃3年的空间.看到有那么多人曾经关注查看过我那些更加年轻时的足迹.很有些许感动.
     
    事隔三年,这三年来一直从事着测试相关的工作.从一开始对于标有微软的一切字眼趋之若鹜,到后来厌倦了外企的重复无聊的工作,以及对于作为欧美公司本土化员工的失望.
     
    在这间歇中,我考了托福,gre.榨干了所谓学校声望和工作背景的最后一丝优势之后,终于来到了美国继续念cs的硕士.
     
    测试到底应该是怎么样子的?这个问题可以说的很泛泛.如果你愿意,翻翻论坛置顶,或者随便逛逛这个论坛的个人测试空间.会有非常详细的规划和热烈的讨论.但是,从我的角度出发,它们之间的大多数只能教你怎样变成一个"看起来很好的"测试人员.而且这"看起来很好"通常因为内容太宽泛似乎永远达不到.但是,即使你十分努力,达到了那些条条框框的准则.那么你是否真正就能成为一个达到大师水准的测试人员了呢?我看未必.至少以这些年我在上海工作的经验来看,你要小心以下容易让人自满的"陷阱":
     
    1.我的英文非常流利.我"看起来很好".不仅仅是测试行业,在整个it行业,特别是在上海.这种自我满足会非常多见.英文好就可以进外企,在外企里打打越洋电话,开开国际会议.整天洋腔洋调感觉多好.英文的确是一个非常重要的沟通技能.但也只是一个工具.切不可自满于此.即使它能让你变成时尚人士,那也不过是本土化的.我在外企工作的时候,环境全部是英文的,没有出国背景的同事一个比不上我.留澳留英回来的mm们和我旗鼓相当.但是到了美国,每周的程序演示考试上,当我在高压下要用英文解释清楚自己的代码和回答审查人员的各种提问的时候,那种当初在上海办公室自我感觉良好的优势荡然无存.我在上海英文再好,在美国和美国学生比起来还是一个弱势.并且永远不会成为优势.显然,英文好测试不了任何软件.boston街头随便一个卖美式唐纳兹甜甜圈的店员小姐的英文可能都要比当初用英文面试你的本土manager要好.如果你的语言关过了,那么请keep moving.
     
    2.我的测试理论体系头头是道.我"看起来很好".软件测试是一项实践性工程项目.它的诞生之日起就决定了它必须是实用的.理论体系再好,如果不能加以实际应用.或者所谓的应用只能体现在举例子的"玩具式测试"阶段.那么它们的作用是有限的.而且,如果你愿意,在51testing报名参加培训课程.埋头苦读2,3个月.人人都有机会成为理论体系的"大师".这个培训课程非常好.是一个很好的起步和捷径.但是如果想要成为一个有实力的测试工程师.我想任何人在2,3个月里都是不可能办到的.
     
    3.我是测试工程师,所以代码对我来说不是很重要.而我还能写一点代码,那就很高级了.我"看起来很好".如果是这样,那么你只能成为一个称职的中国本土化测试人员.你可以很好的完成欧美公司外包给中国的任何项目.但是无论他们看起来有多么高级,这个项目听起来有多么酷,他们大多是去掉核心的周边延伸.主要任务已经在美国完成(完成的人可以是测试人员,也可以是开发人员).你的任务就是扫清残敌.这也是我之所以厌烦外企工作的主要原因之一.我的第一份工作是参与微软一些自动化测试项目组的自动化测试.当我第一次看到用c#(而不是qtp,它听起来比qtp更加酷不是吗).可以来做测试,并且生成一段段的代码来执行一个个的测试用例.我感觉我的工作是多么的高级.(可以参见我三年前文章字里行间的激动心情).后来我去了hp.他们用qtp来自动化一部分手动测试用例.规范性和严肃性远不及微软.但是这样就给了我很多自由空间.于是我在使用qtp之外还可以用c#来自己开发一些小工具来完成qtp不能完成或者完成效率不高的事情.这听起来就更加有意思了.但是,当我来了美国读书之后,我发现原本我花一个礼拜完成的代码.在学校一天之内就要写完.而那些自动化测试编程如果去掉酷炫的外衣,其实质不过就是调用api,和内嵌在framework里面的函数而已.这就好比别人已经写好了一个软件,来供你使用.只不过使用的是函数,而不是鼠标点击按钮.如果你觉得这样就是最酷的了.那么那些幕后开发framework的人呢?要记得他们也是测试工程师.
    所以,作为一个真正有实力的测试工程师.代码是一门必修课.而且愈资深,愈须深入.
     
    这就是我,一个从普通测试人员又变成学生并期待将来再做回测试行业的人的一点看法.但是等我再从事这个行业的时候,我要做那些背后开发framework的人.
     
    第一次开这个空间的时候是三年前,我刚工作.感谢那么多来关注我空间的人.如果你有耐心再看两年.那么我会展示给你看在美国,一个测试工程师是如何一步步成长起来的.
     
  • 读书备忘:C#浅拷贝与深拷贝

    2007-06-06 09:36:30

    MemberwiseClone 方法创建一个浅表副本,方法是创建一个新对象,然后将当前对象的非静态字段复制到该新对象。如果字段是值类型的,则对该字段执行逐位复制。如果字段是引用类型,则复制引用但不复制引用的对象;因此,原始对象及其复本引用同一对象。
    深拷贝,即实现ICloneable接口.ICloneable可用于深拷贝和浅拷贝
    请看下面理解那句话.
    using System;
    using System.Collections.Generic;

    public class MyClass
    {
        
    class InstanceA:ICloneable
     
    {
      
    public int x;
      
    public InstanceB B;
      
    public InstanceA(){}
      
    public InstanceA(int X,InstanceB b)
      
    {
       
    this.x=X;
       
    this.B=b;
      }

      
    object ICloneable.Clone()
      
    {
       
    return this.Clone();
      }

      
    public InstanceA Clone()
      
    {
        InstanceA A
    =this.MemberwiseClone() as InstanceA;
        A.B
    =this.B.Copy();
       
    return A;   //深复制
      
    //  return (InstanceA)this.MemberwiseClone();  //浅复制
       
    //return new InstanceA(this.x,this.B);     //use this can't get deep copy too..
       
      }

     }

     
    class InstanceB
     
    {
      
    public int y;
      
    public InstanceB Copy()
      
    {
        
    return this.MemberwiseClone() as InstanceB; 
      }

     }

     
     
    public static void Main()
     
    {
        InstanceA obj1
    =new InstanceA();
        obj1.x
    =1;
        obj1.B
    =new InstanceB();
        obj1.B.y
    =2;
        
      InstanceA obj2
    =obj1.Clone();
      obj2.x
    =3;
      obj2.B.y
    =4;
      Console.WriteLine(
    "Obj1.x is:{0} \t obj1.B.y={1}",obj1.x,obj1.B.y);
         Console.WriteLine(
    "Obj2.x is:{0} \t obj2.B.y={1}",obj2.x,obj2.B.y);
      Console.ReadLine();
     }

    }

  • 像dodo一样分手,前进道路上值得抛弃小情感

    2007-05-18 10:50:15

    这些天有一些小迷惘,感觉每天都不能按照计划完成自定的任务。昨天心血来潮买了一包烟,平时不抽烟的我却在一个晚上把整包烟都抽完了。感觉头很痛,需要找人倾诉。于是半夜12点一个电话打到我gf那里去了。我这个人或许是个多面派,和不同的朋友说不同程度的话,关系好坏决定分享感受程度。但是昨天晚上我真的很压抑,想想虽然我们现在的正在闹矛盾,可也是曾经那么亲密的伴侣,就把我最彷徨最实际的感受告诉了她。我跟她说我觉得自己站在一个关口上,一方面我每天都有很多的事情去完成,有很明确的目标要去实现,另一方面潜滋暗长的惰性却又会自觉不自觉的拖自己的后腿。在这个斗争过程中我感受到了痛苦。但是我同时感受到如果我克服了这些从小养成的坏毛病,那我将能够脱胎换骨。

    电话那头她先是安慰我了一下,然后开始跟我说感情的事情。说我很久没有打电话给她,说我不再喜欢她了。我和她说我不是不喜欢她,只是不能把精力过多分散出来放在感情上。作为一个男生,关键时候总要有所为有所不为是吧。或许有些人确实可以感情事业两头兼顾,或许更多的人虽然不能但是在感情的诱惑面前总是坚信自己能。反正我很清楚我不能。我很清楚23岁对我来说是一个坎,说大不大说小不小的年龄如果浪费时间沉溺于感情,那么我终究只能归于平凡。

    我说那些话是很真诚的,我真的希望她能够理解。虽然偶尔我也会对其他类型的小姑娘动动心,但是那些只是表面的。当我真正谈到感情的时候,我还是只会想到她。可是显然她不能理解我的意思。通完电话不久发了许多短信过来,但是总的意思只有一个:我们分手吧。

    gf发那些短信的时候已经是凌晨1点多了,我那个时候已经睡着了。今天早上起来的时候我才看到那些内容。我们在一起交往了快四年。可是我却没有觉得特别难过。相反的早上起来的时候我的精神特别好,感觉正在消失的动力又重新回到了自己身上。看来倾诉还是很有效果的。各么虽然gf要和我分手了,但是这些小事不能阻止我继续朝着我的目标努力。

    我中学的同桌叫dodo,是我比较崇拜的一个人。他刚去美国读书的时候就和他在国内的女朋友分手了--一个那么优秀迷人的小姑娘。随后他的奋斗即使我只是偶尔有所耳闻但是也足够让我感受到他难以让人置信的毅力和优秀。现在他在美国google本部,每年拿着超过12万美金的年薪和公司股票。而他和我一样只是一个刚毕业的本科生,同时他仍旧继续在斯坦福攻读着硕士学位。do哥一直是我的榜样,有了这个榜样,无论这个城市充斥着多么浪漫的诱惑;无论平时听的流行歌曲多么恳切的传颂着真爱无敌;无论周围的朋友看起来多么甜蜜的沉浸在恋爱的甜蜜里。我都能够对此无视。

    表面上我在大家眼中是一个孩子,总是对mm的话题感兴趣,看到喜欢类型的女孩子会去约。但是实际上谈到感情我还是会想到我的gf。然而更加实际而本质的,在个人奋斗的路程上,所有的一切的阻碍都可以被放弃。像dodo一样分手,像dodo一样果断。或许我性格中感性的一面太强,23岁的我做的还不如18岁时的他那样漂亮。所以我现在远远不及他的优秀。但是索性的是我终于迈出了第一步,以后也会学的更加果断和不被外界干扰。

    一切又有好的开始和更加让人振奋的动力,早上坐班车的时候我又有精神背gre单词而不是萎靡不振的睡觉了。

  • 马失前蹄Lr

    2007-04-29 17:42:11

    前天参加了lr的sp考试。怎么说呢,真是大起大落的一次经历。为了准备lr的sp,我花了比当初考qtp sp多两倍的时间来复习。考试开始的时候惊喜的发现大部分的题目我都在复习的时候碰到过。一个小时把卷子答完了(考试时间为四个小时)。然后心里开始戏剧性的产生各种想法:首先开始怀疑lr的sp是不是真的值得来考,然后开始埋怨mercury怎么题库都不更新的。最后甚至bs题目的简单。又过了一个小时,约莫着大约九十多分的样子就自信满满的提交了卷子。

    没想到结果竟然大大出乎我的所料,就这样一份80%题目我都做到过的卷子,我却只有六十多分,按照mercury的评判标准,是属于被考试bs掉的分数。一时间我的脑子一片空白。简直不敢相信自己的眼睛。确信自己的分数确实是fail掉的时候。先前的那些自傲的想法全都调转了矛头来嘲笑我自己了。这其中的巨大心理落差我有生以来还是第一次感受到。

    但是,结果既然已经造成了。还是要从客观上找原因。五一节会把考试失利的原因好好总结下。说实话我到现在也不能找出为什么那些我曾经非常确定的题目中会有那么多错。

    这次的lr考试无疑当头泼了一盆冷水。但是有利有弊,让我清醒了不少。参加工作以来,虽然我觉得自己变得比大学时候积极上进了,但同时自负心理也在潜滋暗长。若不是昨天的反差,我还没有机会换位思考下自己的那些想法是多么狂妄和无知呢。不过我相信,只要重新把心保持到务实冷静的状态上来,有耐心的好好总结错误。还是能够在下一次的补考中成功的。

    这个博客应该记录下我成长中的一切,包括成功的喜悦和失败的痛楚。而不能成为一个标榜功绩的花壳子。

  • 春节以来二三事

    2007-02-28 10:25:55

    呼呼,原本打算经常更新日志的。最近一忙就顾不大上了。今天终于决定把近期的状况汇总一下,大家别怪我

    关于春节:

    今年春节过得还算比较成功。没有大吃大喝,只跑了一户亲戚,没有熬夜。不想把节日越过越累,在家看看书不是蛮好~~只可惜在家看书比较磨洋工,长假七天只cover了两个chapter。这个要深刻检讨...

    关于工作:

    这个变化比较大。春节放假前一天我完成了个人设定的20个bug的小目标。放假后leader和redmond那边开了电话会议。我们的工作性质发生了明显的变化。总的来说cs 2008的测试被提上了日程,并且我们组从原来的自动化测试维护转为了要根据新发现的bug写自动化测试脚本。并且为cs2007开发一些辅助工具。感觉原来已经颇为顺手的工作一下子变得陌生而充满挑战起来。就把它当作第二次实习,全情投入吧~~

    关于sp考试:

    最近开始复习loadrunner的sp考试,相对于之前qtp的sp考试我只复习了两三天而言,这么早开始复习lr实在是迫不得已。首先我的工作就是自动化功能测试,而且微软的自动化测试代码远比qtp的自动化测试脚本来的复杂。所以对于qtp的考试我还是比较有信心的。lr对我则相对比较陌生。再加上lr的用户文档有三千页之多(qtp的只有一千页),不好好准备是不行的。现在的状态是每天在公司加一个多小时班,回到家再马不停蹄的看三个小时lr文档。然后关上电脑直接枕着本本睡觉~~大家知道为嘛我没时间更新日志了吧?令人欣喜的是我发现在看了一定数量的原版书籍和mecury的这些技术文档后,我阅读英文资料的速度加快了.现在像lr文档这种比较简单的英文文档我已经可以做到快的时候一目十行了,那行云流水的阅读感觉可是相当不错的.so我建议复习sp或者cpc考试的朋友不要去下读都读不懂的中文版资料来看,更加不要装中文版本的lr或者qtp.他们本身都是很美的.翻成中文就像老外穿旗袍,多少有些别扭.

    关于情人节:

    现在回头来看情人节好像是去年的事情了哎~当然对于我这个没有什么情人的人来说也是没什么好说的.唯一值得一提的是春节的时候和心仪的MM用电话聊了一个小时英语.让我兴奋到现在啊~虽然只能用帮练英语的机会聊天,但是我已经非常满足了。归根到底,我现在心思不在想谈恋爱上,对于感情的需求也不那么多。只要一点点激励就足够了。

    汇报完毕,继续工作。fighting~~以上。

  • code defect是要靠手测出来的

    2007-02-14 09:21:44

    很多人都喜欢亲近代码。不错一个会coding的tester发展空间更加大。但是这并不意味着一个会coding的tester就一定是一个好的tester。我想一个好的tester所需具备的条件不仅仅需要有编码技能,更要有开放人员所不及的敏感。这不是今天想到然后说一说就能够实现的。需要长时间的经验积累和培养。但让人感到欣慰的是,越不容易掌握的技能含金量往往越高。

    拿微软的测试来说,自动化测试涵盖了80%~90%。到了后期sp1版本测试阶段,基本上就是每天一个新的软件build,然后反复修改自动化测试代码,跑自动化测试。当测试代码的错误率低于既定的百分比后,再针对sp1阶段所发现的code defect(软件缺陷)写新的testcase加入到自动化测试代码库里,再不断的跑测试,出新build,直到产品发布。

    那么对于现阶段的tester来说,每天的主要任务就是看自动化测试代码,debugging.虽然在测试脚本里发现的代码错误同样会被当作bug来报入product studio(微软的bug管理系统)。但是它们毕竟是脚本错误。可以提高测试的效率,是不能改善产品本身的质量的。到了sp1阶段除非回归测试发现修改产品代码后的错误(事实上这也就是为什么需要耗费如此大的人力物力来写测试代码的原因,保证每天的新build没有回归错误),通过testcase来发现许多新的产品bug几乎是不现实的。这个时候要发现新的bug惟有通过手动来试。说白了,就是玩转产品。首先需要理解软件的每一个功能和流程。在此基础上针对每一个软件功能提出质疑,做试验。这个时候确实需要天马行空的创造力。所不同的是,软件tester的创新必须要基于一定的规则。对产品理解的越深,就越容易找出问题。

  • 我25岁前的奋斗目标

    2007-02-11 23:07:29

    今天是我23岁的生日,不知不觉中23个年头就这样过去了.越来越觉得应该给自己订立一些目标,只有这样才能确保不会浑浑噩噩的工作,不会安逸于现状.
    那么在25岁前,我要完成以下这些事.
    1.仔细的把wrox关于c#的两本书(c#入门大全和c#高级编程思想)看上几遍.

    c#将会是我以后相当长时间里面的工作语言.之前接触c++比较多,c#对我来说还不是特别熟悉.看上几遍的原因是经典教材的好处在于每一个细微的语法知识点都会涉及.虽然我现在已经会用c#写程序了。但是细枝末节的地方还有许多地方没搞明白。只有深入细腻的通读全书,才能打下良好的c#基础。
    目前进度:入门大全一遍,高级编程思想未看

    2.熟练掌握一门数据库语言

    熟练掌握数据库意味着不仅会使用基本的语法,还能够随时随地使用它解决实际问题。这就包括如何在程序中调用,数据库。处理数据。理论上并不难,缺少的是实践和熟练度。
    目前进度:基本掌握数据库的通用语法和原理,熟练度有待大大增强。

    3.考到qtp和loadrunner的双cpc

    这个不多说了,证书的意义就像海龙老师说的那样只是对自己的一种肯定.能够让我更有信心的朝着测试的方向发展.
    目前进度:qtp sp证书取得,loadrunner sp证书3月份备考中

    4.通读linux 1.0内核的源代码

    自从周峰老师第一次布置给我这个作业,这件事情就一直是我想完成的大事之一.1.0内核的代码只有几万行,却包含了最为基本的操作系统的知识.我没有做过开发,阅读的代码量太少.linux的源码对于弥补我的这个不足有着莫大的好处.
    目前进度:相关书籍,网站资源一应俱全,数据结构和操作系统的知识掌握的还不错.c语言也还可以.就等着开读了...

    5.英语水平能够达到熟练阅读杂志和听懂日常新闻的水平

    向来认为英语只是一个工具,但是掌握好它却能够给我们带来额外的资源。求职英语对我来说已经不是问题,但是居然已经学到这份上了,就要彻底掌握这门工具。为此花大价钱报了英孚的班,希望能有作用。
    目前水平:能够流利的和老外交流。大致听懂微软英语版本的内部技术培训。

    6.做人要一如既往的真挚,但是随时随地管好自己的嘴.不该说的话不能说,该说的话不能说过.要慢慢学会不能把所有想法全部写在脸上.先思考,再张嘴.

    目前进度:很多时候已经可以做到先思考再说话了,但是还远不能做到喜怒不形于色.这个不是一天就能练成的.需要磨练...

    年轻人需要积累,25岁前不考虑工资.惟有积累...
    加油~Ultra!
  • 要化一切为前进的力量,包括心动的感觉

    2007-02-11 01:46:51

    高三快毕业的时候,老师把保送大学的同学安排在单独的楼层。在那里我遇到了让我一见钟情的女孩。可惜一切都太晚了,她被保送去了上外,而我去了浙大。余下短短的几天里实在无法发生什么。况且那个时候我们都太小了。
    可是从此以后,我知道了哪一种类型的女孩是我最为喜爱的。
    五年后的现在,我又遇到了同一种类型的女孩。白白的皮肤,圆圆的脸蛋,让人意外发笑的性格。仅仅第一次碰面,我就又找到了五年前一样的感觉。让一向话很多的我变得紧张起来。
    可是那又如何呢?我不能每一次接近一个女孩都用我的英语,编程,或者技术来胁迫。我再次感到了自己的弱小,换句话说,就是太嫩。
    或许再一次的,我在错误的时间碰到了正确的人。再一次的,我要与符合我的soul mate失之交臂。但是我相信这会是最后一次。
    我在大学里面因为感情的事情浪费了太多时间,以至于热爱计算机的我居然把大把的时间花在感情的纠缠而不是计算机上。如今在微软的campus,在这个我自小就梦想的殿堂里,我决不允许同样的错误犯第二次。
    每一天都是宝贵的,每一天我都会学到新的知识。我感到我在成长,我感觉到了潜在的机遇正在某个地方等待着我。这种感觉常常让我热血沸腾,愉快而自觉的学习知识。
    而当我真正成长成熟起来的那一天到来的时候,再次遇到同样的女孩,我决不会再错过了。
  • 本周结束还有两天,离目标还有5个bug,~fighting

    2007-02-08 10:06:19

    昨天晚上回家的时候猛然想到昨天checkin的时候没有添加source depot的变动,虽然只是很小的一步,但是如果被美国redmond那边的sdet david看到的话,就会又一封邮件发过来催促了。

    于是今天早上我坐第一班班车早早的赶到公司,直奔product studio而去。发现change已经被同是redmond的dawita添加了。再小心意意的看outlook的邮件,叫dawita的哥们没有任何埋怨,无声无息的就给change了。长舒一口气,原来不同的sdet处理问题的方式都会不一样。但是于我,这应该引起相当的重视。我写了个check in流程的checklist便条纸贴在显眼的位置。这样以后就再不会忘记了。

    我正在测试的产品是commerce server,用来提供给客户从建立商业网站数据库和制定商业规则到最终生成网站并对其进行日常维护管理的一整套解决方案。这个产品的客户群大多在国外。国内知道的不多。由于已经到了sp1版本,产品本身的bug已经相对比较难找了。现在大多修复的都是test case的代码错误。leader给我的最低是一个月提交两个bug,第一个月,我只提交了一个bug。第二个月熟悉了环境以后,我提交了10个。2月份我的目标是在春节放假前再提交9个也就是在下个礼拜结束前达到总数20个。到目前为止,我的总数已经有15个了。算今天还有一个礼拜零两天。加油~~

  • 两个月工作经历,第一篇日志

    2007-02-05 17:02:55

    又是日志,很久没有写日志了。大二的时候热衷于做网站,有自己的博,自己的网站。为此每年要付二百大洋去维持空间。现在dualultra.net虽然还在,可却已经整整荒芜近三年多了。

    我是很珍惜曾经留下点点滴滴的。那些情感,那些挣扎,那些愤青而自负的年岁。虽然刚出校园的我在别人眼中依旧年少无知,可是我的成长自己却很清楚。人就是要慢慢成长,经历不同阶段的。每一个阶段不要留下遗憾,才是最重要的。

    离开了浙大的校园,又进了微软的campus。很庆幸自己始终能够接触纯净向上的氛围。在微软每天的工作都是愉快而充实的。在这两年里面我有很多目标。有些是和工作有关的,有些是和感情有关的。

    不知道是否会有人来看空间里面的日志呢?期待ing

    工作了工作了,有时间继续更新~~

Open Toolbar