All posts by Mindful tester

Tricky Driver Dilemma

Ability to learn

Decades ago I had a colleague without a driving license. In case of trouble he would take public traffic or got a ride of his boss. His boss decided to give him driving lessons during office hours. It saved the company time and money.

Suppose you have a delivery firm. Your company picks up packages and delivers them to the right addresses.

It takes about a few months to get a driving license for a car. But sometimes a motorcycle is more convenient. This will take another few months. If a lot of packages must be delivered, then another driving license for a truck is needed.

For super fast and expensive delivery you can use a spacecraft and …

This is the point, that a favourite quote of a project leader is used:
“This is no rocket science. ”

Searching testers

OK time for the real message.

Suppose you are a manager of a Dutch software delivery company.
You look surprised, but you mentioned Continuous Delivery. Let me continue with writing.

You happen to need a tester. On the Dutch tester job market there is a shortage of qualified men and women. The basic requirement is test automation.

A paper with "Qualified" lies on 2 steps "Advanced" and "Expert"

Why is test automation so hot?
My guess is DevOps or competitors.
But you are the manager and you have all the clues.

So you have to hire consultants to get things tested. And that is quite expensive.
At the end of the project or sprints you have less profit and less experience in your own workforce.
A graphs with a vertical axis with "Profit" and a horizonal axis with "Time" containing a red slow rising line with "Consultant" and a green steeper rising line with "Employed tester" above the red line

A graph with vertical axis with "Company expertise" and a horizonal axis with "Time" containing a red slow rising line with "Consultant" and a green steeper rising line with "Employed tester" above the red line

The only solution is to hire and train testers. Just like the driving license story it takes months and probably years to get testers at the right level.

New testers should be hired for their ability to learn. Of course you can wait, until an experienced test automation tester knocks on your door. Maybe you are lucky this year.

Basically you have a vendor lock in. You desperately need a consultant for the test automation.

A piece of paper with a picture of a lock and "Lock" lies on a step with "Expert"

According to me there are more unskilled testers willing to learn than qualified testers looking for a new job.

A tester is just unlucky, if he or she was not able to touch tools like Selenium and Cucumber during project or sprints.

Teaching matters

One of the things I learned is Zone of Proximity. If people are in the same zone, then they can teach each other.

Stairs with steps "Intermediate", "Advanced", and "Expert" on a floor "Beginner". A rubber band lies on the step “Intermediate” and “Beginner”

There are companies which really want qualified or expert testers.  It is too difficult to  teach test automation to testers with beginner level. In this case they are outside the Zone of Proximity. It would cost your company too much time and money.

Stairs with steps "Intermediate", "Advanced", and "Expert" on a floor "Beginner". A rubber band lies only on the step “Intermediate”.

  • A solution is to lower the requirements for testers and invest more time in teaching. This might attract more candidates.
  • The other option is to keep the requirements and hope high to attract the expert tester. Wait a minute. Wait a week. Wait a quarter.

In the ever changing world of software delivery you need a new edge: how well can you teach testers test automation?

We need to speak. Let’s talk.

Especially, if you want to speak at a conference in 2019.

My New Year’s resolution is to speak at one conference. But it takes a lot of actions from my side.

This year I tweeted about sketch notes for a workshop. This triggered me to write this post about using visual tools in 3 acts.

Ready? Set. Read.

Act 1

A conference does not need a complete presentation in advance. So this is a huge time saver. Call it a lifehack.
Serious. Hack.

I always look at the theme of the conference. Most of the times this leads to 2 proposals. A proposal is a summary of something.

Something is what I am mulling about in my brains. I only have to put it in a mindmap.

There are several structures. A favourite one is an experience report. STAR is rather useful:

  • Situation
  • Tasks
  • Actions
  • Result

Once I was a test coordinator and I was requested to execute a performance test. I hired a performance tester. The website could handle the load properly, but the web masters had to cope with long delays. So I opted for a hybrid approach: a computer for a load test on the website and human testers acting as webmasters.
The result were acceptable response times.

Another way is to address nagging questions. This could lead to a presentation about exploratory testing and regulations.

What about this pitch?
I used Exploratory Testing in the healthcare domain. My tests passed audits in 2 consecutive years.
Pretty cool.

A nice workshop is based on exercises. No sweat no gain.

Structure is something like 1 exercise per hour including setup, doing and reflection.

I always go to the submission form and find all questions in advance. While submitting I prefer copy and paste. I copy the text in the note of a branch in a mindmap and I paste the text in the answer in the submission form. I try to avoid situations like ‘That will take another hour to answer this question properly’.

Most proposals have the following elements:

  • Info about speaker including speaking experience
  • Description
  • Summary
  • Takeaways

Okay time for a visual tool. Enter the mindmap.

For more details just click on the pic(ture).

Mindmap with branches exercises, title, and English alternative
In case you noticed some Dutch words, it is my mother language. So I translated some words in English. For the record this proposal was accepted after more than 2 years.

At the office I worked with TDD. This lead to this mindmap.

