Category Archives: Learning

The Clokie Project

In December 2018 Katherina Clokie, a known speaker, announced to look more outside the Tester community.

My reaction

Amazement, grief.

After a few months I realised that it was not a bad idea.

My change of heart

My wife has some really tough questions I have to answer. The biggest one is:
“What did you learn?”
Right behind each test conference.

So I reduced my number of test conferences and number of hours at the conferences. There are still some really good conferences like TestBash, Agile Testing Days, and European Testing Conference with plenty of awesome few insights.

I attended a lot of other conferences and after a while I would be just happy to pick up something new.

There is more to gain at a conference if you only know the basics. With more than 20 years of experience it is a way less.

It was time for my Clokie project.


Time for a small flashback to October and November 2018. I already had looked outside the Test Community.

Here are some notes from Infosecurity 2018:
In case of doubt treat data as personal data. Zip code and house number are personal data.

In EU there are several privacy government organisations, but they have different focus on privacy issues.

Steps in case of data breach:
Secure proof
Look in the logging
Determine scope
Communicate
Remediate
Learn

A change of behaviour can indicate an identity theft.

The way of accessing data in the cloud is the weakest link.

In GDPR, the European Privacy Law, a penalty is used to let the company feel the pain instead of putting a company out of business.

GDPR is not applicable for dead persons. But there can be other laws which are applicable for dead persons.

Meet the expos

How to attract people to an expo? Goodies, free access, and talks.

Some Healthcare and ICT notes of me in random order
Anonymize pictures, determine objects of interest, and annotate them using smart software.

First step is vision and then involve stakeholders like care providers, health insurers, and suppliers.

Patient panel discovered that 60 % of the patients want a personal health environment.

Care providers like hospitals and doctors are stimulated. They get money on basis of results and not on actions taken.

Law of customer’s rights. E.g. A care provider should only get information which is needed for the care to be provided.

Misconfiguration is becoming the weakest point in defense.

Meet the meetups

010dev is a small meetup in Rotterdam. It has Dutch characteristics like gezellig (cosy) and Buy Own Drink. It is in a pub after all. Once in a whole while it is in a company.

During my meetups there are no lectures, but I still listened a lot. As a tester was I am able to follow the small talk and tech talk?

In a few hours a lot of subjects passed. Programming languages, projects, and new trends were discussed. Somehow I could understand bits and pieces.

Developers.nl had a more traditional format for the meetup: free drinks, free meals, and free lectures.

I went to two meetups. The first one was abstract. It was about architecture. What are good guiding principles to set up a complex environment?

The second meetup was about vue.js. This was a challenging one. I had only basic knowledge about JavaScript and HTML. So I read some ebooks about vue.js which are based on these languages.

This talk was more understandable for me. The speaker shared some tips about vue.js.

How to speed up the performance by loading the needed content in 2 stages? First the necessary stuff was loaded for the web page. The rest followed while the user had a first impression of the page.

Looking under the hood

My blog has been made with WordPress. One day I was blogging and a conference in Rotterdam was announced in the dashboard.

There were some particular benefits: 25 Euro for a ticket including lunch, an environment friendly environment, meeting other WordPress users, short traveling distance.

As a tester I had not had a chance to attend a talk about accessibility. I honestly don’t understand this.

This conference offered more talks about this subject than I could process. I skipped the last ones.

Another interesting subject was security headers. It is possible to make WordPress secure. I was thinking that a header only contained some information.

For the interested reader have a look at my conference digest mind map.

Finishing thoughts

Retro: did I learn more than previous years?
Yes.

But what did I pick up in those previous years?
Mostly subjects related to programming and law. Less about testing.

Just made me think.


On Twitter Trish Koo placed a thought provoking tweet. In order to become better in software development  you have to learn both testing and programming.

Link Missing In Action

“Know the ways of all professions”
– Miyamoto Musashi

UX designer

A few blog posts ago I told about my attempts to make this very blog more accessible. I just walked my talk.

For people who need a story:
As a user with no or bad view I want headers tagged as headers, so that the screen reader can read the headers differently aloud.

Web master

I changed the look of the headers in a lot of blog posts. I went in a flow and gained more speed in the process, until …

A small square disappeared. I just did an undo and continued editing.

