Home

Showing posts with label Epistemology. Show all posts
Showing posts with label Epistemology. Show all posts

Wednesday, April 7, 2010

A Heuristic and A Puzzle

A Heuristic is a “rule of thumb", an educated guess, an intuitive judgment or simply common sense. A heuristic is a general way of solving a problem.
- Wikipedia

There are few heuristics which I generally use while doing testing. One of them is “To solve a big problem let it divide it into smaller ones”. I learned this heuristic in one of the workshop by Pradeep Sir.

Recently when I visited the Blog of James Sir, I found a puzzle challenge. The Puzzle was:
Find the missing 13th number in this sequence:
77, 341, 923, 1547, 608, 2116, 377, 2263, 518, 1394, 3182, 1645, _____, 944, 4636 …”
I always love to play with numbers and so I thought to find the 13th number in the series.

My approach: I noted down the series in WordPad and started to apply different arithmetic operators. Nothing found. I left the exercise (Hopeless!!!!)
Next day I have started again from scratch. As I already played with them so I knew simple arithmetic operation would not help me. Then what should I do? How to find the missing number?
I was just gazing the numbers like an idiot and expecting them to tell me what the pattern hiding in the series is. At this moment, suddenly an idea came to my mind: Apply the heuristic which I learnt in the workshop.
To solve a big problem let it divide it into smaller ones
I was not sure that it will solve the problem, but there might be some logic which could help me to solve the problem. So I started to use the heuristic and I hit the Bull's Eye. After applying the heuristic, I not only got the answer but also found the two patterns in the series. The pattern in the series was awesome which is difficult to find by simply applying the arithmetic operations or any formula.
I am not solving the puzzle here so that you can find the solution of the problem with your own and share your approach of solving the problem here.

P.S.: I am posting the solution in comments section for those who want the solution of the puzzle but I wish you to try yourself before looking the solution.

Sunday, November 2, 2008

Do you practice Epistemology?

The important parts of testing don't take place in the computer or on your desk. It's in a Tester's brain.

Few days ago, I was going through a lesson in "Lessons Learned in Software Testing" by Cem Kaner, James Bach & Bret Pettichord where authors said that testing is applied epistemology. Now what the hell is this Epistemology ? - don't need to mention the term was bounced over my head. So I thought to google about the term.

The first definition which I found on wikipedia says
"Epistemology or theory of knowledge is a branch of philosophy concerned with the nature and scope of knowlege."
In simple words Epistemology is the study of how we know, what we know. It tries to answer the basic question: what distinguishes true knowledge from false knowledge ?

Now the question is what is Knowledge?

The classical definition, described but not ultimately endorsed by 'Plato' has it that in order for there to be knowledge at least three criteria be fulfilled; that in order to count as knowledge, a statement must be justified, true and believed.

If above definition is considered, it means if someone knows X, that means that he or she
  1. believes that X is true
  2. X is, in fact, true and
  3. the person who claims to know X can give a justification for thinking that X is true.
but most philosopher says that these conditions are not sufficient. They say justification can be given by appealing to intuition, reasoning or sense experience. Despite the fact that intuition is a common phenomenon, they do not consider as a form of knowledge because there seems to be little way to determine whether it does, in fact, provide knowledge as opposed simply to lucky guesses. So most philosophers consider experience as the basis of knowledge.

When there is too much debate how Epistemology helps in testing? Actually, the basic skills of epistemology are:
  • Ability to ask questions
  • Ability to observe
  • Ability to describe
  • Ability to think critically about what you know
  • Ability to recognize and manage bias
  • Ability to keep thinking despite already knowing.
  • Ability to analyze someone else's thinking.
  • Ability to form and test conjectures.
Oh My God! Did you notice to become a good tester you should also have these skills. Now I know what Cem Kaner, James Bach & Bret Pettichord wanted to say.

All good testers practice Epistemology. Do You?


References:
1. Wikipedia
2. Software Testing - A Practical Approach (Writer - Unknown to me)
3. Lessons Learned in Software Testing - Cem Kaner, James Bach & Bret Pettichord