Mindmap with branches timeline, setting, references,termen, summary, description, metadata, and Oud

The description. summary, and takeaways are shown in blue and bold. I wrote a lot of thoughts in the branches. This proposal was rejected several times, so I turned this in a blog post serie.

This year General Data Protection Regulation needed a bit of exposure.
A mindmap with the branches activity A, test ideeeen, Zelf, Reported website, mailings, purchase X, purchase Y. and Blad
This proposal was not accepted and also this one was transformed in a blog post serie.

This minimal mindmap was a remake of other mindmaps.
A mindmap with the branches Exercises, Proposal, and Writing
It took me several attempts to get my workshop for blogging accepted for a test conference.

Act 2

The last years I use a lined notebook to make sketchnotes. It is my way to be creative in a visual way. I feel like a Merry Potter.


“A lot of people think you can only use a laptop to write blog posts. Well, this picture shows my tools I use for blogging. And yes, marker and paper have impact on my writing. Sometimes I have to rewrite whole sections.”

Music notes followed by ‘Spotify iTunes”. “MUSIC” has an arrow with “?” pointing to “Blogs”.
“Would you please raise your hand, if you use Spotify or iTunes?
Thank you. As expected most people listen to these services.
Personally I think music is important.
I see people nodding.
Question: why do you not use music in your blog posts?”

"Getting in the flow " followed by a curly lined arrow. "movement" pointing to a typewriter with "Type" and a pen with "write".!
“One of the difficult things with blogging is paralysis. What is my first section, first sentence, or my first word? What I do, is start writing and get in a flow. Movement of the body also leads movement of my mind.”

"Finding" Picture of fish "Marlin"!
“When I blogged a post, I discovered the heuristic ‘Finding Marlin’ Marlin stands for ‘Make a real life impression now’”.

Readers recognise situations like conservations. I just describe what I see and hear.”

"Start" pointing to "0.1" and versa. The same for "Start" and "0.2". The same for "Start" and "0.3". Under picture "etc. Retell.”!

“A good story develops over time. The first time I write a story it is bland. It does not excite me. So I change a few words for more speed and flavour.”

“Meta Blogging”, followed by a rectangle pointing to a rectangle pointing to a cloud. There is also an arrow from the first rectangle to the cloud.!
“A blog post is something I put in the cloud. First I make a file. The text including markup instructions I copy to the cloud for multiple edits and  publication. I blogged about this process. The most left rectangle is the blog post about writing blog post and the resulting blog post. I call it meta blogging.”

A watch followed by "Time Traveling"!
“This trick is a nice one. In the blog post from 3 October 2016 I was really delighted to be invited to speak for my first workshop at an international test conference covering my travel and accommodation costs. The post contains:
‘The fun has started.’
It points to a tweet of 6 September 2016 with the text ‘Yes seriously’.

It looks like I did some time traveling: blogging in October, tweeting in September, and finishing blogging in October. I only wrote towards the tweet, that contained my punchline.”

Act 3

Most of the times I got ideas for pictures from my sketch notes. In order to avoid copyright issues I use my own pictures and sketch notes. Or ask and get permission.

While studying User Experience, I heard about a designer making 50 designs in 50 days. I really liked his work in Amsterdam.
As a Dutchman I am biased. Of course.

Back on course. He made a booklet for frequently asked questions. There were 4 categories with questions. In 2 steps an answer for question was likely to be found.

Now I had a writing exercise for a blogging workshop. Um. Wait, I could use a similar structure for this part.

4 quandrants containing a snail, signpost, someone looking up to a bar, and an empty thought balloon!

  • Snail  meaning “Slow”
  • Signpost meaning “Direction”
  • Empty thought balloon meaning “No idea”
  • Someone looking up to a bar meaning “Bar too high”

I made this nice obstacle map. Attendees could place a sticky note on the map. With 50 attendees I could get a quick overview.
Let’s get visual.

But how to keep up with a beamer? I had 20 mini presentations to handle questions.

Scrolling
is boring.

In my mindmap I placed links to presentations. My first version was solution driven.
Wait, how was I supposed to jump to solutions?
No idea.

I changed the solution to verification of the right context. What were the symptoms? I also would ask some additional questions. Nothing is worse to misinterpret a problem encountered. That is the moment my voice start to Rumble Or … I start to Fumble For …

OK time for a little demo:

A mindmap with branches "Direction", "No Idea", "Slow", and "Bar too high"!
Using the presentation mode only the speaker – that’s me – can see the mind map. I click on “Direction” and all subbranches are opened. Then I click on “How do I write this down? ” and my first slide is shown for the attendees.

TExt balloon containing "How do I write this down?"!

“So basically this is the question, what you are struggling with.”

A tweet showing a photo of "Perron 9 3/4" at Utrecht Central Station. It is overlapped by "Time for magic"!
“I took this picture at a Dutch railway station. ‘Perron 9 3/4’ can be translated to ‘Platform 9 3/4’. This seems impossible.
Writing a blog post looks like magic for a lot of people. Let me take this as a starting point.”

Eye and "Characters"!