The next time I let the square disappear, I had already updated the blog post on the web.

Hit the OK, Jack.
[on the melaody of “Hit the road, Jack”]

This was not good for my user journey. I did not want to lose a user by a missing link. Just stick around.

Tester

There was an easy trick for finding missing links. On the internet there were free websites and add ons for browsers available.

Marketeer

As a marketeer I had some problems with broken link reporters. A reporter had to hit every page and every link in it. So the number of hits would increase significantly.

Even worse there are web pages referring to other web pages. So some pages are counted double. Then there are categories and months referring to pages. So some pages are counted more than twice.

This would hide the real traffic in my daily reports. But this is not a company web site. Otherwise I should have to add a note about a maintenance period. For an auditor. So I could skip this role.

Tester again

First pick of a broken link service stopped half way. The second looked promising, but it had terms and conditions.

Legal expert

Now I was curious. I clicked on the link and landed on a page with lots of legal sentences. Must be American thing.

I tried to distil the information. The most important message was that the service was provided as is. There were no financial consequences for the service providers.

I have a website which does not provide me any income.
So what was I waiting for?

Enter my website and show my broken links you can find.

Author

Now it was the turn for the author to have a fix.
Yeah. Sure.

The first broken link was ejc2008.de. This is short for European Juggling Convention 2008 in Germany. More than 10 years ago. This must be an old-timer.

I entered the URL in the browser and got an error message. After 10 years the website was taken offline. But I needed a link.

Then I looked for internet archive wayback machine in my search engine. This website stores all versions of visited websites. I entered ejc2008.de and found my website.

I picked a link to 2019 copy and replaced the link in the blog posts. This way people can still read about a convention which was visited by more than 3,000 people sharing the fun of juggling.

In my list of broken links I found a link to a Let’s Test conference in 2015. I had a better link available, so I just updated the link. A similar situation for the first TestBash conference in the Netherlands.

It was a simple test tool. No need to switch to tester mode.

Another run of broken link test revealed that I had not changed the About me page. Why did they show up now? No idea.
Anyways. Fixed.

3rd test run revealed no more missing links. But something was wrong. I missed the comeback of the square. Popping back in view.

Web master again

In my memory I tried to locate the square. It was during header 6 handling. Then I remembered the use of anchors.

An anchor is a fast way to get a reader at the right place in a blog post instead of the top of the post. This saves the reader some scrolling. Example time.

In my blog post about a test exercise the following code is shown in my code editor:

My last upload before my workshop was for me <a href="http://mindfultester.com/a-look-behind-the-scenes/#disaster">another exercise in exploration</a>.

In my blog post “A look behind the scenes – in Runö” the following code is shown in my code editor:

<h1><strong><a id="disaster"></a>Flirting with disaster</strong></h1>

A broken link checker only checks whether the link exists and ignores the presence of an anchor. So it was an anchor missing in action.

Now I had to check the 90ish blog posts for anchors. Preferably automatically and not clicking all links myself. Please.

If I could only find them. I got a flash of insight. It was possible to find blog posts with a search engine in my Content Management System or website authoring program.

I looked for #. And yes, all blog posts with anchors and links with anchors were listed. Now it was easy to add missing anchors.

Professions

So I was

  • Tester
  • Marketeer
  • Legal expert
  • UX designer
  • Author
  • Web master

I skipped the auditor though.

Conference Digest Mind Map

This is my small tribute to Tony Buzan, who died on April 13th 2019. He was the inventor of the mind map. Rest in peace Tony.

Mind map with central object "Todo Wordcamp Rdam 2019 v1a" with main branches presentations, Notes, Goodies, Books, and Actions. Main branch presentation has sub branches Stomme post, Hashtag, http headers, Get fast and Live.  Sub branch Hash tag has sub sub branches #ewmrtc and a part of an URL. Sub branches  Goodies has sub branches Camera sticker and highlighter. The main branch Actions has sub branches 404, host, security.txt, xmrpx.php. Markers, and “words pictures”. The sub branch Markers has sub sub branch Backpack. The sub branch host has Csp and .htacess. The sub branch Books has sub branches “safe website”, “performance wordpress site”, and “SEO starters”!

Quick breakdown of my mind map

