Category Archives: Testing

Software Testing

A tale of history

Disclaimer: The following story might be disturbing to some of you, especial if you happen to live in the United States of America right now. It’s more on the political side of things, rather than dealing with my more professional life. The sole reason for this is that I cannot keep my mouth (or blog for that matter) shut to the things that are happening around us today.

Hitler’s Signature

About nine years ago, my family bought a house that we hopefully will own directly at some point. It’s a rather old house, built in 1938, so I knew what we were setting up for when we made the deal. I knew I’d need to add new isolation, maybe new windows, and eventually replace the heating system that was roughly 20 years old at the time.

Step forward a few years, and it became clear we needed to replace the heating system. Not because it was failing, but because the chimney was getting wet to the point where the water came back into our living places. The chimney was pretty small, so a fix by a pipe was not an option. We didn’t have the means to buy a heating system right from our pockets, so I seeked to get a support program for replacing the old heating.

In Germany, that meant to get an assessment from an energy consultant. I made an appointment, brought the documents from the house construction with me, and let her dive through them. At one point, she called out: “Omg, the Führer signed this one.” And indeed, right on the first set of construction documents, there was Adolf Hitler’s signatory on it. I couldn’t believe it.

Then the consultant explained the circumstances to me. Back in 1937, the regime wanted to set up a military training ground in a village nearby. That military training ground still exists as of today. However, there was a small settlement of people in that area, so they relocated them. It turned out, that we bought one of the houses that were built for that matter. The houses left and right to ours have the same basic construction and were built for the same reason.

But this isn’t a story about our house or the neighbors’ houses.

Military training ground

There are public opening hours for the military training ground. As of today, German and British tank divisions use it for training purposes. At my first job, I found that the way to work was way more efficient when driving during public hours over that tank training ground rather than using the public roads around it, so I have been on that property a couple of times. You can still see the old village structures on there. And I will never forget the day when I found myself in my small car among 20 tanks, 10 in front of me, 10 behind, and got quite scared.

The German military base nearby isone of the largest – if not the largest – and according to Wikipedia, serves 4.300 soldiers. The British division is located closer to Paderborn in Paderborn-Sennelager, while the German troops are located in Augustdorf.

The name of the German barracks is indicated as “Gfm Rommel Kaserne” on road-signs, and I regularly drove by those signs for many years on my way to work. A few years back, I watched a piece on TV about Third Reich area military names still in use today. That’s when it clicked for me. General Field Marshal Rommel refers to no other person than Field Marshal Erwin Rommel, probably one of the most evil leaders during the Nazi regime in Germany.

My parents visited with us the close-by Nazi concentration camp in Bergen-Belsen, and I remember how sick that made me as a teenager to go through that part of our history. It’s a piece of our piece that I won’t deny, but also a piece of our past that I hoped would not exist. Back when I was in my 20s, my father consumed TV stations with the history of that area. At some point, he told me, that he was doing that because he never got to know any of that from his parents. They were outright silent on it, so as an adult he was still curious. Both my grandfathers served in World War II, and one of them even went into captivity in Stalingrad.

With all that in mind, I was disgusted to find out, the close-by barracks were named after such a leader from the Nazi regime, and even worse, the naming took place in 1961, several years after the Nazi regime had fallen. The name is controversial and has been debated for decades, according to information on the website of the Bundeswehr (German). Personally, I think they should rename it, but it seems to be decided by our military leaders whether that’s going to happen.

But this is not a story of renaming the local military barracks.

What this story is about

Now, suppose chancellor Angela Merkel or President of Germany Frank-Walter Steinmeier were publicly announcing to keep the name of the military barracks to someone with a central role in the Nazi regime. A regime that killed several million people for reasons we consider outright wrong today. Don’t get me wrong, I think Field Marshal Rommel did do some achievements during his career. Is he worth remembering in this manner? I don’t think so.

Now, especially my American readers, go back to the moment where you read about me suggesting Angela Merkel would publicly announce to keep the name of the barracks, and your reaction to that. Go through this state of emotion one more time. How does your stomach feel? How does your throat feel like? What is going on in your mind?

This is the type of reaction that black Americans feel every day once they ride past a military barrack named after a military leader from your Civil War time. The is the feeling any non-white American has during an interview with your President when he puts renaming your military bases off the table. That is the feeling every black American has when being stopped by the American police force.

I don’t want to tell you what to do about it, as I think you probably already know.