“If you look to the books about Harry Potter, there are several characters. It is not all about a single hero. Every interaction adds to the story. If I write blog posts, I can use different views like the tester, the scrum master, or the manager.”

Disclaimer

This blog post does not offer 100% acceptance success of proposals. See act 1. Writing proposals and making talks take a lot of practice. And some visual tools really helped me.

BTW

if you are still hesitating to talk, please consider http://speaking-easy.com.

2024 Testing

This year I wrote some blog posts about legal and certification stuff. like January Testing and May 2018 Testing. So it would be appropriate to shed some light on accessibility and laws.

Disclaimer

I am not a legal expert. So please have a look at my used sources. Or contact a legal expert.

I am just a tester finding test ideas about accessibility. Thanks for joining in advance.

What?

During #30DaysOfTesting I recommended to follow Karl Groves and Albert Gareev on Twitter for accessibility. Karl had interesting news for European software suppliers. Some law for accessibility was coming.

Accessibility is coming to EU.
[On the melody of “Santa Claus is coming to town.”]

I started my search engine and found the European Accessibility Act or EAA.
Great, a new abbreviation for upsetting the PO.

On November 8 the EU wrote a proposal to improve accessibility. In section 3.5 “The proposal” of Annex 1 is written, that the implementation should take place within 6 years.

A lot of readers might think:
“No worries, mate.
2024 is beyond the horizon.”

So what?

A lot of companies would think, that this is a rehearsal of the GDPR situation. A lot of companies still think, that everything is under control. Just have a read over a forgotten test.

Okay, a typical reaction about accessibility is:
“There is no law in place.”

Let me give several comments to this statement.

  • It is not ethical. People are dependent from the internet. There are online shops, online bank portals, online government points of access, and so on. People with limitations have a right to use them.
  • There are human rights and right no 9 states, that things must be accessible. Basically the EU bought companies some time.
  • The global organisation World Wide Web Consortium or W3C created Web Content Accessibility Guidelines to help people and companies to make applications accessible. WCAG or Web Content Accessibility Guidelines is mentioned in EAA. So it is a set of practical information to make websites accessible.
  • Actually there are American laws for accessibility.
    These laws are based on WCAG.

    Accessibility is coming from the States.
    [On the melody of “Santa Claus is coming to town.”]

    Companies are being sued because of these laws at this very moment. So watch out with shipping your software to the States.

  • Websites for European institutions must be accessible.
  • Maybe at the end of this blog post I have some other comments.
    : )
    Just scroll down and up.
    I can wait.

What now?

As a reader you have the right to ask for test ideas.
OK, let’s have a look at an OK button.

  • Is it possible to navigate to this button using the keyboard?
  • Is the contrast of the text “OK” and the background big enough?
  • Is OK written in clear font?
  • Are symbols and colours used to indicate, that a press of the button is a confirmation?
  • Is OK not offensive in this context?
  • Does the screen reader recognise the OK button?
  • Etc.

Imagine the dialog with the “OK” button.
Roll up your sleeves.

  • Are the consequences of pressing the OK button clear?
  • Is a pop up dialog really necessary?
  • And so on. And so forth.

What are we waiting for?

It takes time to find the right combination for accessibility.

Did I already mention, that American companies have a clear advantage?
Or the fact, that government websites in the Netherlands must be accessible to a certain degree.

Accessibility on Dutch goverment websites.
[On the melody of “Santa Claus is coming to town.”]

GDPR – The forgotten tests – Test 3

[Update July 30rd 2019] the last weeks I did some research and discovered that my advice was wrong. So I removed it.

My initial take was to describe a situation, that was not GDPR compliant. But I was wrong, so I wrote down the latest status .

This blog post is about the mysterious status code 451. It still contains some really interesting information.

[End update July 30rd 2019]

Disclaimer

I am not a legal expert. So please have a look at my used sources. Or contact a GDPR expert.

I am just a tester finding test ideas about GDPR. Thanks for joining in advance.

Experience report

This is my way to reflect on my research in GDPR of the last months. It took me lots of hours.

If I missed a legal or W3C link, you can always contact me. I am happy to update this blog post.

This spring I prepared a workshop about blogging. I tweeted about the use of sketch notes to find fieldstones. It got attention from @ConstanceHermit and Mike Rohde.

Mike had a familiar name. I bought his book about sketch noting.
He asked me for a sketch note for testing. OK. Wow. WOW.
Sure no problem.

I only had to wait for a good opportunity to put his request in practice. After a few months I saw a tweet about code on a web page:
“451: the website cannot be shown because of legal reasons.”

I visualised some scenarios and found some problems in the chosen solution. In case of impatience you can skip to the end of the article for the sketch notes. Be my guest.

Numbers are fast to communicate. If people want a pizza and call numbers, then I can go to the website and just enter the called numbers.

A pizza menu was used to abbreviate the pizza names: 16 is pizza Salami, etc. This way a protocol was set up.

The internet Hypertext Transfer Protocol is used for web sites. Status codes like 451 provide information to the user.

