Category Archives: Visualise It

May 2018 Testing

For the interested British reader this is not about politics. It is about testing software so that it complies with the General Data Privacy Regulation or GDPR in May 2018.

For the people who are only concerned about money. It can cost your company 4% of the global annual income of your company or 20 million Euros. That is seriously a lot of money.
Thanks for your attention.

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.

Just show it to me

Suppose you have a cinema and a special web site. You can order tickets, drinks, and snacks in advance. This is a unique selling point.

A marketeer has a nice idea:
“Let’s make some profiles. We’ve got lot of sales numbers, so boost those numbers.”
“What do you have a mind?”
“We just tag customers: B movie, Friday night, first week, ..”
“First week?”
“Like ‘I want to see the movie in the first week after release.'”

If I would go to  this specific cinema, all my actions are recorded.
Big Buyer is being watched too. This sounds creepy. This is my alarm bell as a tester.

My simple question is:
Is profiling allowed?
More accurately, is profiling of European citizens allowed for this cinema web site according to General Data Protection Regulation?

What makes someone a European citizen?

sketchnote with cradle, parents passport and database

Obvious candidates are:  parents, place of birth, passports.  I just stick to Citizenship Administration. I found this one while doodling in my head.

Let me give you a royal example. The Dutch queen has the Dutch nationality, but had Argentine parents and was born in Argentina.

Let me show some graphs:

  • European Union
  • People with no nationality
  • People with 1 nationality
  • People with 2 nationalities

I could make these 2D graphs:

One chart of part of Europe and three coloured graphs about number of nationalities

I could try to stack them and squeeze them afterwards:

One more try:

3D graph made of a chart of a piece of Europe and pieces of sticky notes depicting the number of nationalities

So the best way to define an European citizen is that she or he is registered as an EU citizen in a Citizenship Administration in the EU. Now comes the difficult part: as a web site owner I have no access to this administration. Well. That is a good one.

How can I determine whether an European citizen is in my database?
In most cases I don’t. Because nationality or EU citizenship is not always registered.

“Is an address not sufficient?”
“What about An American in Paris?”
“Okay, email address.”
“What about american@home-in.nl or william-to-be-married@my-awesome-wedding.com?”
“The nationality is registered.”
“Good. What about EU citizens with two nationalities? ”

Looking at the context: if no nationality or EU citizenship has been registered, then I would suggest to look at GDPR. Otherwise definitely use it.

But this is a premature advice. This is a warning. Please read on.

Finding GDPR

If there is one thing I hate about learning, it is memorising information for the sole purpose of memory. I like to have some fun in a good sense of humour.

Here’s where deliberate practice comes in.
Determine a strange situation and look it up.

On my search to the official GDPR document I quickly determined that my target was:
Regulation (EU) 2016/679 of the European Parliament and of the Council of 27 April 2016 on the protection of natural persons with regard to the processing of personal data and on the free movement of such data, and repealing Directive 95/46/EC (General Data Protection Regulation)
Yes, it takes some time to read it.
And a natural person is human being. Like you and me.

I am well aware that English is not everyone’s native language. Now the EU has this little nice webpage with links to GDPR in your favourite language. Hopefully.
No Chinese, but maybe French?

Profiling and data subjects

Profiling can take place after informing the data subject, who has agreed to these terms for data processing. [GDPR 32, 42]
That is a lot of info.

Let’s go a step back to nationality. I warned you for this.
I am not familiar with the American laws. Remember I am not a legal expert.
Suppose profiling of natural persons is legal according to the American law. For example ‘s sake.

Take a case of an American woman who starts buying action movie tickets. My guess is that her new boyfriend is lucky. Piece of case.

It is very easy to make a profile of her boyfriend. Now this lucky guy happens to be British. And has some royal blood. It rhymes on What?!.

There is still no problem, because it cannot be traced back to some palace. Unless I would couple the data with the email address of a fortunate American actress. Oops intended.

Chain of Gift

The American woman is a data subject. All kind of data is collected, but there is an unpleasant side effect: her boyfriend or fiancee also ended up as a data subject. I doubt whether he would have given any permission. No thank you.

Actrice gives something to a prince.

The Chain of Gift leads to interesting doodles. In orange is the American woman and in blue an European Citizen wearing something called a crown.

