Software testing is not software quality assurance!

At least twice a month I have an argument with somebody about differences between software testing and software quality assurance. So I decided to write up a permanent piece about this. What bothers me is that lots of people use these two terms interchangeably without understanding the major differences between them. Even worse, I’ve been noticing myself starting using these terms interchangeably ;-(

But that’s not the point. When it comes to software testing there are usually number of names which come immediately to everyone’s mind: Boris BeizerCem Kaner, Glenford J. Myers, James A.Whittaker etc. All these people are very well known authorities, but for me personally Myers’s "The Art of Software Testing" is the book. Possibly because of the name it reminds me Knuth's work about programming ;-) So, how Myers defines testing? Very simply ("The Art of Software Testing", Chapter 2 - "The Psychology and Economics of Program Testing", page 5):

Testing is the process of executing a program with the intent of finding errors.

That does it for me. For alternative definitions you can check all your favorite software engineering manuals and this FAQ. The best book discussing the definitions of testing I’ve found so far is Edward Kit’s "Software Testing in the Real World: Improving the Process". It provides eight different historical definitions of testing and also IEEE/ANSI definitions. Chapter 4, if anybody is interested.

This brings us back to a second part of this riddle - what is software quality assurance? I borrowed this from FAQ because I’m too lazy to type in paragraphs of text from some thick software engineering manual:

Software quality assurance involves the entire software development process - monitoring and improving the process, making sure that any agreed-upon standards and procedures are followed, and ensuring that problems are found and dealt with.

There are lots of things in software world which are close, but are not the same thing if you dig deeper. For example: { JavaScript and JScript, Linux and Unix, HTML and XHTML }. My friends tell me that I’m wasting my time and worrying too much about little things like this instead of trying to enjoy life and reduce my stress level ;-) Probably they’re right, but it takes while to change one’s personality.

P. S. Some cool provoking discussions from Wiki: QualityAssuranceIsNotQualityControl and QualityAssuranceIsNotResponsibleForQuality.

4 Comments

  • Excellent post - I have a huge pet peeve about people mixing the "qa" and "test" terms interchangeably. I also think your references are spot on with what I think define what testing is.



    One question for you: in your current position, is your role test, qa, or a combination of the two?

  • Thanks for the response. I mainly asked because your post didn't state which term you favored, and I didn't want to adamantly oppose nor agree with you without that information.

    I work with a lot of test teams that are self proclaimes "qa" teams, and no amount of logical discussion seems to sway them. We're on exactly the same page, and it's nice for me to know that I'm not alone in thoughts on this issue.



    btw - I'm familiar with the sdet role - in fact, I'm one of the people who helped Zoe put that article together.



    thanks again for the post and comments - I look forward to reading more.

  • yes...

    Software testing is not quality.But it leads for quality..

    with out testing there is no quality

  • i am agree with u.

    testing means to find some error in functionality.

    but software testing is to find error in logic which programmer have use.

Comments have been disabled for this content.