The problem with being a tester is to make an understandable message. This is quite hard. It is like telling how a car works without using names of car parts. I wanted to put 451 in the sketch note, but that was intimidating. I also skipped flow diagrams.

I also wanted to show off with test techniques. This was again: Not done. This is only nice for testers, but this is no good for people unfamiliar with testing. I can guarantee you that their number is way bigger than the number of testers.

Several drafts later.
One sketch note became 2 sketch notes. First I drew with a dark marker, then I used other markers for more details.

Then I set a new deadline for myself. I would use the sketch notes in a presentation. If a speaker could not make it at the test conference a week later, then I would volunteer. GDPR is still interesting stuff for testers. In legal terms it is good for the public interest.

Now I had to check my picture. And I hit the wall. It hurt.
Access is denied to the website because of tracking without consent

451 was used for legal demands. I clicked on the link to the official request to add an extra code to the HTTP protocol.
This looked pretty official.

In this case the ministry of justice contacted the internet service provider, which in turn shows a 451 to the user. Sorry access denied.

So this was not about web sites silencing themselves.
So all the hours spent were for nothing. I lost hours of work. I felt miserable. This is part of research.

The weekend before the test conference I looked on the internet. This time I searched on 451 and GDPR. The blog post ‘Is http 451 suitable for GDPR blocking?’ popped up.

So I started my due diligence.

Is it right
What I write?

The author is Terence Eden. That was the guy who had the idea for 451. I looked again in the official proposal for 451. Terence was mentioned. So my sketch note was almost good.

So I only had to change the picture. And I was all set.
Access is sometimes denied to the website because of tracking without consent
I shared my deadline with my kids and they talked about it the next days.

The evening before the conference I checked my sketch note about citizenship. GDPR was quite vague:
“Data subjects who are in the EU” [Article 2]

I could not find something about nationality. So a Dutchman in his own country is a data subject in EU. But a Dutchman in the US is not a data subject in the EU. Did I miss something?

So again I was facing a legal problem in my sketch note.

I used my search engine and found several answers on my question: is it possible to track EU citizens outside the EU?
On Quora there was majority in favour for not tracking. One legal looking website had a complex advice with lots of conditions.

Law is not about democracy, but about sticking to the rules.
Basically I hit the wall again.

Now I am a Dutchman. The big advantage is that the number of Dutch web pages is lower than the number of English web pages.

I entered several Dutch words in my search engine and I found an official web page
“Bedrijven buiten de EU die gegevens van EU-burgers verwerken, moeten een vertegenwoordiger in de EU aanwijzen.”

Please allow me to translate this in English by using the language button on the page:
“Non-EU based businesses processing EU citizen’s data have to appoint a representative in the EU.”

These are the first 2 times I found “EU citizen” on the official EU website pointing to GDPR.
“Is this legal stuff for the court?”
“Sorry no.”
“Really?”

There is a legal notice in the footnote containing a disclaimer. So I am quoting from an interpretation of the EU of GDPR. GDPR is leading and not the interpretation.

The day before first publication date I read article 2 again:
“This Regulation applies to the processing of personal data of data subjects who are in the Union by a controller or processor not established in the Union, where the processing activities are related to:

  • (a) the offering of goods or services, irrespective of whether a payment of the data subject is required, to such data subjects in the Union; or
  • (b) the monitoring of their behaviour as far as their behaviour takes place within the Union.”

The location of the home of the user was not enough. Again I was trying to attempt to tweak this blog post.

Wait. In 2 (a) I found an interesting exception clause. What if an American shop offers products in the EU.
So I drew a shop in the EU.

Okay, here are the promised sketch notes. Sorry for the lengthy introduction.

In the first sketch note I point out that the web site uses the location of the laptop to identify an EU citizen. But this is different from GDPR. The nationality of the user and the location of the shop should be used instead.

Sketch note showing that a web site is denying access based on location instead of nationality and location shop because of tracking.

In the second sketch note there are two situations, which were not intended by the web site owner.

An American cannot access a website in the office in the EU. But GDPR is not applicable.

Suppose your American colleague comes to Germany to help you a hand. Then he wants to go to a website with an expensive subscription. It is not possible: 451. The web site owner will probably state something about GDPR. Hopefully a disclaimer was added for this case.

Looking at GDPR there is no violation. So no privacy penalties are involved.

The second sketch note is really worrying, because an EU citizen is tracked during her or his holidays in the US.

[Update July 30rd 2019]

My interpretation of GDPR  was, that this was not allowed.

This spring I heard that it was possible to track the behaviour of European citizens outside the European Union. I filed it for later research. Last month I did some research for my workshop about GDPR. In a blog post it was again stated that behaviour outside the EU could be tracked.

Use the source, Luke

So I searched in the original law text in English. Then I switched over to Dutch and I found an article stating the tracking possibility.

As a tester I immediately started to look for other loop holes.

What about an European tourist in an European embassy in the US? If I would go to an embassy, then I need some help. As a Dutch citizen I would go to the Dutch embassy which is based on Dutch territory.

