Sunday, October 25, 2009

Testing The Magician's Fingers


A student from primary school where I studied came up and asked "Will you see the magic?" I like the tricks and uncovering those tricks of magic, hence requested her to illustrate the magic. She had brought box of color pencils with her.

I was asked to pick few color pencils while she turned such that I could see her back. She asked me to place those picked color pencils slowly in her left hand.

Later I was said to note down the color pencils which I have picked. And, I made note of those color pencils which appeared to me as red, green, black, blue, yellow and orange colors. After few seconds, I was asked to remove one color pencil from her left hand and place it in her right hand. It appeared as she was making sure that a color pencil was in her right hand. Later she moved it back to her left hand, where other color pencils were.

She instructed me to remember the color pencil which I have picked and placed in her right hand. And she asked me to move all the pencils in her left hand to box and close it. I had picked a color pencil which appeared to me as yellow-in-color and placed it in her right hand. Turning around she took the closed box in her hand and shuffled it with smile and confident. These actions of her made me more curious to observe her movements much more consciously.

She began to pick the color pencil by opening the box. She picked the pencil which appeared as pink-in-color and said not this. Later she picked the pencil that looked like brown-in-color and said not this. I kept looking at her eyes and body movements. Later she picked the pencil which looked as yellow-in-color and said this is your pencil.

I was surprised and sensed the trick here. And I believed my observations can be different if I closely investigate it. I asked her to repeat what she done. She was in full of joy and readily did illustrate her magic again.

I started my testing by stating test mission, "To uncover the illusion of little girl's magic trick."

Below are the questions that I gave for myself:
  • Do I know what should be tested, by modeling the magic trick that I witnessed just now?
  • What are the oracles and heuristics that can help me to know this magic trick?
  • What approaches and techniques should I be using in current and unexpected contexts to test, for revealing this magic trick?
  • How to configure, operate and observe the tests that I will be making?
  • How can I infer and perceive the test results?
  • How can I summarize my testing activities on revealing the illusion of magic trick?

While the little girl was illustrating the magic trick I was observing the possible suspicious (which acted as heuristics) moves which I thought of. Moving further in my tests, kept talking to the girl and varied my tests.

The information that I made note were as below while I varied my tests:
  • Was she able to see which color pencil I picked? She was not able to see it while I picked one color pencil from box.
  • What was the length and width of color pencil she was using to illustrate the magic? It was the pencil of length and width which was fitting in her palm.
  • What kind of traces does the color pencils leave behind when colored using it or touching the tip of its lead? The trace of color was bright enough to identify by me in this context.
  • How quick the traces of color can be erasable either on palms or on paper in this context?
  • Is this color trace visible to other person, if the little girl is away from the observer?
  • Am I biased here with anything here? Is it helping me? I was biased with information that color pencil will not leave any traces on palms on holding it.
  • Does the lead and body of the color pencil appear to be of same color?
  • What were the sequences of the pencil positions in the left hand of the girl?
  • What if I place pencil in alternate pattern such that head of one color pencil will see the lead of the other color pencil in left hand?
  • What if I change the position of color pencil head in the right hand of girl? Will she be still able to identify the color pencil I picked?
  • For what number of times the little girl can consistently identify the color pencil that I pick? And the girl should not clean her palms or hands on each time this trick is illustrated.
  • What if I place the same brand or manufacturers color pencil with broken lead, so that it cannot color unless it is sharpened to see the lead?
  • What if I place other brand or manufacturers color pencils in her hand? Will she be able to identify the one I pick?
  • What if I place pen with closed cap or colored objects in her hand that fits her palms? Will she be able to identify the one I pick?
  • Was there any embosses or any kinds of surface marks on color pencil, which could tell the color of pencil on touching it?
  • Did each color pencil have particular odor? If yes, how strong was that odor to identify uniquely? And this odor help her to identify the color pencil I picked?
  • What if I place the black lead pencil of same size to the color pencil in her hand? Will she be able to do the same gimmick as with color pencil she had bought?
  • What if I had smeared or rubbed the color pencil lead with other color pencil such that it gives two colors or a new color combination of the two? Will she have any difficulty now in identifying the color pencil I picked?
  • Does the color pencil's body will leave any color strains on the palm or fingers while it is held in hand? If yes, for what time period should a color pencil to be held in hand? For how long the color stains or traces from this will remain there?
  • Can I break the lead of a color pencil and can place the lead of other color pencil to it? How she can illustrate the same magic now?
  • What if I place color pencil, which appeared as its lead color and body color are not the same? Will she be able to pick the right color pencil now?
  • Were the color pencils are used earlier to color or yet to be used for coloring? Or it is used only for such trick purpose?
  • Did the box of color pencils had anything in it to make this trick happen?
  • What if I smear the oil or wax or water over her palms and fingers, before placing the color pencils in her hands? Will she be able to show her trick?
  • Will she be able to do the same trick using single hand and one finger, instead of both hands and its fingers?
  • How long and good the nails of her hands are? Did she make use of her nails too in this trick? Was nail polished with nail polish? If yes what was the color of it?
  • Had she smeared anything on her nails, palms and hands?
  • What all she is using to do this trick?
  • How quick the pencil will leave its strain if it is kept in hands?
  • What was the size of the lead of color pencil in the box?
  • What if I place the pencils all of same color in the box instead of those appears to be of different colors?
  • What if I closed her eyes by cloth so that she cannot see her hands or palms or fingers? And now I request her to pick the pencil. Will she able to do the trick now?
  • Was there any person who I did not see, helping her to say which color pencil I picked?
  • Was there any object around her that helped to see her which color pencil I picked? Did the direction she turned and stood have any influence or not?
  • Is she able to do this trick in any place and any time, apart from the place where she stood now?
  • What if I do not place the color pencil in her hand, instead keep an object that appears and feels like a color pencil but not a pencil? Will she be able to identify it or will she proceed further to say to put all the pencils back to box and be shocked to see no pencils in box?
  • How long did she keep the color pencil in her right hand? What time did she take each time to repeat when I asked her to illustrate, when I chose different color pencils?
These were few questions that I got during that context. Asked her to perform the trick for few times and showed that it can be different if tested. And her little thumb finger nail of right hand had color of pencil I picked, through which she identified. She left saying "cheating, you saw the magic on my nail."

