我眼中的性能测试工程师
from:
http://qa.taobao.com/?p=8308
2011年1月26日 由 wuyun 留言 »
许久以前就答应悟石要分享一下我眼中的性能测试工程师,结果托来托去快托过年了,囧…
想想来杭州有半年了,也对目前主站的性能评测团队工作模式有些许了解了,再加上以前在上家雇主也做过几年自认还算很有技术含量的性能测试工作,我想我还算有点资格说的吧:)
性能测试说的装B点儿,其实没啥,就是和Response Time(或者说latency)、throughput(也可以说capacity)以及scalability打交道。弄懂了这三个要素,应该就算是一个合格的性能测试工程师了。
当然,我不会装B,只是一介武夫,所以我接下来只想从偏技术层面聊聊我心目中真正的主站性能测试工程师是啥样的:
大局观。性能测试工程师一定要有系统化的思维,要站在整个系统测试的角度看问题。一个优秀的性能工程师必须要有相当的知识广度。否则在测试期间,你必须依赖外界援助(比如DBA,Dev或OPS)来协助,效率不高,更关键的是可能会被误导,漏掉很多性能BUG。我常常看到组里的童鞋们在压测时一看到TPS降了,就死盯着应用,就着急的去分析线程或做CPU Profiling。找不到原因后有时问到我时,我习惯的第一句总是 你看过DB么?确认DB端正常么?看过压测客户端么?确认压测端正常么? 我个人意见:不要老凭经验,一有重复症状就思维定式;一定要坚持先从全局看问题,隔离到是应用层面、DB层面抑或是压测客户端层面后再进一步深入定位问题。
技能深度。在性能测试工具方面有自己独特的理解;同时也应该在操作系统、数据库、应用程序等方向的配置管理与调优方向上非常的熟悉。
敏感。这个一方面是天赋,一方面是经验积累吧, 很多隐蔽的性能问题确实是需要丰富的经验才能发现,极容易漏掉:)
兴趣。 其实这条才是最重要的^-^
如果说具体些通俗些,我眼里主站真正的性能工程师是这样的:
熟悉Java(包括JVM内在机理)/c/c++。理由很简单,主站大部分的外围应用和中间件都是JAVA写的,底层核心系统是c/c++写的。
精通linux管理和shell编程。理由更简单,我一直觉得,shell熟练与否非常大程度决定了一个工程师的工作效率。
对数据库管理和性能优化有自己的实践和心得(数据库永远是个性能要点)
精通某一个性能测试工具。不止是使用,更包括原理,如何改造扩展。
熟悉linux kernel的实现(比如内存管理、文件系统、系统调用… )。 这条感触在最近两个月特别深,可能是受到褚霸、子团等大侠们的影响吧,如果不熟悉kernel,确实很难在底层系统的性能测试上有所真正建树。其实这块也算是整个质量保证部的技术短板吧,现在淘宝的linux内核组都是自测+他人review的形式,如果。。。^-^
了解常见硬件,特别是存储相关。这块主要是受国外Percona公司的Peter和Vadim影响,他们能成为世界公认的mysql性能专家,他们熟悉mysql源码当然很重要,但也与他们那非常渊博的底层硬件知识是分不开的。
当然以上都是我个人意见,从我自己的角度出发看的问题。其实性能测试还有很多领域,比如前端性能测试这块,我是小白,就不发表任何相关意见了^-^ 但说到底,做性能这块关键一是经验积累二是掌握相关底层技术
至今还记得百淘65期让我最为难忘的细节,达人青云在分享他的牛P经历时总结到的:
结合优势,做别人做不了的
发现问题,做别人没做过的
主动出击,做别人不爱做的
希望自己能一直铭记这三句话,有天能成为一个真正的性能工程师
分享到:
相关推荐
"性能测试工程师面试题汇总" 性能测试工程师面试题是指性能测试工程师在面试过程中遇到的常见问题,涵盖了性能测试的基础知识、LoadRunner 的使用、场景设置、脚本录制、参数设置、关联机制、调试技巧等多个方面。 ...
性能测试工程师在软件开发行业中扮演着至关重要的角色,主要负责检验软件的性能是否能够满足预定的性能指标。在构建性能测试知识体系的过程中,性能测试工程师不仅需要掌握测试的基本理论和实践,还需要不断积累经验...
【测试开发技术】高级性能测试工程师面试中,面试官可能会关注候选人的项目经验和问题解决能力。以下是基于给定内容的详细知识点解析: 1. **项目经验**:面试者需能够详细描述最近参与的项目,包括项目背景、预期...
想步入性能测试领域的、测试工程师、性能测试工程师、接口自动化测试工程师、开发工程师以及感兴趣的人 适合想往 中高级开发工程师或者测试工程师发展的人员 课程目标: 你将掌握如何使用Jmeter进行性能和接口自动...
性能测试工程师的标准及挑战部分主要阐述了性能测试工程师在职业发展中的考评指标和面临的挑战。性能测试工程师的考评指标包括缺陷数目、缺陷质量、工作态度、工作效率、文档编写能力、团队协作能力及其他相关技能。...
性能测试工程师关注系统的负载、压力和稳定性;安全测试工程师则专注于发现并解决潜在的安全漏洞;移动应用测试工程师则需要对iOS和Android平台有深入理解。 随着敏捷开发和DevOps文化的普及,测试工程师的角色也在...
这本书让我们对性能测试有了更加深入的了解,对性能测试的过程也有了进一步的认识,本书精心安排的内容让我们部门的大部分员工都能很快...希望从别人的经验中学习的性能测试工程师。希望全面了解性能测试的其他人员。
优秀的性能测试工程师须掌握的几点软件测试基础:系统学习一种或几种编程语言并熟练掌握。学习编程语言是做性能测试的基础,因为涉及到实现测试的时候,肯定涉及到具体的编码。那么我们在学习的时候,可以根据实际的...
在这个职业生涯规划中,我们可以了解到软件测试工程师职业生涯的各个阶段,包括初级测试工程师、高级测试工程师、测试组负责人、资深平安或性能测试工程师、测试/质量保证/开发经理、公司级质量总监等阶段。...
2.精通1个商业性能测试工具+1个开源性能测试工具,知道工具可以做什么,不可以做什么,以及工具使用中常见的问题和解决思路; .精通性能测试的基本概念,过程,方法论,了解性能工程; 2.精通1个商业性能测试工具+...
2. **中级性能测试工程师**:随着工作经验的积累,测试人员将逐步参与到更复杂的项目中,负责更多元化的测试任务,如测试计划制定、测试用例设计等。 3. **高级性能测试工程师**:在这个级别上,测试人员不仅需要...
1.1 性能测试工程师的标准及挑战 1.1.1 性能测试工程师的考评指标 1.1.2 性能测试工程师的挑战 1.2 性能测试基础 1.2.1 性能定义 1.2.2 性能指标 1.2.3 单机与网络性能测试 1.2.4 性能测试的流程 1.2.5 性能测试招聘...
总之,成为一名优秀的性能测试工程师不仅需要扎实的技术功底,还需要不断学习新知识、新技术,以及不断提升个人的沟通能力和团队协作能力。只有这样,才能在实际工作中应对各种挑战,确保项目的顺利进行。
在《性能测试进阶指南:Loadrunner实战91-第1章性能测试基础》中,作者深入探讨了性能测试的基础知识,包括性能测试工程师的角色、挑战、标准以及测试过程中的关键要素。 1.1 性能测试工程师的标准及挑战 性能测试...
在这个职业规划中,我们可以看到软件测试工程师的职业发展可以分为七个阶段,从初级测试工程师到高级测试工程师、测试组负责人、资深安全或性能测试工程师、测试/编程高级负责人、测试/质量保证/开发经理、公司级...