Quick explanation for the colours: the European flag is a blue flag with yellow stars. So the EU citizen is blue. For the American woman the colours white and red remain. Somehow these are not appropriate. So I chose orange.

So there is a difference between buyer and user. A man can buy movie tickets and give them to his children. ‘Finding Marlin’ and ‘Monsters Unlimited’ seem quite innocent pieces of data to share.

Dad gives movie tickets to children.

Is it possible to determine the birthdays of the children just based on hist cinema visits?
Not based on the movie titles. There is a better chance looking at the number of bought children tickets.

“When are we going to the cinema with my friends?”
“What do you think?”
“On my birthday?”
“Good girl.”
[Big smile]

Birhday party

Another interesting case: a man who buys gifts for his grand grandchildren. Depending on the gifts I could guess gender, age, and hobbies. If those grand grandchildren live in the EU, you might have a major problem.

Man gives gift to daughter, who gives it to her children.

With a low number of children per family it is relatively easy to make a family tree.
I can guess that princess cookies are for 5 year old grand granddaughter and that superhero suit with XS size is for …
You get my points.

My best guess is to make a GDPR compliant approach for my whole customer base. There is no way to determine which European people you are profiling.

To be extended

Technical bits of performance testing

The story so far: 3 blog posts ago I introduced a web site which offered the new option to buy drinks and snacks in advance for a cinema visit. This is an imaginary web site. Why should you need an extra drink? For the desert scene in Monsters Unlimited. Also imaginary stuff.

1 blog post ago an anxious project leader dropped by for a performance test for the next day. Somehow it ended up as a cliff hanger for … [Some dots] SFDIPOT in performance test.
Now I can continue to write about my standard talk for project leaders about performance tests. Let me add some flavour. Stirred, not shaken.

SFDIPOT is basically used to determine new angles.  Up till now I have not used it for performance test. I could make a rough picture about the system. Why not? Visual testing anyone?

This is Structure. What are the building blocks?

basic structure

The customer uses a web site to buy tickets. There is an extra module to handle orders of drinks and snacks. So an extra flow is added.
extended structure
Decades ago I would be happy with this picture. But I know now that I would miss important information.

Now I have a look to the Function or what the system is expected to do.

“Hey, what’s that?”
“The marketing department is keeping a close eye on revenue.”
“I understand that they want to increase it, but this can impact the performance of the system.”
“You are right, so analysis takes place outside this system.”
“Okay.”

“But the counters are inside the system.”
“Sure enough.”

Another way to look at functions is to visualise it.

customer journey

”Okay I do understand the pictures, but what is that rectangle with the heart?”
”It is the toilet.”
”But it has nothing to do with web site.”
“But it can impact the cinema visit. (: P)
This picture offers another perspective. You might call a visual user journey. ”

Data is all the information which exchanged in the system.
“You probably have a link to the purchasing department.”
”Yep and this one is also handled outside the website.”

data

”If I zoom in, I see tickets, drinks and snacks going this way. It’s first just raw data.
I miss some money. ”
”That is no problem. A supplier takes care of the payments. ”
”Ok.
What about all those snacks and drinks? ”
”Those are bar codes and numbers.”

Interfaces are ways to interact with the system. So …
”I am curious whether the system can handle streaming film trailers.”
”Sure no problem. The web site has two servers: one is completely dedicated for streaming. ”

”Do you have free WiFi?”
”Sure, but …”
”What happens, if a lot of visitors start to watch a movie trailer on their mobile?”
”Wait. You are telling me that my internal network could be slower. I did not think about this option. We need to take measures like a separate network for visitors. ”
”Yes.”

”How did you figure this out?”
”I was thinking very fast.
Like . ”
”Could you please slow down?”
“# $ €
|:| |:|”
”Man, you think fast. Let me see: # stands for numbers, €$ for money and |:| |:| for … ”
”For movie. ”
”Okay. I know a lot of symbols, but this one is new. ”
”I just figured that one out.
In the past films were on celluloid rolls. There was picture and some holes to transport the roll. : are the holes. You know like this. ”
celluloid

”I still not get it.
How did this image popped up? ”
”I looked to my user journey.
So my customer has picked up a ticket, drink, and snack? What can she or he do?

This.”
[Hand moves to a pocket and takes out a smartphone.]
“Wow.”
“That’s why it is so important to use multiple senses to plan a proper test.
This movement [hand collecting phone] is muscle memory. ”

