You have been through it all. went to college, studied software testing, got to love the field etc. but at the end of it all you are not sure where and how to start on your career path to become a successful software tester.
Here are some tips I learned along the way. Hope they help you reach where you want to.
A good testing team would comprise of
The above combination provides the best results as it has a little of all the essential components. The expert is able to guide the tester on what is wrong and what is expected when he comes up with a suspected bug in the software. The automation expert makes life easier by automating old test cases. This also means that more time is being spent constructively in thinking up newer test cases. Neither of the above three are restricted to their responsibilities and can very well contribute in each others work if they have the skills. For instance, in most places, all three of them are actively involved in thinking up new and innovative test cases.
Therefore to be a complete tester you would need a little of all the above. It would be beneficial to develop the following skills:
Let us discuss each one in more detail and how you may develop them.
1. Domain expertise
This is one area where you cannot do much without work experience. Its a kind of a vicious circle. You need some domain knowledge to get a job whereas you need a job to get the required domain knowledge. Whether it is the banking sector, Insurance, healthcare or sports you need a good exposure. I'm sure beginners to any field face this problem. Of course you may read a lot and almost make up for it. In fact reading, joining discussion groups on the internet, attending seminars etc. go a long way in helping you get started.
Hence, I suggest you focus strongly on the following two skills.
2. Technical Knowledge
If you are in school, find out if you have a course in Software Testing. A formal education in software testing introduces you to several techniques that are not always taught at the workplace. Just like they expect you to know programming when you apply for a software developers job, you are expected to know certain testing techniques as a tester. Check out the course "CIS 6930: Seminar on Software Testing" taught by Professor Dr. Alan Hevner
at the University of South Florida (USF) at http://www.usf.edu
. for testing courses in other Universities besides USF: http://www.testingeducation.org/general/othertestingcourses.php
Get trained and exposed to test automation tools. They are not as easy as they seem. Test automation isnt all about 'record and playback'. There is much more to it. Most tools nowadays are very complex. That is why it warrants a dedicated person or even a team to write manage and maintain test scripts. With the size of software projects increasing by the day, test case automation has become a necessity in most organizations. Being skilled in one could make you a valuable asset to the company that hires you.
3. Testing Skills
- Learn to look for the unobvious
- Learn to be persistent. Tough bugs are sometimes hard to reproduce. Try, try, try until you get it.
- Learn to be polite. You will need this skill when reporting bugs
- Learn to think out of the box
Finally, no package is complete without the attractive wrapping. :) True, every profession needs effective people skills and a software tester needs it more than anybody else! Imagine telling a developer his brainchild, his hours of work, his code is faulty. The main point to note here is that man is a social animal and team work really works! (Read my testing blog entry on social growth) An effective team worker is not the one who manages to complete a job by himself/herself amongst uncooperative team members, but the one who manages to influence every member of the team to do their part and complete the job efficiently. A good read on this topic is entry number 8 in my list of recommended reading below.Last but not the least, always follow the software engineering code of ethics and professional practices. It is one of the keys to success!
Software testing is one of the most interesting and challenging fields. However, there aren't as many resources available on the Internet as one would find for software development. The Software Testing and Quality Assurance domain is relatively young. Hence this endeavor to collect and share as much information about testing as I can on this site. Hope the following links are useful. If you do have any new links to share, then feel free to send me an email.
Furthermore, I am also making available for download, the CSQA/CSQE/CSTE study material that I have been able to collect over time. It comprises of sample question papers and study material. It will greatly aid those planning for certification in the near future.
Test Tools Reference
Quality and Testing Sites
Software Test & Performance magazine: http://www.stpmag.com
(PDF version of magazine available for free!)
Software Testing User Groups and Communities
Here is a list of professional user groups that you can join to further your interests in QA and testing.
Testing blogs and Other lnteresting Reads :)
- Cem Kaner et al's, "Testing Computer Software"
- Dorothy Graham, "Software Test Automation"
- Edward Kit, "Software Testing in the Real World"
- Elfriede Dustin, "Automated Software Testing"
- Hung Quoc Nguyen, "Testing Applications on the Web"
- Steve Splaine & Stefan Jaskiel, "The Web Testing Handbook"
- Rex Black, "Managing the Testing Process" (My rating * * * * * )
- Gerald M. Weinberg, "Secrets of Consulting: A Guide to Giving and Getting Advice Successfully" (Not about testing, but a must read by every tester! Helps communicating effectively with developers. managers and the rest of your team.)
Useful Articles, Presentations and Tutorials