donderdag 7 februari 2008

Why you Indians never get to date! (and how to fix it!)


At my job we do a lot of off-shoring. As a result we have a lot of Indians running around in the office. You are very nice guys, always smiling, working like a horse being perfect employees and all. But you never seem to get a girl or be in a relationship. I know some of you are actually looking at some of our hot western girls and think 'mmmmmm ... I sure would like to get my hands on one of those'. But ... it never seems to happen!

And you know why? It's so very easy ... because ...

Like you guys reinvented and improved the whole IT business you also reinvented and IMPROVED the whole being a dork lifestyle. Seriously, just now, when everyone had a sigh of relief because our own dorks where finally catching on to the whole dressing thing and being social and all, (man, our own nerds can be seen nowadays in bars and clubs), you come along!

Most of you people look like you just stepped out of the eighties and into the office. I’m really sorry but you’ll never get a girl like that! Ask our homebred dorks, they’ll tell you all about it. So here are some pointers:

1. You can NOT wear dress pants with sports shoes. NO!. Seriously, do not do that. If you wore shoes half in between dress shoes and sports shoes girls could forgive you, but, nooooooo, you are wearing white track shoes, you know Nike air max (yes they still exist!). What? You’re all Olympic 10000 meter runners? Somehow I doubt it. Sports shoes to run, yes! Sports shoes on dress pants! NO! NO! NO! (please)

2. Talking about dress pants, they should be dark in colors, you know brown, black, dark blue. They can not be light blue or even worse, skin color. Where do you guys get those? Really, tell me, where can you actually buy those? The ladies do not like them (understatement). So when you get your next paycheck, go to a shop and buy new pants. But, pleeeaaassseeee, do not pick them yourselves. Go to the shop and ask the lady or gay guy at the counter to dress you. Remember, DO NOT PICK YOUR OWN CLOTHES! However stupid this may sound, you'll pick the exact same clothes you were wearing before, I've seen it happen.

3. LOSE THE MUSTACHE. I know you are probably a hot manly babe magnet with that huge hairy thing in your own country, but over here you are a cop from the eighties. You'll say 'but girls like cops and men in uniform'. Yes they do, but they don't like the eighties and you for one should not talk about uniforms (see point 1 and 2). So, shave, get rid of the whole walrus theme! I know they’re useful for doing the dishes and removing cobwebs at your home, but, just say NO!

4. Talking about hair, there's only so much hair a man can have. You guys have great hair, a lot of hair ... but ... it looks like an elephant took a dump on your head. Girls like a well groomed man! So ... call your local hairdresser (NO! not your local Indian hairdresser, choose another one) make an appointment (Do not forget to mention that you're Indian so that the man can clear his schedule!). Do not ask for something special; just ask him to fix it!

5. So now that you’re a well groomed, smart dressed, face visible sport-shoe-less man, our last step: Be social. You’re really nice people, once we get to know you, but boy, does it take a long time before anyone in the office actually noticed that you are a living breathing human being and not part of company furniture. Talk to people! Most of you look the first weeks as if you’re about to have a stroke or something. Have a chat, have a laugh, your pile of work will not run away you know, it can wait for 5 minutes!

So now you have it all! You’re one lean mean dating machine! Only thing left to do … step up to the hot blonde at the coffee machine and ask her out! And one last thing to give you some extra incentive … it’s true … western girls are really easy !!!

Happy grooming !

And no! There are no special occasions where sports shoes on dress pants are possible! None!

woensdag 6 februari 2008

Adding a live progress log to your test automation

Just an example how you can implement a live progress log shown in an IExplore window. Now you can follow your test prgress live on screen!

Proof of concept.

VBScript:

------------------

Set objExplorer = WScript.CreateObject("InternetExplorer.Application")
objExplorer.Navigate "about:blank"
objExplorer.ToolBar = 0
objExplorer.StatusBar = 0
objExplorer.Width=400
objExplorer.Height = 200
objExplorer.Left = 0
objExplorer.Top = 0

Text = "***** Progress Log *****"

Do While (objExplorer.Busy)
Wscript.Sleep 200
Loop