Now we have a look at the platforms or where is the system used?

“No problem. The web site and the connected systems work on one platform. It is used frequently. Known technology.”
“But the browsers can be used on smartphones and tablets with different browsers and different operating systems.”
“This is also known technology.”

platforms

Operations is about how the system is or will be used. This could lead to the following plausible talk.

“After our last talk I talked with the marketers. They noticed the following patterns:

  • Most tickets bought in advance are sold at least one day in advance.
  • Most tickets bought in advance are sold for the weekend.
  • The week patterns are almost the most same in the month except for the first week. “

expected ticket sales

“First week. Can you explain it?”
“Salary is paid in the last week of the month. People pay more for entertainment, if there is more money on their bank accounts. ”

“Of course there are exceptions on the months. December and the summer months are way higher because of the holidays. Watching a  movie is a nice way to spend holiday hours.
There are of course still unexpected and expected mega ticket selling movies.”

“Do you also take discounted movie tickets in account?”
“Yes, this lead to some increases. About 5 to 10 percent.”

“I would suggest to use the December holiday as the standard load profile. This way the system can handle peaks. To be sure a percentage of 10 % is added.

“Is your customer also interested, when the system breaks down?”
“We already took precautions: the modules for the tickets, drinks, and snacks are placed in the cloud and their resources are automatically scaled.”

“So everything is covered.”
“It looks good. It is important to know which factors have a major impact on the performance like CPU or chip, RAM or memory and use of network.”

resources subsystems

“Of course  you are interested in the change of use of the resources.

“You go to the ticket counter. You get a ticket for the movie and vouchers for snacks and drinks.

If I look to the user journey I miss a step between the ticket counter and the shop counter?”

“Wait the lines are wrong, it should be like this:”
different flows
“The ticket counter should have access to the drinks and snacks ordered.

“Okay I update the pic later.”

“If I go with 5 excited kids, I end up with 6 movie tickets, 6 snack vouchers and 6 drink vouchers. Double the number of drinks for Monsters Unlimited with the desert scene.”

That is a lot of printing.
So I have 24 cards. This is bigger than the set of business cards I end with after a conference. And the set of followers on Social Media. Todo cursive.

So the network can handle the extra information for the printers.”
“Yes, it is insignificant number of bytes.”

How much time does it take to print ’em all?”
“0.5 sec a ticket.”
“So I have to wait 12 seconds.
Wait 180 people go to a movie. That makes 4 x 180 pieces of paper in worst case (1 movie ticket, 2 drinks, and 1snack person). Only the printing will take 4 x 180 x 0.5, which makes 360 seconds. That is exactly 1 hour.
Of course people will not arrive after each other, but like this. If I add the number of voucher for drinks and snacks, I get …”

“Could you please stop?”
“Did I do some miscalculation?”
“No. I remembered something else. It took us months to determine the right number of ticket counters. My customer had to increase the number of counters. In this case it would be by 4. That is not pretty.

This is out of my scope. I am only responsible for IT.”
“Printers are also IT.  The system is not a single web site. Look at the pictures.

You might consider to reduce the number of vouchers. There is enough room on the paper for other things.”

The following item of interest is about the relationship between the system and Time. Yes finally.

A few months ago there was a question about ambiguous requirements. As a performance test coordinator I often heard: “It is fast enough.”

My solution was to perform a performance test on the old and the new system and compare the results.

Sometimes I was lucky and I had some real acceptance criteria. Like 95 % of the response time of function X is under 20 seconds. And a completely filled web site. The same content might give the same response. Or the other way around: almost no content is almost no delay.

“Now let me look at the response times. In the current system these are the response time for the tickets page, the payment module, and the ticket counter.
That payment module is swift and it is outsourced.
For the drink and snack page and the shop counter the times are added. Notice, that there is night between the day and the cinema visit.
response time actions

I can add the numbers for one movie. Then I get these numbers Fir two movies on an evening there is reassuring low response time.

“Let me guess your system is fast enough to handle a blockbuster evening.”
“You bet.”
“I don’t take bets I can lose.

But what about this?
Snacks and drinks ordered in advance are collected by the cinema people.
There is probably an acceptance criterion that snacks and drinks can be collected by the customer within 2 minutes after collecting the ticket.
So if I come with 5 kids collecting 6 snacks and 12 drinks, someone has to be quite fast. But there might be more people needed who collect their drinks and snacks.”

