Kubernetes-native continuous delivery pipelines with Brigade

In my quest for the ultimate tool for continuous integration and continuous delivery pipelines on a Kubernetes cluster, I've previously looked at well-known options such as Gitlab and Jenkins. These tools may have integrations with Kubernetes, but are usually anything but lightweight. If you just want to get your code from point A (git) to point B (a production Kubernetes cluster), you may be interested in a new tool named "Brigade".

Brigade was introduced by Microsoft late last year. It's an event-driven scripting tool for Kubernetes which aims to make CI/CD pipelines on a cluster easier. Contrary to many other tools, it tells developers to "leave your YAML at home", instead opting for JavaScript.

In this blog, I'd like to walk you through the steps of setting up your first basic CI/CD pipeline with Brigade.

Read more →

TDD in React

It’s nearly impossible to keep up with the pace JavaScript frameworks pop up nowadays and I believe it’s good to have some focus. For me, this means the big three as defined in this post and more specifically doing basic TDD with React. Read more →

Using Specification by Example / BDD for your refinements

When I'm joining new teams at clients it often becomes clear that the added value of refinements is not always seen. Team members complain that hours are wasted. The refinement sessions shouldn't be long draining meetings with endless discussions. Refinements should instead provide a clear added value in the form of requirements that the whole team can work with to deliver added value. How do you shape your refinements in a way that they add value? Read on to see how BDD / Specification by Example can help you!

Read more →

Rediscovering testing with Horizon: Zero Dawn

Recently Guerrilla Games launched its newest and first open world game: Horizon: Zero Dawn. This got us thinking. Is game testing any different than testing 'regular' software? Together with Ana Barbuta, QA Manager at Guerrilla Games, we held a Meetup to find the answer to this question. In this blog post, we reflect shortly on how we look at testing in general and how this view fits with what we've learned about testing games.

Read more →

De-mystifying Jest Snapshot Test Mocks

So, let’s say you have a nice React Native setup with the Jest testing library. You want to snapshot-test all your components of course! But you’re getting seemingly unrelated errors when you tried to mock a third party module in your snapshots and you’re lost in all that API documentation. Let’s dig into an example and get a clear picture of what’s happening under the hood.

Read more

How to create your own Lint rule

When you are part of a multi-team project in Android, it becomes relatively hard to have a common understanding of how components should be used. This is where Android Lint can help you! In this blog we will show you how you can write your own Lint rules and test them. As an example, we create a sample Lint Detector, which is used to detect whether you have excluded the "secret data" in your application from the Android Authobackup introduced in Android Marshmallow.

Read more →

Robots bring business and IT together

Maybe you’ve already read the diary of one of our mBots, if not I encourage you to do so first! So, what was this day all about? How did we come to organise this and what did the participants learn?

Changing teams

As companies decide to adopt a more agile way of working, they also start to form multidisciplinary scrum teams. However, there still is a big challenge. When you work with several disciplines in your scrum team, you are exposed to the risk that you still create mini-handovers. First the business analyst will make the design, the developer(s) will build it, the testers will test it and if you’re lucky the business is happy in the end. Team members tend to keep doing what they’ve always been doing. Nothing really changed! Of course, we cannot realistically expect that the business suddenly starts programming, but it would be great if they know the difficulties that developers cope with. It works the same the other way around. We need to learn from each other and bring our work closer together.Read more →

Mapping Biases to Testing: Confirmation Bias

I use terminology from earlier blog posts about biases. If you have missed those posts, read part 1 here. I explain the terminology there. In the second post I wrote about the Anchoring Effect.

Let me state the ‘bad news’ up front: you cannot fully avoid the confirmation bias. That’s actually a good thing, because if you could you wouldn’t be human. We jump to conclusions (with System 1) when our assumptions are likely to be correct[1] and a mistake is acceptable. For example, when you meet a new person you immediately judge him or her based on stereotypes, what type of clothes the other person wears, his/her posture, etcetera. This happens so quickly that you cannot stop it.

confirmationHowever, jumping to conclusions can be a bad thing when the situation is unfamiliar, the stakes are high and when there is no time to collect more information[2] . This screams ‘testing!!’ to me. We are often dealing with unfamiliar situations, the stakes are high and we usually face a deadline. How do we deal with this? Let’s explore what the confirmation bias has to do with testing.

Read more →