Magic is also an art as testing is. Magic and testing can make the illusions and remove the illusions too. Both require skills, practices, explorations and failures to find alternative approaches that fit into the contexts.


Testing will show how our biases, anticipated, inferences, perceptions, investigations and the information we have will not be the same for any time.



Friday, September 25, 2009

Bug, Flaw and Defect are all possible problems.


One of my team members asked me "What is the difference between Bug, Flaw, Error and Defect in software?" With my very little learning, I understand all these words talks about potential problems or concerns with software application I am using.


Words are contextual and so its meanings are:

  • What does a 'Bug' mean for an Entomologist?
  • What does a 'Bug' mean for a scaring man or woman looking at it?
  • What does a 'Bug' mean for an organism that feeds on bug(s)?
  • What does a 'Bug' mean for a person who treats for poisonous bite of insects?
  • What does a 'Defect' mean for a Physician?
  • What does a 'Defect' mean for a Lawyer?
  • What does a 'Defect' mean for a Metallurgist?
  • What does a 'Defect' mean for an Acoustician?
  • What does a 'Defect' mean for an Architect or Civil Engineer who made the plan of a bridge or a dam or a skyscraper and constructing it?
  • What does a 'Defect' mean for an Aeronautical Engineer designing and building the aircraft?
  • What does a 'Defect' mean for an Astronaut?
  • What does a 'Defect' mean for a pilot flying an aeroplane?
  • What does a 'Flaw' mean to a Goldsmith?
  • What does an 'Error' mean to a Tailor?
  • What does an 'Error' mean to a referee in a game?
  • What does an 'Error' mean when I park my vehicle in no parking area?
  • What do a 'Bug', 'Defect', 'Flaw' and 'Error' mean when it is helping me to learn and know something new?
The 'Bug' for an entomologist can be source of knowledge. Bug can be a threat for scaring man or woman. Bug can be one of the survival source for an organism feeding on it. And for person who treats for bite of poisonous bugs, bugs can be source of bread and butter for her or him.

To a doctor who treats human, defect can be abnormality in human body as a defect in tooth for a dentist. To a goldsmith defect can be what she or he does not want the ornament to be or to have. An error to a tailor can be the incorrect measurement or cutting of garment.

And as a software user what can the bug, defect, error and flaw are?
What should a user say for problem(s) witnessed before using the software application? Should it be called a bug, a defect, a flaw or an error?

The problem known by different words like bug, defect, flaw and error etc., exist because me exist as a user. The actions and interactions of me as a user identifies the problems. The problems or concerns are to me for using the software application. I perceive them as problems when a particular *sequence of usage of application did not bring desired or expected results.

*If sequence of operations are varied, the same problem or concern may appear or not or something interesting may turn up.


If I have no problem using the application may be then it has no problem just to me. Or may be the application is being used only by me. Or might the application is not used to an extent so that it can exhibit different behaviors for same operations. Or I am unable to differentiate between the problems and what I am understanding by using the application.

A problem is a probe that identifies the variances from my (the user) expectations. What happens to me when it varies from my expectations? How I react to these unexpected contexts? Hope this tells the importance of the problems faced by me as a user. Interesting is, the problems are also a heuristic.



Friday, September 11, 2009

I ship the Information!

I was following a discussion thread in Software Testing Club. When I read the title of the discussion "No issues in application" with description "What do you do when you are not finding any issues in the application you are testing?" I did not know what author had in his thought while he wrote the description. Was he witnessing, what he had written in title and description or it was a thought asking what should be done when (it is or it will be or it was) witnessed? This question remained along with many other views of me for the very same title and description.

Following the discussion, I understood that the author was witnessing what he had written in the title and description of the discussion thread. The reason for witnessing this might be the illusion, biased and the other things too if it exists and one discovers it. Focus and defocus might help here to discover, generate, invent and explore the new ideas -- the heuristics.

The few words, phrases and sentences from the discussion helped me to unlearn and learn -- how can I infer and perceive the information:

/* These are the few words taken as it is from the discussion thread. */
  • wrong tests.
  • if the main functional user test cases pass, then the quality of the sw may be good enough (depending on how critical the sw be in the real world).
  • Why are there no defects in this application?
  • Pesticide Paradox.
  • there are always defects, they must be somewhere.
  • Perhap I could see where other defects have been reported in the past and test around those areas.
  • Why are the test cases all passing?
  • Have I tried end-to-end or process driven testing?
  • Ship the application.
  • I typically step back and look at the tests I've run and try to identify patterns in what I've been doing. With my next set of tests, I attempt to violate those patterns.
  • Julian Harty's techniques around six thinking hats for software testers.
  • trying different tours of the application to generate new test ideas.
  • better develop my mental model of the application.
  • pairing with others on the project team.
  • are you asleep and dreaming this.
  • It really meant that the test cases you are running - either they are not updated ones or just clicking on "PASS" on any behavior.
  • This scenario will not come.......if it comes well.....time for all the testers to pack their bags. :)
  • Take a step back and think just what you are supposed to be doing and what you are actually doing.
  • If you're not finding any defects then there's something fundamentally wrong with your approach.
  • if you're not finding problems then you're doing something wrong.
  • In all my 20 years of testing it have never happened!
  • If am not finding any issues in application as per System Requirements / use cases. i start doing negative testing.
  • try to brake Application by any means. if it still survive then the application is ready to be Delivered.. :)
  • Application has gone through all the negative testing and has survived, however I still have couple to days time to test.
  • Hence I was trying to find if there are any issues.
/* End of selected words from the discussion thread. */


Looks like the application that was said, might have been shipped which made to close the discussion thread.

When I began to learn and unlearn my understandings with the above words, phrases and sentences which were written in the discussion thread, the skeptical notions I am inferring and perceiving are as below:

  • Test(s) give the information when they are executed. I don't know and I am investigating yet how to classify, call and negotiate them as wrong tests and correct tests. Words are always ambiguous. In this context, both wrong test(s) and right test(s) provide the information.
  • Testing provides the information. If my test cases fail, still I am getting the information which might be of value to the people who matter. If quality is value to the people, then isn't the failed information is useful intellectual cognition? Why test cases marked as passed the test(s) alone get the importance?
