Home

Showing posts with label Puzzle. Show all posts
Showing posts with label Puzzle. Show all posts

Wednesday, August 15, 2012

QTP Challenge

Earlier, This blog post was supposed to explain how QTP identifies the objects but when, for curiosity, I typed in Google, I found 352 and more sites explaining the same. Some of them are so good that I didn’t find it useful to explain the same thing once again. It seems everybody knows how QTP identifies the objects. Still, if you have any concerned question, let me know by posting your questions in comment section.

So, when the initial idea was dropped, I thought to put a challenge on Object Identification by QTP. The challenge is very simple or at least it seems very simple but none of the QTP engineers I know could tell me the correct answer. This might be due to multiple reasons like:

  • They were too busy with their other daily work challenges
  • They didn’t find the challenge interesting enough
  • They didn’t want to spend time on something irrelevant of their daily work
  • They didn’t have tendency to explore about the new things
  • They didn’t have enough courage to take the challenges
  • etc. 

If anyone of you have one of the same reasons, this post is not for you. You can leave the post here and can continue working on something else. Rest of you, please continue with the challenge given below.

Challenge:

Their is a login page which have two fields: Login and Password. I have made some small changes in the code so that both objects have the same properties. Once, it is done I have added both these objects in the object repository and set the same properties for both of them. Now, the situation is:

  • Both of the objects have the same properties (except Logical Name which is not required for object identification)
  • Ordinal Identifier is set to none
  • Smart Identification is also disabled

Now, when I highlight, the QTP identifies the object correctly. The question here is how QTP is recognizing the objects correctly when every property of the two objects are same. Shouldn’t QTP display an error of existing of more than one object with same properties.

Download the Login Page and Object Repository for the reference.

Let me and others know if you have the answer or Please explore if you want to find out the answer yourself otherwise wait till someone post the correct answer. Please post your questions and answers as comments to this post.

(Credits to http://www.authpro.com/ for the login page)

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.

Wednesday, March 31, 2010

What is your sentence?

Scene -1

Sir, there is an issue here.

What issue?

We are populating the date and time by default; but the date and time is already scheduled for another appointment. What’s the use of populating the data if user needs to change the data?

So what do you want? We are displaying the current date and time here. Client has gone through the module and he didn’t complaint about it, then what’s the problem?

Earlier we don’t have the functionality to display the next available schedule. Now when we have the function, we can implement the function here. It will increase the usability.

Hmmm…. Ok, we will see later.

Scene -2

Hey Jags, There is an issue?

What issue?

Look at this buddy. In the month view of the appointment scheduler, you are displaying the appointments for each day. User is able to create the appointment by clicking on a day. But when user clicks on the days of next month in the current month view, the appointment form doesn’t open although you are displaying the appointments for that day.

It’s not possible. To create the appointment for next month you have to go to the next month view.

But if you are displaying the appointments of next month here then user wishes to create the appointment from here too.

It’s not possible.

But the same functionality is already implemented in Google calendar then why it’s not possible.

Client didn’t complaint about this issue. We will do it when client will ask.

If it is not possible then how will you do it then?

Everything is possible what client wants. We have other tasks too so we can’t do it just for your satisfaction.

You are not developing the things to satisfy me. We all here are working for client satisfaction.

Tester went to his Project Manager. He detailed the issue to PM.

Hmmm…. Ok, we will see later.

Scene -3

Sir, the module is still under test. There are few issues which need to be fixed before uploading the client site.

Is there any show stopper?

No Show stopper is there but there are many minor issues which can not be ignored.

Hmmm…. Ok, Let us upload the module today as we promised him. You carry on your test, find the bugs and assign them. After bug fixing we will upload the changes.

Next day, Client logged the issues.

Scene -4

Why did you disclose the issues to client when he was unaware?

He wants to know the issues in the module.

He was not aware of those issues. You could hide them easily. We could fix them afterwards.

Later if he finds the issues, he can conclude that I am not a good tester for his project.

We would handle the situation in that case. Now he is demanding for the major changes in the module which can cause late delivery and hence deduction in billing. You are on responsible designation. I was not expecting this from you. Well, never repeat the same.

Scene -5

Hey Jags, This is not right. Client wants to do the things in this fashion. What you are doing is incorrect. Do it in this way

Hey man, we are the developers, not God. Why you don't accept the simple things.

It is not simple. It is buggy. Client is asking for a dinner chair and you are giving him Potty Chair. Do as I said, it is the right approach.

Hmmmm....

After three days:

Congrats Jags, Client has really liked the module. Well Done boy. I was not sure that he would like the module. Good Job.

What does your Manager say:

On Scene -1

I am agree that it increase the usability but as I said Client didn't ask for implement the changes here. There is lot of work in the project, we can't spend time for the things for which client doesn't care. So I put the things on hold.

On Scene -2

This is a valid issue but if client didn't make a complaint it means he is satisfied with the current feature. In the limited time line we can't provide everything to client. We have put the issue in our To-Do list and if we can get enough time, we will surely fix the issue.

On Scene -3

Bad things are better than nothing. I have promised to client that I would deliver the module on particular date. Postponing the delivery can cause the bad credibility. So I decided to upload the module.

On Scene -4

Due to your stupidity, Client has known the issue which we could deal later. He gives us a long list of changes which has put us back from the schedule. The client will deduct the payment if project is not delivered on scheduled date and you'll be the only one responsible for the situation.

On Scene -5


I never knew that you also contributed so much in the module. I thought it was Jags who developed the module alone. I really appreciate your efforts but you must also agree that Developers are the real contributor in a project; if they are not there no project could take a shape. Your work depends only on their work.

What is your sentence?

Now as a tester what is your response? Are you agree with the Project Manager or you have different sentence. Share your point of view as Comments.