I am a beginner software tester. I want to learn HP's Quick Test Professional (QTP) better and make my own test scripts, but I'm unable to find good material to teach me from scratch. Can you please help?
Welcome to testing. When I started in testing, I also started in automation. Test automation was my sole focus for years, and it's still a passion of mine. I've worked with several open source and commercial automated testing tools, built my own automation frameworks and used the frameworks of others, and I've built and managed automated testing teams. Without knowing much else about your background, here's where I'd recommend you start.
Learn about testing
The first and most important thing you need to learn is testing. If you don't what a good test looks like, you certainly can't write a good automated test. There are a lot of free resources online that can help you get started. The best place to start for new people is TestingEducation.org. I also recommend picking up Software Test and Performance Magazine, which is free so you have no excuse not to. And finally, some good books: Lessons Learned in Software Testing, any of the books from the How to Break Software series and Weinberg' s Quality Software Management series. I provided more information on software quality and testing resources in another post.
Learn about programming
The second most important thing you need to learn, if you really want well-designed, well-running and easy-to-maintain tests is how to program. Writing code's fun. Writing test code is a lot of fun. (Something about writing code to break code just makes me happy.) However, programming well is difficult. It's not just about record and playback, regardless of the tool. That is, not if you're doing testing of any complexity.
Just to be clear, learning how to program does not mean you need to be as good as the programmer whose code you're testing. But it does mean you should feel comfortable writing simple programs, unit tests, etc. If you're new to a language, but already know others, I like the Sams Teach Yourself in 21 Days series. They cover most languages, including Visual Basic, and also cover the 101s of programming concepts relevant to that language. If you're completely new to programming, I like Learn to Program by Chris Pine (there's a free version online, and a book from Pragmatic Press).
Learn some automation history
One of the biggest tragedies I see in people new to automation is that they make the same mistakes that others made years ago. (I did when I was new.) To prevent this, you'll need to learn some test automation history. I have several books on the topic of test automation, and honestly, I'm not a huge fan of any of them. Most of them regurgitate the same material you can get for free online. The best place to start is with the following papers. Each of these contains links to other information where you can continue your research.
The first place to start is Bret Pettichord's Seven Steps to Test Automation Success. This paper is well-written and it outlines what test automation done well looks like. Next, go the other direction and read James Bach's Test Automation Snake Oil. This paper provides a dose of reality to the common automation marketing material. Next, move on to Cem Kaner's Improving the Maintainability of Automated Test Suites and Architectures of Test Automation. Each of these provides a deep look at the classic issues faced in test automation. Many tool vendors have worked to solve these problems, with varying degrees of success. But you need to know what they are to plan your automation effectively.
Learn about QTP
Finally, the last thing you'll want to learn is the tool you're using. It's important that you understand the tools you're using, but not nearly as important as knowing when to apply it or under what conditions. Everything else in this response leads up to this. If you know how to test and how to write good code, and you know the historical issues in test automation, then you're ready to dig into the tool. It provides a context for really understanding what the features do, what they don't, and how to apply them. To that end, here are some resources for getting started in HP Mercury Quick Test Professional.
First, read the manual. I know that sounds silly, and there aren't really manuals any longer (just online help), but still -- read it. It's dry, boring and information-packed! You wont remember everything you read, not even half, but you'll get exposure to everything. And you don't really have to read it all -- skim liberally. You need to know this stuff.
Next, I recommend setting up some RSS feeds. Content every couple of days is a good pace for learning tips and tricks. And if you have time, you can always go back and look at existing posts. I recommend the following sites:
They aren't the best-formatted blogs, and a few may have a lot of ads, but they have good content.
Finally, you need to practice. If you really want to learn, use the tool. Try simple scripts on different types of applications. Try different features you've read about. Write some tricky bit of code to do something that's not intuitive. Or try building out three different types of frameworks to solve the same (small) problem. Practice is the only way I've found to get an idea to really stick. Writing code, working in the tool, and working with others is the single best way to get better at using QTP (or any tool).
Dig Deeper on Software Testing Tools and Frameworks
Related Q&A from Mike Kelly
Every software tool is individually designed to meet various needs and requirements of projects, teams and project managers. Learn what tools experts... Continue Reading
There are multiple ways performance testing can be handled on an Agile team. An expert describes the benefits of various approaches. Continue Reading
Creating user acceptance tests out of basic software requirements documents can be a daunting task. Expert Mike Kelly points out logical approaches ... Continue Reading
Have a question for an expert?
Please add a title for your question
Get answers from a TechTarget expert on whatever's puzzling you.