I understand 'Quality' is not in the software which is used, but it is the emotion of the user when the model is used. I remember the words of Gerald M. Weinberg "Quality is value to some person". If I wear a silk (which is said to be of high quality by fabric person who weaved or manufactured that silk garment) shirt of bigger size (than I need) that hides my trouser when that shirt is not tuck in or which makes me not to wear trouser or I am unable to tuck in the shirt due to its size -- am I getting quality on wearing it? Am I satisfied, enjoying and loving to wear that silk shirt?

It depends from a user to user along with other factors which can have the influences for wearing a silk shirt or not. And if I don't like to have that shirt, where is the quality for me in that shirt which might have passed the test, to say the silk used in fabric is of high quality? But, if I wish not to spend money on buying a trouser and this bigger size silk shirt covers my shoulder to ankle and I am comfort with it and happy using it, might be the value for the money what I have given is with me.
  • When idea(s) or heuristic(s) does not bring the information that tells it fails to meet the claims, it is not a failure idea. It is the information that shows how the model does what is supposed to do, in yet another way too. If the idea(s) or heuristic(s) does discover the information, how the model fails yet in another way of using it -- it is not a success. It reveals another way how the model does not do what it is supposed to. One can get such plenty of information which makes him or her to infer the model (appear as) to work or not work. So failure and success cannot be defined with the information given by the Tester's Testing. And, may be the model cannot be shipped by decision makers, with tester(s) information alone.
  • I am not against test case writing. The first law of documentation is to document it (from Rapid Software Testing). If I am just executing the steps in test cases, it is more of like verification and validation of test cases and not the testing of model under test and testing of the being executed test cases. Writing the test cases is also an art as testing is, where both require skills, practices, failures and the explorations.
  • If System Requirements are written in a document, then is that document itself is the requirement(s)? Requirement document(s) has (ambiguous) words which describe the requirement(s); and the document(s) are not the requirement(s). Man makes mistakes while writing, so computer can also do the same.
Computer or document model does not tell the requirement(s) or whether what I am writing is correct or incorrect or this is what was expected by the user or user does not want this. In simple, document or document software model does not ask questions or answers for what is in my thoughts about requirement(s). It just processes whatever I give, if it is able to take what I give and I perceive this as computer as understood my question and given the solution; where all these are nothing but an illusion. It appears to me as document software model has done what it was desired to do.

If sensing a impulsive feel like model under test is matching to requirement, then it is not too late to understand, testing is not matching or not just matching alone (as matching may involve few tests). 'Matching' reminds me the writings of Michael Bolton on Checking, Testing and Problem. One may feel the information from matching are sufficient but does not feel information from testing are enough, since it always reveals or shows new things apart from those seemed as matched and did not match.
  • Negative Testing and Positive Testing might be the textbook words. Whatever it might be, the information from so said 'Negative Testing' or 'Positive Testing' adds its own values. If inferred as value given from so said 'Negative Testing' is high than so said 'Positive Testing', then one day it might happen such that positive(s) can be negative(s) and negative(s) can be positive(s). I remember the words of James Bach, "Testing is infinite process of comparing the invisible to the ambiguous so as to avoid the unthinkable happening to the anonymous."
  • The information obtained from testing is more than the ambiguous strings 'PASS' or 'FAIL' or 'NOT EXECUTED'.
  • Tester cannot take the decision or tell to ship the model under test, but might make the influence on the shipping decision by decision makers with the information given from her or his testing. I don't know yet, how the moment would be if the decision maker is the only tester.
  • Challenging the assumptions might challenge statements, "No issues in the application" and "What do you do when you are not finding any issues in the application you are testing?"
  • Saying "I don't see any problem here" is a problem which might produce 'n' number of problems. Still seeing anything as 'no problem here', then questioning 'when it can be a problem?' or 'how it can turn to be a problem?' might help.

I owe all the credits to the people who participated in the said discussion thread.


A Tester does not ship the model he or she is (or will be) testing. A Tester ships the information from her or his testing.




Tuesday, August 11, 2009

What More Can I See Here in this dialog?


Being inspired by the blog "Is There A Problem Here?" I am collecting the information that questions me. My credits to person and people who came with the idea and also to the contributing members and team members of blog 'Is There A Problem Here?'


I ask myself "What More Can I See Here?" always while learning any model and system. It helps me in learning by identifying the information and my mistakes. The below MS Power Point Show has the dialogs that can have possibly confusing information when displayed.

The dialog and its message(s) might be helpful to an user, if the displayed error or warning or an informative or pop up dialog has:
  • message which can be understandable by the user,
  • relevant application and machine details in that context,
  • an option that can help to collect the needful data or logs from the model to know the cause of the witnessed behavior, and
  • an option to intimate the support crew along with contact information of the person who can help the user.

Ben Simo's FAILURE heuristic can be found here and here too.



Tuesday, July 21, 2009

Where is the "Requirement"? Vs What More "Can I See Here?"


The word "Requirement" is used by the laymen in his native language or with synonym words -- necessity, essential etc., which gives same meaning of requirement. Not just humans but also other vertebrates and non-vertebrates exhibit their requirement needs. The activities of vertebrates and non-vertebrates may show its needs as change in their requirements or as fresh requirements.

For example, when a child was born, parents or people would have covered the child with cloths. Do same cloths fit a child after couple of years? If yes, for how long those same cloths fit a child? Now a child exhibits requirement in terms of change -- in size of cloths, in this context. Similarly a banyan plant when planted, what space did it need? After 100 years does same space is sufficient for a planted banyan tree? Also the objects which looks like or so called as non-living being, (appears to) change its requirement as it evolves with the ecosystem in which it is understood to be present.

Do software applications too change its requirements as it evolves? While writing a software application, does desired deliverable (which is or which was) said by a user or written by a user or understood by an author who interacted with the user(s), is what the user(s) needs or needed? If yes, then those are the only deliverable or requirements?

Does whatever a user says or said or going to say is what she or he needs? Or, are there any other users who can give much more information that helps in the understanding of said words or written words or not yet said words and support the mission of delivering deliverable? Or, what I have understood about the deliverable, mission and AUT is correct? How and when can I know what I have is what a user actually needs? I am learning this day by day in each mistake I do.

I was asked, "Where is the requirement for all these? There is no requirement for all these, it is not a bug." for the observations reported from testing. These statements may be agreeable, if users are comfort using AUT with its behavior witnessed and not yet witnessed. But is this agreeable forever?