Data-driven tests in Junit5.0.0-SNAPSHOT

It’s been a while since I wrote code these days. Back in late April however I found myself in a Coding Dojo at the Düsseldorf Softwerkskammer meet-up working on the Mars Rover Kata. I have a story to share from that meeting. However, since I tried to reproduce the code we ended up with that night, and I decided to give JUnit5 (and Java8) a go for that, I ended up with a struggle.

Back in the days with JUnit4 I used the ParameterizedRunner quite often to use data-driven tests. I never remembered the signature of the @Parameters function, though. The Mars Rover Kata also includes some behavior that I wanted to run through a data-driven test, but how do you do that in JUnit5? I couldn’t find good answers for that on the Internet, so I decided to put my solution up here – probably for lots of critique.

Please note that I used JUnit 5.0.0-SNAPSHOT which is a later version than the alpha, but probably not the final one.

Continue reading Data-driven tests in Junit5.0.0-SNAPSHOT

State of Testing 2016 – My view

Usually I don’t write many promotions for other’s contents on this blog as I try to keep it personal and focused on my personal views. Recently I was contacted on the International 2016 State of Testing report, and whether I would like to do a write-up about it. I asked whether it would be ok to post a personal view, so here it is.

Continue reading State of Testing 2016 – My view

Why you should go to CAST

Last year, when the Association for Software Testing announced the location for their next annual conference CAST 2015, Grand Rapids, MI, there was an up-roar happening on social media and back channels like Skype and private conversations. To my own surprise, I saw members of the context-driven testing community falling short of their very own principles. Rather than observing and interacting with people, it seemed that some persons preferred to derive their knowledge about Grand Rapids based upon a prior CAST conference there. Experience may be a good resource to start looking at, but I found that I should trust the folks from the local area that I knew to put together an awesome conference – more so since they could explain to me why the past experience was not so well received. When it came to the October 2014 AST board member meeting, Pete Walen, the conference chair, the guy who managed to send in a proposal prior to CAST 2014 so that the AST board could decide upon it, invited us to the conference location, so that it was easy to see for us where we were going with the proposal. Here is what I learned during my two nights in the conference venue – and why I think you should attend.

Continue reading Why you should go to CAST

On auditing, standards, and ISO 29119

Disclaimer:
Since I am publishing this on my personal blog, this is my personal view, the view of Markus Gärtner as an individual.

I think the first time I came across ISO 29119 discussion was during the Agile Testing Days 2010, and probably also during Stuart Reid’s keynote at EuroSTAR 2010. Remembering back that particular keynote, I think he was visibly nervous during his whole talk, eventually delivering nothing worth of a keynote. Yeah, I am still disappointed by that keynote four years later.

Recently ISO 29119 started to be heavily debated in one of the communities I am involved in. Since I think that others have expressed their thoughts on the matter more eloquently and deeper than I going to do, make sure to look further than my blog for a complete picture of the whole discussion. I am going to share my current state of thoughts here.

Continue reading On auditing, standards, and ISO 29119

Principles of ATDD: Single Responsibility Principle

The other day, I sat down Kishen Simbhoedatpanday in order to talk about ATDD, and eventually an upcoming class on the implementation side of ATDD. We talked about maintainable tests, and how you could refactor tests to yield better tests. Gojko wrote about the anatomy of a good acceptance test a while back, and I think we can be more explicit here. Then it struck me. The Single Responsibility Principle also applies to your automated examples – and why that’s the case. You just need to think on a conceptual level about it. Mixing business domain concerns with application concerns in your examples – and sometimes even with driver concerns (think Selenium) – is a terrible thing to do.

Let’s explore this idea further.

Continue reading Principles of ATDD: Single Responsibility Principle

Working effectively with legacy tests

A couple of years ago I read a book from Michael Feathers that kept on being mentioned a lot in the literature I was reading then. The title? Working effectively with legacy code. Feathers makes some points on how to get code without tests working, by breaking down dependencies, introducing seams, and working towards more testable code. I loved that book.

When we take the idea of test automation as software development seriously, then there also should be a concept called legacy tests. That concept to me is related to testing debt, a term I think I coined back in 2009. But what are legacy tests? How do they slow down your productivity? And what can we do about it?

Here are some limited experiences I made with a couple of legacy tests, and how to overcome them. I hope this blog entry will trigger some more experience reports from folks, so that fewer teams need to suffer from it.

Continue reading Working effectively with legacy tests