Skills for entry-level software testers

Skills for entry-level software testers

What technologies would you recommend an entry-level non-programmer tester to learn?

    Requires Free Membership to View

    When you register, you'll receive targeted emails designed to keep you informed of the most relevant information on Agile development, application security, testing & QA, software requirements, and more.

    Hannah Smalltree, Editorial Director

    By submitting your registration information to SearchSoftwareQuality.com you agree to receive email communications from TechTarget and TechTarget partners. We encourage you to read our Privacy Policy which contains important disclosures about how we collect and use your registration and other information. If you reside outside of the United States, by submitting this registration information you consent to having your personal data transferred to and processed in the United States. Your use of SearchSoftwareQuality.com is governed by our Terms of Use. You may contact us at webmaster@TechTarget.com.

The need for technical testers continues to grow every year. Applications and environments get more and more complex, and more development teams than ever are embracing Agile philosophies that push testing ever earlier in the development stream. The tester who understands how systems work, who can use simple test harnesses in the developers native IDE, who can pair with developers to improve unit tests, and who can assist in the process of "root causing" bugs is no longer an anomaly that companies don't know how to utilize; he or she is a treasure who is explicitly sought out.

Specific technologies are less important than technology concepts. For example, writing database queries is commonly useful for a tester to know how to do. Whether you learn in Oracle, SQL Server, DB2 or Sybase is mostly irrelevant if you are comfortable applying what you've learned conceptually by picking up a manual. The same holds true for programming. Whether you know Java or C# doesn't really matter. What matters is that you understand how functions and procedures work, you understand what object orientation and data abstraction are, and (with the help of a syntax guide) you can write basic unit tests, parse strings, output data to a file, create loops and apply conditional logic. Beyond that, if you are comfortable reading code and can write pseudo-code for things you don't know how to program, you will be in good shape most of the time.

Additional technology concepts that I have found valuable in my career include the following:

  • Database design and data modeling
  • Networks and communication protocols
  • Enough familiarity with hardware to know what you may want to test differently on a RAID 5 server vs. a RAID 0 server, for example.
  • Be a master of spreadsheets and data presentation.
Some technical skills, though not technology skills, that make me a better tester:

  • Statistics
  • Experimental design
  • Human psychology (specifically in terms of what people expect and how they respond to unexpected conditions in front of a computer)
  • Human factors (specifically in terms of technology usability)
Overall, I recommend becoming a "CSI" of systems. The more different things you know to a reasonable degree, the more experience you have to draw on when you are faced with testing a system or technology that is entirely new to you.

This was first published in February 2007