Concerns in AUT can be user specific and also context specific. A bug for me may not be a bug for other. I am not the author of implemented code or written requirement document and neither a user always in the operational environment. I will be prone to commit mistakes while learning and understanding AUT. I (tester) would not know always whether it is a problem or not using AUT. On illustrating AUT's behaviors with scenarios and risks that might turn around, observations reported were considered and prioritized accordingly.

If something works as implemented, is it to be understood that it is as per requirement or this is what a user needs? Might be the requirement asked by user or written by the author is not viable for near future or I misunderstood it for something else. Things I observe and understand can take or have more than one view. If AUT is as per requirements, design & implementation and as desired to use, then it is not hard to say "this is not what was expected", when any or all of these i.e., requirements, design, implementation and as desired are not agreeable or understood incorrectly.

I cannot stop myself getting biased while testing. But it can be identified and interpreted. The question that I ask for myself is, "How can I know what is needed by the clients as they are asking it for their needs and it is not for my purpose." This heuristic helps me and also failed in few contexts.




Picture: Systems and User interaction.
Note: The above diagram is with reference to my understanding of user needs, problems and software model.

Might be I identify only part of the little union area of three systems -- 'Users', 'Sub-systems and Models' and 'Problems, Requirement and Solutions' which is within another systems. Each subsystem and system will keep growing in its area. The union of these three systems within a system may give new systems. Probably it would be a challenge to me, to know the union areas every aspect in all possible views. If one system grows and covers rest of the other, those might be challenges to me in a system to identify and understand them.
I learned "Requirements are always incomplete and it evolves over the period of time gradually. Might be due to this incompleteness and changing needs of a person or the users, it is called as requirements."

I proceed asking myself "What More Can I See Here?" I am learning and testing to gather information for minimizing the confusions as a service to my clients. If one feels observations as a concerns or not a concerns it is yet another way of looking at it. And it adds insight for what I have to concentrate and look ahead and what my clients want to know from my testing.

Here is a scenario as a video, I witnessed. Is this scenario was in requirement of milk container manufacturing? Those who took milk from container by opening the knob always saw milk flowing to cup below the opened knob. It was a routine observation with this milk container and other such container. Milk flowed down and appeared as a free flow with no disturbances into a coffee or tea cup -- may be one of the requirement and design of container, what a user expected. Did you see anything here?

One day opening knob of milk container, every one placed a tea cup below the opened knob. And none noticed milk spilling out of cup. Where is the requirement for this scenario? The cost was, who came to have a cup of milk did waste the milk by spilling it down. Why this problem was not seen or thought of earlier? Was there any requirement in design and molding of milk container, which was not tested with this scenario? Or, every one expected that milk flows as usual into cup below the opened knob with no turbulence provided milk was available in container?




Video: Milk spilling out of cup.

Few questions bogged me looking at this scenario:
  • What made all to think that milk flows into tea cup in their hand, on opening the knob of milk container?
  • Once the knob of milk container was turned open, what made all not to see the flow of milk into tea cup in their hand?
  • Is this scenario was never witnessed by any users earlier, who witnessed it today? If witnessed, when, where, how why and how frequently they witnessed it?
  • Why did they not think of this unexpected, when they turned open the knob of milk container?
  • Were they annoyed to clean the spilled out milk? Were they bugged by the incident they witnessed? If yes who were annoyed who were not annoyed? What did they do when they were annoyed?
  • What quantity of milk was lost for these unthinkable and unexpected happening?
  • Did user witnessed new problems from spilled out milk? If yes what were they? Who faced those problem(s)? What did it cost? And to whom did it cost?
Here is a video, which I believe that demonstrates 'What More Can I See Here?' and gathers the information by identifying problems.



Video: Identifying the concerns with the model.
Note: The credit for this video goes to the team or person who made it.


Few questions questioned me looking at this video:
  • What was their mission? How often they reviewed their accomplishment with the mission to be accomplished?
  • Was any requirement asked before changing previous design? Might be they would have seen requirement. But did they say, "There is no requirement to change."?
  • Did they see any problems from the information gathered?
  • How often they reconstructed their learning, thoughts and design for the concerns they witnessed?
  • Did they change requirement(s)?
  • Did they identify concern(s) with requirement they had?
  • How did they learn to identify concern(s)?
  • Did they follow any document to see whether they met requirement? If they saw requirement document(s), did they stick on to it alone when concerns were witnessed?
  • How did they test requirement and model developed?
  • Who were involved in discussion of requirement gathering and understanding?
  • Who were involved while learning (testing) the model they developed?
  • How did they record gathered information? How they made use of it? And who all analyzed it?
Again such questions keep coming out each time I explore. Is there any requirement written or present or assumed by default to ask, "It is not a bug. Where is the requirement?", if found like no requirement available for information identified by explorations?

Today's needs may change as tomorrow's concerns; and today's concerns may change as tomorrow's needs.



Wednesday, July 15, 2009

I am h(f)ired because I use my brain!


I was moving to house previous day. It was late night and did not find any public transport for 25 minutes. I was talking to one my colleague who works with me by discussing and debating. Finally, we found a bus and moved inside the bus.

My friend found his seat in the front seat of my seat, where I found a seat for me. Beside me a person was seated and was looking seriously looking at me. We began our conversation for 30 minutes without knowing each other name. I would like to call him as a Fellow Traveler --- he gave me good lessons to learn and I learned.

Me: Hi!
Fellow Traveler: Hi! Seems like you are looking for a job.

Me: Yes. I always look for that as it always helps me to know where I am. Seems like your employer is ABC.
Fellow Traveler: Not now. Today I work for JKL.

Me: Any opening for learners in your workplace.
Fellow Traveler: Learners?

Me: Yes.
Fellow Traveler: What work you do in your office?

Me: I am a Tester.
Fellow Traveler: What tools do you use for testing?
Me: I use my brain?
Fellow Traveler: What? Brain? I asked tools.
Me: Yes, that is what I use and that tool works for me.

Fellow Traveler: Are you not fired yet?
Me: I was hired as they discovered that I used my brain. Don't know when they will fire me, if I don't use my brain or for using brain.
Fellow Traveler: Looks funny! What they say to you when you use your brain?
Me: "When you are going on vacation?"

Fellow Traveler: Without test tools, how will you do that? To come in to my work place, you have to know testing tools.
Me: What does the 'testing tools' means, which you are talking about? What does 'you have to know testing tools' means?
Fellow Traveler: Tools that is used to automate the testing which you do.
Me: I test almost what I don't see and see, I don't hear and hear, I did not know, that I don't understand and I understand by learning from testing it. Where shall I place your "automate the testing which you do"?

