This year, I had the opportunity to attend Lego automation workshop at Test Bash hosted by Ministry of Testing. The workshop has been running for 2 years and I have heard many positive comments about it. Obviously, I had many questions How can someone learn about automation with Lego? Are they using Lego mechanics? I have only seen Lego Duplo on tweets, they are just big blocks; can they be used for automation? How automation and Lego will joined up together?
The workshop was about automation theories. We had to pair up, one became the robot/program, and the other became the programmer. There were five challenges, which had their own learnings. I paired with Yuki (@k_k710). We were given different images of shapes to build, and the programmer had to write instructions so the robot/program could build it. It sounded simple. However, it had its own complexity. Language had to be simple, should be understood by the program, assumptions needed to be set, etc. Then the robots had their opportunity to run the program. Pick Lego from different locations, bring them back to the table, and fix them as of the instructions and compare with the original picture. Robots were robots. They could not think. Therefore, the robots bumped in to other robots. Different sizes and colours made them confused. How to fix, how to compare. Long instructions got them confused. Things got complex when we swapped the scripts with other teams. Some found that the instructions were difficult to understand because they were very technical, or assumptions were not clear. Whether raised concerns were issues or not. Next, we were given more complex images, we had to then refactor the instructions build the new shapes. On top of everything, we had to keep the instructions simple so the mindless robot can execute them. What we had to remember was that robots could only see what we told them to see. They could not decide anything by themselves and could not see anything that we did not ask them to look at. Lesson learnt. Thank you Yuki for being such a great robot!
Did I enjoy being part of the workshop? Yes. Was it instructive? Yes. Was it memorable? Yes. Was it entertaining? Yes. I believe these are the characters of a successful workshop.
So what did I learn? What made me think? Reminders that I needed?
- Fine details on a script will make a difference
- Give the robot the ability to voice what’s happening – logs / messages
- Define how detailed each test should be. More detailed, complex they become.
- Experience in writing code makes a difference
- KISS – Keep It Simple Stupid
- Start tests simple
- Improve later
- Complexity emerges but
- We are learning while we code, and we explore
- Who do you want to be?
- A programmer; thinking about design and code, or a
- A coder; who just writes code
- What do you want to do?
- Check – Does it do what exactly you asked it to do?
- Test – Think logically and be critical
- Give people the space to figure things out. Let them learn than instruct
- Make sure your code is understandable by others
- Get away from the IKEA effect
- I built it, so it is fantastic!
- Utilise the code and improve re-use
Richard summarised the workshop with following image. He gave many examples from his experience for each point. He mapped the points to what we experienced that day.
I agree with the points he raised. One thing I realised was that I knew these things. I had experienced these things as well. I also knew I should adhere to these things. However, do I practice them? Do I know why I should practice them? Do I understand the consequences?
The workshop was targeted for everyone. Anyone who wants to understand the complexity of automation were welcome. I saw a clash between the novice and experience. Yes, we can learn from each other and see different point view. However, this can make some participants get a bit isolated or drift away. May be this workshop could be promoted for beginners and then extended it to experienced audiences. This might help each audience to focus on what they wanted to learn than try to find things to learn and enjoy the workshop at the same time.
Well, that is just from my point of view.
Why you should go to the workshop? It gives you a different perspective. You will learn about the basic automation concepts, use different programming languages to reach your testing goals, using different methodologies and best practices. You can attend the workshop to get a good understanding of them by simple exercises. Learn and share! I highly recommend this workshop; I hope you will enjoy it as I did.