“That will be a problem. But I am only responsible for IT.”
“What about the people who have to work it. And your customer who depends on order drinks and snacks in advance page?”

“One apple juice please.”
“Huh. Oh yeah, you won the bet.”
“No, I am thirsty after all that talking.”
“You ain’t seen the desert scene of Monsters Unlimited.”

[Small update: there is a Q&A a few blog posts later about this very blog post.  You can even join the party.]

Zoom out. Zoom in.

On the Kanban board was a sticky showing me what to test.

Zoom out. Zoom in.
The test plan had acceptance criteria for this functionality. I picked the first criterion.

Zoom out. Zoom in.
In the knowledge management system I went to the test department and clicked to the application section. Then I looked for the test case.
Yes, I like to modify my input on the fly. In this case a data file would save me hours of testing.
I could not locate the file.

Zoom out. Zoom in.
I went to the PO or Product Owner. He also started looking:
“Maybe I sent you the file.”

Zoom out. Zoom in.
I went back to my desk. In the mail program I could not find the right file. Then I remembered that this functionality had been covered in one ticket. I found a zip file. This contained other zip files.

Another zoom in. I unpacked a zip file. And repeated this for another contained zip file. I found the data file and expected results.

Zoom out. Zoom in.
I went to the PO to tell him the good news.

Before I went home, I zoomed in in the knowledge management system. I uploaded the found files. The names explained the contents of the files. The next day I would take time to tidy things up.

Zoom out: out of office.

Rat’s Head, Ox’s Neck
Waiting.

I grabbed my notebook with the sketchnotes for my workshop at TestBash Netherlands. In my head I went through all possible visual solutions for a test exercise. I drew the most simple one. At that moment I had no more details to fill in. I almost came to a stop. A workshop in distress?

Centuries ago Musashi Miyamoto had an advice for warriors:
Rat’s Head, Ox’s Neck.
If you are too preoccupied with details, then work on the big picture. If you are too preoccupied with the big picture, then work on the details.

So I switched to my mind maps with the global structure for each hour of the workshop. I moved branches around and clarified thoughts for myself. Another brake was about to stop my flow of thoughts. I could lose valuable information, if I deleted too many branches.

Digital mind maps are easy to save. So I copied the mind maps on my smartphone and set the previous versions on a safe place. What had been bugging my mind? Time to delete some stuff.

One exercise felt out of place in the Second Hour Mind Map. I moved the whole branch to the mind map of the first hour. The number of exercises per hour was almost equal. I love balance.

Then I noticed the theme of the first hour: time out. Wait a minute. That was not a time out exercise. I visualised the exercise: this was about states. I moved the whole branch back. I prefer theme over balance.

The fun with markers is that I can number the branches. So I changed their order a few times. In the meantime no slides were adjusted or removed. I was editing my workshop on a high level at high speed. Look mum. Without presentation program.

In between I switched to the mind map Extra stuff. After opening I hoped to find some Fieldstones I could use in my workshop. But I was disappointed: it was a list of workshop materials I had to take with me.

That was not in the name, so the file was renamed by me. This was an advice from a Cleancode session at my office. And I could add extra stuff like a whiteboard. Sorry, I mean equipment.

Apologies now. I love the smell of smiles in the morning.

Time to switch between the Hour Mind Maps. I did some dry runs in my head. Then I was not ready, because in another mind map I had still some funny pictures to include in the slides.

Luckily I had grouped them around a subtheme. Some pictures I really wanted to use. I reopened the Hour Mind Maps and added branches with funny pictures. There were stories or Fieldstones attached to them.

Another dance of branches in the Hour Mind Maps started. This was creativity at work. Feel the Flow Luke.

I also found my Story Fieldstones Mind Map at last. Some I placed in the Hour Mind Maps. Others went to my sideboard. I also had some floating Fieldstones which I could use at any moment in my workshop.

I heard my name mentioned in the hallway. My wait was over. Within 1 hour I had reshaped my workshop. The next time I could work on my slides again.

I had seriously enjoyed myself. :)

 

Thanks for reading.
Yours Mindfully.

Can you picture that?

Recurring situation in my family.
“Where is dad?”
“He is taking a picture.”
Moments later:
“What did you see?”
“I saw something funny.”

