TL;DR
I am a firm believer that meetups are an excellent opportunity to learn. On Testival Meetup #58, we had talked about Infrastructure As Code, mini-workshop of Risk Storming Tabletop game, how to write effective documentation and feature mapping analysis.
The sponsor for this meetup was Repsly, many thanks for their Testival support. Kreso Linke started with the usual introduction, where every participant said a few words about themself or their current testing activity. We had 25 participants. This Testival was bilocated meetup! At the same time, in the same building, but on a different floor, there was another meetup, How to price your SaaS or software product?
#1 Tomislav Plavcic (Percona) – Testing infrastructure and Linux packages with molecule/testinfra framework
We first had Linux servers, and we all did manual configuration. Then VirtualBox entered the scene, and we had one additional provisioner, along with our host operating system. After that, Chef and Puppet frameworks arose. Those replaced tedious bash scripts with Ruby and Python code. We were able to describe server configurations using source code. In the end, we got testing frameworks for checking those configurations. We could say that this is normal software evolution with testing appearing in the end.
I.A.C. is infrastructure as code. Tomislav’s business is to create Linux packages that contain a set of open-source tools related to open source databases. Test explosion is when you need to produce packages for various Linux distributions (15+ in his case). Tomislav mentioned some of the available frameworks in the field, and options are great.
When you want to do infrastructure automation, you have the following workflow:
- Create infrastructure – set up os using various options for provisioners, from Docker to A.W.S.
- Converge infrastructure – this is customization setup using Ansible roles, for example, run Nginx on none standardized https port.
- Verify and assert using checking framework
The molecule is a python package that helps you to automate Ansible role creation. Testinfra is a python package based on a pytest, enables you to write asserts with excellent assertion support for infrastructure verification.
And you first write Testinfra asserts, then ansible roles and in the end, you run roles on providers. At that point, all checks should pass.
It was a pizza/beer time provided by Repsly and some home-crafted beer from Tomislav. I prepared on the table tennis Risk Storming workshop.
#2 Risk Storming mini-workshop
I held this mini-workshop. Risk Storming is the Ministry Of Testing Tabletop game that helps you to create a test strategy around project risks. You can print this game for free, but you need to have a TestSphere card deck. Here is how it works:
- Phase 1 – In the center, you put something that reminds you of a product that you risk storm. We had my iPhone 6s Siri (iOS voice assistance). Zeljko tried to issue the command “Delete all contacts.” To my surprise, Siri understood the command but rejected it. My impression was that Siri recognizes only my voice. Security! From the TestSphere blue cards, which represent product Quality Aspects, we had 5 minutes to select as a group the six most important Siri Quality Aspects. We had one developer in the group.
- Phase 2 – we had 10 minutes to write post-it notes with possible risks related to those quality aspects cards.
- Phase 3 – Another ten minutes for the rest of the TestSpere card categories that help us with test ideas for a particular risk.
Categories are:
- Heuristics
- Feelings
- Techniques
- Patterns
In the end, you have enough information for your test strategy document in this simple form:
Why? You put the explanation of why we selected those six quality aspect cards. Explain which business value is threatened by those risks. Note, this is the job of product owner that must also be involved in Risk Storming.
Coverage – explain your test methods and list quality aspects that are not covered by this test plan.
Resources – now you know how to test. Divide work among the group members. List needed tools and dependencies in testing tasks (e.g., this task is a precondition to start testing).
Strategy – create time boxes for task activities. Explain each task and provide a report (what you found, how did you test) about the testing activity.
Feedback
Group was overwhelmed with the number of TestSphere cards that provide testing ideas. The idea is to use them in groups by color. Introduction to each card before the Risk Storming activity would be beneficial. One question was how to do it in a remote team. One solution is to put one camera above the Tabletop.
My takeaway is that for the third phase, knowing the TestSphere card is a precondition.
Five Minute Talks
#1 Zeljko Filipin, how to do the documentation.
In tutorials, you learn baby steps. How-to guides are recipes for problems encountered by authors or other users (F.A.Q.). Explanations are understanding oriented, you learn some concept (e.g., Gravity force). References are dictionaries, provide information with no additional answers.
#2 Tomislav Plavcic
Presented Minio, an open-source S3 compatible storage.
#3 Kreso Linke
Presented mind map templates for feature mapping.
#4 Renato Curic
He presented web framework for managing your CV.