Tuesday, December 1, 2009

(Magic) Reading List in my LinkedIn profile






I have 16 books in the reading list in my linkedin profile. Today I noticed something strange.
  1. The link see all books on Parthiban's list(1)

  2. I re-loaded the page by clicking on the Profile link and I see the same page loaded with See all books on Parthiban's list (16)

  3. I continued by cliking on the link, and the page listed first 10 of 16 books with two page pagenation,

  4. Clicked on link and the page listed the second set ie last 6 books

  5. Clicked on button and what I see is a page with 1 book, Fountain Head. The reset disappared.

I couldnt reproduce this consistently, but with little patience I could see this behaviour happening again. Still to investigate on the possible reason.

If you have seen this behavious before, do share your exp

Monday, November 30, 2009

Processes Mythology

CMMi has been the buzz word at all levels at my firm for about 10 months now. There have been a lot of discussions, presentations and training sessions on the importance of having “Standardization” and “Predictability” of the activity that we do, be it development, testing, production support , so on and so forth.

This post is my experience with some the models around Data Collation, Analysis & Interpretation of Standard and Predictable testing process.

Processes remove Person-Dependency and improve Efficiency:


“This was one of the key benefits of having a defined processes in place” as was explained to me during one of the training sessions on processes.
I asked the trainer, “how do you say this?” and
the answer was, “you work on a project and if you do not follow the process (i.e. documentation) properly, when you leave the project team or the firm, then the knowledge goes with you. By bringing in the process, the necessary of the person’s presence is removed and the new person coming in will have a shorter learning curve as the documents will be readily available to her”.

I asked her, “What do you mean by “properly”?” and to that she said “You should prepare the document in such a way that it covers the matter in full”
I think a huge bottom line is being missed. “Hellloooo, Having all said and done, it’s the very people who need to do anything !!!!! “.
My take on this

· Never can a person express 100% of what one has in mind. Let’s assume conservatively that we loose 15% in translation (remember we are ignoring the environmental facts when the person writes), this leaves us with 85%

· Never a person can understand 100% of what is written in a document. Let us assume (conservative again) that we loose another 15% while reading, this leaves us with 72.25%

· Never a person can synthesize 100% of what is understood. Lets (conservative again) assume that we loose 20%, this leaves us with 57.8%

We have less than 60% of the understanding of the project one had when the person moves out of the project. Remember this is just what the out-going person “understands” and NOT his knowledge (am still understand what and how knowledge management happens).
Remember; we haven’t considered few highly influential factors in the above conjuncture. They can have both positive and negative impact; the list can go quiet long from knowledge to environment.

Below are the few that I could think of
· Writing skills of the out-going person in a foreign language (I know no company allowing people to write in their mother tongue in India)

· Ability of the incoming person in understanding a subject written in foreign language

· Prior knowledge/experience/knowledge of the incoming person on the similar subject/project

When I say this, I agree and accept that documentation is required to let myself know what I have done yesterday and the day before and if this documentation can help someone else to understand the project better, it’s a great. However, why so paranoid about “documentation” of EVERYTHING done by a person!!

With this premise, am still to understand how processes remove people dependency and improve efficiency. Can you help me please?

Sunday, November 15, 2009

“Certified” thinking


I am a certified tester. I hold CSTE certification.

When I read the text (of course of myself) “Certified Software Testing Engineer”, I always wonder what I mean by that.

Doesn’t it mean that I don’t have my own mind to think and do testing but I learnt it (not practiced as none of the certifications are based on practical experiments), rather copying (legitimately) or re-using (famously) some one else’s idea?

During the early part (comparatively) of my career, I chose to sit for CSTE because

I wanted to prove a point to my managers that I am the best in the lot
I wanted to differentiate myself
I wanted to see myself in the newsletter (internal) and magazines (that used to carry the successful CSTE names with photographs at that time)
Company reimbursed the money that I spent for registration so I was anyway not spending money from my pocket
More than all the above, I wanted a motivation and a reason to read something about Testing

I registered myself, picked up the CBOK and started reading. I should admit there are some favorite chapters of mine in the book which I enjoyed reading. Eventually, I did clear the paper.

I can confidently say that the reading I did, the discussions I had with fellow CSTE aspirants certainly helped me in understanding a lot of details. If someone cites this as a reason to sit for the exam I wouldn’t give too much a piece of my mind.

A step further, in a way I would approve CSTE to some extent (not 100% though) because as testers we do have a 50% chance to write what we think is correct with the context we understand in the descriptive papers which I can safely call a kind of experimental based (atleast that’s what I did).