In my previous blog post I wrote about Fieldstones. Jerry Weinberg used the metaphor of building a wall using Fieldstones to describe the writing of a story. I have to be mindful about my environment and then … I notice something. That can be told as a single story or part of a story. I just wonder and make a note.

At the moment I am trying to find the right pictures for my workshop at TestBash Netherlands. My basic idea was to use sketchnotes as Fieldstones. But the pictures in my notes had to be visualised.
O yeah, I’ve got a camera in my smartphone.

I thought about a Dutch windmill, so I had to cycle through the polder to make a nice picture. It required some timing from my side: with a full workweek and less sun every day I had to do it in the weekend.

All the elements of a typical Dutch landscape were present:
a windmill, a polder, and a nice greeny dike
photographed by a Chinese on a bike.

What makes a good conversation starter? In my case it is a good story about visuals. It can be the awkward use of words. I can tell for minutes, but making a picture stops or slows down my flow. It gives my listener a moment of rest to reflect on my message.

A picture can also give another view on a situation. As a tester I make models of programs, so I can perform better tests. There are words to describe them: test techniques and heuristics.

Which ones do I use? Most of the time it boils down to a small set. Once in a while the same tools are used too often. A simple statement of the end user can make me aware of what I am missing. Then I have to adopt: choose another way of testing or extend my test technique or heuristic. That is the most important part of my workshop.

Is there a way to determine, whether I use the right way of modelling? Maybe if I find bugs. Or when a content customer calls.

Until I will stop with testing, I have to observe and ponder upon my way of testing. This requires Continuous thinking about what can be improved in this context.

 

I think: “I just wrote another Fieldstone.”

Blimey, I intended to write about using funny pictures in my slides, but this Fieldstone was shaped in another way.

Can you picture that?

Sketchnoting Fieldstones

My workshop “An Appendix to Visual Testing” had been accepted. It was time to make sketchnotes.

Patient with Proposing
This spring I created a 30 minute presentation about Visual Testing for a test conference. On Twitter I had read about last minute changes because of other obligations of the speakers. Although I had not been selected for replacement, I still carried my presentation with me on that conference. Digital files are so easy to carry around these days.

Using the Fast Fast Forward button I could show the delegates some highlights of my testing solutions. I try to avoid this style. I prefer Try and Remember.

With no conferences on my program I stocked my presentation on my hard disk. For the record, before 2016 I was not particular fortunate with this proposal at at least three other test conferences on this planet.

“Some day my conf will come.” [On the melody of “Some day my prince will come.”]

In the following months I reused the workshop idea twice for different conferences. Two polite thankful rejections followed. I still had faith in the workshop, so I pitched it again. Then I got good news: a half day tutorial at Testbash Netherlands.

Creative with Crafting
Given a half day is 4 hours when I have a presentation of a half hour then I have to fill another 3 and a half hours. Emily Bache once talked about Arrange, Act, and Assert. At last I had arranged my workshop. So I had to act in order to assert that I would have a half day tutorial.

Luckily my presentation was a dehydrated version of a workshop. With enough water I had a 3 hour workshop: 3 examples including supporting stories with in depth exercises.

One of the first things I did was buying a small notebook. You know one of those booklets with lined paper pages and no battery included. In this little book I captured my ideas visually for this workshop. I intentionally put mind mapping aside for a while. I wanted to make a visual journey for my delegates and myself.

The last years I saw sketchnotes. I had my doubts, but I started to like the doodling, the seemingly unstructured way of drawing and writing. Instead of the clockwise structure of mind maps I had more freedom to make my notes. I even could draw first and write later. That is a big + for a visual tester like me.

There were more surprises with sketchnotes than I expected: one in depth exercise started as a simple design exercise. Within a week it lead to another intriguing exercise. My homework is to describe the solution using visual stuff. There are some times some things do not feel like work.

The introduction of the workshop was another creative process in progress. By making a story board I could draft more than 10 versions and find the right start.

Just Collecting Around
During the preparation I slowly picked up mind mapping again. I used it for structure and overview. In the meantime I found other things to share. Jerry Weinberg calls them Fieldstones. I used to call them Blog Ideas.

In my quest to improve my blogging I found “Weinberg on Writing – The Fieldstone Method”. This nice book gave me some hints to gather pieces of information and group them later on. While I thought about my workshop, I made notes.

My fieldstones were sketchnotes which filled my little notebook. Things waiting to be told.