objExplorer.Visible = 1
objExplorer.Document.Body.InnerHTML = Text

For i = 1 to 10
add_log_line "Logline: " & i,1
Wscript.Sleep 200
Next
add_log_line "Done!",1


Wscript.Sleep 10000
objExplorer.Quit

Public Function add_log_line(line,nl)

if nl then
Text = Text & "<BR>" & line & "<BR>"
else
Text = Text & line
end if
objExplorer.Document.Body.InnerHTML = Text

End Function


--------------------

Schedule/execute testset run in Quality Center from Windows (VBScript)

You want to schedule and execute an automated test run every day at a certain hour. You need your results saved in QC. Here's a simple solution for scheduling by using following script in the windows scheduler.

-----------------
VBScript:

Dim QCConnectionSet
QCConnection = CreateObject("TDApiOle80.TDConnection")


QCConnection.InitConnectionEx "server_address" ' <--------------- Fill in server addressQCConnection.login "user", "pwd" '<------------------- FILL in user/pwd
QCConnection.Connect "domain_name", "project_name" '<----------- FILL Domain/Project

Set TSetFact = QCConnection.TestSetFactory

Set tsTreeMgr = QCConnection.TestSetTreeManager
nPath = "Root\test" '<------------- FILL IN PATH TO TESTSET

Set tsFolder = tsTreeMgr.NodeByPath(nPath)
If tsFolder Is Nothing Then

msgbox "error"
End If

Set tsList = tsFolder.FindTestSets("name_of testset") '<------- FILL IN NAME OF TESTSET

If tsList.Count > 1 Then
MsgBox "FindTestSets found more than one test set: refine search"
ElseIf tsList.Count <>
MsgBox "FindTestSets: test set not found"
End If

Set theTestSet = tsList.Item(1)

Set Scheduler = theTestSet.StartExecution("")
Scheduler.RunAllLocally = True
Scheduler.HostTimeOut = 100000

Scheduler.runSet execStatus = Scheduler.ExecutionStatus
RunFinished = False
while RunFinished = False
execStatus.RefreshExecStatusInfo "all", True
RunFinished = execStatus.Finished
wend
QCConnection.Disconnect
QCConnection.Logout
Set QCConnection = Nothing

---------------

Very crude! but it does the job! You just need an existing testset, the script will execute it at any time you want using your windows scheduler.
I'm sorry for the absolute lack of comments, but you're smart, you can figure it out. :)

Accessing IExplore from VBScript

So you want to access a Iexplore window that's already opened and on the desktop. Here's some sample code (VBScript):

This code will give a msgbox showing the URL for every open IExplore window.

----------

Set objShell = CreateObject("Shell.Application")
Set IEWindows = objShell.Windows

Dim IEWindow()

ReDim IEWindow(IEWindows.Count)
Dim i

msgbox IEWindows.Count

For i = 1 To IEWindows.Count

Set IEWindow(i) = IEWindows.Item(i - 1)
Next

For i = 1 To UBound(IEWindow)

msgbox IEWindow(i).LocationURL
Next

----------

Now you know how to connect to a IExplore window you can access all controls inside by programming the DOM (Document object model). It's a fairly easy model, look it up, google is your friend! :)

LoadRunner - Putting a double/float into a parameter

It took me two hours to figure it out, so I might as well share with the world. To put a 'double' or 'float' value in a new defined parameter in Loadrunner use following code:

---------

float nr;
nr = 0.01;
char strNr[4];
sprintf( strNr, "%1.2f", nr );
lr_save_string( strNr, "param_nr" );
lr_output_message("We are on nr #%s", lr_eval_string("{param_nr}"));


----------

output should be: We are on nr 0.01

PS: conversions to string from other datatypes are hell in C. (just venting)

The typical track record for test automation

I've been in a couple of companies that have some experience in test automation, and below in very short sentences I'll show you their typical track record.

They,