Fellow Traveler: Oh! You are cracking my knuckles man. I meant what test automation tools you use for the testing you do in your work place.
Me: I know to use them and learning to use them by knowing them i.e., the test automation tools you just said.

Fellow Traveler: Do you know WinRunner?
Me: I can run the Winrunner.

Fellow Traveler: Do you know QTP?
Me: I do Questioning Tests Passionately.
Fellow Traveler: I never heard that. Do you know any other abbreviation for that?
Me: I can keep telling for that. The other one now that I have for you is...
Fellow Traveler: I am wondering, why you are not fired yet? Have you used LoadRunner?
Me: I make loads of tests to find information.
Fellow Traveler: What that loads of tests you do?
Me: I discover, invent, explore and reinvent the questions. This helps me to find the information and some time it does not; but provides the other information, which helps me again to create the loads of tests I said.

Fellow Traveler: Do you know Rational Robot?
Me: I am a human, who is learning to think rationally.

Fellow Traveler: Common man, don't poke with your answers. How they are bearing you?
(my friend in front seat was looking at us and was smiling, listening to our conversations)
Fellow Traveler: To work in my company you have to know these tools?

Me: Which tools?
Fellow Traveler: WinRunner, QTP, LoadRunner, Rational Robot.

Me: Did you skip any more software test automation tools?
Fellow Traveler: Why?
Me: There are also open source test automation tools, which might be handy depending upon your project contexts. I wanted to know, why the tools you said, are used in your company?
Fellow Traveler: We make applications that are huge and used in real time by several people at a given point of time. A tester cannot do the testing for this kind of applications.

Me: OK. Who made the applications you told?
Fellow Traveler: Are you deaf? I said right, we make applications that are huge.
Me: How huge it is? I want to know what the huge means to you.
Fellow Traveler: You are funny man.
Me: Yes it appears so. When your people who are also human, can make applications, which you said, that were huge, why can't the human test it?

Fellow Traveler: What do you want to say?
Me: You said your applications were huge and used as a real time system. I don't know how huge it is and what the huge means for you. I can see every application as real time system and also as non-real time system. Putting the huge application into the hands of automation will be like, for an example, you are sitting in Volvo bus which is air conditioned, quite luxury seats and the other features it has. I have never traveled in Volvo bus.

But, the Volvo bus in which you are seated now, say it is traveling in road traffic of Bengaluru where the person driving the bus is covered his head completely such that he can only breath and survive but not able to see anything neither hear anything but can move his hands and body while driving the bus.

Are you safe in that bus though it is Volvo? Might be you are safe till some extent or to the full extent of your journey in that bus. But what is the guarantee that you are safe? Also, when the person driving the bus in which you are seated is able to see and hear by moving his hands and body, still no guarantee of your safety of your journey. All what we have is some words or claims that say using service(s) of so and so will make us so and so which are either advertised or communicated orally or done by both the way. And we are all factors of it, when we witness it.

But the risk might be bit lower when compared to the other case and all it depends on the people inside the bus, the person driving the bus, and the tool being used -- the Volvo bus. Right? This way, if you model the test by testers hope the risk of using the huge application you said might be lower or not at all; then you need to think about the strategies to work on.


Fellow Traveler: You are saying that test automation is of no use?
Me: I did not tell those word anywhere. But, knowing how to use them for helping testing what I do is required. Test Automation Tools does not do the testing what I do; it might help my testing activities, which is human tasks and to know what extent it helps is useful data. But, it cannot replace the human tasks without the intervention or interpretation of human and human thinking. Test Automation Tools cannot be paralleled with human for the tasks each do on their own cognitive and intuitive.

Fellow Traveler: I am hearing strange things.
Me: Me too sensed the same sometime back, until I failed and now too I fail. Automation tool (i.e., a model) with bug (any software is not free of bugs) automated another model, which also has bugs. Something interesting, when I witnessed that.

Fellow Traveler: OK man, see you again.
Me: I wait for that moment. Bye! What work you do for your current employer?
Fellow Traveler: I work on systems.
Me: Systems? What systems? What does it mean?
Fellow Traveler: I have to leave; this is my stop where I get down.
Me: Bye.


Later my friend in the front seat began our conversation about the talk, which I had with fellow traveler. I learned from those conversations of fellow traveler and my friend. I hope the fellow traveler who was in conversation with me, might see this writing one day and we meet again.

The software (and combination of hardware & software) we make is a kind of an automation of human work, is what I have understood. I was questioning myself, "Is that tools are fallible?" "Only tool does experiences the failure?" And I kept writing many such questions and wrote statements (towards and against) as much as possible for the each questions. I knew human is fallible, then the heuristics identified by human are fallible, then the model built by human which are set of heuristics (programming instructions -- in this context) are fallible. A question remains is "Which is not fallible and not (to) prone for failure(s)?" If any such exist with us -- when (not), how (not), why (not) it is fallible and not (to) prone for failure(s)?



Wednesday, July 1, 2009

Hot and live. Possible bugs?

The below written behavior and observations were observed and inferred from hotmail.

In the context, a user has forgot her or his Windows Live ID's password and has entered incorrect alternate email-id while registering for the email-id. What shall the user do?

In this scenario, there is a context that can show a possible bug. And the same can be an advantage to the user in the different context. Sure there will be more than these two scenarios, since a tester can make a model to fail for what it is intended to do in more than one ways and similarly can make the model to pass for what it is intended to do in more than one ways.


Context-1 and problem: The user has forgot the password of her or his Windows Live ID. And has entered incorrect alternate email-id while registering for the email-id.

The user has not yet set any question and secret answer that might get help in resetting password nor did not know that she or he entered the incorrect alternate email-id. How the user can reset the password now using the page being viewed?

Clicked on hypertext 'Forgot your password?' Navigated to the page where a password can be reset. Entering the email-id (whose password has been forgot) and characters, which appears similar to CAPTCHA, took to the page that displayed a text "Reset your password"-- which appeared to be by black-in-color. It had two options with radio button for sending instructions to, reset the password. And, the options were the email-id for which the password is forgotten and the other was the alternate email-id.