But the reality is that there are too many who use those CBOK as Bible or Bhagwat Geeta for testing principles. Much worse,
I saw a lot of people using certification as a token to call themselves as tester without bothering about either practicing or even an attempt to do practice
I saw people with no experience getting job by faking about it in big companies because they held a certification


Certifications compel the testers to a very dangerous extent, that we always tend to look for one CORRECT ready-made answer for all questions. Certifications restricts us from the thought process of,

All the options given could very well FIT
NONE of the options given (to choose from) may NOT fit
Dangerous of all is, it tunes the certified minds to an extend to look for even “Above All” or “None of the “Above” as answers when there isn’t clarity on what to choose from !!

We get accustomed to always look-for/think of a “Point-blank” answer for all questions, for contexts and certifications go out of their way to advocate and spread this at full throttle. A very simple example is one of the polls that I happened to see in an internal website, eventually ended up as post.

Reason to test software before releasing it is:
To find as many bugs as possible before release
To make a decision when the software is of good quality to release
To confirm that software will work after the release
To give information for a risk based decision about release

A classic question that appears in certification exams. I, to some extent understand that we still as a community yet to get matured to understand and think in contexts’. The reason why I felt all the more sorry for the certified testers is that the certifications have influenced so much, so that the author failed to see that “ALL” can also be an option if not an answer.

One of the eye openers for me was “A difficult testing quiz” in Pradeep’s Blog (that’s how I started reading his posts). I honestly attempted all the questions and the result was a lesson. That’s when I felt confident, that I don’t have to always worry about being correct.

There are a good number of testers who are trying to win credibility for “testing” as an activity and for testers. Meanwhile it’s disheartening to see there are large number of people who are still comparing/writing/discussing/arguing (??!!), if CSTE is good or ISTQB.


PS: CSTE’s CBOK is really a subset (edited) of William Perry’s book on Software Testing, which I read fully later and I think a good one to read.

Thursday, August 6, 2009

Traditional Software Testing Approach and 9000 hrs

This post is really a response to the post written by Pradeep on Traditional Software Testing Process
I saw that post as one where a tester proclaiming himself as an alternate to all those companies that have been cheating (by taking traditional testing approach) their clients and slamming the script based testing

I believe any tester who has experienced exploratory testing, enjoyed the freedom and witnessed results will accept ET as one good handy test methodology. As many ET tester do, I would love to read and hear a tester who practices and advocates testing on the lines of pre written test cases ONLY.

When I say that, I donot blame the testers entirely for readily nominating themselves to be caged by the traditional approach because I work with such testers day in and day out.

That’s exactly why I particularly felt relieved on reading his post because he seemed to have moved on with scripted testers to scripted testing and the reasons why testers its been widely used at the risk of clients not being served – see through the obvious.

Something that I try in everything I do, see thru why its happening. “Testers follow scripted testing methodology and further they advocate the same”, why would a tester do that? In my little experience, ignorance is largely the reason besides the business model we are in.


To elaborate more about the irony many of us share; lets keep ET out of equation for sometime.

Irony:
Even though the testers feel bored to run the test cases again and again, even though they like spending whatever time possible to play with the application (exploratory testing) which offers lot of challenges, learning, opportunity to find defects they continue running those test cases release over release.

Obvious:
Atleast with the small number of testers whom I interact with on a daily basis go thruthe above irony and I can safely presume that this would be echoed by all the services based organizations of all size.



See thru the obvious:
This is something that I attempt and expect the likes of you as well.

If a tester (whoz running the scripts) gets the freedom to do heuristics testing, I bet he will gallop this. The reason why they continue with the traditional approach is I guess not because of the awareness about the benefits of exploratory testing
Even though they know ET can help them unearth lot of defects, they don’t do it because the organization they work mandate them to do so ??

Lets RCA this
Do you really think the clients are blind and not capable to realize that they pay $9000 (even more as well) to have not even a single defect?
As I understand, the very human behavior pattern is to avoid risk.

By outsourcing, that’s exactly what we do. As an organization, I want to pass on the risk to someone else that can do my work with labels like “Cost”, “Operational reasons” and many more hopping to get a product of better quality then I can.

This challenge is in my opinion, comparatively less on the rest of the activities (except testing) in a software building process. We have a lot of tools, methodologies with very high percentage of repeatability is available. More than any other tool, “google” does magic there.

All these can not work with testing, because no matter how hard we try to with the likes of process, tools, re-usage (most misunderstood and misrepresented), testing is all about human intelligence (common guys, this is a gift after all).

