Category Archives: Allgemein

QR Code – Blink heuristic

I was talking with a friend of mine after a little Selenium introduction session and we came to the topic of QR codes and how they use it in his company.

Basically an encoded image is created, which allows you to download something.
My friend pointed his HTC mobile with the “Barcoo” app to my screen and it recognised the QR code and downloaded the image immediately to his phone.

The curious guy inside me was hopping up and down (who said “tester” right now?).

I was intrigued as how an (QR code) image could transfer this information.
And I was already thinking ahead as how this could be misused.

So we went online and looked for an QR generator (its incredible, but you nearly always can find a “generator” for anything..). Sure enough we found one.

First session: Skimming what this generator is about and what it can do.
One can encode a lot of different information and channels, there are SMS, URL or business cards (vCard).

Second session: Is it working?
We tried the obvious (to us) choice; we inserted “www.google.com” into the URL code.
First observation: As soon as the first character is inserted, the QR image is created. While entering more characters, the QR image changes.

HINT: The usage text says “..keep below 300 char for less complex QR code..”. Nice try.
So it should be possible to post as many characters as I like into it?
We used the QR image for google on my friends mobile and *tata* it opened the browser and showed the google site.
We didn’t get into it to try out to embed a full query in the URL (for example: open google result list for “ET tester” http://www.google.de/search?q=et+tester&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:de:official&client=firefox-a ).

While I was messing around with the “Text” field and just randomly (really? mh) entering text, i thought i saw some pattern, which i wasn’t aware of before.

Some of my synapses were working overtime and “Pop! goes the weasel” a mental lightbulb blinded me!

(BTW. I like “pop goes the weasel” and always wanted to use it. It is just as lovely as “anyhoodles” (thx to RaspberryX for hooking me up on that term).
Both have no real meaning for Germans, which makes it even more cute to use.. you have to love the English every now and then 😉

Anyhoodles.. where was I? Ach ja, pop goes the weasel: BLINK heuristic!
Thats what my synapses were leading me to, when i saw some pattern in the QR image.

I heard and saw the BLINK heuristic in Michael Boltons RST session in Berlin, 2010.
Here is the article about it for further reading.

Third session: Applying the BLINK heuristic consciously
I hacked in some characters into the text field, c&ped them (sidenote: I thought I made *that* one up, but sure enough .. I googled it and it had like 11000 hits) and begin to insert more and more and see how the pattern evolves.
Observations: It always has a kind of “black” square in three corners. Second, depending on the amount of characters inserted, a kind of “white” square showed up in the remaining corner. After many more characters more white squares showed up.
The size of the squares seem fix: 6×6 for the black and 3×3 for the white square.

Amount of characters in “SMS Text” field:
0 = no QR image (needs at least one char and the area code)
1-7 = no white square at bottom right corner
8-118 = white square(s) are beginning to show up, starting with one in bottom right corner
119+ = full white square pattern show up.

HINT:
– Area code entry is also required, otherwise no image is created; so the QR code has / can have mandatory fields.
– The finer the black/white filling of image, the more clearer the squares can be seen.

Last session: Reflecting what we had learned.
– Without researching the functionality of QR codes and this specific generator we gained insight and knowledge.
– We found some boundaries, as in mandatory fields, which are required to create an image.
– Unknown, if this boundaries are artifical by the developers or by the QR technology.
– We saw some visible behaviour and pattern.
– Unknown is, if the white pattern already there from the first entered character and could be visible when certain data is entered? I used like 1234567890.. maybe if I use abcde… etc. the white square would be visible?

All in all, what began as a chat about a certain technology turned out to an impromptu learning session.

The “Imposing” Mentality

While I read and commented about Pradeeps latest post I recognised that my comment became very long and turned in another direction, so I decided to write the whole story here (I am sure, there are similar stories out there, but I will add my 2 cents anyway).

A few years ago I was working Bahrain (Middle East, 1 hour north of Dubai).
Once a year there is a fasting period called “Ramadan”.
During that time it was legally not allowed to drink, eat, smoke or what-ever-stimulates the body (yes, *that* included) and mind.
This law applied to all inhabitants; Muslims and non-Muslims alike.

Out of courtesy I respected that law in public and when I was at other working collegues offices.
Luckily for me, I had my own office, so I would have a drink and snacks stashed (no food places open, mind you) in my drawer; hidden when others were around (the law had fines attached of course.)

Our office boy Ali still brought me my coffee and when I asked him why he is so calm about me not fasting or even drinking during the day, he just said: “It is my faith and I need to have a strong will and not be tempted by others.”

This made me speechless, cause it was such a beautyful and insightful statement.

Why should something which I decide to follow for *myself* be imposed to *others*?

I personally don’t eat tuna and will never travel to the USA; but I would (hopefully) never force others to follow my lead (regardless if I would have the power to make them so or not).

I also quit smoking in 1997 at a KISS concert in Hamburg, but I am okay with people smoking in my vicinity and even enjoy a cigar or shisha every now and then.
==> “It is my decision and I need to have a strong will and not be tempted by others.” (Ali, Bahrain)

I think, there are many, many examples for this:
– Vegetarians versus carnivores
– Non-smokers vs. smokers (even more extreme: ex-smokers vs. smokers)
– Religion A vs. religion B
– Metrics vs. non-metrics
– Tuna eaters vs. non-tuna eaters
– etc.pp.

I like to end with a quote, which I never understood when we had that topic in school, but as I grow older, I respect it more day by day:

“Die Freiheit des Einzelnen hört da auf, wo die Freiheit des Anderen beginnt.”
(The freedom of the individual stops where the freedom of others begins.)
Loosely taken from Immanuel Kant.

If I had to make a wish for the new year (and any new year to come), it would be that humankind would learn step by step to live with each other and try to accept the other as much as possible.

(It might be sociological not possible, since human tend (and need) to define themselves in “groups/peers”, but it is nevertheless my wish:
“.. Characteristics shared by members of a group may include interests, values, representations, ethnic or social background, and kinship ties..” Wikipedia

Sisyphos as a tester

Sisyphos

“Aye, and I saw Sisyphus in violent torment, seeking to raise a monstrous stone with both his hands.
Verily he would brace himself with hands and feet, and thrust the stone toward the crest of a hill, but as often as he was about to heave it over the top, the weight would turn it back, and then down again to the plain would come rolling the ruthless stone.
But he would strain again and thrust it back, and the sweat flowed down from his limbs, and dust rose up from his head.

Online: www.perseus.tufts.edu
——————————————————————————————————-

Sounds familiar? Well, at least for me it rings some bells.

As a short summary and introduction:

Sisyphus is a figure in Greek mythology. He was a mortal, who tried to cheat the Gods and got punished for it. The punishment was to roll a heavy stone over a hill, which *always* would roll down in the last minute. And this till Eternity.

Lets forget about the background of Sisyphus as a mythical person and just focus on the task he became “famous” (more fitting: “infamous”) for.

The setting:

1. Sisyphus:

The archetype of a lonesome person. Just a person doing what needs (?) to be done.
Maybe not lonely in a sad meaning. We don’t read about his feelings or thoughts. But in my opinion he is still giving a good show by not letting the situation get to him.

2. Stone:

A placeholder for something worth pushing, but in the same time that cost’s a lot of effort and sweat.
It is *always* a stone. No forget that. Sometimes it is “just” a stone. More often it is a huge effing boulder. The shape and material may vary though.

3. Hill:

The hill is the symbol of passive opposition, as an obstacle for Sisyphus and his stone.
It needs pushing, sweat and effort to overcome the obstacle. The hill is not *actively * opposing Sisyphus, it is just the way it is.

How do I see this allegory?

Sometimes you find yourself in a job, where you see from the inside, how the structures and internal processes really are. And you might not like them or have the power to change it for the better. Plus I know quite some people, who are the sole testers in their company, me included.

So how do you handle such situation?

There are (at least) two ways: Be despaired and see it as a punishment.
Then it feels like “Eternity“ and dread and lethargy will follow soon.
People will get disconnected from their work and don’t feel good any longer. They will just do “9 till 5“ and no longer bother.

Or, and that is my view, see it in a different way:
It is a job which needs to be done and only you can do it. They depend (in a good meaning) on you and you have the will strength to do it.

Think about it… why is Sisyphus not just giving up?

Hey dude, just let the stone rest and take a break. Or read a blog. But not Sisyphus, no way.

Again and again he starts his journey. Why?

Is he convinced about the task and full of hope that one day it will work and the stone will reach over the top.

Is the process of rolling the stone and feeling his own sweat and effort a “good” feeling and justifiable in itself?

And last … what happens when he succeeds? *What if…*

What do the stone and the hill mean for us testers in this picture anyway?
Why is it so important to roll the stone in the first place?

Whatever it means for me (and you), it is a burden and a purpose in itself.
We want to put our sweat into it because we know, it is worth it.

The stone can mean the current software build or the distribution of (test) knowledge and wisdom. Maybe just the next test cycle or even a promotion.

Is the hill the “quality” against we try to push the stone (software)? Or is it the process of trying to transfer the “knowledge” or “understanding” of Testing to people? Maybe it is the internal processes and inertia.

Back to the question… what if…
What if the stone goes over the top?

Staying in the fictional boundaries, it has to go downhill.
It never says, what is on the other side.

A plain landscape, where the stone will come to rest and it is a smooth path furthermore?
A river, where the stone will drop to the ground, unreachable and unrecoverable?
Another hill? Higher or smaller?
Will the stone be an obstacle in the path?
Or an element to gap a cleft? What would be the meaning of the cleft sides?

If asking questions is a skill… I am sure, I am doing fine. It is the answers that are causing pain.

I think, I conclude with the universal “The longest journey begins with a single step (Lao-tzu (604-531 BC), founder of Taoism).

Even when knowing that my stone and hill will be there tomorrow, I believe that one day, I will push it over.
And get the improvements done or the change in process or a better understanding for Testing.

I am stubborn and confident enough to enjoy my own sweat and effort for the benefit of others.

——————————————————————————————————-

There, too, the hard-task’d Sisyphus I saw,
Thrusting before him an enormous rock.
With hands and feet struggling, he shoved the stone
Up to a hill-top ; but the steep wellnigh
Vanquish’d, by some great force repulsed, the mass
Rush’d again, obstinate, down to the plain.
Again, stretch’d prone, he toil’d; sweat bathed his limbs,
– And thick the dust around his brows arose.

Via Google Books: WILLIAM COWPER, Esa.

—————————————————————————————————

„Und weiter sah ich den Sisyphos in gewaltigen Schmerzen: wie er mit beiden Armen einen Felsblock, einen ungeheuren, fortschaffen wollte. Ja, und mit Händen und Füßen stemmend, stieß er den Block hinauf auf einen Hügel. Doch wenn er ihn über die Kuppe werfen wollte, so drehte ihn das Übergewicht zurück: von neuem rollte dann der Block, der schamlose, ins Feld hinunter. Er aber stieß ihn immer wieder zurück, sich anspannend, und es rann der Schweiß ihm von den Gliedern, und der Staub erhob sich über sein Haupt hinaus.“

Homer: Odyssee 11. Gesang, 593–600. Übersetzung Wolfgang Schadewaldt

Insight and Reflextion on TeamSTAR 2010

While the competition of TeamSTAR 2010 has just opened and is still going on, i already can lean back and reflect, what i learned from this lesson:

I am impressed with most of the finalists. I like their approach as much as their professional videocut.
Makes me wish in hindsight to have spent some more time on preparation and technical setup… Anyways.

I had fun, liked my idea (if i can say so myself) and it was a nice team event.

What else?
Had to cope with a kind of jealous and dispirited emotions.. not nice as such, but at least a lesson to learn how to cope with it.. 🙂

Another thing, which was also mentioned on TesterTested blog and which might have come true here as well: The voting system.

I understand, that setting up a system needs to balance between ease of use (less people would use it, if the hassle factor is too high) and exploit-proof on the other hand.

The team from EuroSTAR (thanks to Kevin for all the patience he showed) did a good job, compared to the VideoSTAR voting earlier to use. That voting was way too easy to fool and misuse.

Now the only thing left to consider, in my very personal eyes, is how to implement a kind of “fairness” factor.

(Here we can safely leave the area of EuroSTAR).

This of course is true with most (all?) kind of public voting/elections.

While it is legit to rally friends, collegues plus people who actually like your topic, it always has the risk, that numbers matter most.

Its a double-edged sword.. one has to respect the majority, but should numbers really be the only legitimate factor..

EuroSTAR 2010 – TeamSTAR competition

Last week i saw the TeamSTAR news on the EuroSTAR website. A Team of four people could make a small (2 min) video entry, upload it to Youtube and get the chance to win the team tickets for the testing conference.  With a price tag from 850 to 2200 Euro,  i thought to myself to give it a shot. While in between some tests and waiting for the machines to process i scribbled down the rough idea, which came to mind.

Our company is quite global. We have production centers ranging from USA via Romania to India and Cambodia. Our production managers are working near-shore in Brighton and Bucarest.

Our headquarter is in Hamburg; which by itself is an old maritime city with trade roots dating back a millenium and first mentioned in the 7th century. Global and weltoffen1 by definition.

Anyhoodles, back to the topic. My idea for the video clip was based on the “global” idea. Even in the company we have a wide range of nationalities and languages; as is in the Test department.

How to show that and relate it to testing in the same?

My idea was to let the colleagues speak a few sentences in their own languages (basically a “Hello World, my name is Maik and i like to go to EuroSTAR 2010..etc.).

This gives the unsuspecting viewer of the clip a Babylonian language mix.

At the end of the clip i connect these single parts with the diversity of testing.

Each person brings in their very own experience.. influenced by there culture, gender and profession background.

Testing is as diverse as language.

We got black, white and grey box testing, we got functional and non-functional testing, we got unit, system and integration testing, we got ISTQB, ET and Agile Testing2 etc. pp.

Well, not a new breakthrough idea, but i just wanted to point it out; which i did in this clip:

Youtube – TeamSTAR 2010 – Diversity in Testing

1 cosmopolitan
2 Agile Testing

Bug reporting “on the fly” or with “timely distance” ? (Focus – Defocus)

Today i used BBTestAssistant to record some sessions.
I put my notes directly into the tool to make best use of the integrated timestamp and the option to jump directly to the scene in the movie. (HINT: Move mouse to bottom of screen and the notes window pops up and pauses the recording).

At the end of the day i went through my recordings and the observations and sorted them; mostly transferring them into the bug tracking system (TFS) , made nice screenshots with markers, etc.pp.

One of the observations i had already (mentally) put as “bug” and written some notes accordingly.

Now.. with some hours distance i saw that i missed another reason, why the behaviour could have happened as it was.

So i kept the entry on hold and made a task for myself to retest and verify with my new finding/assumption.

Next day i retested the observation with my new information at hand and – vòila – it wasn’t a bug, but a misunderstanding on my side.

Long story short:
Another example, where focusing — defocusing was helpful.

But.. Do i have the time for this in the daily treadmill? Mh, not always.
How many bugs were reported, where i could have provided more details? Or where it wasnt a bug at all?

LESSON LEARNED:

Take the time if schedule allows to gather observations and review them at a later stage.

Odysseus, Hercules or an unknown crew mate?

Good question eh?
While i am not suffering from hybris, sometimes i feel like i do my part of the heroic deeds, the great heroes of their time did.

I like to invent my own version of the cruise of Odysseus and his ship.
In my version, all kind of other heroes are aboard his ship as well. Hercules, Icarus and you-name-it.

Makes its easier to find testing analogies..
Hercules cleaning out King Augeas stables?
Sysiphos and his stone?
Prometheus and his quest to give the fire to mortals?
Hercules (again) and the Hydra?

Maybe Hercules should have been the captain of the ships in the Odyssee… and why dont the ship has a name? Lets mix it up totally and make Hercules the captain of the Argo…
Mh, something to ponder about.

And who i am in this fantastic storyline? Well, i like to see myself currently as the unknown crew mate.
Not in a sense like in Star Trek, mind you.
Remember? You see Captain Kirk and his mates with an never-seen-before crew member? Well, dont bother, he is dead as soon as he leaves the teleporter…

No, i think more of the unknown crew mate, who works and lives side-by-side with the heroes and puts his effort into the mission of the whole gang. Maybe mentioned in a historic footnote. 😉

Avast and off we go.

A Testers odyssee

To keep in line with the theme of the blog … why did i choose it in the first place?
Well, for one thing i am a sucker for greek mythology and especially this story seems fitting.

People with a goal but not a certain route and a lot of obstacles and dangers in their way.. i see an analogy to testers/ testing here.

So lets enjoy the ride.