Monday, October 25, 2010

Psychology in Software Testing

You are my son!
Yesterday, I was watching a movie - Wednesday in which they showed how a person developed attachment for his car and treated it like his son. He literally called it his son and cried when it broke.
The same applies to softwares.
After all, we are all human beings influenced by emotions.
A farmer develops some attachment to his field, a horse-owner becomes proud of his horse. Similarly, Software developers develop attachment for their program after they have worked on it for a considerable time. This is something I will call as

Psychology in Software Testing

Suppose you have worked on a code for months together  and then you have to test it. Due to psychological factors, you will be more inclined to prove your software is working right than wrong.
This is a proven fact.
Due to this reason, many software companies have a completely different unit for software testing.


Do good and get evil!


The biblical principle of doing good and getting good does not apply to the software testing.

Software testing is screws where you have to break someone's code. Of course, this is the traditional view only. More recently, there are other types of tests like stress test which does not necessarily involve breaking someone's code.

In a dilemma


Suppose a situation where you are a software tester and you have to test the program of a colleague friend.
Now you are in a dilemma, if you break the code, the developer may be screwed for not writing good enough code . On the other hand, if you do not break the code, you might be screwed for not writing good enough test cases.

Creatively Destructive


Being good testers might be innate to some creatures. It needs "creative destructiveness" to be a good tester.  Some people may be innately good at it while other not.
There is some support to this argument. For example, Meyers concluded that :

"The psychology of the persons carrying out the testing will have an impact on the testing process [Meyer 1979]."

Some Characteristics of  a good test:

Like good people have some good characteristics, so do good tests.

Here are some characteristics of a good test:


(from page 432, Software Engineering : A Practitioner's Approach, Sixth Edition")


1. A good test has a high probability of finding error.
2. A good test is not redundant.

There is no point in doing a test that has same purpose as another test

3. A test that has the highest likelihood of uncovering a whole class of errors should be used.

4. Make a good test, neither too complex nor too simple

A test which is too complex can "mask" errors.

It is important to note that : A good test shows the presence of bugs but does not guarantee their absence.


Like test cases, there are some characterstics you can develop to become a "good tester" :



Keen Observation
Detective Skills
Destructive Creativity
Understanding Product as integration of its parts
Customer Oriented Perspective
Cynical but Affable Attitude
Organized, Flexible & Patience at job
Objective & Neutral attitude

The above mentioned characteristics can prove immensely helpful apart from technical skills.

References:


1. Software Engineering : A Practitioner's approach , Sixth Edition
2. http://www.codeproject.com/KB/bugs/Pratap.aspx
3. http://www.viarob.com/my/page/The_Psychology_of_Software_Testing




7 comments:

  1. As disussed above software testing is one of the important field in detecting the bugs. In best software training institute in Chennai we are enabled to identify the errors and can match the actual results with that of expected results.

    ReplyDelete
  2. I recently came across your blog and have been reading along. I thought I would leave my first comment.
    python training Course in chennai
    python training in Bangalore
    Python training institute in bangalore

    ReplyDelete
  3. This comment has been removed by the author.

    ReplyDelete
  4. Giving informative blogs about Technical study is very useful for feature.Thanks for sharing the post.Keep doing this good work.

    python training in chennai | python training in annanagar | python training in omr | python training in porur | python training in tambaram | python training in velachery

    ReplyDelete
  5. Inspiring writings and I greatly admired what you have to say , I hope you continue to provide new ideas for us all and greetings success always for you..keep it up!!

    Android Training in Chennai

    Android Online Training in Chennai

    Android Training in Bangalore

    Android Training in Hyderabad

    Android Training in Coimbatore

    Android Training

    Android Online Training

    ReplyDelete