Now, in this context scenario, user has entered the incorrect alternate email-id and also has forgotten the password of the Windows Live ID such that she or he cannot sign in to the email account to view the instructions of resetting the password. What shall the user do now? Should she or he need to create a new email-id again? Or if there is any other way to reset the password, won't it be time consuming for the user to spend her or his time in search of ways to reset the password? Is this a bug?

If entered this URL -- http://login.live.com, will show a page with title 'Sign In'. Clicking on hypertext 'Forgot your password?' will navigate to page with title 'Credential Management', Entering the email-id for which the password needs to be reset and the characters that appears in the image, will show a message text message as in below snap. What should the user do now?


Picture: message telling unable to reset the password.



Context-2: The user knows the password and wants to reset the password. But don't know how to reset the password once signed in to the email-id account. She or he uses this feature to reset the password, though the entered alternate email-id is correct or incorrect (until the alternate email-id option is not chosen).

On selecting radio button -- email-id (Windows Live ID) for which the password to be reset, and clicking on button continue appears like the instructions for resetting password is sent to the email-id (Windows Live ID) for which the password is to be reset. If chosen an alternate email-id, then the instructions will be sent to it.


Here the same page and options act as problem and also as a solution to a kind of problem to the user. The above advocated context's can be observed here.




Saturday, June 27, 2009

Longest twitter with no space, appears like it has no contents in it!


Below are the images of twitter messages by Pradeep Soundararajan. And I have subscribed the RSS feeds of @testertested and I read them in Google Reader.


picture-1

picture-2
picture-1 and picture-2: twitter message that looked like it had nothing in it.


picture-3
picture-3: twitter message with no spaces between the words

picture-4picture-4: twitter message with no spaces between the words and has 140 characters.


While looking at the twitters of @testertested in my Google Reader account, I was surprised to see the empty twitter message. But I knew there is something here and said my self, "Pradeep Soundararajan would have explored something here too.".

I could not wait with my curiosity. Clicking on the so appeared empty twitter message area, showed the twittered message which had 140 characters with no spaces between the words.

The button 'Update' used to update our twitter message in twitter, will not be enabled to submit our twittering once our twitter message exceeds 140 characters, irrespective whether it has spaces or not.

Question that I have is, "Why I am not able to see the twittered message in the Google Reader, though it had message in it?"

What more can I see here? Is there a problem here? Is it a bug? Is it a feature? What should a subscribed reader for the feeds should think and infer in a scenario's context -- when she or he gets an illusion of no message though it has a message which is not displayed as in picture-1 and picture-2 , when looking at it for the first time?

What ever it might be, I am finding information from this behavior. Investigation report of this behavior is here.



Wednesday, June 3, 2009

Unthinkable happening to the anonymous.


Can you think of an unthinkable for few seconds? If you can think of an unthinkable -- how it looks at present or how it would (not) be in future or how it had (not) been in past or earlier, then is it called the unthinkable? The next question to be investigated is "What is an 'unthinkable'? What can be unthinkable? When it looks like an unthinkable? Does it just appear as the unthinkable? When it is not an unthinkable? For whom it is an unthinkable -- when, why and how? For whom it is not an unthinkable -- when, why and how?"

Tried to look what is inferred in general for word "unthinkable". Asked few of my friends, "what do you understand for word 'unthinkable' and when you say it is an unthinkable?" Most of the *replies I got was and relates literally to, "when I cannot think beyond a level, I think it is unthinkable.". I was curious to know and asked "how did (or do) you know that you cannot think beyond a level, when you know that was so seemed as an optimum level (boundary)."

Later I tried to collect information about what they say about "thinkable". The
*replies that I got was and relates literally to, "when I can say it precisely or when I can understand it or when I can relate it or when it is agreeable or when it is possible."
*This replies does not mean that what I heard are unanimously universal truth. I may have different opinions in the various contexts -- how I perceive the information by relating it from my thinking.

This triggered a heuristic within me to ask a question and requested to infer what I heard for unthinkable and thinkable. Unthinkable -- cannot think beyond a level, which is known by thinking, means it is thinkable to that extent and did looked like uncertain beyond that and seemed like thinkable as an unthinkable after that? When I identified a boundary, why did not I try to put question mark for what is beyond and after that boundary? This helped me to identify a heuristic -- exploratory is in the dynamics of thinking. The question what I got from my friends was, "what difference you find between words 'the unthinkable' and 'the thinkable'?" I was able to find the difference here and it was in the spellings of the two words.
With all this I looked out for printed meanings of words "unthinkable" and "thinkable" and below is what I saw and read on the web:

>> Unthinkable

adjective:
inconceivable; unimaginable; not to be considered; out of question;
noun:
something that cannot be conceived or imagined, as something too unusual, vague, or disagreeable.

Here I read a sentence -- "Today's unthinkables are tomorrow's realities.". Then I asked myself, "then how can it be termed as unthinkable?". I said myself, "I did not have a verb meaning here for unthinkable". The verb (action of thinking and reinvention of questions) makes unthinkable to thinkable by a question with intent to know what the question(s) shows and gives back.

>> Thinkable

adjective:
capable of being thought; conceivable; that may be considered as possible or likely.

*Note: Here it says three results for thinkable, but it seems like only two results are being shown to readers.

With all these questions and information I had a thought and inferred -- there is nothing unthinkable; if at all said, it is unthinkable then it is the ambiguities in thinkable, thinking, what I have, what I have inferred, what I have understood, what I am seeing, which I am not seeing and what I have missed to write here. Questioning and investigations helps in identifying and knowing what is ambiguous.

This made me to remember the words of James Bach, which I had read -- "Testing is infinite process of comparing the invisible to the ambiguous so as to avoid the unthinkable happening to the anonymous."


My own context where I witnessed "unthinkable happening to the anonymous":

I have the habit of testing what ever I see by asking myself "What more can I see here? When, why and how it does not do for what it is believed, it will do?" I tested my mobile phone from the day I have it. But this context I witnessed was unthinkable and annoyed me. The service provider of the SIM card I use will advertise for the ring tones, caller tunes and many more (might be you too would know this). And these advertisements sometimes come as an incoming call and play the automated recorded voice. Automated voice why? I believe humans cannot do that always by dialing to a number then sing a song and tell to press the key if you want this or not. But, program instructions written by human can do them. Something to think consciously -- programming instructions are changing day-by-day in wink of an eye, but am I changing with my thoughts?