1. Hear about test automation
2. Think: Holy Grail !!
3. Call test tools sales people
4. Listen to sales
5. Believe sales (who doesn't?)
6. Only remember 'record/playback'
7. Go to management
8. Make them cum in their pants talking about ROI and total automated test coverage usable by business people
9. Hire cheapest junior test engineer in the universe
10. Tell him to automate everything (Don't forget to tell him about record/playback off course)
11. wait 6 months
12. See automation in action and feel like God
13. Wait for new release
14. Notice that the tests do not work anymore
15. Discover maintenance
16. Call test tools sales people again
17. Yell at them for not mentioning maintenance
18. Estimate size of maintenance
19. Stay at home with depression for six weeks
20. Come back to work
21. Throw out automated test suite
22. Get yelled at by management for not delivering on promises
23. Do research
24. Discover: stability of UAT, GUI dependency, Data control, suitable test cases, ...
25. Discover framework
26. Start over
27. Hire senior test automater
28. Make a plan of attack
29. Make a test framework
30. Start with most suitable test cases
31. improve framework
32. Maintain framework for new versions
33. Have a maintainable, usefull test suitethat's beneficial for your company!! woohoo!

You would think that it's easy to skip the first 22 steps, but one way or another you see it again and again. There's a million whitepapers on the net about test automation, please look them up. It will save you money (lots) and headache (even more).

Happy automating!!

dinsdag 5 februari 2008

5 reasons why John Rambo would make a good test engineer


(and 5 why he wouldn't)

John Rambo would make an excellent test engineer. Here's why:

1. If the sytem has one more flaw left, Rambo would find it, exploit it, and tear the whole system appart. Not only the sytem, probably the whole computer room and the building with it (managers and developers included). Rambo tests until there's nothing to test anymore.

2. Being in forest and swamps all of his life, the man is not afraid of bugs, he probably eats them for breakfast. He doesn't see annoyance, he sees high energy snacks. Bugs rivitalize him. And not only those easy to find functional bugs, no, you know those pesky little memory leaks. Ha!, when Rambo looks at his screen these memory leaks would ask for a defect tracker account and report themselves!!

3. Performance testing. That's a no brainer, the man is his own virtual army. He embodies at least a million virtual users. If Rambo, presses 'enter' after filling in his URL bar in firefox, all major internet DNS servers go down and the google headquarters explode. The whole internet would vaporize under the load he would generate (and that's when he's pressing enter with his 'pinky')

4. Test automation. Did you see how he shot that helicopter in Rambo II. come on doesn't that say enough, this walking machine of death uses tools like no-one used them before. This guy could automate your regression suite by writing down "test automation tool" on a piece of paper and waving with it. Your regression suite could run every testcase made since the big bang.

5. Deadlines. You can put your deadlines anywhere you want, Rambo will save the day. 'Failure' is just not an option. According to him, it is not even a word. (it must be noted however, that there are multiple words that Rambo apparently has not heard about, but this not an issue here)

So far an excellent test engineer ... but then again .... here's why things could get ugly:

6. Rambo does not do process. He has lost his TMap somwhere in the jungle (or tossed it away, he doesn't quite remember), he doesn't do V-model, he is the original (upper body) V-model, the alpha and omega of software testing. Any use of process would just cramp his style of exploratory testing and plain tearing stuff appart.

7. Rambo does not report defects. As there is no software flawless, while reporting a defect, Rambo would find a bug in the defect tracker, exploit, an tear the whole .... you know what I mean, see point 1 if you don't remember. Rambo would actually have to be forbidden of touching the defect tracker.

8. There would be nothing left to fix. After Rambo is done testing, well, ..., that's it. There would be no fixing of found bugs or finetuning of performance, there would only be 'aftermath', there would be an emergency UN meeting, and some memorial somewhere but there would not be any bug fixing.

9. Social skills. Ok, seriously, the man has the social skills of a bucket of carrots. He would get in arguments with developers and bussiness people about 5 minutes into the job. This wouldn't be so bad if it weren't for the fact that he'll probably kill them all, which would probably fall bad with the stock holders.

10. Rambo does not like a desk job!!

Would he be an excellent test engineer or not? I'm undecided, if anyone knows the fact that would tip the scale one way or the other, let me know!!