On my smartphone I use Mindjet Mindmanager. It is a rather dull looking mind map program. I can add colour, but that will slow me down. For me mind mapping is jotting ideas as fast as possible.

My first action was to make my conference notes readable. My handwriting is quite awful. The use of sketchnotes did not improve the quality significantly.
Just wait and see.

My notes were about WordCamp Rotterdam 2019. There were some really technical talks. It is almost impossible to translate technical stuff like settings of analytics programs or Cascading Style Sheets to images.
Yeah. You’re right.

Okay. The Notes branch was needed as a reminder that I would read my notes without thinking too long.

Almost immediately I added a branch with presentations. If needed, I would read the presentations in slow speed. Just before blogging I realized I made an error. I opened Twitter search and entered the hashtag “#wcrtm” and “slides”. #wcrtm stands for WordCamp RotTerdaM. All the presentations of the interesting talks popped up.

Another branch is Goodies. These are gifts of sponsors. I lost my highlighter somewhere. I marked this branch with a red cross. Then I remembered that I had a camera sticker from a previous conference, which I found and placed. So I marked this branch with a green V. For the English people: Jack in the box.

I got some booklets / books about SEO or Search Engine Optimalisation, performance of a website and website security. The reason, that I did put this branch under the central object, was to balance the tree. This tip was given by a business consultant. The way I interpreted was that I had to avoid a mindmap with too few main branches.

Back to my Books branch. This branch contained information which I could use. Not immediately, but it was something I could not put away lightly. The Goodies branch was more like: done and forget.

Now comes the most important main branch in my mind map: Actions. Sub branches were added during my note cleanup.

This website still had no proper 404 screen. Yes, there are some plug ins, but is there a more elegant way to solve this problem? Also too many plug ins will slow down my website.

During the conference there were lots of configuration suggestions. As a newbie WordPress administrator I asked, how I could configure this. The answer was to contact the host provider. Actions from my side could collide with actions from the host provider. Bracing for impact.

I still have to place a security.txt on my website. More information can be found in securitytxt.org.

On the web I read some disturbing information about Xmlrpc.php. On the conference it was strongly suggested to remove it.

Another action was to collect all my markers for future notes. A final action was to put extra information about text in my pictures in the Alt Text.

Depending on my progress and feedback of my host provider I will adjust my actions in my mind map.

Escape The Consultant Trap

During a talk at a test conference a consultant told smilingly to stick to customers. The woman next to me was bristling. Her company hired consultants.

Is there a way to make this situation more painful for me?
You bet.

As a test consultant I had given her a ticket for the conference.
Ouch.

A good consultant makes herself or himself dispensable.

Definition obliged

Looking at the Dutch job market there is a cry for test automation experts. Even testers with a few months of experience have a distinct advantage over the inexperienced testers. They have a proof that they can use the demanded tool. And they are hired.

So if a company really needs test automation and no candidates have been found, then a test automation expert is flown in. This gives the company a real advantage. Or wings for the intended pun.

What is the consultant trap? After a while there is a test framework and lots of scripts and impressive heaps of test data which must be executed, updated, and maintained. In good order.

It is like buying a car which needs intensive care. If it is neglected for too long, then the car will not ride.

All the test automation stuff can be compared with a car. The mechanic is the test consultant.

No consultant means no working test automation, which means no edge, less revenue, and stronger competition. The company is trapped. This also hurts the revenue.

Path obliged

There are some managers who would object with

  • “This is a proof of concept.”
  • “The product is at the end of the life cycle.”
  • “The consultant is only hired during the holiday of one of my employees.”

These sound like sound arguments.

In this blog post I want to focus on test automation experts who are the only ones to operate the test automation in a company.
That’s bad.

Suppose you are a manager and you have the task to improve test automation. Now you have to avoid the consultant trap.

But you still need a consultant to teach test automation to your team member.
Hummm.

According to me a good teacher doesn’t make the homework of a pupil. In terms of test automation a consultant is helping your team member with learning instead of putting all test automation in place.

Don’t touch everything.

Is there a way to determine whether a consultant is a good teacher?
Sure.

Ask to explain how to set up test automation in plain language. Or ask for possible first steps in your company. Other useful resources are recommendations of other customers, talks, or blog posts.

My suggestion is to keep the number of hours of the consultant low and the number of hours spent by your team member high.