I received one such call which was for caller tunes and it started playing the recorded voice which was more or less a automated on receiving the call; pressing the numerical key on the keypad will be the input for the being played advertisement. Meanwhile I started looking at the contact number of my friend in my Nokia 1100 handset.

Below are the ways I explored to search contacts while a call is received and in conversation, when I brought my mobile phone - Nokia 1100:

Contact search exploration-1:

When a call is being received or dialed, connected and in conversation -- pressing the numerical key which also denotes the alphabets will show 'Options' which was showing 'End' in the display area. Then pressing the key used for selection will display 'Call options' which has options for Hold, New Call, End Call, Send DTMF, Send, Contacts, Menu, Mute, Flashlight on. Selecting 'Search' will help in looking for the contact numbers that are stored in the mobile phone (SIM + phone) memory.

Contact search exploration-2:

The other way for looking for the contact while being on conversation in a call is, pressing key 'C' which symbolize for cancel. On pressing key 'C' in keypad will
show 'Options' and the 'End' will be taken off from display area. Selecting the 'Options' will show the list above said options under 'Call options'. Should navigate and select 'Search' for looking into the contact number I have stored in my mobile phone (SIM + phone) memory.

The above are two procedures I know to search for contact during a call conversation. In the above said instant i.e., when the call of advertisement for caller tune was received, I used contact search exploration-1 to find the contact number of my friend and pressed a key '5' on keypad which also had alphabets 'jkl'.

Doing this, a song was selected as my caller tune and the recorded voice said (the words written here are not exact of what I heard)-- "the caller tune service has been activated for your number, subscription charge will be deducted and monthly rental will be deducted from next month." This shocked me I did not want the caller tune, but now it has been activated for my contact number. I did not even think about -- if I do the contact search while such call is received, money will be deducted from my prepaid account and which I don't want to happen. Later I deactivated the caller tune for my contact number, but money was deducted for choosing it. This annoyed and bugged me. Because I don't like to loose money as I cannot spend it this way.

One more instance is pressing key '9' on keypad while such caller tune advertisement is being played, will play the recorded voice again from the beginning. One day I pressed key '9' to listen what the recorded and automated voice tells. Unfortunately this time, pressing key '9' it activated a caller tune instead of starting the recorded voice from beginning. Again the money was deducted for this. Here the same key '9' played two different roles i.e., for repeating what I heard in one scenario and to select a song in another scenario.

Later I got a question to mind. There are people who use mobile phone in my country who are literate and illiterate. If a key is pressed for some other purpose while such call of caller tune advertisement is received, they will loose their money. If they wished not to have the caller tune and if they feel not to spend the money for this, will they be annoyed and bugged when unthinkable happens to them and their money gets deducted? If they are bugged and annoyed, should I call this as a bug in this context scenario?

The words "
Testing is infinite process of comparing the invisible to the ambiguous so as to avoid the unthinkable happening to the anonymous." demonstrates what testing means here in this context -- for the caller tune getting activated which the user did not expect or thought while using key in keypads to search contact, it might be unthinkable for her or him or anonymous who witnessed it.

To whom should a annoyed and bugged user (anonymous) tell, "this kind of option of selecting the caller tune can make unthinkable to happen and takes the money which I don't want to spend this way while searching for a contact in mobile phone using numerical keys in keypad." Should it be said to the mobile phone manufacturers or communication service providers?


Sunday, May 31, 2009

Is it a Countdown or Stopwatch?

The clock that appears to be as digital on the web page of Sunfeast World 10K Bangalore - Indiatimes, shows the clock ticking out on reaching the zero too.

It appeared as a countdown watch when looked at it before the marathon event started, which had a statement next to the clock as "to go to The World's Premier 10K Run on 31st May 2009".

Now the date and time is 31st May 2009, 10 minutes past 6 PM. And, the wonderful marathon event was today morning.





Looking at the clock that is being displayed and ticking ahead, it puts a question, is it a:
  • Countdown clock -- that has set to zero by counting down number of days, hours, minutes and seconds for the marathon to go. And started counting again ahead of zero, on setting itself to zero?
  • Stopwatch clock -- after setting the time to zero and has started to tick ahead. Is this a countdown or stopwatch? Or earlier it was a countdown watch and now is it a stopwatch? But for what it is ticking ahead?

When observed and inferred the message "to go to The World's Premier 10K Run on 31st May 2009" next to this time which appears to be as stopwatch counter i.e., at 12 minutes past 6 PM on 31st May 2009 after the event got completed successfully, it confuses and makes a questions sparked in the viewer and reader of that clock and message asking "Marathon is yet to start again?" But after a minute seeing the time that got ahead by one minute in the being displayed and so appeared as digital clock, sparks one more question "I saw just now one minute less than what I am seeing now. When is the World 10K marathon then?".

But, the Sunfeast World 10K Bangalore marathon on 31st May 2009 was a wonderful and memorable event.



Tuesday, May 12, 2009

Tester finds information on the bill receipt.

I found the information on the bill receipts which I got to my hands for looking it. Below are the snaps of those bill receipts.

Picture: Bill Receipt-1



















Bill Receipt-1:

Printed characters on the 'Bill Receipt-1' were bit hard to make it out, as 'M' and 'N' appears to be same on the printed receipt. Apart from this, it has other information, which can be inferred from the snap 'Bill Receipt-1'.
  • If 111/1 is a shop number, what does '&2' and 'Address4' mean?
  • What and which single scoop? 'Reg' means registry or register or regular or something else?
  • 'Amount Tendered' and 'Return Change' by whom and is that both by the same person?
  • 'Flavour of Month' and 'Offer of Month' why not printed bill? Is it communicated by any other means, before getting the bill by paying the money to have the being bought? If not communicated then does this bring the value to the customer?
  • How to dial 'Footer4' for home delivery?



Picture: Bill Receipt-2













Bill Receipt-2:

The printed word on the 'Bill Receipt-2' tells "Estimate".
  • Why should a customer pay the estimate amount, which can be less than what she or he purchased or why should a customer need to pay the estimated amount, which can be more than what she or he purchased?
  • Why MRP is not printed? What does '*' mean? Is that person name is 'star' to say in the common man language or how does the common man language interpret that? Or '*' mean anyone who gets that bill or everyone who gets that bill?



Wednesday, April 29, 2009

Pair questioning - no murks; all are igniting sparks.


