发布新日志

  • [论坛] 为什么游戏测试人员这么难招呢?

    2009-04-06 11:03:46

    算算春节回来也2个多月了,招聘也持续了2个多月,面试也快达到30人,可为什么就没一个合适的呢?

    为什么软件测试会比游戏测试好招呢?没想通这个原因!

    游戏测试的待遇不比软件测试低呀?

    为什么有游戏测试经验的人连白盒,黑盒都不清楚呢?

    为什么有游戏测试经验的人连用例都不会设计呢?

    为什么有游戏测试经验的人连需求都不会分析呢?

    为什么好不容易有一个优秀的测试,却又想做策划呢?

    难道是因为觉得游戏测试太简单?还是觉得游戏测试没前途?

    是公司的问题?还是我们这个行业的问题呢?

    或者还是金融危机的影响,优秀的人员都不愿意跳呢?

    谁能告诉我呢?

  • 解密测试面试官的心理

    2008-10-29 22:09:41

    可能这个标题有点大了,实在想不出什么好的标题了,就让我也标题党一回吧!

    多多少少也面试个几个人了,有一点心得,拿出来分享一下:

    记得当年我第一次应聘的时候,根本就没意识到面试的重要性,很随意的就去见了我之前的老总,虽然顺利的通过,但后来到了公司之后,才知道我当时是多么的惊险。直到后来,我才明白当初老总那玩味的眼神意味着什么!还好,平时知识积累了那么点,谈吐也不是扭扭捏捏,回头来看,我的运气还不错。

    后来,我第一次作为面试官的时候,同样遇到跟我当年作风一样的一个小男孩,我才明白我当年是多么的幸运,而我面前这个男孩是多么的不幸。5

    我不大清楚hr是怎么面试的,我大概了解测试的技术面试,那就大概谈谈,我作为面试官,我喜欢什么样的测试,下面我说的主要结合面试官的角度来说说,而不是从应聘者的角度来分析,让大家对面试官的心理有一定把握。

    第一印象:

       第一印象非常重要,一般来说你的着装能代表你对工作和你对这个职位的态度,也能决定面试官的‘考察深度’,相信如果你不是超级牛人,你应该不愿意面试官给你很有深度的问题。当然牛人例外,因为牛人一般是后面用他的技术和他的才华来征服面试官。建议面试的时候穿着比较正统,相对轻松的服装,最重要的是整洁。为什么这么说呢?因为技术面试一般来说都是改公司测试部门的人,一般来说都是搞技术的,在大多企业,技术部门的着装是很随便的,所以着装没必要太隆重,过于隆重可能会适得其反。

    千万不要不懂装懂:

        上面说了,技术面试一般都是公司的工作人员,多多少少有点斤两,如果问你几个问题,你不会就不会,但是不用回答的太直接,你可以委婉的说你不太熟悉,虽然回答问题失败了,但是面试官会知道你是个诚实的测试人员。我之前面过一个测试,他自称在某游戏公司负责自动化测试,主要成果是开发机器人。恰好,我对这个也比较感兴趣,就顺便问了一下机器人和游戏服务器如何实现通信的,机器人和游戏客户端区别是什么?不过这个人很聪明,他的回答是:通过网络实现通信,机器人不需要人来操作,客户端需要人来操作。他的答案其实没错,只是如果自己做过这些东西,了解这些东西的话,相信他不会这么回答我,我也就只好请他等候通知了,呵呵!一般我们问问题的时候,自己心里是有底的,如果你试图忽悠面试官的话,我可以明确的说99%的情况下,你会失去资格。

    其实我们也没标准答案:

        一般2种情况下,面试官会问你很深入的问题,这类问题其实面试官他们也没好的解决方案,呵呵!第一种情况就是你的态度或你的表现让面试官不满意了,另一种情况,就是你太让面试官满意了,这2种情况,其实在面试的时候,你自己应该是能区分出来的,如果你很谦虚,前面问题有回答的很有条理,思路也很清晰,那就是第二种,如果你什么都不清楚的话,那你多半是第一种了。如果是第二种,我恭喜你,这个时候其实面试官已经让你通过了。这个时候面试官一般问的问题都比较深入,或者是比较经典的问题,或者他自己都没解决这个问题,你只要放心大胆的说出你的想法以及分析思路和原因就行了,如果解决了面试官的问题,那offer差不多就是你的了,如果解决不了,也不用担心,你至少说出了你的想法,让面试官知道你思考问题的方式。

    沟通很重要:

        测试的一个重要素质就是沟通能力,面试官不会直接考察这个能力,而是通过面试过程来给你这个能力评分。所以从头到尾,你都要表达清楚,大方,而且能抓住重点。很多应聘的同学,心理会有一点紧张,经常会出现答非所问,或者不知所云的情况。如果是这样,建议多问问面试官,你是问的这个问题吗?你是想问这个问题出现的原因还是解决的办法?这样,你可以更精确的定位面试官的意图,直接答到点子上去,面试官绝不会因为你问了问题而给你不好的评价。

    思考方式也是一种能力:

        在面试的时候,我经常会遇到一些应聘者不知道如何回答一个问题.一般来说他们会选择说我不知道,或者欺骗的方式,这些我都不喜欢。只有很少的人,他会来分析这个问题,他在分析过程中,熟悉问题,切入问题,解决问题。在遇到这种问题的时候,不要怕,大胆想,不怕出错,但出错也要出得情有可原。实在解决不了,你表达出你思考方式就好了。这样我也会给你一个高分。你要什么都不说我只好不给分了,当然你要乱说的话,我就只能在前面给你扣分了。

    做你擅长的事:

        面试的时候,一般会问到你最擅长的是什么?这个时候你可以放心大胆的说,而且一定要深入。首先你需要有信心,你擅长的,面试官不一定擅长,要尽可能展现你的能力,让面试官对你有一个清新的认识。只要你的观点,思路正确,面试官还是会认同的,虽然面试官他不知道为什么,但是他知道是什么。这个主要是为了让面试官欣赏你,觉得你能给他们带来帮助。

    装b被雷劈:

       我遇到好几个应聘者,一来就说什么国内测试行业很落后,国外很先进,什么国外的做得多么好,微软的做得多么好,但我一问为什么?让他们分析一下原因,却没人说的上来!其实我也说不上来,所以我不说。经常遇到自称能力很强,一副我是救世主,来了可以拯救你们公司的模样。大家都是技术人员,都有几分傲气的,现在还是你的面试官,你就这么装b,那将来要是同事了,你让我怎么过啊?我还敢招你吗?如果你确实能力出众,那无可厚非,但是如果半灌水,那就......,其实我也遇到很多大牛,我发现一点,越大的牛,越低调,越谦虚。

    细节决定成败:

       面试官其实大多很注重细节,比如坐姿啊,手势,眼神之类的,这些其实网上说得也多,就不多说了。一次,我面试一个学生,面试完了后,说完再见他轻轻的带上门,这一点让我很欣赏他。因为之前的学生要么就是不关门,要么就是砰的一下关上门,我直接让他b变成了a,我同事问我为什么,我跟他说,这么关注细节的人,能做不好测试吗?

    好了,就说这么多了,看书去了!

    广告一下哈:有兴趣的可加群17827576,主要是讨论游戏测试生活的

  • [论坛] 胡侃游戏自动化测试(一)

    2008-10-21 22:54:25

    本文出自开水泡泡的51Testing软件测试博客,转载请保留出处及链接:http://www.51testing.com/?138935

    申明一下,只是在这里抛砖引玉,各位如果有好的方法和建议,欢迎指正。

    首先,据我了解,国内的游戏(MMORPG)行业(国外的我不知道哈),几乎还没有比较成功的游戏自动化测试体系,或许是我孤陋寡闻吧!有少数公司在做,但是效果都不很明显,结合我自己的做的一些经历和实际操作,小小的说说自己的想法。

    1.目前市面上的一些测试工具如:lr,wr,qtp什么的不适合做游戏自动化测试,至少我没找到合适方法。个人理解是因为这个工具实际是通过简单录制或定制一些行为来实现自动化测试的,做游戏自动化测试,这些工具有几个重大缺点:

         部署成本高:

         自动化体系在server端很难部署,定制行为的时候几乎不能调用到游戏的接口,无法获得游戏实际运行的信息,预期结果不方便定制。如果是通过简单录制回放的话,效率不如手动操作好,对一些繁琐的行为,几乎是不现实的,而且这些工具对tcp/ip协议支持不如http协议好,有兴趣的同学可以去研究研究。

         效果差强人意:

         我之前用lr做了一下游戏自动化,不到一周我就放弃了,后来招了一个lr的新人,我在百般劝说下,他都没放弃游戏lr的自动化测试,结果3天不到,他也放弃了!游戏自动化测试本质目的是提高测试效率,用lr反而降低了测试效率,那么我们还用lr来干什么呢?这里我也不多说原因了,到后面我会提一下另一种方法的,主要说另一种方法的优势,而这种方法的优势恰好是这些工具的劣势。

    2.几乎所有的游戏在前期架构设计上就没考虑到游戏自动化测试的需求,所以在游戏后期介入自动化测试几乎是不现实的。

    3.公司没有足够的人力物力,或者说项目组就没有意识到自动化测试的意义,所以也无法开展。

    4.测试自身的能力,很多(现在不是几乎了,有的游戏公司的测试还是很nb的)测试自身能力不足,或者接触不到游戏代码或其他需求无法满足,导致无法进行自动化测试。

     

    预告以下:胡侃游戏自动化测试(二) 主要说说游戏自动化测试对游戏架构设计的需求

  • 我又出现了

    2008-10-21 22:02:50

    哈哈,我又浮出水面了!

    或许我真的是耐不住“寂寞”的人吧,我以为我这个空间回就此荒废呢,看来,又一次让自己失望了

  • 决定离开

    2008-01-31 12:27:33

    沉寂了好一段时间,终于决定出来透透气!

    这两天其实很闲,没什么实际的事情.大部分时间都用来和老总谈心了!

    其实,半年前就决定离开,但是手上的事情还没做完,游戏也没成,心里有点遗憾,最后决定在事情做完,游戏成功运营后再来定夺.如今,部门建设也初居规模,梯队建设也正有条不紊的开展中,游戏不好不坏,也算是成了!现在离开,也没什么遗憾了!

    昨天晚上,老总和我谈了整整四小时,内容也颇为丰富,最后,我跟他说,我累了,想要休息!或许你觉得这是个借口,但这个确实是我真实的想法!他说,如果你真这么想,我给你放假,你想要多久就放多久,直到你休息好了,你就回来吧!最后我还是拒绝了他的建议.老总让我春节期间,回家好好考虑后,再做决定,其实我当时不忍心告诉他,春节回来结果还是一样的.......

    接下来,该休息一下了!

  • Python线程编程的两种方式

    2007-09-08 13:39:45

        Python中如果要使用线程的话,python的lib中提供了两种方式。一种是函数式,一种是用类来包装的线程对象。举两个简单的例子希望起到抛砖引玉的作用,关于多线程编程的其他知识例如互斥、信号量、临界区等请参考python的文档及相关资料。

    1、调用thread模块中的start_new_thread()函数来产生新的线程,请看代码:

     # thread_example.py

    import time 
    import thread 
    def timer(no,interval): #自己写的线程函数
        while True:
            print 'Thread :(%d) Time:%s'%(no,time.ctime()) 
            time.sleep(interval)
    def test(): 
        thread.start_new_thread(timer,(1,1))#使用thread.start_new_thread()产生2个新的线程 
        thread.start_new_thread(timer,(2,3))
    if __name__=='__main__':
        test() 
    这个是thread.start_new_thread(function,args[,kwargs])函数原型,其中function参数是你将要调用的线程函数;args是讲传递给你的线程函数的参数,他必须是个tuple类型;而kwargs是可选的参数。线程的结束一般依靠线程函数的自然结束;也可以在线程函数中调用thread.exit(),他抛出SystemExit exception,达到退出线程的目的。
    2、通过调用threading模块继承threading.Thread类来包装一个线程对象。请看代码 #threading_example.py 
    import threading 
    import time 
    class timer(threading.Thread): #我的timer类继承自threading.Thread类 
        def __init__(self,no,interval): 
            threading.Thread.__init__(self) #在我重写__init__方法的时候要记得调用基类的__init__方法 
            self.no=no 
            self.interval=interval 
        def run(self): #重写run()方法,把自己的线程函数的代码放到这里 
            while True: 
                print 'Thread Object (%d), Time:%s'%(self.no,time.ctime()) 
                time.sleep(self.interval) 
    def test(): 
    	threadone=timer(1,1) #产生2个线程对象 
    	threadtwo=timer(2,3) 
    	threadone.start() #通过调用线程对象的.start()方法来激活线程 
    	threadtwo.start() 
    if __name__=='__main__':
    	test() 
    其实thread和threading的模块中还包含了其他的很多关于多线程编程的东西,例如锁、定时器、获得激活线程列表等等,相关资料仔细参考python的文档!
  • 职业生涯规划

    2007-09-07 20:43:36

    职业生涯规划

    职业生涯规划应充分考虑人、环境、职业与成功的事业生涯之间的关系。那么如何规划职业生涯的呢?下面具体的规划职业生涯应考虑的因素和步骤。
     
      1
    、确定志向。志向是事业成功的基本前提,没有志向,事业的成功也就无从谈起。俗话说:"志不立,天下无可成

    之事。"立志是人生的起跑点,反映着一个人的理想、胸怀、情趣和价值观,影响着一个人的奋斗目标及成就的大小。

    所以,在制定生涯规划时,首先要确立志向,这是制定职业生涯规划的关键,也是你的职业生涯规划中最重要的一点。
     
      2
    、自我评估。自我评估的目的,是认识自己、了解自己。因为只有认识了自己,才能对自己的职业作出正确的选择,才能选定适合自己发展的职业生涯路线,才能对自己的职业生涯目标作出最佳抉择。自我评估包括自己的兴趣、特长、性格、学识、技能、智商、情商、思维方式、思维方法、道德水准以及社会中的自我等等。
     
      3
    、职业生涯机会的评估。职业生涯机会的评估,主要是评估各种环境因素对自己职业生涯发展的影响,每一个人都处在一定的环境之中,离开了这个环境,便无法生存与成长。所以,在制定个人的职业生涯规划时,要分析环境条件的特点、环境的发展变化情况、自己与环境的关系、自己在这个环境中的地位、环境对自己提出的要求以及环境对自己有利的条件与不利的条件等等。只有对这些环境因素充分了解,才能做到在复杂的环境中避害趋利,使你的职业生涯规划具有实际意义。
     
    环境因素评估主要包括:
      (1)
    组织环境 (2)政治环境 (3)社会环境 (4)经济环境 
     
      4
    、职业的选择。职业选择正确与否,直接关系到人生事业的成功与失败。据统计,在选错职业的人当中,有80%的人在事业上是失败者。正如人们所说的"女怕嫁错郎,男怕选错行"。由此可见,职业选择对人生事业发展是何等重要。
     
    如何才能选择正确的职业呢?至少应考虑以下几点:
      (1)
    性格与职业的匹配;
      (2)
    兴趣与职业的匹配;
      (3)
    特长与职业的匹配;
      (4)
    内外环境与职业相适应。
     5
    、职业生涯路线的选择。在职业确定后,向哪一路线发展,此时要作出选择。即,是向行政管理路线发展,还是向专业技术路线发展;是先走技术路线,再转向行政管理路线…… 由于发展路线不同,对职业发展的要求也不相同。因此,在职业生涯规划中,须作出抉择,以便使自己的学习、工作以及各种行动措施沿着你的职业生涯路线或预定的方向前进。
     
    通常职业生涯路线的选择须考虑以下三个问题:
      (1)
    我想往哪一路线发展?
      (2)
    我能往哪一路线发展?
      (3)
    我可以往哪一路线发展?
     
    对以上三个问题,进行综合分析,以此确定自己的最佳职业生涯路线。
     
      6
    、设定职业生涯目标。职业生涯目标的设定,是职业生涯规划的核心。一个人事业的成败 ,很大程度上取决于有无正确适当的目标。没有目标如同驶入大海的孤舟,四野茫茫,没有方向,不知道自己走向何方。只有树立了目标,才能明确奋斗方向,犹如海洋中的灯塔,引导你避开险礁暗石,走向成功。  目标的设定,是在继职业选择、职业生涯路线选择后,对人生目标做出的抉择。其抉择是以自己的最佳才能、最优性格、最大兴趣、最有利的环境等信息为依据。通常目标分短期目标、中期目标、长期目标和人生目标。短期目标一般为一至二年,短期目标又分日目标、周目标、月目标、年目标。中期目标一般为三至五年。长期目标一般为五至十年。
     
      7
    、制定行动计划与措施。在确定了职业生涯目标后,行动便成了关键的环节。没有达成目标的行动,目标就难以实现,也就谈不上事业的成功。这里所指的行动,是指落实目标的具体措施,主要包括工作、训练、教育、轮岗等方面的措施。例如,为达成目标,在工作方面,你计划采取什么措施,提高你的工作效率?在业务素质方面,你计划学习哪些知识,掌握哪些技能,提高你的业务能力?在潜能开发方面,采取什么措施开发你的潜能等等,都要有具体的计划与明确的措施。并且这些计划要特别具体,以便于定时检查。
     
      8
    、评估与回馈。俗话说:"计划赶不上变化。"是的,影响职业生涯规划的因素诸多。有的变化因素是可以预测的,而有的变化因素难以预测。在此状况下,要使职业生涯规划行之有效,就须不断地对职业生涯规划进行评估与修订。其修订的内容包括:职业的重新选择;职业生涯路线的选择;人生目标的修正;实施措施与计划的变更等等。

  • 关于python

    2007-09-04 10:13:09

    关于python

    “Python”这个英文单词的发音似“派森”,因此中文可以称之为派森。Python是一个有10年历史的Windows编程语言。Python的创始人为Guido van Rossum。

     

    Python是一种即译式的,互动的,面向对象的编程语言,它包含了模组式的操作,异常处理,动态资料形态,十分高层次的动态资料结构,以及类别的使用。Python揉合了简单的语法和强大的功能。它的语法表达优美易读。它具有很多优秀的脚本语言的特点:解释的,面向对象的,内建的高级数据结构,支持模块和包,支持多种平台,可扩展。而且它还支持交互式方式运行,图形方式运行。它拥有众多的编程界面支持各种操作系统平台以及众多的各类函数库。利用C和C++可以对它进行扩充。个别的应用软件如果需要有一个可程序化界面也可以利用它来做为扩展语言用。最后,Python的可移植度非常高:它可以在许多的Unix类平台上运行,在Mac,MS-DOS,视窗Windows,Windows NT,OS/2,BeOS,以至RISCOS上都有相关的Python版本。

     

    Python核心网站是:  http://www.python.org/ ,其中你可以找到很多资料。如果您第一次使用 Python, 可以下载一个试试。目前,Python已经有成百上千的公共资源可以供你调用。

     

    Python作用

     

    Python可以用在许多场合。当你需要大量的动态调整,要容易使用,功能强大并且富有弹性的情况,Python可以发挥很好的功效。

     

    一个宏编程语言

    你可以用Python给现有的应用程序添加一个宏语言或底稿编制(scrīpting)能力。经过稍微的训练,它使用户级别的底稿编制变得简单。发展一种新的语言常常被认为是大公司独家专利。Python是一个你可以加入你现有工具的宏语言并适合不同的层次的人使用。

     

    一个快速的对象模型和算法的原型开发工具

    开发软件花费钱财需要很多时间才能达到很好的效果。在Python下创建对象,你可以比我们知道的任何语言用更短的代码和更少的时间,并且全部支持继承,密封和多形性。一个比较流行的办法是在Python中原型一个程序,直到你相信设计是正确的再换到C++中,一个更好的办法是将Python应用程序轮廓化,然后在C++中重写速度至关重要的部分。

     

    一个调试工具

    新程序和代码库需要测试。有经验的开发人员知道给一个新功能或程序建立一个测试套件会节约时间并减少麻烦。如果一个程序可以与输入输出文件工作,Python 可以生成输入,运行这个程序,然后检查输出并进行分析。如果问题在于数据,你可以编写一次性的脚本来检查数据是否一致。

     

    数据清除和转换

    你可能会将数据由一个数据库移到一个新的数据库,或新建一个界面让数据在互不兼容的系统中流动。如果人工来做,这会是一个很繁琐而且容易犯错误的过程,你总会遗漏东西,到头来你还得重做以前的工作。Python对列表和字典的本地支持使复杂的数据转换更加容易。而且这种交互式模式可以让编程人员在转换过程的每一阶段观看数据。还可以编写由源到目标的数据转换的脚本并按需要不断运行,直到它正确完成工作。

     

    Python作为粘合剂

    互不兼容的系统常常需要被联在一起,而且这个过程需要自动进行。Python支持所有的集成关键技术。同时也很好的与文件,协议,DLLs及COM对象工作。Python还提供广泛的库帮助你得到几乎任何种类的数据。它还是很好的控制其他套件、进行系统管理以及控制其他系统数据流动的工具。

     

    运行方式

     

    Python可以以命令行方式运行,也可以交互式方式运行,还具有图形集成环境,这样开发Python就相当方便。现在已经出现了许多用Python编写的可视化编程软件,用于实现象Delphi一样的功能。

     

    面向对象

     

    Python是一个真正的面向对象语言。它甚至支持异常的处理。如果学过Java,应该对这个不陌生。但其它的脚本语言,如PHP,好象就没有。这使得程序的编写更加清晰,而不需要许多的错误检查了。

     

    模块和包

     

    这一点更象是Java。对于Java的支持,大家可以了解JPython。JPython是用Java写的Python,它完全支持Java,在这个环境下使用Python可以随意地使用Java的类库。语言扩展可以用C、C++或Java为Python编写新的新言模块,如函数。或者与Python直接编译在一起,或者采用动态库装入方式实现。也专门有人编写了一个工具,可以实现为Python自动实现函数接口封装,这就是SWIG(Simplified Wrapper and Interface Generator),或称做简单封装和接口生成器(可以在http://sourceforge.net/projects/swig/)。

     

    有趣的语法

     

    Guido认为Python的语法是非常优美的。其中一点就是,块语句的表示不是C语言常用的{}对,或其它符号对,而是采用缩近表示法!有趣吧。就这一点来说,Guido的解释是:首先,使用缩近表示法减少了视觉上的混乱,并且使程序变短,这样就减少了需要对基本代码单元注意的范围;其次,它减少了程序员的自由度,更有利于统一风格,使得阅读别人的程序更容易。感觉还是不错的,就C语言来说,在if语句后面大括号的写法就好几种,不同的人喜欢不同的样子,还不如统一起来,都不会看得别扭。

    在每个类或函数的定义后面,第一行可以是说明语句,根本不需要注释符标记。对于后面跟块语句的语句,后面应跟上一个冒号。一行语句不能太长,因为没有行结束符,如果超长则要使用续行符(\)。还有一些有趣的比如说,象下面的一个比较处理,用C语言为:  

     

    if (2

    用Python可以表示为

    if (2

     

    什么是Zope?

     

    Zope是一个开放源代码的Web应用服务器,采用Python语言开发,使用它您可以方便的构建内容管理、内部网、门户网站、和其他的定制应用。

     

             高度面向对象的Web开发平台,采用Python语言开发。

             可以运行在几乎所有流行的操作系统上,支持多语言。

             能集成到其他流行的服务器,也自带服务器。

             提供清晰的数据/逻辑/表示的分离。

             带有可扩展的内置对象和强大的集成安全模块。

     

     什么是Plone?

     

    Pone是一个Zope上的一个用户友好、功能强大的开放源代码内容管理系统。Plone适合用作内部网/外部网的服务器、文档发布系统、门户服务器和异地协同群件工具,到目前,Plone其实已经发展成为了一个应用开发平台。

     

             是一种功能强大的开放源码(Open Source)内容管理系统(CMS)。

             通过Web浏览器来访问、编辑内容和管理,易于更新内容。

             无需编程,即可创建新的内容类型。

             协同的编辑和发布机制。

  • 员工离职的十大主因

    2007-09-03 10:18:01

    员工离职的十大主因
      美国一家管理顾问公司的总裁史密斯(Greg Smith)指出,员工之所以选择离职的十大主因为:
      1 . 公司要求员工做一人份以上的工作量,造成员工晚上和假日都必须加班。
      2 . 公司不提供员工执行上的必要协助,迫使专业工作者必须花时间在影印、装订,以及归档等零碎的事情上。
      3 . 公司冻结升迁与加薪,导致员工不难在其它公司找到待遇更好的类似工作。
      4 . 公司不赋予员工做决定的权力,而且员工自己的工作成果,也不让他们挂名。
      5 . 公司不断进行改组,以致人员持续调动、方向不停改变。
      6 . 公司没有清楚地向员工解释工作的目标及各种决定。
      7 . 公司偏心某些员工,分配给他们比较好的办公室,给予他们参与研讨会的宝贵机会。
      8 . 公司迁移办公室,迫使员工通勤的时间拉长。
      9 . 公司升迁资格不够的员工为主管。
      10 . 公司虽然口头上说鼓励团队合作,但是却打造了竞争的组织结构,员工之间需要拼得你死我活。

    仔细一看,还被吓了一跳,我们公司就占了6条,看样子,我真的应该离开了!

  • [论坛] 测试阶段总结

    2007-08-30 15:23:04

      最近公司的进度很紧,产品修改也比较频繁.这段时间一直忙于测试,看着每天的Bug不断的增加和修正,真是痛并快乐着,痛苦是因为Bug旧的去了,新的又来!快乐是看着Bug逐步减少,把这些天的工作总结一下。

    1、测试要参与到开发过程中去
      这款游戏已经持续开发3年多时间了,n次跳票,终于看到一点希望了.为了进一步完善游戏,这阶段任务繁忙和人手不足,因此测试一直拖后,因此当进行集中测试的时候才发现问题集中爆发,然而项目时间却越来越进.因此感觉更加的繁忙,于是又去催促开发尽快修正.但是由于前期的过程就没有经过充分验证,导致修复bug的时候产生恶性循环,旧的去了,新的来了.一切都变的不可控起来.因为你永远不知道接下来会有什么问题出现.另外由于很多功能和修订,都是早期积累下来的,已经搁置了很长的时间,而且由于真个项目不规范,导致开发员再次进入修改的时候,往往需要花费大量的学习成本,造成Bug的修复周期延长了很多或引起更多的新问题。

      建议当准备新的调整的时候后,测试人员要充分参与进去,明确共同的目标,降低因为沟通不当引起的不必要的成本.

    2、缺陷管理工具要体现出他的作用

      公司只是使用一个BM(一个bug管理工具,原名Bug Manager),作为缺陷的跟踪和管理工具,但是,效果很不理想.虽然部门制定制度,但是却没有人推动制度的执行,反馈问题有的同事就直接口头交流,有的邮件,有的BM
    导致各组独立为战,其实项目组从来都不清楚目前项目质量情况,只知道目前这个进入了测试,那个功能也进入了测试,但是质量呢?所以项目组永远无法根据目前游戏的质量来做出决策.

    3、测试要有计划,有步骤的进行

        由于项目时间很紧,为了确保能按时完成工作进度,有的小组就将测试过程也给简化了.什么测试分析,什么测试计划,全都见鬼去吧!当测试人员最后发测试结果的时候,大家都兴奋了好一阵子:哇,0bug!难道是因为时间紧,项目质量迅速提高!经验告诉我,这不正常,当版本发布以后,噩梦开始了,今天客服说这个有问题,明天又出了那个能刷东西的问题.直到项目组忍无可忍.....

        后来通过分析,才发现为了赶时间,没有任何准备,就直接执行测试,导致测试非常盲目,没有目标,没有重点.该测的点都没有覆盖到.更不要说风险评估了!

        所以:三思而后行,一定要有目的,有计划,按步骤的工作,当然,视具体情况可以适当调整.

    4.测试不要对项目进度负责

        测试部门又可以说是质量部门,项目进度依赖于产品质量,项目进度应该根据质量情况而调整,而不是因为项目进度,对质量标准进行调整.在这次改版过程中,这个问题体现得尤为突出.为了版本计划,粗暴的压缩测试时间,导致最后版本放出去后,玩家怨声载道.....

        我们的职责是:发现问题,督促问题解决!是为了证明产品是有问题的,而不是为了证明产品是正确的,进度以来质量,而不是质量依赖进度.

    5、开发和测试最好不同步

      游戏的核心系统,家族系统开发量大,测试压力也大.当时为了争取时间,开发和测试全部留下来加班,开发写完测试进行测试,然后开发等着,等发现问题了,开发又修改,测试又等着,如此循环,结果第二天整个功能组没有一个清醒的人来上班.而其他系统又严重依赖这个系统,导致整个游戏因为家族系统无法开展工作,项目严重delay.

       建议:合理安排开发和测试时间,最好不要撞车.


    6、交叉测试的重要性

      我们最初安排测试的时候,是某个测试人员只测试其中一个功能,另外的测试人员测试另一功能,过了几天后发现,每个测试人员的Bug检测数量都下降了,原来,测试人员对自己部分已经发现不出来缺陷了,后来采用了交叉测试的方式,就是测试人员交换测试工作,结果不同的人从不同的角度进行测试,结果一些缺陷又发现了,因此交叉测试很重要。

    7、测试需要不断调整测试方法

       测试对象都具有免疫能力.一般来说,随着测试工作的进行,bug会越来越少,但是千万不要以为就没有bug了.要永远记住,没有bug的软件是不存在的.这个时候需要调整测试方法和策略.这个过程中,经验就体现出他的价值来了.如果你有经验当然好,但是如果是新手的话,就需要多想别人请教,交流.不断的调整测试的策略、流程,多总结和借鉴别人的测试经验,会更好的提高测试质量。

    8.沟通和熟悉业务.

        和开发人员的沟通很重要.你必须要很熟悉业务对象,否则你很难和开发人员沟通.无法沟通就无法开展工作.到最后最严重的情况可能是:你反馈一个问题,开发人员看都不看就回给你说不是问题.....因为你不熟悉业务对象,开发人员已经对你失去了信任.

  • 开通纪念日

    2007-08-27 15:51:21

         本不想再开博客了,但后来朋友说,你没写点什么东西的欲望吗?

         是啊,是该写点什么了

Open Toolbar