闻道有先后,术业有专攻。。

发布新日志

  • Sanity Test

    2013-06-27 17:19:27

    翻译为:可用性测试。
    回归覆盖面大,却并不深入,不探究较复杂的功能错误,主要在于使用层面的完整上,验证系统是否满足规格说明。
    1.是一种简单的测试,测得比较全,但是都比较粗略,会检测或者验证某些特定的错误,但不会测试所有可能的错误,并不是窄而深,而是全而浅,具体可参考wiki百科
    2.主要是用于时间较紧的粗步的回归测试或者全球化测试本地化测试
    3.是一种粗略的测试,它是回归测试的一个子集。
    4 用来验证系统是否满足规格说明
    the sanity test (a form. of software testing which offers "quick, broad, and shallow testing"[1]) determines whether it is possible and reasonable to proceed with further testing.

    Software sanity tests are synonymous with smoke tests.[2] A sanity or smoke test determines whether it is possible and reasonable to continue testing. It exercises the smallest subset of application functions needed to determine whether the systems are accessible and the application logic is responsive. If the sanity test fails, it is not reasonable to attempt more rigorous testing. Sanity tests are ways to avoid wasting time and effort by quickly determining whether an application is too flawed to merit any rigorous testing. Many companies run sanity tests on an automated build as part of their software development life cycle.[3]

    http://baike.baidu.com/view/1877625.htm

    http://en.wikipedia.org/wiki/Sanity_testing

  • 面试题:你最近几年的职业规划或者职业目标是什么

    2013-06-18 18:09:31

    案例:
    A:你最近几年的职业规划或者职业目标是什么?
    B:多学习一些automation test方面的东西。
     
    http://xue.qc99.com/xuewen/20120916/1614335.html
    你真以为他问你的职业规划吗?你想要你回答的是他期待的问题,比如忠诚啊,不乱跳槽啊,一直干下去升上经理职位等,千万别以为是你的真实想法。
    HR 都喜欢员工能稳定的工作,有目标,有理想,能为公司发展做贡献,你可以说一些好的,但不要太离谱。
    就是在考你若到他公司,你自己有什么的定位,想不想上进,以后会不会跳槽?等等,你就老实的回答,这就是面试时,我们公司想要得到的回答,
    主要是考察你的职业立场及坚定的工作态度
    http://www.douban.com/group/topic/37330513/
    职街网职业规划专家建议:
    这个问题的背后是了解求职者的求职动机和对自己中长期职业发展的思考。而此时需要传递给HR的信息是:
    1、你是有备而来的,因为对自己是有职业规划的,所以求职投简历都是经过一番思考的,而不是海投盲投的结果。
    2、表明自己的优势,体现出自己是这份工作的不二人选。
    3、你有着良好的职业规划,清楚地知道未来三到五年的计划和打算,表明你是符合企业要求的稳定型员工。
      回答:
      我希望从现在开始,五年之内能够在目前申请的这个职位上沉淀下来,通过不断的努力后,最好能有几次晋升,希望可以从培训助理做到培训主管,最后成为培训经理甚至是行业内出色的培训专家。未来的五年,不管是向上提升,还是在企业内横向调动,对我个人来说,希望找到一家愿意做相互投入的企业待上一段时间。希望我的加入可以给公司带来更大的商业价值,同时我也希望自己能够在企业的平台上得到进一步的职业能力提升。

    效果及分析:
      真诚的表述和对自己明确的定位让HR觉得你很是培训助理的不二人选,同时也充分表现出她对自己的职业定位以及发展路径是十分清晰的,因而会让你在众多应聘者中脱颖而出,顺利拿到了这个offer。
  • 面试题:你为什么要跳槽?

    2013-06-18 17:20:16

    错误案例:
    A:你在以前公司做了三年为什么跳槽呢?
    B:因为觉得个方面都很成熟了,感觉学不到新东西了~
    A:我在我们公司已经待了六年了~每天都有做不完的事情。
    B:额。。
    http://hrclub.51job.com/blog/1/5/archives/2006/14.html
    以前大家经常会一起热烈的讨论跳槽的原因,总结一下有以下几种:
      1、工资低。
      2、加班多。
      3、没有前途。
      4、学不到新的东西。
      5、没有激情。
      6、想换环境。
      等等。
    朋友们认为直接表述会有面试失败的风险。以为提出以上这些观点的人似乎给人不稳重,挑剔,极负野心的感觉。而且,这种问题可能还会再次发生在新的工作里。招聘的人似乎也会担心,有一天跳槽的人会重新面对以上的问题而再次跳槽。

    很多咨询机构的专家建议我们要说实话,我觉得也很有道理。怎么才能既说实话,又能打消应招聘双方的疑虑呢?

     所以我当时是这样回答的:“贵公司有全国最先进的商财物处理系统,是行业里数一数二的企业,是行业里的旗帜企业,在这里可以学到最先进的知识和技术。并且,我相信即使在未来的二十年里,以贵公司的实力和经验仍然可以保持这种良好的运作状态。所以,能够始终走在行业的前边,对我个人的成长会有非常大的益处。”

      我的朋友他这样回答:“贵公司虽然不是行业里的旗帜企业,但是业务和运作方面有非常多的亮点。这说明贵公司在运作和发展方面所付出良苦用心。我相信如果按照这样的发展,贵公司会是一个非常有前途的企业。这也给我个人的发展留下非常大的空间,我觉得这将是一个需要长久努力的事业。我愿意同公司共同成长,直到完成贵公司和我的远大理想。”

      其实怎么回答并不重要,重要的是,我们不但知道自己为什么要到新的公司来应聘,而且,我们也要知道,我在这里工作我将会给我们自己和新的公司带来什么。

    http://www.rca8.com/news/news-show-86.htm

    不必太实在适当变通

      人力资源经理问你这个问题的关键是要看你的职业规划是否清晰,还有就是你是否上进。刚刚碰到这个问题,我这个人很实在的,就说在原公司学不到东西,想学更多的知识,且原来的工作很单调。人力资源经理听了笑说,他们这个工作也很单调的。看他的脸色好像对这个答案不是很满意。后来我果然没有被录取。

      不久之后,我来到现在工作的这家公司应聘。面试官问了我同样的问题。我回答他,第一,我离职绝对不是因为自己工作能力欠缺被辞退的。第二,我表达了热爱原工作的态度,并强调自己在过去的工作经历中学到了什么东西。最后,我说是为了实现自己的职业规划。从那开始,我在这家公司工作至今,已经长达5年之久。

      要亮出自己的优点

      第一次想跳槽时,约了几个有经验的学长请教面试技巧,就谈到了这道“必答题”。一开始,我还傻乎乎地觉得实话实说就得了。结果被学长们痛斥一顿,他们给我的意见是,回答这个问题最理想的答案就是原单位倒闭了,当然这个理由不是永远适用的。或者也可从比较高的角度来谈离职原因,比如原工作挑战很少,与我的职业规划不相符。而新公司的工作如何如何好等。这样回答就亮出了你的两个优点:

      其一,喜欢挑战性工作,受压能力强;

      其二,你是一个有着明确目标的人。学长们还提醒我在论述中不要用对比性的语言描述原公司,可以赞扬你应聘的企业,但绝对不能批评原公司,这是职场忌讳!

      专业建议

      ●避开主观评论从客观出发

      懒鱼(某公司人力资源主管):对于这样的问题,回答时最好避免涉及对原公司及对原主管的主观评论,可以薪资无法上升、岗位无法晋升、地址离家太远等客观原因来回答。

      ●对事实稍微加工

      童馨(某集团人力资源经理):可以对事实稍微进行加工。资深的招聘经理可以听得出来潜台词,而你能在面子上过得去。谁没有点难言之隐呢?但是记住,一定要以事实为基础,一个谎言会引发后续无尽的麻烦。

     

    http://blog.csdn.net/cadcisdhht/article/details/6180315

    问:每次跳槽的时候,面试官都会问“为什么想跳槽”。请问这个问题该怎么回答?

    答:每个人都有自己的跳槽动机和原因,因此面试官也不会期待一个标准答案。面试官只是想通过这个问题来了解应聘者的性格。因此应聘者可以大胆地根据自己的真实想法来回答这个问题。但是,应聘者也不是可以想说什么就说什么,以免给面试官留下负面的印象。

               建议在回答这个问题时,应尽量避免这四个原因:1)老板太变态;(2)同事太难相处;(3)老是加班;4)工资太低。这四个理由都有可能给面试官留下不好的印象。要是面试官就是当前面试的职位的老板,他听到应聘者抱怨现在的老板变态时,他肯定会想要是把这个人招进来,接下来他就会抱怨我也变态了。如果应聘者说他周围有很多很难相处的同事,面试官很有可能在想,这个人他自己本身就很难相处。对于大部分IT企业来说,加班是家常便饭。要是当前面试的公司也需要经常加班,那等于应聘者说他不想进这家公司。现在的工资太低的确是大部分人跳槽的真实原因,但不建议在面试的时候对面试官抱怨。面试的目的是拿到offer,我们要尽量给面试官留下好印象。现在假设你是面试官,有两个人来面试:一个人上来就说现在工资太低了,希望新工作能加多少多少工资;另一个说我只管努力干活,工资公司看着给,相信公司不会亏待给力的员工。你说你更喜欢哪个?这里不是说工资不重要,关键面试不是谈工资的时候。等搞定面试谈offer的时候,再和HR谈工资也不迟。现在公司招一个技术合格的人也不容易,因此搞定面试之后你就掌握主动了,想怎么谈就怎么谈,如果真的开高了HR会和你很客气地商量。

          笔者自己在面试的时候,通常给出的答案是:现在的工作做了一段时间,已经没有太多的激情了,因此希望寻找一份更有挑战的工作。然后具体的论述为什么现在有些厌倦现在的职位,以及面试的职位你为什么会有兴趣。笔者自己跳过两次槽,第一次从Autodesk跳槽到微软,第二次从微软跳槽到现在的思科。从面试的结果来看,我这样的回答都让面试官很满意,最终也都拿到了offer

    当时在微软面试被问到为什么要跳槽时,我的回答是:我现在开发的软件Civil是一款面向土木行业的设计软件。如果我想在现在的职位上得到提升,就必须加强土木行业的学习,可我对诸如计算土方量、道路设计等没有太多兴趣,因此出来寻找机会。

          在微软工作两年半之后去思科面试的时候,“为什么要离开微软”这个问题几乎每个面试官都会问。我的答复是:我在微软的主要工作是开发和维护.NETUI平台Winforms。由于Winforms已经非常成熟,不需要添加多少新功能,因此我的大部分工作都是维护和修BUG。两年下来,调试的能力得到了很大地提高,但再这样下去自己的软件开发和设计的能力将不能得到提高,因此想出来寻找可以设计和开发系统的职位。同时,我在过去几年里的工作都是开发桌面软件,对网络了解甚少。因此希望下一个工作能与网络相关。众所周知,思科是个网络公司,这里的软件和系统或多或少都离不开网络。因此我对思科的职位很感兴趣。

    http://airu.iteye.com/blog/1452093

    前途、危机感永远是第一位的
    没有人喜欢整天打酱油
    毕竟买房、结婚、养家糊口的压力迟早会有

     

    http://topic.yingjiesheng.com/mianshi/wenti/10131052X42012.html

    面试官的考虑:

    1.应聘者的从业情况存在不稳定性,如果我录用他,他是否也会在一年甚至半年内跳槽,浪费公司的招聘成本?

    2.应聘者没有明确的职业目标,他对自己的定位不清;

    3.其他不确定因素,比如不会处理人际关系或者个人性格自由散漫,这些问题在我的公司也不能得到解决。

    面试问题分析:

    “为什么频繁跳槽”这个面试问题的背后,其实面试官真正想知道的是“你是否还会继续频繁跳槽”,因此“表决心”在这里非常重要。同时,频繁跳槽是一个贬义的表达,在回答时要将它正面化,不论是态度还是答案。

    回答思路:

    1.诚实地承认过去的经历,即使你在简历上跳过一些公司,背景调查也会让你无所循行;

    2.表决心。表示你已经了解频繁跳槽的害处,并为此付出了代价,所以你不会再继续下去;

    3.说明频繁跳槽的经历给自己带来的其他收获,比如获得了多种工作经验;确定了职业目标,应聘的职位正与职业目标相符合。

     

    http://wenda.tianya.cn/question/17kcl4hcopdbqjtdrmg1njjrc2qt1reheahrb

    如果你住的地方离这个单位近,可以说之前上班太远。

    http://news.goodjobs.cn/22620.html#

    答案可能有许多。但我以为,正确答案无非下面几种:

      1.更高的收入。

      2.更高的职务。

      3.更好的发展前景。

      4.符合自己的兴趣爱好。

      5.更好的生活。

      如果是前三种,那就要对新的公司、职位、薪水等进行综合考量,看是否符合自己的要求和职业规划,是否有更好的前景。曾有人为了职务升半格以及每个月多两千块钱薪水跳槽,却发现与原公司相比,新公司平台太小,很难施展;新公司是个家族式企业,虽然职务提升,职权范围却变小了,处处掣肘,做什么都不顺手;最关键的问题是,新公司几乎没有什么上升空间。这样比较,不如不跳。

  • 性能测试,负载测试,压力测试有什么区别

    2013-04-26 10:26:42

    性能测试(或称多用户并发性能测试)、负载测试、强度测试、容量测试是性能测试领域里的几个方面,但是概念很容易混淆。下面将几个概念进行介绍。

    性能测试(Performance Test):通常收集所有和测试有关的所有性能,通常被不同人在不同场合下进行使用。
    关注点:how much和how fast

    负载测试(Load Test):负载测试是一种性能测试,指数据在超负荷环境中运行,程序是否能够承担。
    关注点:how much

    强度测试(Stress Test): 强度测试是一种性能测试,他在系统资源特别低的情况下软件系统运行情况,目的是找到系统在哪里失效以及如何失效的地方。包括
    Spike testing:短时间的极端负载测试
    Extreme testing:在过量用户下的负载测试
    Hammer testing:连续执行所有能做的操作

    容量测试(Volume Test):确定系统可处理同时在线的最大用户数
    关注点:how much(而不是how fast)
    容量测试,通常和数据库有关,容量和负载的区别在于:容量关注的是大容量,而不需要表现实际的使用。

    其中,容量测试、负载测试、强度测试的英文解释为:
    Volume Testing = Large amounts of data
    Load Testing = Large amount of users
    Stress Testing = Too many users, too much data, too little time and too little room


    可能大家角色性能测试、负载测试和强度测试比较混淆。没错,这三个概念是比较容易使人糊涂。负载测试和强度测试,都属于性能测试的子集。下面举个跑步的例子进行解释。
    性能测试,表示在一个给定的基准下,能执行的最好情况。例如,在没有负重的情况下,你跑100米需要花多少时间(这边,没有负重是基准)?
    负载测试,也是性能测试,但是他是在不同的负载下的。对于刚才那个例子,如果扩展为:在50公斤、100公斤……等情况下,你跑100米需要花多少时间?
    强度测试,是在强度情况下的性能测试。对于刚才那个例子,如果改为:在一阵强风的情况下,你在负重或没有负重的情况下,跑100米需要花多少时间?

    性能测试是动力,负载测试载重,压力测试强度

    压力测试stresstest是在一定的负荷条件下,长时间连续运行系统给系统性能造成的影响。

    负载测试Loadtest:在一定的工作负荷下,给系统造成的负荷及系统响应的时间。

    压力测试主要是为了发现在一(任意)定条件下软件系统的性能的变化情况,通过改变应用程序的输入以对应用程序施加越来越大的负载(并发,循环操作,多用户)并测量在这些不同的输入时性能的改变,也就是通常说的概念:压力测试考察当前软硬件环境下系统所能承受的最大负荷并帮助找出系统瓶颈所在。其实这种测试也可以称为负载测试,但是负载测试通常描述一种特定类型的压力测试——增加用户数量以对应用程序进行压力测试。比如实际中我们说从比较小的负载开始,逐渐增加模拟用户的数量, 直到应用程序响应时间超时,就是说的负载测试。

    压力测试的目标是测试在一定的负载下系统长时间运行的稳定性,尤其关注大业务量情况下长时间运行系统性能的变化(例如是否反应变慢、是否会内存泄漏导致系统逐渐崩溃、是否能恢复);压力测试是测试系统的限制和故障恢复能力,它包括两种情况:
    稳定性压力测试:在选定的压力值下,长时间持续运行。通过这类压力测试,可以考察各项性能指标是否在指定范围内,有无内存泄漏、有无功能性故障等;
    破坏性压力测试:在稳定性压力测试中可能会出现一些问题,如系统性能明显降低,但很难暴露出其真实的原因。通过破坏性不断加压的手段,往往能快速造成系统的崩溃或让问题明显的暴露出来;

    负载测试的目标是测试在一定负载情况下系统性能(不关注稳定性,也就是说不关注长时间运行,只是得到不同负载下相关性能指标即可);实际中我们常从比较小的负载开始,逐渐增加模拟用户的数量(增加负载), 观察不同负载下应用程序响应时间、所耗资源,直到超时或关键资源耗尽,这就是所说的负载测试,它是测试系统的不同负载情况下的性能指标。

    ——————————————————————————————

    最简单来说:

    负载测试是测试软件本身最大所能承受的性能测试;

    压力测试就是一种破坏性的性能测试;

    只要理解这两点区别,就非常好理解性能测试了

    http://zlfoxy.blogbus.com/logs/8040990.html
  • 发现一个bug 开发人员认为不是bug怎么办

    2013-04-24 21:06:21

    首先要找需求文档,看有没有对预期结果进行具体说明,从而提高说服力度。其次要确保自己的bug能够重现。
    再次,分析一下自己bug的级别,如果只是建议性的bug可以保留,但是也要在bugzilla等工具上记录;
    如果bug级别比较高,就要跟开发人员有效沟通,耐心讲明这个bug的危害以及重现步骤等,不行就要跟测试经理或者开发经理联系,说过bug的严重性,进行问题评估,一起讨论解决这个问题。
  • 自动化测试和手动测试的优缺点

    2013-03-04 17:19:56

     

     对于一些基本的、逻辑性不强的操作,可以使用自动化测试工具。应该说,现在在性能测试、压力测试等方面,自动化测试有其不可替代的优势。它可以用简单的脚本,实现大量的重复的操作。从而通过对测试结果的分析,得出结论,这样不仅节省了大量的人力和物力,而且使测试的结果更准确。对于一些逻辑性很强的操作,如果自动化测试不是很健全的话,不建议使用。因为这需要比较复杂的脚本语言,不可避免的增加了由于测试脚本的缺陷所造成测试结果错误的误差。这时就需要手动测试了。

      手工测试也存在这一些缺陷,手工测试者最常做的就是重复的手工回归测试,不但代价昂贵,而且容易出错。自动化测试可以减少但不能消除这种工作的工作量。测试者可以有更多的时间去从事更有趣的测试,例如在应用程序在复杂的场景下的不同处理等,尽管测试就是要花费更长的时间找到错误,但比不意味着因此而要付出更高的代价。所以选择正确的测试方法是尤为重要的。

    下面是一些总结网络上的自动化测试的优缺点,写的挺好的:

    自动化测试的优点:

    1、对程序的回归测试更方便。这可能是自动化测试最主要的任务,特别是在程序修改比较频繁时,效果是非常明显的。由于回归测试的动作和用例是完全设计好的,测试期望的结果也是完全可以预料的,将回归测试自动运行,可以极大提高测试效率,缩短回归测试时间。
    2、可以运行更多更繁琐的测试。自动化的一个明显的好处是可以在较少的时间内运行更多的测试。
    3、可以执行一些手工测试困难或不可能进行的测试。比如,对于大量用户的测试,不可能同时让足够多的测试人员同时进行测试,但是却可以通过自动化测试模拟同时有许多用户,从而达到测试的目的。
    4、更好地利用资源。将繁琐的任务自动化,可以提高准确性和测试人员的积极性,将测试技术人员解脱出来投入更多精力设计更好的测试用例。有些测试不适合于自动测试,仅适合于手工测试,将可自动测试的测试自动化后,可以让测试人员专注于手工测试部分,提高手工测试的效率。
    5、测试具有一致性和可重复性。由于测试是自动执行的,每次测试的结果和执行的内容的一致性是可以得到保障的,从而达到测试的可重复的效果。
    6、测试的复用性。由于自动测试通常采用脚本技术,这样就有可能只需要做少量的甚至不做修改,实现在不同的测试过程中使用相同的用例。
    7、增加软件信任度。由于测试是自动执行的,所以不存在执行过程中的疏忽和错误,完全取决于测试的设计质量。一旦软件通过了强有力的自动测试后,软件的信任度自然会增加。
    当然,自动化测试不是万能的,他不能完全替代手工测试。在软件版本还没有稳定的情况下,千万不要开展自动化测试,否则是自讨苦吃。

    自动化测试的缺点:
    1、不能取代手工测试
    2、手工测试比自动测试发现的缺陷更多
    3、对测试质量的依赖性极大
    4、测试自动化不能提高有效性
    5、测试自动化可能会制约软件开发。由于自动测试比手动测试更脆弱,所以维护会受到限制,从而制约软件的开发。
    6、工具本身并无想像力

    综上所述,可以归结自动化完成不了的,手工测试都能弥补,两者有效的结合是测试质量保证的关键。

    原文连接:http://www.51testing.com/html/14/n-71114.html

  • 如何测试一个搜索框?

    2013-03-01 15:52:20

    设计测试用例:从有效输入、无效输入、功能测试、性能测试、压力测试、UI测试、Accessibilty测试等方面考虑。
    对于具体如何测试具体功能,又可以从边界值,等价类,特殊值等方面去考虑.
    1,空内容点击搜索,看其有没有LINK
    2,输入过长查询数据,看其有没判断,报错
    3,输入各种符号,特别是空格,特殊字符如%、_等看其能否正确判断
    4,输入各种字符,譬如输入范围是0~9,A~Z的看输入中文是什么效果
    5,输入正确数据,看其的查询后数据的完整性
    6,注意在光标停留的地方输入信息时,光标和所输入的信息会否跳到别的地方
    7,在输入结束后直接按回车键,看系统处理如何,会否报错
    8,反复输入相同的数据(5次以上)看是否报错
    9,输入不存在的搜索内容 如 fgfg。。
    10,还有回车键的测试一定要注意到,经常会碰到有的程序一按回车键,就关闭对话框了。
    11,于输入框点击鼠标右键是否出现Menu,Menu内容依次为"撤消"、"复制"、"粘贴"、"删除"、"全选"(具体情况视实际情况而定)
    12,需要特别注意英文单引号的问题,这是很多开发人员容易忽略的问题,懂点数据库查询知识的都知道为什么要特别注意这个符号
     
    上面是网上搜到用例 感觉不是很条理。。
     
    [总结:]对于一个看似简单的面试题,不要轻易给出答案.先好好从大局上想一想.
  • 常回来转转…

    2010-11-14 17:53:33

    一晃一年多没来了
    空间界面有好多变化啊
    呵呵
    51发展的好快,不止是一个方面哦
    为自己也为51testing加油!
  • (转)做好软件测试需要考研吗?——答一位大三MM问

    2009-04-20 16:54:21

     

    今天又收到一份留言,留言的是一位署名为“琰”软件专业的大三女生,正困惑于毕业后应该考研还是应该工作?如果做软件测试并希望做得很好是否需要考研?

     

    看完这条留言的那一瞬,一个人影从我的脑海中一闪而过,偶定睛一看,不是别人,正是那极度自恋、文字和言语都充满激情,被称为“一枝芙蓉压海棠”的半大老头——“芙蓉叔叔”徐小平。汗~

     

    回复,还是不回复?偶的内心作了一番简短的思想斗争,因为偶几年来一直保持着邮件和留言必答复的良好传统,但是唯独有一类邮件和留言偶不做明确的回复,就是“考研,还是工作”。现在偶又一次站在了距离岔路口0.00001厘米的地方,偶必须选择两条错误的路中的一条:要么说几句废话,表示自己没有资格指导别人做出重大的选择,只要自己多多努力哪条路都通向罗马;要么就像徐大叔一样用被激情渲染过的文字、慷慨激昂的去误人子弟,然后静静的等待着鲜花和臭鸡蛋。

     

    这一次,是恶魔战胜了天使,偶选择了后者——偶不如地狱谁入地狱,徐大叔,俺来陪你了~~~

     

    书归正传。还是来说说做好软件测试工作到底需要还是不需要考研吧。

     

    其实偶貌似没有资格讨论这个话题,因为偶能拿的出手的学历就是一个大专,还是医学专业的,没有尝试过考研,当然也不知道考研能对我的人生会有多么大的影响——如果有人有兴趣,偶但是可以谈谈改行对偶人生的影响。偶想偶还是吃过猪肉的,虽然没有见过猪跑。所以,姑且让偶用自己还算过关的智商和逻辑分析能力来肢解一下这个问题,陈述一下偶方的观点。

     

    如果做软件测试并希望做得很好是否需要考研?这个问题似乎根本不用回答了,偶就是一个最好的例子 ^_^

     

    偶并不是反对考研,而是反对那些致力于往应用性学科方向发展的同学考研,例如软件开发、软件测试、项目管理……这些都是要在现实世界的项目泥潭中摸爬滚打才能锻炼的出来的,而不是靠跟着那些远离人类社会、做些垃圾项目还把你当驴使唤的导师(注:不泛指所有的计算机专业研究生导师^_^)可以学到的。

     

    有两种情况考研是应该被赞同的:

     

    1.              大学四年实在是没有好好学,到处找不着工作,也知道自己错了不该大学的时候两年星际一年魔兽专业课老师都没有认全,so 只好考研,再锻炼锻炼,再学习学习,争取经过两到三年的努力可以让自己重新成为一个可以对社会有贡献的人。最不济,也有个进入名企、外企的敲门砖,进去以后好好努力,亡羊补牢,追赶一下自己已经错过的青春,三五年之后一样是条好汉。如果你是这样,偶先赞一个:是条汉子!

     

    2.              专业或学科限制,必须要考研才能得到进一步的发展。例如偶,如果还留在医学的海洋中,想继续往基础医学方面发展——就选神经解剖方向吧,那就得考研,只有这样才能名正言顺的做自己的研究。不然,偶弄俩死人在家里大卸八块,虽然是以学术研究之名,但是最终难免是铁窗和精神病院两种结局。又或者,偶工作在一家规模很小的医院,想进一步提高自己的医疗水平,可是小地方病种单一,而且病例数量也少,而偶想去大医院学习人家也不随便收啊,所以考知名医学院校的附属医院或者大医院的导师便是一个可以考虑的途径了。不过我想,大多数人在家里装几台电脑、甚至搭个局域网,练练编程、搞搞网络,只要你不当黑客攻击国家重要部门的网站或者让自己可以打电话上网不花钱,应该不会有人找你的岔吧。你要是非说你研究的课题只能在国家重点实验室中耗资数十上百万才能开展那就又另当别论了。

     

    有人说“我考软件测试方向的研为了提高自己的水平,为了以后更好的发展”。弄张文凭方便以后的发展倒是还靠谱,说为了提高自己的水平你蒙谁呢?也许我孤陋寡闻,还真是没有见过读研三年之后水平比工作三年高的。倒是有不少放着原来好好的 developer 不做白搭上三年时间又学了一遍OOP、数据库、操作系统外加**教育后,被进一步抹杀了创造力出来接着做 developer 还狂难找工作的。而当初一起出差熬夜的兄弟如今都是 PM 了还巨多行业和项目经验。

     

    你要是真觉得现在的企业学不到东西了,真想进一步提高自己的水平或者往高了走,就踏踏实实的花上三五个月的时间把自己以往的工作好好梳理梳理做做总结,特别是专业技术方面和行业经验方面,看看自己哪里不足赶紧补课。然后到各大专业论坛网站狂发帖,多写点的确能代表最先进的技术、代表最先进的理念和代表个人行业资历的文章,多结识些同行,多参加些各种行业内社团组织的活动——比如像广州、上海、北京的软件测试交流会,刻意的宣传自己,用各种方面吸引到大众的眼球,猎头们会把你刨出来放到更有利于你发光发热的地方去的。考研,还是算了吧。

     

    你说有了导师可以让你的研究和提高事半功倍?也许吧,你真的碰到了传说中的那位导师。不过偶更相信在网络的海洋中畅游会让你用更低的成本学习到更多的东西,因为毕竟你的导师也不是汽车人霸天虎百变星君,在计算机这个行业中你遇到的实际问题总是有很多是你的导师回答不了的,这个时候你依靠的是网络,是Google注意不是Baidu),是各种专业的网站、论坛,是你认识的圈内同行,是你自己。进了计算机这个行业就注定了要一辈子不断的学习、不断的研究,难道你的导师可以一辈子代表先进性随时指点你?如果你觉得起步艰难,请去努力结识一些行业内经验丰富又愿意与人交流的同行,这要比你上个研究生成本低的多。虽然你不能打着“我是XXX徒弟”这样的招牌找到一份让人羡慕的工作,但是也总比找个弄假CPU糊弄群众的导师顺便葬送了自己前程好的多吧。

     

    你说考软件测试方面的研究生和其他的专业不同?嗯,也许吧。我从去年开始已经收到过不止一封邮件声称自己是软件测试方向的研究生想找人帮忙写毕业论文的了——他们三年前开始研究软件测试的时候偶也刚从开发转到测试不久——其他专业的暂时还没有收到。回头等我调查调查行情,哪天要是我真改行了还要各位考了研并且是软件测试方向的同行照顾照顾生意 ^_^

     

    不过话说回来,当今社会,还有啥比考研更难的?大把有能力、有毅力、有魄力、有活力的“优质”青年,为了考个研,愣是从青春活力耗到了胡子拉碴,从貌美如花折腾成了芙蓉姐姐——此处偶绝无以芙蓉姐姐作为反面教材的意思。同志们啊,既然你是一个“四有新人”,同样的时间和精力为什么不去做点比考研更有意义的事情啊?是,也许你大学刚毕业找不到一个非常理想的工作,工资也不高,可是你只要把考研过程中的那份激情保持三年,你能想象到你三年后是什么样子吗?但是你考了研,我就可以告诉你三年后你在软件测试方面无论是技术还是经验都比不过你当年的同学了。也许当年你的同学只是进了一家规模不大的私营企业,但是如果你又很不幸的毕业以后进不了名企或外企,没准你就得和你同学在同一家公司共事而且他是leader你是member你还得拿着和三年前一样的工资,这还不算你三年研究生的学费、培养费、答辩费、送礼费。

     

    考研并不是不好,但是一定要“理性考研”,在考研之前想明白自己到底想要的是什么,是否可以从这次考研的炼狱以及之后的三年研究生生活中得到自己想要的。比如偶有一个朋友90年代中期开始从事IT行业,如今早就做到了质量部经理的职位,但是两年前同样考研,为了啥?他们班上几乎全是珠三角地区各大IT企业的研发部经理、测试部经理、质量部经理或者副总老总诸如此类的人物,两年同学下来结成的庞大的人脉绝对值回票价了。

     

    假如想做好一个软件测试工程师,重要的不外乎是专业知识和行业经验外加职业化的做事方法、做事态度。如果大学期间够努力,那么那些专业知识也学的差不多了——大学没好好学的现在努力还不晚,工作以后再根据工作环境中的实际需要继续加深,不断总结,注意行业经验的积累,一定是可以越做越好的,除非你故意不用心几年后回来证明我今天写的这些都是在误人子弟。而所谓的职业化的做事方法、做事态度,也不过是强调要有责任心、要积极的面对工作,并从实际经验中总结出各种方法来不断的改善工作的效率和效果。这方面早些开始锻炼要比晚锻炼好,因为的确是需要以年为单位的时间来积累的,当然如果你进了一个好的企业可以加速这个过程。

     

    一个有研究能力和科学素养的人并不是非要考上了研究生才能开始自己的研究的,特别是计算机这种日新月异和实践性极强的学科。看看偶这个极好的例子,虽然偶当初迈入这个行业时也曾经因为计算机基础薄弱而忐忑不安了许久,但是当偶发现随着自己的不断努力可以胜任越来越多的工作后,一切怀疑和不自信都烟消云散了。

     

    MM,偶尚且可以如此,以计算机软件为专业的你不觉得自己可以做的更好吗?把握住你最后在校的一年多时间,扎扎实实的学好你的专业课和英语,再恶心的教材和老师也要坚持学完学好,为的是对得起爹娘辛苦挣来的学费——当然将来你也会发现这些恶心的课程也还是很有用的。平时要注意利用各种业余时间去接触外界的同行,了解行业的发展情况,提早开始多了解一些相关的专业知识,自己有电脑就搭个环境来实践各种从书上或者网上学到看到的各种新奇有趣的东东。不要担心一开始走错路会浪费时间,用心体会和总结,踏出的每一步都不会浪费的。

     

    偶还有最后一句话:学好英语毕业后进外企,能正儿八经进去就别做外包的,能进欧美独资的就别进港台的。

  • 有条理

    2009-03-06 23:37:00

     

                做测试的首要条件~!

  • So it is! ^_^CRT终于接通了~

    2008-07-10 14:18:25

     

    crt只有在linux和windows互相ping都能通的时候才能使用,但是本本好像不那么简单~

    我开始时不懂,只听说没有联网的情况下要在新建linux虚拟机时选择nat或者hostonly而不能选bridged方式 于是我就选择了hostonly不过我的同学多是选的nat(现在只知道他们的端口不一样:nat用v8而hostonly要用v1),结果我的windows能ping通linux,但是linux ping不通windows,很是郁闷!

    问了一下同学,说要把windows的防火墙关掉,我关了,可linux还是ping不通windows
    现在想想可能是我ping的对象不正确,我当时ping的是windows无线连接的ip,最初还ping自己设的本地ip(因为本地连接没有接上所以根本就不行)

    后来选择nat方式开始用linux ping windows的v8口通了,但是用windows ping linux不通
    又改为hostonly用linux ping windows的v1通了,而且用windows也可以ping通linux(^_^接通了!)

    现在知道了,如果是hostonly应该ping wingdows的v1
    如果是nat则要ping windows的v8

    而且在最初设linux的ip地址时也要根据所选择的网络连接方式来设,

    比如选hostonly就要设成和v1在同一网段的不同ip
    而选nat的话就要设成和v8在同一网段但是不相同的ip

     

  • 测试工程师基本素质

    2008-07-05 16:59:35

     

    近几年国内IT公司的测试水平有了很大的提高,但是与此同时,很多测试工程师也迎来了个人的发展瓶颈:很多人从测试工程师做到了测试经理的职位,不知道下一步如何发展;或者每天机械地从事着功能测试工作。与开发人员相比,测试人员不但需要一技之长,还需要掌握诸如操作系统、数据库、网络等多方面的知识。

    一个有竞争力的测试人员要具有下面三个方面的素质:

    一   、计算机专业技能

    计算机领域的专业技能是测试工程师应该必备的一项素质,是做好测试工作的前提条件。尽管没有任何IT背景的人也可以从事测试工作,但是一名要想获得更大发展空间或者持久竞争力的测试工程师,则计算机专业技能是必不可少的。计算机专业技能主要包含三个方面:

    1、 测试专业技能

    现在软件测试已经成为一个很有潜力的专业。要想成为一名优秀的测试工程师,首先应该具有扎实的专业基础。因此,测试工程师应该努力学习测试专业知识,告别简单的“点击”之类的测试工作,让测试工作以自己的专业知识为依托。

    测试专业技能涉及的范围很广:既包括黑盒测试、白盒测试、测试用例设计等基础测试技术,也包括单元测试、功能测试、集成测试、系统测试、性能测试等测试方法,还包括基础的测试流程管理、缺陷管理、自动化测试技术等知识。

    2、软件编程技能

    “测试人员是否需要编程?”可以说是测试人员最常提出的问题之一。实际上,由于在我国开发人员待遇普遍高于测试人员,因此能写代码的几乎都去做开发了,而很多人则是因为做不了开发或者不能从事其它工作才“被迫”从事测试工作。最终的结果则是很多测试人员只能从事相对简单的功能测试,能力强一点的则可以借助测试工具进行简单的自动化测试(主要录制、修改、回放测试脚本)。

    软件编程技能实际应该是测试人员的必备技能之一,在微软,很多测试人员都拥有多年的开发经验。因此,测试人员要想得到较好的职业发展,必须能够编写程序。只有能给编写程序,才可以胜任诸如单元测试、集成测试、性能测试等难度较大的测试工作。

    此外,对软件测试人员的编程技能要求也有别于开发人员:测试人员编写的程序应着眼于运行正确,同时兼顾高效率,尤其体现在与性能测试相关的测试代码编写上。因此测试人员要具备一定的算法设计能力。测试工程师至少应该掌握Java、C#、C++之类的一门语言以及相应的开发工具。

    3、 网络、操作系统、数据库、中间件等知识:

    与开发人员相比,测试人员掌握的知识具有“博而不精”的特点,“艺多不压身”是个非常形象的比喻。由于测试中经常需要配置、调试各种测试环境,而且在性能测试中还要对各种系统平台进行分析与调优,因此测试人员需要掌握更多网络、操作系统、数据库等知识。

    在网络方面,测试人员应该掌握基本的网络协议以及网络工作原理,尤其要掌握一些网络环境的配置,这些都是测试工作中经常遇到的知识。

    操作系统和中间件方面,应该掌握基本的使用以及安装、配置等。例如很多应用系统都是基于Unix、linux来运行的,这就要求测试人员掌握基本的操作命令以及相关的工具软件。而WebLogic、Websphere等中间件的安装、配置很多时候也需要掌握一些。

    数据库知识则是更应该掌握技能,现在的应用系统几乎离不开数据库。因此不但要掌握基本的安装、配置,还要掌握SQL。测试人员至少应该掌握Mysql、MS Sqlserver、Oracle等常见数据库的使用。

    作为一名测试人员,尽管不能精通所有的知识,但要想做好测试工作,应该尽可能地去学习更多的与测试工作相关的知识。

    二、行业知识

    行业主要指测试人员所在企业涉及的行业领域,例如很多IT企业从事石油、电信、银行、电子政务、电子商务等行业领域的产品开发。行业知识即业务知识,是测试人员做好测试工作的又一个前提条件,只有深入地了解了产品的业务流程,才可以判断出开发人员实现的产品功能是否正确。

    很多时候,软件运行起来没有异常,但是功能不一定正确。只有掌握了相关的行业知识,才可以判断出用户的业务需求是否得到了实现。

    行业知识与工作经验有一定关系,通过时间即可以完成积累。

    三、个人素养

    作为一名优秀的测试工程师,首先要对测试工作有兴趣:测试工作很多时候都是显得有些枯燥的,因此热爱测试工作,才更容易做好测试工作。因此,除了具有前面的专业技能和行业知识外,测试人员应该具有一些基本的个人素养:比如下面的“五心”:

    1、专心:主要指测试人员在执行测试任务的时候要专心,不可一心二用。经验表明,高度集中精神不但能够提高效率,还能发现更多的软件缺陷,业绩最棒的往往是团队中做事精力最集中的那些成员。

    2、细心:主要指执行测试工作时候要细心,认真执行测试,不可以忽略一些细节。某些缺陷如果不细心很难发现,例如一些界面的样式、文字等。

    3、耐心:很多测试工作有时候显得非常枯燥,需要很大的耐心才可以做好。如果比较浮躁,就不会做到“专心”和“细心”,这将让很多软件缺陷从你眼前逃过。

    4、责任心:责任心是做好工作必备的素质之一,测试工程师更应该将其发扬光大。如果测试中没有尽到责任,甚至敷衍了事,这将会把测试工作交给用户来完成,很可能引起非常严重的后果。

    5、自信心:自信心是现在多数测试工程师都缺少的一项素质,尤其在面对需要编写测试代码等工作的时候,往往认为自己做不到。要想获得更好的职业发展,测试工程师们应该努力学习,建立能“解决一切测试问题”的信心。

    “五心”只是做好测试工作的基本要求,测试人员应该具有的素质还很多。比如:

    1、沟通能力
    测试需要和各种人进行沟通,既要能和技术(开发者)人员讨论系统的设计和实现问题,又要和非技术人员(客户,管理人员)交流系统的需求和规格。这是不同的两类人,关心的侧重点不一样,即使同一件事也     要用不同的方式表达出来,有时,测试者甚至是在担当开发者,用户和管理人员的桥梁
    在发现错误特别是重大错误后,如何告诉相关人员也是一门艺术,机智老练和熟练的外交手法有助于维护测试者和开发人员的协作关系,如果采取的方法过于死板和生硬,对测试者来说,在以后的工作中就会出现“赢了战争却输了战役”的不利场面。

    2、洞察力
    一个好的测试工程师能够准确捕获用户的观点,对细节超乎寻常地关注。另外,也要具备把握重点的能力。以便将有限的测试资源投入到系统的重点环节上。

    3、分析能力:要有发现问题分析并解决问题的能力,逐步提高故障排除能力。

    4、记忆力:一个理想的测试者应该有能力将以前曾经遇到过的类似的错误从记忆深处挖掘出来,这一能力在测试过程中的价值是无法衡量的,因为许多新出现的问题和我们已经发现的问题相差无几,有超强的记忆和理解能力才能触类旁通,更好的从事新的测试项目。

    5、自制力:测试工作重复性很强,这很容易使你变得疲倦和无聊。只有那些具有自制力能及时督促自己的人才能够是自己每天正常地工作。

    还有测试人员不但要具有团队合作精神,而且应该学会宽容待人,学会去理解“开发人员”,同时要尊重开发人员的劳动成果——开发出来的产品。

Open Toolbar