In this paragraph I made a lot of assumptions, which I had to verify one by one.

I am Dutch. I have a passport, so this is true. The same for a Dutch embassy in the USA.

The 451 status code is given based on an IP address. In plain language every internet device has an address on the internet. If I ask for some information, this info should be sent to my phone and not to a laptop 3 towns away. According to me using 451 status code based on location is highly plausible.

It is not possible to determine, whether the smartphone is in an embassy. For an internet provider it is possible to determine the longitude and latitude of a smartphone. If this is exact enough, I have some doubts.

The IP address of my smartphone does not change. This assumption is wrong. The set of IP addresses for a region of the world is fixed. If I go to the US, then I get another IP address. So a fixed IP address for a smartphone all over the world is not true.

The final assumption was, that the Dutch embassy is based on Dutch territory. This is not true. More important it is to determine which law applies.  It is the law of the host as stated  in article 21 of the Vienna Convention of Diplomatic Relations.

[End update July 30rd 2019]

Tips for testing

  • Go as close to the source as possible.
    Read GDPR or find interpretation of the law given by the legislator or representative.
  • Check and double check information and sources.
  • Gamify testing by using different tools.
    I used sketch notes, mind maps, and the internet.
  • Get used to hitting the wall.

Note about experience report

This is my experience report about GDPR testing. I ran in some problems, but I was able to resolve them. I could just skip the problems encountered, but you, the reader, could get a false impression. Learning is stumbling and standing up. And walking again.

GDPR – the Forgotten Tests – Test 2

Black box testing is quite popular: the tester only has to focus on the functions of the system. There is no need to know about things like programming and other techy things.

“But the box in the picture is not completely black.”
“That is a good observation, because it is part of a black box.

Time for a legal break. After the break a pen test.

Disclaimer

I am not a legal expert. So please have a look at my used sources. Or contact a GDPR expert.

I am just a tester finding test ideas about GDPR. Thanks for joining in advance.

The following story has been sanitised by me. Important details have been changed.

Pen test

My wife had bought a gift and she had also found a better gift. So she gave the second gift. And I had the pleasure to return the first gift to the shop. No problem dear.

I went into the shop straight to the counter. After a few sentences I came to my point.
“I want to get my money back.”,
while showing the first gift and the receipt.

The 2 young men went into action. There was a lot of pressing of keys and a new receipt was shown.
“Would you please sign this receipt?”

This was a standard computer generated receipt without a signature field. And I had to leave my signature here. I signed.

I remembered to explore.
“Why do I need to sign this?”
“This way my manager can control, that a customer is returning an article. And not we.”

I ran a quick scenario of returning articles in my head. This sounded reasonable.

But I was still hesitant to leave my signature in the hands of two young men.
“How long will my signature be saved?”
This question led to puzzled faces.

I scribbled the question on a piece of paper. It would be great to have a written answer, so I left my email address.

Then I got my money back and returned 1 week later.

The young man behind the counter recognised me. He went to a pole and pulled my paper with email address off. This was bad.

He dutifully repeated the story about the signature of a customer actually returning an article. The signature would be saved for 1 month. That was fine.

On my way home I was not convinced about the privacy. I had witnessed a breach of my personal data.

Breakdown

In this breakdown I will point to several articles of General Data Protection Regulation or GDPR.

The penalties can be quite big. Let me quote the worst cases
’20 000 000 EUR, or in the case of an undertaking, up to 4 % of the total worldwide annual turnover of the preceding financial year, whichever is higher’ [Article 83 5].

Let me review the most important steps during my visits again. I wanted to return an article and get a refund. Because money is involved, the request for a signature is good [Article 5 1(b)].

The receipt was a bit confusing for me, because there was no clear signature field. I just had to trust what the young men told me [Article 6 1 (f)].

One of the most important things about data is retention period or how long will it be saved. The check of my signature could be executed within a month and then be destroyed. [Article 5 1(e)]

A signature alone is not special. But if I had paid in the online shop, then it is simple to combine my signature with my name and other personal data. This way it is possible for someone else to write letters on behalf of me. It is criminal, but possible.

The note with my email address on a pole was a personal data breach [Article 4 (12)]. It was not intended, but I could get a lot of mails with false promises.

Tips for testing

  • Test the UX or User Experience of the receipt.
    Is it clear to customers that they have to sign a receipt for a refund?
    Can they be specific about any doubts?
  • Ask the people behind the counter, how they explain the refund procedure. Also how they handle personal data like phone numbers and email addresses.
    There are of course managers who will answer the questions flawlessly. Unfortunately they cannot be present in more than 50 shops at the same time all the time.Receipts with signatures should be stored in the same way as money. I did not see how my receipt was stored.

    Small sidestep: after May 25 2018 there were boxes outside shops to collect receipts of customers. If I put a receipt with my name and phone number in the box, then I could be the lucky winner of some fantastic prize. They were cardboard boxes standing on tables.

  • This is an important lesson for myself. If something strange happens, wait to remember it and mention it.

To be continued

GDPR – The Forgotten Tests – Test 1