My favourite way to learn something new is pairing. As a pupil I like to share the same computer with an expert while figuring out what is happening. The teacher (she or he) demonstrates things to me and then let me struggle.

Pairing is an activity for 2 persons. I do not like searching the right note with fast scribbled words on it because of the high pace of demonstration. And then interrupting my teacher who is teaching someone else in the meantime.

Attention!

While I was learning Test Driven Development, a junior DevOps engineer was watching every step I took.

Once in a while he made remark. Then I told my thoughts aloud and he would gently lead me to the right solution. He had an educational degree and earned my respect.

In short it is about finding the right balance between demonstrating and experimenting.

Another way for me to learn is exploring. Elisabeth Hendrickson made a nice concise format for this:
Explore < target > with < resources > to discover < information>.

I personally like exploring because of the hidden treasures I might find. Dungeons and diamonds.

OK. Back to the Example.
(No DeLorean included.)

A consultant could suggest something like
“Explore data driven testing with Postman to discover a concise way to maintain test scripts.”
A bit vague.

I tend to ask questions.
“What is data driven testing?”

A good teacher will give some examples:
“Suppose you buy 2 items costing 1 Euro each. What will be the total cost?”
“2 Euro.”

“And if you buy 4 items costing 1 Euro each. What will be the total cost?”
“4 Euro.”

“6 items for the same price?”
“6 Euro.”

“23 items.”
“23 Euro.”

“What did you notice?”
“The question became shorter. And you only changed the number every time.”

“So the numbers are data. What I described were 4 simple tests. In Data driven testing a tester or developer extracts data from the tests. So you only need 1 test with a set of data.”

“What would be a good to store the data?”
“A table like in spreadsheet program.”

And this conversation and experimentation could continue for hours.

After the session a debriefing can take place to reflect and determine new points of interest.

After a while I could explore on my own. If I get stuck, then I could contact the consultant.

Let me write about exploration of data driven testing on my own.
“What is the first place to look for?
I don’t like manuals.

Wait. This is cool:
TestAutomationU offers a free online course from Amber Race about Postman.

It contains a section about data driven testing.”

For the video I used sketchnotes for note taking. When I did some experimentation in this course, I used a word processor for notes.

Also now a debriefing is the way to reflect and to determine new steps. A consultant or colleague can be a person to speak with.

Proposal obliged

If there is a company where I would like to work, then it is the one with experimentation and growth mind set. It will earn my loyalty.
Hold my engineer degree.

As a manager you might complain about the time spent. As an Agile practitioner I would answer that competitors might outperform your company by learning and teaching.

In summary hire people with ability to learn and ability to teach test automation.
Thank you for your attention.

Okay time for the legal stuff.

Disclaimer: I have no experience with this approach to escape the consultant trap. I did not do any research. But I do welcome feedback.

According to me this proposal is agile. You learn and adapt. Luckily agile is in high demand.
Say Cheese.

Disclosure: at the moment of publication I wa jobless, so I was biased.

Struggling to become a DevOps engineer

Sometimes when I am cooking, a bored kid asks:
“How can I help?”
My answer is:
“You can cut the vegetables.” Or
“You can stir in the pan.”

When my kids were smaller, they loved to make pizza. And even small hands are handy for peeling off the brown layers of an onion.

Pair programming

The Test column was empty for a few days and I had finished all preparations for the items in progress. Was there a way that I as a tester could help the DevOps engineers?

“We can do pair programming.”
I was all ears and eyes. So I joined a programmer while he was coding. Once in a while he said his thoughts aloud.

“Okay, now it is your turn.”
I looked at the DevOps engineer expectantly:
“What do I have to do?”
“Programming”
“I mean: what must I program?”

A short dialogue followed. My knowledge of the development environment was almost zero and I did not know everything about Java.
“You better take a course at Pluralsight.”

Pluralsight and Java

In this company every DevOps engineer and the tester (that’s me) had access to Pluralsight. Courtesy of the employer. Pluralsight is an online course platform with a massive load of courses.

“There is a test to determine how good you are.”
Sure no problem.

A line graph is shown with three different colours: orange for beginners, green for proficient, and blue for expert. There is a green circle "Skill IQ 135" in the green line, which is connectd to a vertical line with "40th percentile" at the foot!"