When an activity like “testing” is turned over to a second party, especially third party companies, because of the very service outsourced model, it becomes imperative for the outsorucee to establish confidence in the client that they have the capabilities that are called to do the job.

Now it’s a two way situation; go with the abilities or competency of people (tester) or the organization (process)

It’s the practical difficult that a company cannot have expert testers ONLY in their payroll working across all the projects that are on flight. Even if an organization claim to have expert testers in their payroll, all the testers will not be internationally acclaimed or atleast have footprints outside the organization.

Alaaaas, now how do I convince my client that I can do this work?

Now the other way around is on the Process and this where the argument begins !!

Here is where the organizations, testers take the easy way out or probably the only way they think is available ie going behind certification, going Six Sigma, ISO standards and so on.

Processes naturally introduces the documents and hence the testers end up spending 9000 hours

I do not believe the clients that we are talking about are so blind to be made
intentionally bind . I know projects where the vendors end up loosing the contract on such instances (intentional blinding) and worst, had to pay the contract money.

So clients are the businessmen who have the caliber to see if they are going to be made blind so lets not shame them by labeling Ignorant

Either they get eventually get what they want or this is exactly what they want (the documents and process). This is exactly the challenge that testers of my kind face.

In that sense, I would label the likes of Pradeep, lucky because you have the luxury of saying “this is my approach and the best” and your clients must have been either buying or they don’t care about your approach but the results.

This naturally brings me to the approach that I could devise in my own little world with all the constrains a typical tester face.

I give what my clients what they want. Yes, you read exactly right, but I do in my way.

I give them test cases but I test my application based on the scenarios that I make out of the understanding I have about the application.

The basis of my approach involves a lot of discussion with the all the people involved in the evolution of the application;

and questions, questions and more questions.

I take the traditional script based testing to service by client with what they want and I mix that with conglomerate of scenario based testing (in other words behavior based testing), ET

Saturday, July 25, 2009

Secrets of a Buccaneer-Scholar: Must read not just for Testers

I’ve been trying to write about this latest book that I read for almost 4 days now and finally I got time @ 1.50 am today.

Acknowledgement
Thanks to
Pradeep, for writing about this book. I know nothing of James would go unnoticed by him. So by visiting Pradeeps’ posts, I get to read many good ones besides his and this was the best of all so far.

About the Book:
I started reading this book after a little technical tussle in downloading the free copy on a Saturday evening and my excitement had already started. I have to admit that the book was so compelling that I had to make some time during by office hours (thought I was running pretty busy) even if that means I had to stay little late in office.

How did I relate to the Buccaneer-Scholar
I was just going thro the first few pages of the book and a specific lecture I attended during my masters degree flashed right in front of my eyes.

My 4th semester period, a week day, around 5.30 pm.
The then Head of the Department of Computer Applications was in the class, not explaining anything around software but trying to understand why there was a good number of students (~30%) bunking the class consistently (he was actually talking about myself and some of my friends). As he was addressing, I couldn’t wait anymore and told him “the time that we spend in the class room (we were spending almost 7 hours a day attending different lectures) were of no use (no use == we werent hearing/going thru/reading about anything other than the contents in the text books prescribed) and I could learn more by just spending couple of hours in the library and with technical magazines”

After that day for all obvious reasons, I had to face consequences. Because I had questioned the very reason of the teaching that he (HoD) thought was happening and of course the rest of the faculty members thought process about teaching.

This instance actually put me and some of my friends in a spot. We had to prove that we were indeed better of without those lectures. To prove a point we had to work harder hence followed more hours in library, more hours reading about lot of stuff which ended up as a paper on VoIP by myself and one of my friends during our 5th semester. This lead us to become winners in one of the technical symposiums (on September 24th 2002) in paper presentation category. That was first of its kind in my college.

Back to present; I wish I had such a book to read when I was a student. I wouldn’t say I would have quit the college . But it would have certainly made my outlook about learning far better.

I recommended this book to some of the testers that I work with; but that’s before I read the book full. Now that I have read the book completely, I wish every student gets a chance to read this book and make the correct sense of it.

Thanks very much James - for penning down your experiences and few others and
(again) Thanks Pradeep – for your post on the book (that’s how I came to know about it)

Wednesday, July 15, 2009

The Future of Software Testing!!!@@@##!!!

I saw a poll in on of the internal communities in my organization titled “What is the future of software testing”
In my opinion, It would be of a very brave attempt if someone tries to decipher this “the future of software testing”. The reason why I say this is because in my opinion, we are far to understand “Software Testing”. As a tester community we are still arguing, discussing and trying to understand “What software Testing is all about” and “how are we supposed to go about doing it” and so on.

