发布新日志

  • 一位软件测试工程师的工作总结

    2007-09-05 10:41:18

    一位软件测试工程师的工作总结

     

    我最初参加测试工作的时候,不知道什么是软件测试,集成测试和系统测试的概念经常混淆, CMM 是什么就更加不知道了。那时候最简单的开关机也是通过直接拔插电源完成,安装系统对我来说简直是有史以来人类的最高技能,对于那些拿着螺丝刀安装机器的人就认为是宇内超级高手,身具杀人于无形之绝世秘技。拿破仑说不想当将军的士兵不是好士兵,我最初的梦想就是想成为软件测试的高手,傲视天下。所以不断偷师,总结经验,自认为掌握了成为高手的几个秘技,这几年混迹 “ 江湖 ” 还算无往而不利。不敢独享,望与吾辈测试人员切磋,早日总结成功密技之大成,助新进人员早日入门,也算不愧对东北活雷锋的称号。

    第一招 学会利用网络

       刚参加工作面对浩瀚的网络世界,当时如刘姥姥进大观园,什么都新奇,什么都想要,从网上下载很多源程序的代码,软件技术文档之类,恨不得把所有的好东西收集到手中,其实有些在他人看起来就是垃圾一堆。当时觉得有了这些 “ 武林秘籍 ” ,成为高手指日可待。最初参加工作由于自己工作努力有幸转为开发,加入项目组后我的习惯还是没有改,反而变本加厉,手中的资源更加多,上网的时间更加频繁。

        一次项目经理分配任务,觉得依靠手中的秘籍加上自己的 “ 聪明才智 ” 很快会完成,不料短短的时间,所有的一切变成了马奇诺防线。解决问题很慢,思路不清晰,项目经理在对我施压的过程中教会了我终身难忘的一招,学会利用网络寻找要解决问题的答案,从此 Google 成了我的最爱,关键字成了我变化的招数。在软件测试工作中,他帮我解决了很多疑难问题,解答了很多令我迷惑的地方。也是我帮助测试同行解决问题手段之一,很多软件测试新手,甚至老手都没有意识到自己手上就握有 “ 无敌秘籍 ” ,所以只要你耐心找,答案就在身边。

        这里总结一下利用网络搜索引擎的技巧:

    组合搜索

        每次搜索某个文件,如果只给出一个单词进行搜索,经常会出现成千上百万计的匹配网页。然而如果再加上一个单词,那么搜索结果会更加切题。

    选择表述内容的词组

        一般我在网页搜索引擎的时候,选择一些可以表达我要查找内容的关键词组,用来缩小搜索范围,从而找到搜索结果是最好的办法。运用词组搜索涉可以先先简单地输入一个问题作为词组搜索,如果仍然找不到合适的,那就用多个可以表达要查询内容的关键字进行查询。

    定位信息来源

        有的时候用词组搜索不到或者无法准确表达所需信息。可以用另一种方法直接到信息源,就是直接到到提供某种信息的站点去。可以用公式 “www. 公司名 .com” 去猜测某一组织的特点。从而得到所要搜索的信息的主要词组

        其实网络上还有很多关于搜索技巧的文章,大家可以自行学习。千万要记住搜索引擎是帮助你成功的有力武器。

    第二招 学会动手

        参加软件测试工作后,随着工作经验的增长自我感觉越来越好。在公司里也逐渐受到同事领导的重视,一次针对公司的新的软件功能进行测试的时候,像往常一样 “ 随手 ” 测试出了几个 Bug ,然后 “ 仔细 ” 的填写了 Bug 单(这个 Bug 的现象已经出现了很多次了)。这时候测试经理走过来,重新复查了一下填写的 Bug .他在重现我的 bug 的过程中,简化了我的输入变化, bug 神奇的又出现了,同样的现象,他关闭软件重新变化输入,扩展出 10 几个变化后,软件不动了,内存不断上升。终于他找到了产生软件的 Bug 的原因,然后对我说 “ 寻找 Bug 要准确定位,我们开发团队是一个整体,时间是等量的,时间不在你身上浪费,就是在他身上浪费。如果测试人员每次发现的 bug 描述不清楚,并且多个问题潜在的错误原因是一个,虽然操作可能稍微有些变化。这样开发人员在重现 bug 的时候他要调试跟踪判断,很花费时间,而且效率低。如果测试人员发现 bug 的时候多动手可以更加准确的定位 bug 步骤和原因,给开发人员最精确的步骤和准确的描述,这样整个团队才能高效,所以需要大家协作!。 ”

        在以后的日子里,每次解决问题的时候我都记得多试验几次,多尝试。网上很多朋友还有同事问我问题的时候,其实他们只是万里长征就差一步,只要再多动手实验一次就可以达到目的了。所以多动手,多尝试。

    第三招 思考自己所作的

        刚开始入行的时候,总是思考如何做好软件测试。认为公司的测试流程混乱总是很郁闷,认为自己学不到东西,如何才能测试好产品,常说心动不如行动,以前看到古龙小说中经常出现的场景无名小子不断挑战高手,总结积累。我总结了有些经验是实战中得到的,所以不断尝试引入新的测试流程然后评估,这个过程虽然很痛苦,但是从中积累了不少经验。这段时间让我学习到了很多东西,接触了 ISO,CMM ,测试管理工具,自动化工具(因为公司不正规给了我很多学习的机会,后来到了比较大的软件公司后,以前的经历给了我更多的发展机会,因为大公司非常正规了,公司内部人员分工明确,所以能力的锻炼反倒少了)。由于工作中经常写报告反倒养成了总结教训的习惯,因为纸面上的东西是永远也忘不掉的。在写的过程中可以不断补充扩展,整个过程是思想升华的过程,当年达摩面壁九年就是融会贯通的典型例子,如果他不是有个思考的过程,他也不能成为一代大家。如果后来不时有人把他的绝技记录下来,也就不能有后来的少林寺七十二绝技。

        所以善于思考,总结经验,也是成为高手之路的不二法决。

    第四招 学会利用论坛资源

        其实测试新兵和测试高手之间的区别,往往是不会利用现有资源。在论坛中我们会看到很多新手不断的提问,但是有很多问题其实都是已经别人提过了,或者已经有解决方案的。所以经常会看到 “测试高手”的身影,并且不提问题,而且还能“锄强扶弱”,是测试新丁的救命稻草。好像是高手们无所不能,其实摘掉这层耀眼的光环,他们并没想像得那么厉害,只不过通过自己的搜索找到的答案,然后帮助其他人。当然也有很多人都是通过自学,然后在论坛中交流得到了很多经验,高手其实也是因为善于思考问题,亲自动手解决问题。所以动手和利用论坛资源的过程中他们也在不断提高。

        很多时候看到论坛中有人提问,问题描述不清,很多人看了很困惑。发贴题目动不动请高手帮忙,救命之类的,好像天下大乱,世界末日。虽然这个题目很招人,但是无法让那些想帮助你的人帮你,因为题目不清晰,而且高手字样吓阻了很多人。其实问问题也是个思路整理的过程,描述清晰,让人理解清楚,才能望文知意知道你的当前发生问题的环境,才能让那些想帮你的人解决问题,否则给人无从下手的感觉,解决问题效率不高。

    第五招 学习和你所测试的软件产品相关的知识

        要想成为好的测试人员,还要了解你要测试的软件的相关知识。要了解软件产品的架构是什么样的。要了解软件的市场需求,在接触软件之初要可以多看看用户的反馈信息,这些才是用户最关心的,也是你在测试中需要注意的问题,满足客户是最大的需要。但是了解软件需求之后要学会要多读些软件系统的技术文档,软件设计文档,这些文档可以帮助你了解产品如何工作。还有多看看公司 Bug 库中的问题,这些存在的问题可以帮助你了解软件产品那些地方存在缺陷,软件系统那些地方会出现错误。软件是运行在一个大环境中,如果对系统不熟悉,那么有些问题你不能从一个更广阔的层面考虑,学习操作系统的知识,有助于你发现缺陷,定位问题更加准确。比如软件运行在 Windows 或者 Linux ,如果你不懂操作系统,你就无法建立测试环境,有些时候时候软件的组件发生问题,就是你系统配置造成的,对系统不熟悉,你会把外在原因归结为软件本身。所以要学习关于和软件系统相关的知识,比如编程,网络,数据库等。不一定你要学习到多好的程度,只是通过这些扩展的知识面,你可以在发现问题,解决问题上不会局限在狭小的圈子里。

        和一切相关的人员交流,不同的交流渠道,获取消息是不同的,角度也不同。和客户交流,你会在测试中从客户的角度发现问题;和开发人员交流,你会了解开发人员怎么实现软件功能的;和项目管理人员交流,你会知道开发进度以及遇到的困难。

  • 软件测试工程师的发展途径

    2007-09-05 10:38:44

     软件测试工程师的发展有几种途径:

        一种走技术路线,成长为高级软件测试工程师,这时他能够独立测试很多软件,再向上可以成为软件测试架构设计师。

        第二种就是向管理方向发展,从测试工程师到组长(Lead),再到项目经理(Manager),到更高的职位。

        第三种可以换职业,做项目管理,做开发人员都可以,很多测试工具软件开发工程师在写测试软件的过程中,因为开发方面积累了经验,同时对软件产品本身产生了自己的看法,很容易转去做产品编程。


  • 做事的态度与工作态度

    2007-09-05 10:36:04

    做事的态度与工作态度

     

      最近看到越来越多的博客再讨论职业的发展,使我想到一点,做事的态度工作态度的区别

            公司里有一个优秀的工程师,当他的主管问他,你工作做得非常出色,动力是什么?他回答到,“我不是把它当作一项工作去做,而是当作一件事去做,全力做好”。 他的回答很简单、朴实,但说到点子上。对于一个员工的工作(job),多数情况下可以看作是一个任务(task), 员工做工作,就是执行任务。执行任务,就比较被动,就事论事,交给我什么,就做什么,不去多想。而:
    • 一般意义上完成任务,是对员工的基本要求。如果某位员工年终没有涨工资,就跑到经理那里去说,交给我的工作都做了(意思是说,自己很不错),为什么不给我涨工资?你可以对他/她说,这是基本要求,你做到了,所以没降你的工资。
    • 如果能圆满完成任务,还是一个不错的、称职的员工,表现良好,还不能算优秀的员工。
           作为一个优秀的员工,应该是积极主动地去工作,或者说,不是把工作当任务去做,而是当成自己的事去做,做得完美。他/她会主动地思考,想到事情的前面去,把可能要发生的问题、将来可能要发生的问题都尽量想到。在英文里有两个词 “Active” 和 “Proactive”,  active 是主动、积极的意思,proactive (前摄的,中文字典是这样翻译的)类似预警机,更早、更主动地发现问题和解决问题。我们希望员工主动、积极去做事,而不是被动 (passive)去做事情。但对于一个优秀的员工,不仅 active, 而且要proactive。

            现在流行一句话 “态度决定一切”,也说明了这样一个道理。现实,可能残酷些,大家要为房子、车子等奔波,所以需要工作。如果仅仅为了工作,或者工作就是为了拿一份薪水,当然就很难快乐,至少难以对工作充满激情。如果工作就是为了工作,每天早上起床、匆匆忙忙打理完,坐上班(私、公交)车后,就可能会感觉一天的受罪开始了。如果你不仅仅把自己的工作当成一份工作,而是想和公司一同去做一件事(虽然不一定是去做伟大的事业,如:
    • 把产品做出去获得新市场、赢得国际市场
    • 做出一个国内一流的团队
    • 把公司做大、从20人做到100人、再做到500人
    ),那你的感觉就不一样。你可能会说,我们也不能不顾 “薪水、待遇、工作环境” 呀?实际上,你有了proactive的态度,又把工作当事做,而不是当“任务”来完成,这些都会很好的,面包会有的。当然,做好事情,还要有一个前提,对所做的事情,你是有兴趣的。大学生或他们的父母经常谈,要专业对口,其实不重要,关键是兴趣。许多计算机做得很好的人,在大学里并不是学计算机的。

            兴趣、享受工作,会对一个人对待工作的态度也是很有帮助的。国内教育还是有问题的 ( 包括
    我写的 我国教育中令人揪心的若干个"不等式" ),作为父母,常对孩子说,“长大了,要挣钱、做官、出人头地”等等。几千年文化,给人更多的思想是 “升官发财、衣锦还乡”,这本身也没错,但缺乏教育自己孩子,“快乐” 是最重要的。也就是在你挣钱的工作中间,许多 “H” 是重要的,Happy、Health、Home等。 微软、Google、雅虎的创始人,当初都不是为了发财去创业,甚至创业是被 “逼上梁山” 的,如Google的创始人(Larry PageSergey Brin)当初就想100万卖给一些大的网络公司等,没人买,自己才继续干下去。这和国内目前许多人为了发财、为了创业而创业形成鲜明的对比。

          说远了,回过头来,就是8个字 “兴趣、做事、享受工作”, 然后你就会将工作做得完美。

    PS: 完美的工作,也顺便帮了我——质量就有了保证。

数据统计

  • 访问量: 15278
  • 日志数: 10
  • 建立时间: 2007-01-22
  • 更新时间: 2007-09-05

RSS订阅

Open Toolbar