A lot of readers might think:
“Wow, I would hire Mindful Tester.”
Sorry gals and guys. Up to 40% of all people got this level. This basically means that 2 out of 5 people knew as much about Java as me. Not enough to make complex changes.

Now Pluralsight had another nice feature called learning path. So I dutifully cruised through the courses. I had the advantage of two screens, so I could play the course on 1 screen and program on the other 1.

I had some doubts about the courses. It was like a typing course. Just enter the text and you have a working program. Tada.

Another doubt was the absence of Test Driven Development. I shared my concern with a bright DevOps engineer. He reassured me:
“First focus on the language, then the rest will come.”

The same engineer noted the lack of challenge, so he referred me to project Euler. This free online platform had mathematical / programming problems. Afterwards he reviewed my Java code, which I really appreciated.

Java is great, but my team used more tools to develop programs. So I followed courses on Spring and Maven.

At the end of the course I could get some certificate. With no real practice I had some knowledge. On the other hand my experienced DevOps engineers loved Pluralsight. They set the video speed to double speed and picked up their nuggets of knowledge.

HTML, CSS, and JavaScript

“I noticed that you focused on layout.” my scrum master said.
“We need someone who can design good interfaces. Maybe you should focus on the front-end.”

In this company the front-end was a website. So I had to study HTML or HyperText Markup Language, the basic programming language of web pages. I was familiar with HTML. <b> hello </b> is shown as hello. b is short for bold.

I picked a Pluralsight course for advanced web development. This was both horrifying and clarifying.

So I should have basic JavaScript and CSS knowledge. I picked a course with JavaScript: CSS was needed. I switched to CSS. Only HTML was needed. Phew.

What is CSS or Cascading Style Sheets? In my own words it is a way to style a website in s consistent style. E.g. all the buttons look alike and the web page can respond to different screen sizes.

I followed two courses of CSS. They were practical, so I was able to modify the look and feel of a website without changing the functionality.

Next stop on Pluralsight was JavaScript. In my own words this language is used by browsers on the computers or mobile phone of the users. This programming language basically reduces the traffic between the front-end (e,g, website) and the back-end, where the important things happen like handling a payment.

I was lucky again. There were some basic courses which gave me some practice with JavaScript.

If I look at Pluralsight there are some good courses, but it took time to find them.

Edx.org

The biggest disadvantage of Pluralsight was no examination. My scrum master found an interesting alternative, edx.org.

You could call it freemium. The course and examination are free, but you have to pay a premium for the certificate.
Freemium is “free premium” without ” pre”.

I picked HTML5. The course was for beginners. But I was really happy with all the Pluralsight knowledge obtained. The course gave me a good insight in HTML5, but it also showed its limitations.

Next certificate was CSS Basics. Again I had an advantage and obtained enough points for a certificate.

ReactJS should be possible with my basic knowledge of JavaScript. In my own words ReactJS is a language, which can better interact with users than HTML5. The course was tough and I dropped out.

Edx.org and Pluralsight

Edx.org had the same choice problems as Pluralsight. I had to follow course parts to determine whether there was a click.

A major difference is, that Edx.org courses are time bound. After a deadline the course is closed and only accessible for old students of this particular course.

Edx.org has a slight advantage that it offers up-to-date information. Pluralsight has some old courses. For a Maven course this is tricky. Old versions as shown in the video cannot be used.

Another deadline disadvantage of edx.org is that timing is personal. Several courses acquire 2 hours a week. For someone new to coding this number is too low. Sometimes one block of 2 hours would take me 40 hours. There is also a deadline for a certificate. My advice is first to get the required numbers of points and then buy the certificate.

Once I bought a discounted certificate before getting the required points. Let me write it was not my best investment. There are limitations to be aware of.

Security, privacy, and usability

A DevOps engineer does more things than programming. So I learned about website security, privacy laws, and usability.

In the meantime I acquired some DevOps skills like looking in and understanding log files.

Status update

In April 2018 I got the disturbing news, that I was fired.
No bingo for me.

In case you want to know what I am doing right now.

Thanks for reading. I really appreciate it. Cheers.

Other online courses

This year Trish Koo asked for some online programming courses In the answers there are some online platforms I will try the next time.