职业发展的疑问

问题:

关河老师,我是30岁的人了,做了几年的测试,都是简单的黑盒测试,我对性能测试很感兴趣,也自学了一段时间。感觉比较迷茫,毕竟没 有实战项目。因为也工作多年了,对于项目内容的理解,整体的把握还是有一定能力的。但是我想把性能测试作为事业干下去,想请老师指点 一下,性能测试工作需要哪些能力,对于些基础的东西需要掌握多少,必须数据结构,编译原理,数据库,网络等。
盼复

性能测试是测试领域的一个专门方向,应该说这个方向还是对测试工程师具有较高的技术能力要求的,我个人觉得,如果愿意在测 试领域做一些深入的工作,性能测试是一个不错的方向。

回到你的问题,“性能测试工作需要 哪些能力,对于基础的东西要掌握多少?”——其实这真是一个不太好回答的问题,我尽量在邮件中把这个问题描述得清楚一些:

  1. 性能测试本身就有不同的层面,通常,对一个应用系统的性能测试贯穿应用开发的整个过程(除非你是甲方的验收测试人员),也就是说,性 能测试工程师需要在多个不同的层面来开展性能测试:代码层面,组件层面,系统层面。从这个角度来说,性能测试工程师必须对设计、编 码、应用系统(操作系统、数据库系统、应用服务器)有必要的了解;
  2. 性能测试工程师除了需要能够设计性能测试环境,写性能测试脚本外,还需要对性能测试的结果进行分析,根据结果设计新的 测试,并从结果中寻找出性能瓶颈。这方面对性能测试工程师的要求就高了:
  • 如果要做应用服务器级别的调优,至 少需要了解应用使用的具体应用服务器的特性,调优方法,监控方法等等;
  • 如果要做代码级别的调优,需要了解具体的语言特性(例如,Java的GC机制,内存管理机制等),设计模式,代码级别的性能测试方法 (通常需要根据具体的框架选择不同的代码级别的调优工具)等;

当然,数据库调优一般有专门的数据库工程师来做,但性能测试工程师至少需要了解数据库的性能相关因 素。
如你所言,了解业务和项目内容对于性能测试也有一定的作用,在设计性能测试场景和建 立性能测试用户模型时,这些技能可以帮助你更好的模拟真实用户使用,得到更准确的测试数据。但归根到底,我认为性能测试还 是一个技术性非常强的测试方向。

希望这些回答能够解答你的问题。

问题2:
关河老师, 您好。
很感谢您及时给我回信,您的回答解决了我不少的困惑,这几天我也对性能测试做了些调查,看了51testing上08年的软件 测试调查。感到很多人都想做性能测试,很多企业也对这方面有需求。这至少让我感到前途是光明的。
我是大连人,大连的软件以外包为主,就大连来看,需要性能测试的企业不多。凭您的经验来看,性能测试国内企业多吗?是不是都是外资企 业,因为本人外语不好,呵呵。

有的时候我也很着急,30岁了,计算机一般,外语不行,原来的业务能力倒是可以,但是面非常窄。

前景是光明的,但道路可能是艰苦的:)

其实外包并非意味着不需要性能测试。我所知道的有一些公司,就是依靠银行或是其他领域的外包的性能测试生存的,看 起来还挺滋润的。不过总体来说,看重性能测试的,的确是大型企业或是外企比较多一些。专门的性能测试工程师,也只有大型企业或是大的 外企才会养着了。我个人的感觉是,性能测试工程师是一个非常需要开发技能和计算机背景的职位,因此,一个好的性能测试工程 师必然能够适应企业中的许多测试任务,甚至是测试工具的开发任务。

其实你该问自己一个问题:“我真的喜欢技术工作吗?”,如果是真的喜欢的话,那就努力,不管是coding的能力,还 是计算机的能力,都是可以通过自己的学习来补充的(英语也是);如果并不是真的喜欢,那就考虑下如何使用你的业务能力让自己去做真正 喜欢做的事情吧。我认识的测试领域的高手,无一不是真正喜欢技术工作并愿意牺牲很多个人的时间/体验来追逐技术的人。

Posted at 五月 21st, 2010.

Leave a Reply