General Data Protection Regulation or GDPR is all about privacy. If a company handles privacy in the right way, then it can dodge penalties like 20 million Euro or 4 % of the worldwide revenue.

Time for a legal break. Right after this break some idea.

Disclaimer

I am not a legal expert. So please have a look at my used sources. Or contact a GDPR expert.

I am just a tester finding test ideas about GDPR. Thanks for joining in advance.

The following story has been sanitised by me. Important details have been changed.

Bad idea

The job interview was about an agile tester. I thought I could handle that role. The probing questions from the interviewers were increasing. I tried to stay calm and answer the questions in a friendly way.

Then came the expected question about test cases. They should be written beforehand. Time to explore.
“You never know what you will find.”, I remarked.
“Let me give me an example.”

“Your company sent me this mailing.”
I showed a part of the mail.
“At the bottom of the mail I could say, whether I like this mail.”
There were two pictures: one green thumb up and one red thumb down. There was an orange arrow pointing to the thumb up.

“If I hover above the picture of the green thumb, the URL will be shown in the status bar of the mail.” The URL was contained in a red eclipse.

A sketch of a mail with an orange arrow pointing to a thumb up next to a thumb down. The mail also contains a URL in a red eclipse.

“As you notice: the URL is http. This is not secure. If the mail is intercepted, then the reaction of the customer can easily be determined. This is an email about credit, so you can derive that the customer probably has some debts.”

One of the interviewers politely interrupted me:
“Is it possible to intercept mail?”
I gave a technical answer using normal words.
Okay, I got his attention.

Then the exploratory tester awoke in me. And I could not stop him.
“There is a customer number in the mail. This number can be used to get access to an online account.”
I went in full brainstorm mode and described all kinds of product risks or things which could harm the user. I could find information about correspondence about money.

I didn’t get the job, but the mailing was fixed afterwards. Obviously 20 million Euros are not enough to qualify as a tester.

But there are retrospectives for.
[On the melody of ‘That’s What Friends Are For’.]

Breakdown

Most of the time primary systems were and are tested for GDPR and national privacy laws. Sometimes this software did not easily support mailings. An easy solution was to use another system outside the company. Specialised in mailings.

All kinds of data like email addresses, names, and profiles were used for mailings. Technical decisions were taken like http instead of https. Somehow the legal department and testers missed something.

According to GDPR the protection of personal data is a fundamental right [ (1) on page 1]. The economic situation of a person can be used for profiling. In turn this can be used to exclude people to get certain services like mortgage [ (75) on page 15].

My tips for testing:

  • become a customer of your own company and use all available channels. Watch for the legal details like the missing s of https. (See last tip)
  • follow security experts on social media. (You know about the last tip)
  • explain legal and security stuff in normal words.
  • let the owner control the flow of information. I should have send my brainstorm on request.
  • read  ‘Here’s Why Your Static Website Needs HTTPS’ by Troy Hunt, a security researcher. It contains an entertaining 25 minute video with several attacks on an http website.
    For people new to security, just watch the video and focus on what you would not like to happen on your website.

Closing note:
At the moment there are browsers showing whether a website is insecure. This was not the case, when I received this mailing.

To be continued.

Explaining exploratory testing with a table

Tables loaded with food and a class of kids playing on a lawn.

Another dad and I picked an all favourite Dutch subject: work.

“What makes a good tester?” the other parent informed.
“A good tester knows about exploratory testing.”

I saw wrinkles on his forehead. This was a bad start for this subject. I had to switch to his context. He was a police agent. Okay, second try.

“Suppose you ask for a driving license.”
I opened my imaginary jacket and pulled out an imaginary object.
“I place a gun on the table and”
I noticed a sudden sharpness.
“then I show you my driving license.”
This time I retrieved a thin imaginary object between my thumb and index finger.

“Would you be interested in the gun?”
“Yes, of course.”
He was constantly switching attention between my hands and the invisible gun on the table.
I continued with
“I would ask questions like
“Do you not feel safe?” or
“Is this your gun?””
He nodded.

Then I explained that a tester adjusts her or his activities based on observations during exploratory testing.

The focus would be on the gun instead of the driving license.

LS In Conf’rence Land

Greetings to the reader or Lectori Salutem.

Texting and talking about diversity

This spring I was invited to speak at a known Dutch test conference. I had a good proposal, so I only had to say: “Yes”. But I had to ponder this carefully. I had a public promise not to speak at a conference with an all male line up.

I also had obliged myself to say: “No”, if there were too few female speakers. Women look different at tech and they need female role models.

This year several male speakers declined to speak at a conference with an all male line up..

There was only one way to find out. Just ask the program committee. I texted my dilemma and asked for the number of female speakers. There were only 2 female speakers selected out of 3. Selection took place on quality of the presentations, theme, and target audience.

I got my dilemma back. Is 2 enough? Looking at the last conference it was an increase of 100% in the number of female speakers. But still it bugged me.

The only way for me to improve the diversity was to make suggestions for the keynote speakers. I texted 3 names of female speakers and subjects fitting to the theme. At the end of the same text message I also agreed to give a workshop.