I have been practicing exploration of the systems that exists and don't exists, from the day my mother taught me to learn, while I was learning by writing on the walls of my house 22 years back. Started the exploratory testing of *systems -- software applications when I got my first job. I practiced pair questioning with my mother while I was writing on the walls and floor of my house, on black slate with piece of chalk, in the books -- when I observed my mother writing down in a little book for all the things that need to be done, that were done, how it was done, how to do etc.
*systems -- independent entity interrelated (or not interrelated) to make unified whole. In this context, referring a software application as model of a system.

From my school days, I write my explorations, findings, results and many more in a book that I carry with me. The below snap is the book where I write all my test ideas, exploratory ideas, questions, data, diagramming and all other that I get for my craft works (testing), which I do for the employer of me.

Picture: Photo snap of the book I use for writing down all my craft works stuff.

I had and have been in pair questioning (testing) with tester's, which gave us floods of thoughts, ideas and questions. For the first time I did pair questioning along with a person who wrote the system's model.

Before questioning by sitting with developer colleague, I did modeling of the system that will be questioned by us, collected information's about what to question (test mission), collected the supporting information's in written form that were available if any, thought of strategies for how to design and execute the questions simultaneously and make use of the information which will be yielding from this, and how to make use of the information's which we get from all these investigation's with the heuristic that were thought and those were used, by writing down all these in the book which is in above snap.

Later, I explained with an illustration to my developer friend, how we will be working and what strategies we will be using for the test plan that was plotted and agreed by both of us with TEST MISSION that was set.

I use SBTM (Session Based Test Management) approach by modifying it for my project contexts from past one year. My credits to Bach brother's -- James Bach and Jonathan Bach for giving such an exploring approach that can be tailored for the, set test mission. This approach is working fine for me, not sure for others.

I am unable to put or present here the replica of what we did, as I am not supposed to disclose the project details as I too have signed NDA (Non Disclosure Agreement). But the few things I can share here is the SBTM approach I used and use:

  • Test Mission: To identify the possible ambiguities and critical information's from the sub model "abcd" of the model "PQRS".
  • Approach: Session Based Paired Exploratory Testing.
  • Testers: Mahesh and Ravisuriya.
  • Environment on which model is tested: Name of the OS, Version of OS, Kernel name of OS, with hardware-software configuration of machine and environmental conditions where the model was questioned at the time of test execution.
  • Model and areas of model being questioned: abcd.
  • Installation type of model: Type of installation by which the model was installed for use -- Fresh or Upgrade or Repair. Uninstall -- if being tested for uninstall of the model.
  • Set session duration: 60 minutes.
  • Start date and time of questioning the model: 29th April 2009 9:01 AM.
  • End date and time of questioning the model: 29th April 2009 10:23 AM.
  • Observations and information's: All the inferred and observed behavior of the model, which was driven by context-driven approach.
  • Investigations: All the investigation results conducted for the above observations and written information's.
  • Opportunity: Any other questioning (testing) we did which yielded us with very helpful and critical information(s) in this set session with spent time duration for it, apart from the framed test mission.
  • Issues encountered and remedial workaround: If any seen issue(s) and existence of workaround for the observed, inferred and investigated issue(s).
  • Interruption: Will have reason and time duration of pause or stopped time when questioning of the model under test was ended.
  • Remarks or Notes: Comprises the conclusion of the session that was completed or not completed with the reason and area of improvement in questioning.
  • For more information's: Contact extension number and email-id of testers participated actively in set session.
We spent more than 60 minutes which was set, since we diverted and branched our exploratory testing as we found some crucial and critical information's -- this was an opportunity which we recognized and made use of it; but came back to the framed track for the test mission that was set and accomplished it.

Plenty of information's were found during this pair questioning (pair testing) session. And, it was learning and also a fun session with developer being a tester and questioning the model under test. There was no murk in the session, instead all the murk were igniting spark.

Decision makers were able to infer the information's briefed in the document that described the above said questioning session and took the decision.



Thursday, April 23, 2009

I want to vote. But, I don't like to vote any candidate!


When I heard about the election is going to be held very soon, I began to think of an advertisement that was published in the television channels of India, making the people to get aware of the importance of their vote.

Thinking of that advertisement, I got a thought in my mind, "I want to vote. But if I don't wish to cast my vote for any candidates who are nominated in residing constituency, how can I do it?".

To my best of memory, I remember that, I did not see this option in the Electronic Voting Machines earlier and now, when I voted. Might be there is an option saying orally I am interested in voting but not for any candidates nominated in this constituency; hope they agree and accept that vote. But this will be revealed publicly and if I don't want that, then how shall I do that? Is there any option in the Electronic Voting Machine for doing this?

If we have that option in Electronic Voting Machine i.e., "I want to vote, but don't like to vote for the candidates stood in the residing constituency", might be useful to the people who wants to cast their valuable vote.

When I closed my eyes for a second when stood in front of the Electronic Voting Machine and opened my eyes, a question struck my mind, "How does a visually challenged person can cast her or his vote using the Electronic Voting Machine?". Surely, our Election Commission of India will have the alternatives for such contexts, so that every eligible citizen can cast vote to her or his candidate.

Looking at that Electronic Voting Machine, I got many question in my mind and few of them are:

  • What is the maximum number of votes can be voted per minute using an Electronic Voting Machine?
  • Are there any restrictions on maximum number of votes that can be voted per minute using an Electronic Voting Machine?
  • What is the maximum number of votes can be voted per hour using an Electronic Voting Machine?
  • Are there any restrictions on maximum number of votes that can be voted per hour using an Electronic Voting Machine?
  • What is the maximum number of votes can an Electronic Voting Machine store in its memory?
  • How many candidates name can be put in an Electronic Voting machine for voting? If eligible 2000 candidates are nominated for the ongoing election, does all 2000 candidates name will be put in the Electronic Voting Machine's, which is in poll?
  • What happens while I am pressing the button of Electronic Voting Machine for casting my vote, say the Electronic Voting Machine goes down due to battery problem or any other problem? Will that vote which I voted, will be added to the register memory? Will I be allowed to vote again? Will my vote count appear to the person who is operating the other device, which resets the Electronic Voting Machine as ready for other person to vote after me?
Might be while making the device Electronic Voting Machine, people would have thought of this to cut off any such context incidents, as much as possible.

Salute to all those people and governing bodies who worked and working sincerely for making the voting go smoothly, peacefully and with no corruptions to possible extent.