没有任 何学习最终能脱离实践。在此我强烈推荐我写的一篇完整的关于实践的文章(在我的博客中可以找到)。很多你阅读的资料中都包含练习,你可以操作一遍。很多你 参与的会议、培训、专题讨论会,都会有例子,你可以重复一遍。即使你已经知道结果了,也要自己去动手操作,这是一种不同类型的学习。当上手实践过后,才能 成为最好的学习者。
对于性能测试,我认为开源社区是一个很好的实践学习的地方。考虑到性能测试的性质,大部分测试工具都是互通的,学习 多种开源工具将会给你不同的解决性能问题的思路。很多时候,现有可用的工具会束缚我们着手解决问题的想法,但如果你实践用过多种工具,则你会有多种不同的 途径和解决方案。
如果你真希望以性能测试为职业,我建议你开始准备一下齐全的推销资料。一份简历就是绝大部分人聚集他们推销自己技能的场所,也是你推销行动开始的地方。 简历中应该讲述给你潜在雇主什么内容呢?你不是一位性能测试人员吗?你的每一段过去的经历怎样帮助你明确性能测试的发展方向呢?请记住,对于性能测试从业 者来说,一个显著的挑战就是它的多样化,这也一定很容易和一个性能测试者的经验技能联系起来。
别忘记在你的简历中包含对培训的描述。我 不得不想起有些人有过像参加专题讨论会、在一些在线社区活跃了几年这样的经历,但未将这些经历写入简历,不管这些是否能帮助你展现你的技能,都要写进简 历,而且还应包含一些能够展示给别人关于你对于性能测试的渴望和你在不断的学习等相关的内容。
依据你向往的公司类型或你想从事的项目类型,都要有恰当的证明文件。证明是关于性能测试的而不仅仅证明你会使用测试工具。恰当的证明也许来自程序语言的结构(如Java),网络(如CCNA),应用服务器(如WebSphere),数据库(如Oracle),或者甚至是你想从事的工作内容(如 CPCU,如果你想从事保险行业)。通常我不是一个喜欢关注证明资料的人,但他们可以帮助你畅通无阻的推销自己。
最终我认为写作才是推销你自己的最好方式。开始在一些在线社区活跃起来吧,回答一些专题讨论的问题或用邮件方式研讨一下你的思路等等。就像你听说过的, 在你的博客中列出你学习的目录,这样别人也会对你的努力有所了解。当你确实开始了解了一个性能测试的明确方向,那么去尝试写些文章或关于它的文件吧。在一 些讨论会或专题社区介绍给大家你的思想,你会通过这种写的方式变得更公众化,你也会学到更多。我的体会就是,对于你写的文章,别人提出很多反馈信息时,你 会学到更多。即使你不成为下一个性能方面的资深人士,当你的潜在老板搜索到你的名字,他们会很快因看到你拥有性能测试的广泛知识而喜欢你的。
即使你在当前的工作中没有性能测试项目,你仍然可以把你的项目联系起来。你的团队在做Web Services的测试吗?那么你可以有XML的经验,不同协议和常用专业工具的经验。你的团队在做数据库的测试吗?那么你可以有SQL和管理大型数据库的经验。你的团队在进行自动化测试吗?那么你可以得到设计和处理分布式测试问题的经验。你的团队在做基于风险的测试吗?那么你将会了解一个应用的风险建模或特征,并且让你懂得进行不同的测试会如何做出不同的选择。我还能继续说出更多类似的例子,所以把握住你当前的机会,将他们联系到不同的性能测试知识中。
How to specialize in Performance Testing?
Continuing to learning about performance testing
The activity that you have the most control over is your own learning. I’ve been studying and doing performance testing for eight years, and I honestly still learn something new about performance testing almost every week. It’s a deep and rich specialization in software testing. There’s a lot to performance testing that still needs to be formalized and written down. It’s still a growing body of knowledge.
If your dream is performance testing, then you need to continue to learn. Reading articles, blogs, books and tool documentation is a good place to start. Attending conferences, training, workshops and local groups is a great place to meet others who have similar passions. If you don’t have opportunities like those, then join one of the many online communities where performance testers have a presence. Depending on your learning style, dialog and debate can be as great a teacher as reading, if not greater.
Finally, no learning is complete without practice. I’m so passionate about the topic of practice that I wrote an entire article on it (you can find it here). Many of the materials you read will include exercises. Work through them. Many of the conferences, training, and workshops you attend will show examples. Repeat them. Going through the work on your own, even if you already know the outcome, provides a different kind of learning. Some people learn best when the experience is hands-on.
For performance testing, I think a great place to start practicing is in the open source community. Given the nature of performance testing, most tool knowledge is transferable to other performance testing tools. Learning multiple open source tools will also give you different ideas for how you can solve a performance testing problem. Many times, our available tools anchor our thinking about how to approach the problem. If you’ve practiced with multiple tools, you’re more likely to have variety in your test approaches and solutions.
Once you know how to use a couple of performance testing tools, if you can’t seem to get the project work you need at your current employer, and you’re unwilling or unable to leave for another opportunity, then I recommend volunteering your time. There are a lot of online communities that help connect people who want to volunteer their technical talents to nonprofits or other community-minded organizations. Finding project work outside of your day job can be just as valuable as formal project work.
Start marketing your skills and abilities
If you’re serious about performance testing as a career, I recommend you start pulling together some marketing material. A resume is the place most people focus their limited marketing skills. That could be a good place for you to start as well. What story does your resume tell a potential employer? Is it that you’re a performance tester? How has each of your past experiences helped you develop a specific aspect of performance testing? Remember, one of the great challenges performance testing presents to practitioners is its variety. That makes it easy to relate a variety of experiences to the skills a performance tester needs.
Don’t forget to include your training on your resume. I’ve had to remind several people of classes they’ve attended, workshops they participated in, or people who have been an active member of an online community for years and have not included that on their resume. If it helps you tell the story of your expertise, get it on there. Include anything that shows an employer that you’re passionate about performance testing and you’re continuously learning more about it.
Depending on the types of companies you want to work for, or the types of projects you might want, a certification might be appropriate. Certifications relevant to performance testing aren’t just performance testing tool certifications. Appropriate certifications may also come in the form of programming languages (e.g., Java certification), networking (e.g., CCNA), application servers (e.g., WebSphere administrator certification), databases (e.g., Oracle certification), or even a certification in the context you want to work in (e.g., CPCU certification if you want to work in the Insurance industry). I’m not normally a big fan of certifications, but they are clear marketing products.
Finally, I think the best way to market yourself is to write. Start by being active in an online community. Answer questions on forums or debate ideas on mailing lists. As you learn, catalog your learning in a blog so others can benefit from your hard work. If you feel you’re really starting to understand a specific aspect of performance testing, try writing an article or paper on it (for example, email your idea to an editor at SearchSoftwareQuality.com — they’ll point you in the right direction for help if you need it). Present your idea at a conference or workshop. The more of a public face you develop by writing, the more you learn. My experience has been that people are very vocal in their feedback on what you write. You should get to learn a lot. Even if you don’t become the next Scott Barber, when a potential employer Googles your name, they’ll quickly see that you know something about performance testing and have a passion for it.
Align your project work with performance testing activities
Even if you can’t get performance testing projects at your current employer, you can still get project work that relates to performance testing. Does your team test Web services? See if you can get involved; it will get you experience with XML, various protocols and, often, specialized tools. Does your team test databases? See if you can get involved; it will get you experience with SQL and managing large datasets. Does your team write automated tests? See if you can get involved; it will get you experience programming and dealing with the problems of scheduled and distributed tests. Does your team do risk-based testing? See if you can get involved; it will get you experience modeling the risk of an application or feature and teach you how to make difficult choices about which tests to run. I could go on with more examples. Take your current opportunities and make them relevant for learning more about performance testing.
If you can’t get your own performance testing project, ask if you can work with someone else. What if you volunteer some of your time? What if you work under someone else’s supervision for a while? Work with your current manager to understand what factors are preventing them from giving you the opportunity. Perhaps they can’t give you the opportunity for a number of reasons out of their direct control. Perhaps they can, they just haven’t given it enough attention. After a conversation where you try to figure it out with them, you should have an idea of what opportunities are available at that company. Just recognize that sometimes you have to leave for different opportunities. If you do that, make sure you’re clear with your new employer as to what your expectations are