When I saw the final version of the schedule, I could not suppress a smile on my face: one of my proposed keynote speaker candidates was a speaker with my suggested subject. Yes, mind reading is cool. And there was a female co keynote speaker.

During the conference I saw a tweet about testing of blockchain. There were two speakers and the female one could really explain it. That’s why diversity is so important. Just for the record the tweet was sent by an experienced male tester. And it was not me.

Continuing talking about diversity

Same test conference. There was a representative of a European test conference. One thing about the conf this size fits only 1. And I could not resist the urge to talk about diversity. The answer was of course quality. And the programme committee decided about the talks. Also the names of the submitters were not shown to the reviewers of the proposals.

I was not quite convincing. So the woman offered me her email address to send more information. So I sent information about Karoline Sczcur and a link to  A Balanced Conference Card. I received a polite Thank you.

So what went wrong?
Time for a retrospective. Yes it is an agile thing to do.

I had not prepared some talk. So here is the rebound.
As an organiser you can give guidelines to the programme committee. And you can reach out to female speakers in a positive way. Yes it takes time.

More important is to realise what is diversity about. People who think alike come with solutions alike. This means that these people will fall in the same pitfall.

Back to the conference. If there are a lot of white male speakers, then afterwards the attendees will make similar white male speaker errors. A female perspective can add a different and effective approach.

Also. What works for a white male engineer, might not work for a female engineer. A suggestion from her can easily be ignored or stolen. This can be avoided by using number 10 of survival tips for women in tech from Patricia Aas.

What really baffled me, was that lot of these tips also can be used by people of colour. As a man of colour I have to invest a considerable amount of time in finding and talking with allies. To get things tested.

In the Netherlands the campaign #NietGenoeg was started to get more women in tech.

Jez Humble tweeted about diversity in a refreshing way. You can only make good programs with empathy at the core.
“Empathy is _hard_. It means listening openly and deeply to people with very different perspectives, accepting the truth of those perspectives, questioning and changing your deepest assumptions about the world, and changing your behavior.”

Being Sidetracked – Part 5

Just a few sections to end this blog post serie.

Just store it somewhere safe

Now I had a few productive days. I could easily do Test Driven Development with the help of the junior DevOps engineer. But I left out one important step in the development: the use of the version control system.

Looking at the numbers I think that Windows 10 is better than Windows 8.

One of the advantages of version numbers is that I know which platform the user used. And which version I have to use to pinpoint a problem in production. Versions are great for code.

Writing code is like making a story for a movie. If I made an error, then I reverted the change using Undo. Most of the time several people are involved for making the same movie story. There are a lot of people willing to pay 8 $ for a good movie. Coming soon to this cinema

Let’s take an imaginary superhero movie. Pete knows a lot of action scenes. After a while he describes a scene to the other crew members:
“And then she flies in the air.”
“Sorry Pete, but Lightning Buzzword Angel cannot fly.”

“But she is called Angel and angels can fly.”
“You’ve got a point, Pete. But not every woman called Angel can fly.”
“So I have to rewrite the whole scene.””
“Sorry dude.”
“It took me weeks to figure out this scene.”
“It is great, but we have to stick to the character.”

“So you just have to start from version 0.3 of the Supermarket Fight Scene.”
“But I also changed the First Car Ride Scene and the Milkshake Scene because of the bruises made by Oval Owl.”
“Wait, you say bruises.”
“Yep.”
“But then I have to rewrite my scene.” Amy remarks.
“And I the Milkshake Scene.”, another writer joins in.

Making a story for a movie is like writing code. If a programmer or DevOps engineer changes a method or function, then this can have severe consequences for the code. The trick to detect faulty code as early as possible. There’s absolutely nothing wrong with that.

Using Test Driven Development or TDD in a proper way a DevOps engineer knows that the added code is right.
Using a version control system she or he can merge the added code with the code in the repository. The result of all unit tests for this file is an early indicator for the quality.
Then the integration tests would be added, merged, and executed.

Now comes the most interesting part. If a release was made in this particular company, all unit tests and integration tests for the whole code were executed. All the tests from previous TDD or Red Green Refactor cycles were reused again. Of course some tests would fail, but the DevOps engineer would set things right. This could be the code or the test or both. And yes, this could lead to refactoring or restructuring code with an eye for maintenance.

After a few days of TDD a new file could be checked and processed in case of positive checks.

Just me and the code

During the coding the DevOps engineer mentioned the Boy Scout’s Rule. Now we were not exactly hiking. Not especially with a flatscreen attached to a laptop. The rule basically states that I should leave the place cleaner than when I came. If I found some rubbish, then I would have to put it into a bin.

In case of software it is all about refactoring and adding missing tests. And that was the case. Missing tests could be considered as technical debt. Yes, tests are technical.

There were still some unit tests missing for other input files. And then old patterns emerged again. I started to write Gherkin files and the DevOps engineer was making them operational. After a few days he started to work on a high prio task and I was still fabricating unplugged unit tests. Then I had to turn my attention to a high prio work item. I put all the unit tests in the version control system and almost forgot them.

