Tuesday, June 4, 2013

The Psychology of Testing (Facebook)

Goal of software testing is not to prove that system works as per the requirements. Instead it's exactly opposite. Here is excerpts from 'the art of software testing' book that explains this point.

The Psychology of Testing 

One of the primary causes of poor program testing is the fact that most programmers begin with a false definition of the term. They might say:

• “Testing is the process of demonstrating that errors are not present.”


• “The purpose of testing is to show that a program performs its intended functions correctly.”


• “Testing is the process of establishing confidence that a program does what it is supposed to do.”

These definitions are upside-down.

When you test a program, you want to add some value to it. Adding value through testing means raising the quality or reliability of the program.

Raising the reliability of the program means finding and removing errors.

Therefore, don’t test a program to show that it works; rather, you should start with the assumption that the program contains errors (a valid assumption for almost any program) and then test the program to find as many of the errors as possible.

Thus, a more appropriate definition is this:

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

Although this may sound like a game of subtle semantics, it’s really an important distinction. Understanding the true definition of software testing can make a profound difference in the success of your efforts.

Human beings tend to be highly goal-oriented, and establishing the proper goal has an important psychological effect. If our goal is to demonstrate that a program has no errors, then we will subconsciously be steered toward this goal; that is, we tend to select test data that have a low probability of causing the program to fail. On the other hand, if our goal is to demonstrate that a program has errors, our test data will have a higher probability of finding errors. The latter approach will add more value to the program than the former.


  1. Thanks for providing such a great information about phesyyology of facebook. It will help to many offshore software testing Companies.

  2. Software testing is a method of determine the functionality and performance of a software programs. This testing is classified in to static and dynamic testing. We at FITA, offer professional Software Testing Courses in Chennai at affordable price.

  3. Excellent article!!! LoadRunner is popular automation testing tool used for validating a software application/system under load. It delivers most precise information about the performance, functionality and behavior of the software product. Loadrunner Training

  4. I have read your blog and i got a very useful and knowledgeable information from your blog.its really a very nice article. I did Loadrunner Course in Chennai. This is really useful for me. Suppose if anyone interested to learn Manual Testing Course in Chennai reach FITA academy located at Chennai Velachery.

  5. Your posts is really helpful for me.Thanks for your wonderful post. I am very happy to read your post.
    CCNA training in chennai | CCNA training chennai | CCNA course in chennai | CCNA course chennai

  6. This site provides good information about mobile app testing. If anyone wants to know the basics of mobile app testing then this is the right blog for them. mobile application testing training in Chennai | mobile application testing training


For Queries send email to openstc[at]gmail[dot]com