STAQS Software Testing and Quality Services

Ubi dubium, ibi opportunitas.

Home     Blog

As of January 2011 I am no longer maintaining this page.
I decided to leave the page here since some of you have expressed interest in the content.
Please contact me via my web site link above. Thank you.

"Judge a man by his questions rather than by his answers."
- Voltaire

Software Testing - A Primer

Planes, trains, and automobiles.  Telephones, microwave ovens, and television sets.  Medical monitoring devices, power stations, and banks.  Software is just about everywhere nowadays in one form or another.

There are many highly-intelligent men and women who create the software that drive all these wonderful, magical machines.  The act of translating ideas into reality is kind of like solving a complicated puzzle.  And to make things more difficult, each (software development project) puzzle changes depending on a lot of things.  As such, there are no Rules in this "puzzle" of software development (except maybe to remember to play nicely with your coworkers) so much as Guidelines.

There are many illustrative analogies for describing software development projects.  Here is another one:  developing software is kind of like building a house.. at night.  Until you shine a light on the work completed, you don't really know how well it was built or meets the customer's expectations.  Testers bring an assortment of lights and ways of looking at things to help everyone see as much as possible in the time available.

Almost everyone plays a "testing" role at one point or another when they are involved in creating software.  Some do it full-time.  There is both an Art and a Science to Testing Software.  Unfortunately, until recently, there has been a great lack in formal education and training for developing good testing skills.  The software testing skills-spectrum is very broad though, so it will likely take some time before this all becomes "academic" and a natural part of the way we look at things.

Here is some information to get you started:

 Quick Section Jump: The People, The Things you should know.

The People You Should Know

In addition to understanding the playing field, it helps to know who the players are.  Here are some of the people I know and respect in the Software Testing profession.  If you happen to see one of these names in an email, next to an article, or on a book, read it!  Better yet - attend one of their workshops, courses, or go to the same conferences that they go to.  It's a good bet that you will probably learn something useful.  I have.

The People Their Web Sites Their Web Logs
James Bach
Scott Barber
Michael Bolton
Ross Collard None that I know of, but there is a write up of Ross in the PerfTestPlus web site (in the Links section)
Danny Faught
Elisabeth Hendrickson
Matt Heusser
Cem Kaner
Mike Kelly (Indianapolis)
Jonathan Kohl
Brian Marick
Bret Pettichord
Johanna Rothman
Gerald (Jerry) M. Weinberg
Adam White

There are many more terrific people in this industry.  Start by getting to know the ones doing work and research in an area of your interest.  You may find some of their articles on, and some interviews on and DDJ Testing Blogs.

The Things You Should Know

What makes a great tester?  A great tester is always learning, always improving themselves.  The following is a list of some of the key areas for development for a Software Tester.  (Many of these areas may also generally improve the quality of your life outside of work too!)

      Think like a
      Integrity and Discipline  
    Think like a
  Problem-Solving and
Testing Theory,
Skills &
  People Skills
Technical (Report)
Technical Skills
Professional Development
(Click one of the links to jump to the section below)

BTW, I'm always adding to and clarifying this list, so please send me any suggestions you may have.

1. Think like a Hacker

2. Think like a Scientist

3. Problem-Solving, Analysis, Critical & Lateral Thinking

4. Technical (Report) Writing

5. People (a.k.a. the "Soft") skills

Making Software is first and foremost a people-activity.  Approach it from a strictly technical perspective and you will go down in flames every time!  It's not about brown-nosing and politics.. it's about being personable, respectful, and professional.  You will always be more successful as part of a team than as an individual.

6. Testing Theory, Skills and Knowledge

This is, of course, one of the most important areas to focus your professional development on as a Software Tester.  Without a doubt, you will need to understand things like: Risk Assessment; how to develop a Test Strategy; what are the various Test Techniques and when to apply them; and the role and strengths of the various types of testing performed throughout the development of software.  (The latter two in particular will require experience, not just knowledge.)

7. Additional Technical skills

8. Quality-oriented

9. Integrity and Discipline

10. Communication

11. Professional Development


Contact me at: paul [at] staqs [dot] c o m