Just plug and test

“This takes a few weeks.”
This was the initial thought from my scrum master after the request to plug in the remaining unit tests.

Okay, rhyme after me:
I was high
on supply.

There was one simple way to change his view. I put in the whole file with unit tests and the tests were not executable. So I cut a few times until I had only one simple test left over. It was still not usable.

I needed a default input file. My scrum master agreed:
“It takes some time, but it is worthwhile.”
I slowly assembled a file over a few thousands bytes character by character using an ASCII editor. This took a big chunk of one business day. Then I could code to run my first unit test. And I got a successful test, Green.

I slowly added the other unit tests. I was quite pleased with myself until I had a failing test. Red. This must have been a programming error. I checked the knowledge management system. I was right. Next result of the same test was again Red. Of course, because I did not change it a bit. Pun intended.

I slowed down to a crawl. According to the knowledge management I was right. This time I checked the value character by character. Hmm, time for a chat with the Product Owner.

He listened to my story and told me, that my test was right. So I updated the Knowledge Management System. At last a succeeding test. Green.

This happened a few more times.

That’s it?

This serie described my experiences with Test Driven Development or TDD. For me it was often difficult to stick to Red Green Refactor.  I made a lot of errors on my way. These things can happen. Even for experienced testers there are a lot of chances of being sidetracked.

Being Sidetracked – Part 4

Some readers might have noticed that Gherkin is used for unit tests. And this might be strange or unsettling. For me it was normal. In this company the DevOps engineers worked that way. It worked, so as a tester I had to put in more effort to find bugs. Sure no problem.

Me programming

My first action was to write a test to check a business rule for a valid observation date. While I was typing, the Integrated Development Environment aka IDE suggested several options like a search engine like Google. But observation date was not known. So this sentence was highlighted in red. Syntax highlighting is also handy in programming. I don’t mind that at all.

With the help of the DevOps engineer I wrote code in Java, so the IDE could use observation date in Gherkin. The code could be executed, but the test failed. Hey that was bad.

“Now I write the code.” was my next thought.
Of course there was no code, so the test should fail. Definitely Red.
This would be fun.

I had to program in Java and I remembered that the junior DevOps engineer had some useful shortcuts. I looked in the IDE and found the option in a sub menu to add a method. I gave it a name and – yes – I got an empty method in the right class. Now I had to fill in the blanks.

Me writing Gherkin

Months earlier I had written several Gherkin unit tests in the knowledge management system. There were two things wrong with this approach. The tests were not used, so I was high on supply. In plain English I had made something which was not used. On a scale of time it was a waste of time.

The other thing was that it had a web interface. The syntax highlighting did not work. I could make things bold and indent texts, but that slowed me down too much.
The result, the code, was not easily readable.

The dates were in the following format DDMMYYYY. This is programmer s’ language for Day in 2 numbers, followed by Month in 2 numbers, and finished with Year in 4 numbers.
So April 1st 2001 would be written down like 01042001. 01 is the first day of month number 04, which is April. 2001 is of course the year. It is easy to pick good dates like

  • 01042001 (first day of the month),
  • 31032013 (last day of the month), and
  • 29022000 (leap day).

I picked some wrong dates on more rational grounds:

  • 07142011 (for the Americans July 14th 2011),
  • 20132007 (20th day of the 13th month), and
  • 1jan1998 (January 1st 1998 in a hydrated date format.).

After writing date tests for one date field I noticed a pattern. I would check on all these dates again for other dates like expiration date. I thought I was smart. I just copied all the observation date tests and replaced ‘observation date’ by ‘expiration date’. I even copied the tests to a special text file, so I could save time. But I was wrong!
Please read on.

Me at the keyboard again

So I was programming unit tests and on my side was a junior DevOps engineer assisting me. I could finally write a test in Gherkin. In a separate window I opened the knowledge management system. I picked the first right date 01042001.
“Why do you pick this date?”, my personal DevOps engineer informed.
“I want to be sure that the right date is accepted.”
A nod followed by:
“We use Joda-time for that.”

I heard: “Yoda time”
It was not possible for me to link a lightsaber wielding big pointed eared green creature with programming.
“Joda-Time checks on valid dates, so you do not have to test them.”
Java 7 was not safe enough for dates and some programmers made Joda-Time. That saved me a lot of time.

So I only had to test on the wrong dates. Easy. I added tests, which succeeded. Green.

There was a `but` coming up.
“You can skip that date.”, while the DevOps engineer referred to ‘1jan1998’.
“Characters are not allowed in the date. ”

The next morning the DevOps engineer showed me a neat table:

Given the file has observation date <date>
When the file is read
Then the file will not be processed


Examples:
| date     |
| 07142011 |
| 20132007 |

He had improved the test code considerably. Refactor. I forgot to use DRY, Don’t Repeat Yourself.

My scrum master said that it was important to know how to program. This way I could structure my tests in a good way.
But the worst was still to come.

To be continued.