Because of these obvious reasons (that I’m still trying to understand software testing) it seemed an act of extreme bravery to see some part of tester community trying to judge the future of software testing. Driven by curiosity I read further i.e. the options that were given to testers (I remembered the testing certifications while reading them).

i) Depends on Programming trends
ii) Will more rely on automation testing
iii) Will get harder, more expensive and therefore less efficient
iv) Will always have a future. As long as developers will write code there will be bugs

When I read the first option, I felt that I understood (perhaps felt like understood) that the author is trying to perhaps check the awareness degree or may be with the following options he would try to improve. With this context in mind, I had a choice in my mind, what could be the best answer for this question.

When I went on and completed the list, I was more than disappointed to find that my opinion wasn’t there as an option at all. What made me thwarted further were the rest of the options and some of the responses. But the consolation was the first half of the option iv that there will always have a future

What follows further in the post is my attempt to make awareness about testing.

Depends on Programming trends
Testing was never dependant on programming trends and it never will. Programming trends can have some influence on some of the process that the testers follow to test a software and this is extremely context driven. I wouldn’t say the both are immune of each other. As much information or details as possible on the programming methodologies or trends followed while developing a software will certainly help in figuring out a better testing solution but as a tester I can test a software without any of that information as well.

Will more rely on Automation Testing
“Automation testing” is in my opinion, larger-than-life myth in the software testing. There is a perception that everything in testing can be automated. I wonder what they mean by testing here. Well, this is vast subject hence back to the subject, Automation testing can perhaps cover some stupid-box (Hureeey! I found a new word in the series of black box, white box and so on) testing like activity .

Will get harder, more expensive and therefore less efficient
Well Yes, testing is difficult; from the context of the intelligence that it calls for. No quality-product costs less hence testing can be expensive. Because testing is difficult (contextually) and can be expensive (contextual again) I wonder how in the world it can be less efficient (I am not talking about the stupid box testing here).

Will always have a future. As long as developers will write code there will be bugs
For once I agree but half of the line. Yes, testing will always be there. Not because developers write code (all those who write code are not developers) but it’s the human who does.

[Updated on July 16] As Pradeep says At the end of the Software Life Cycle, what we get is a non-solid, non-liquid basically a form-less thing – A Software. No software runs on its own, which means, it needs another software to run along, to run on. This creases the volatility of the product (Software) ie the volatility gets squared, tripled and so on.

If not for all the above said reasons, because its human brain that creates a software which always in a amoebian form, the testing will exist..


Sunday, July 5, 2009

Scripts & Testing

"Scripts" as is called by many and more commonly known as Test Cases are seen as some kind of cage, rule, constrain by lot of software testing experts, especially the likes of Pradeep, James Bach and the list grows.

I like reading them and agree with them on lot of subjects, the likes of importance of exploratory testing, the importance of human intelligence. But one subject that I don’t agree with them as I do on lot of others is that of “test scripts make the tester dump”. With the very little time that I have spent testing applications, I believe “Test Scripts/Cases (going forward will address as Scripts) are one of the important artifacts of a testing process.

This is how I understand why scripts are important.

Testing as a process, a project should have a goal. The goals can be to find as much defects as possible in the software. I concur with Pradeep & Co (would like to call them the D-gang, and of course I am part of it as well but differences of opinion) that doing an exploratory testing (basically questioning everything that we see in a software) does help finding those issues. Here the goal is to find the things the software doing that it’s not supposed to do.

One of the test managers with whom I worked in the past used to tell me that there can not be a test case without an expected result. When I hear that, I used to ask myself “Why the hell not?” Of course I couldn’t ask them as I was a fresher and the person telling me this was one of the reputed Test Mangers of the organization that I was working for.

I do not agree with the statement of that test manager as the same way I do not agree with Pradeep when he says scripts cage him. Testing can have other goals as well. The context drives goals as well. “Finding if the software does everything that it supposed to do in all different scenarios or situations”; how about this as a goal?

In this context, as a tester it’s imperative for me to understand that as a user what exactly is expected from the software that am going to test. This is a guide for me to check the conformity of the software with the user’s expectations from the software. I call this as scripts or test cases and someone else can call this as a check list or may be anything else. After all, we live in a free country and everyone as freedom to express.

When I go a step above and see this test scripts, I see them as a tool. The utility of it is going to depend on the person uses this. As always, now the problem is with the unwise thought process that a person has while looking at test cases. It’s certainly not testing if the aim is to have all the test cases “Pass”. This is thought process is something that cages a lot of minds and not the test cases.