<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Joep Schuurkes (Posts about software testing)</title><link>https://smallsheds.garden/</link><description></description><atom:link href="https://smallsheds.garden/categories/cat_software-testing.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2026 &lt;a href="mailto:site@joep.slmail.me"&gt;Joep Schuurkes&lt;/a&gt; 
&lt;a href="https://creativecommons.org/licenses/by-nc/4.0/" rel="nofollow" target="_blank"&gt;
&lt;img alt="Creative Commons BY-NC License" style="border-width:0;margin: 0px 0px 0px 0px" src="https://licensebuttons.net/l/by-nc/4.0/80x15.png" /&gt;
&lt;/a&gt;
</copyright><lastBuildDate>Wed, 22 Apr 2026 17:46:51 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>It's clearly a bug, but what is the bug exactly?</title><link>https://smallsheds.garden/blog/2026/its-clearly-a-bug-but-what-is-the-bug-exactly/</link><dc:creator>Joep Schuurkes</dc:creator><description>&lt;div&gt;&lt;p&gt;A couple weeks ago I was updating some of our Playwright tests, when Playwright decided to mess with the execution order of the tests. The tests in question are a group of tests that cover a whole process from start to end. So we run them in &lt;a href="https://playwright.dev/docs/test-retries#serial-mode"&gt;serial mode&lt;/a&gt;, &lt;em&gt;"to ensure they will always run together and in order"&lt;/em&gt;. And yet, they were not running in order.&lt;/p&gt;
&lt;p&gt;While that's obviously a bug, it wasn't clear what exactly the bug was. Was it the tests not running in the correct order? Or was that only a symptom of some other bug? And what was triggering this bug? Because we've had these tests running in serial mode for a while, but had never seen this behavior before.&lt;/p&gt;
&lt;h2&gt;The problem as we encountered it&lt;/h2&gt;
&lt;p&gt;The tests that triggered the issue were similar to these:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://smallsheds.garden/blog/2026/its-clearly-a-bug-but-what-is-the-bug-exactly/"&gt;Read more…&lt;/a&gt; (6 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>bugs</category><category>exploratory testing</category><category>software testing</category><guid>https://smallsheds.garden/blog/2026/its-clearly-a-bug-but-what-is-the-bug-exactly/</guid><pubDate>Sat, 07 Mar 2026 23:00:00 GMT</pubDate></item><item><title>Reflections after writing a release advice</title><link>https://smallsheds.garden/blog/2026/reflections-after-writing-a-release-advice/</link><dc:creator>Joep Schuurkes</dc:creator><description>&lt;div&gt;&lt;p&gt;Recently I had to write a release advice. My first thought was: &lt;em&gt;"I have close to two decades of experience in testing. I got this!"&lt;/em&gt; My second thought was: &lt;em&gt;"I haven't written a release advice in over ten years, how do I do this again?"&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Luckily the first thought reflected reality a lot better than the second one. And after reviews by my team members, my project lead, and our manager, I'm proud of the end result. Even though in some ways the document has ended up more like a release decision, than a release advice. (More on that later.)&lt;/p&gt;
&lt;h2 class="small"&gt;Lead with the actual advice&lt;/h2&gt;
&lt;p&gt;Initially I was going to start the document with a management summary, then an introduction, an overview of the testing that was done, the relevant known issues and remaining risks, then the actual release advice and finally some ideas on how to improve our testing further. Quite soon I realized that didn't make sense.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://smallsheds.garden/blog/2026/reflections-after-writing-a-release-advice/"&gt;Read more…&lt;/a&gt; (4 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>communication</category><category>software testing</category><category>test management</category><category>test reporting</category><guid>https://smallsheds.garden/blog/2026/reflections-after-writing-a-release-advice/</guid><pubDate>Sat, 07 Feb 2026 23:00:00 GMT</pubDate></item><item><title>Testing types - beyond definitions</title><link>https://smallsheds.garden/blog/2025/testing-types-beyond-definitions/</link><dc:creator>Joep Schuurkes</dc:creator><description>&lt;div&gt;&lt;p&gt;Testing types in software testing are a mess. It's not just &lt;a href="https://smallsheds.garden/blog/2016/regression-testing-it-means-less-than-you-think/"&gt;"regression testing"&lt;/a&gt; that can mean more things than there are people in the room. It's true for basically all of them.&lt;/p&gt;
&lt;p&gt;Just last week a teammate said &lt;em&gt;"We should also do integration testing."&lt;/em&gt; So I asked &lt;em&gt;"What do you mean by integration testing?"&lt;/em&gt;. And the reply was: &lt;em&gt;"Testing the frontend and backend together using Playwright."&lt;/em&gt; Which made me think &lt;em&gt;"I see what you mean, but I would never call that integration testing."&lt;/em&gt; and made me reply: &lt;em&gt;"Yeah, we should."&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The typical solution to this problem is to start defining the different testing types. To me, that's just one approach of many to make sense of testing types. So far I've come up with an additional five.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://smallsheds.garden/blog/2025/testing-types-beyond-definitions/"&gt;Read more…&lt;/a&gt; (5 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>communication</category><category>heuristics</category><category>semantics</category><category>software testing</category><category>test management</category><guid>https://smallsheds.garden/blog/2025/testing-types-beyond-definitions/</guid><pubDate>Mon, 08 Dec 2025 23:00:00 GMT</pubDate></item><item><title>We do not all have the same job</title><link>https://smallsheds.garden/blog/2025/we-do-not-all-have-the-same-job/</link><dc:creator>Joep Schuurkes</dc:creator><description>&lt;div&gt;&lt;p&gt;At the first conference I ever attended - or I think it was the first, in any case it was &lt;a href="https://smallsheds.garden/blog/2012/lets-test-2012-time-travel-advice/"&gt;Let's Test in 2012&lt;/a&gt; -, I asked someone &lt;em&gt;"So what kind of applications do you test?"&lt;/em&gt; And the reply was: &lt;em&gt;"One of the onboard computers of a Saab fighter plane."&lt;/em&gt; While at that time I was the test lead for an enterprise service bus.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;We do not all have the same job.&lt;/strong&gt;&lt;/p&gt;
&lt;div class="spacer"&gt;&lt;/div&gt;

&lt;p&gt;In a recent episode of the &lt;a href="https://qualityremarks.com/qr-podcast/"&gt;Quality Remarks podcast&lt;/a&gt; hosted by Keith Klain, Paul Holland told the story of an organization where running the test automation took 13 people two weeks. And no, I'm sorry, they didn't go into any detail about what happened in those two weeks. In my current project our pipeline takes 0 people about 17 minutes to run.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;We do not all have the same job.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://smallsheds.garden/blog/2025/we-do-not-all-have-the-same-job/"&gt;Read more…&lt;/a&gt; (1 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>career</category><category>conferences</category><category>paradigms</category><category>semantics</category><category>software testing</category><guid>https://smallsheds.garden/blog/2025/we-do-not-all-have-the-same-job/</guid><pubDate>Sat, 15 Nov 2025 23:00:00 GMT</pubDate></item><item><title>Some of the things I did after being off for a few weeks</title><link>https://smallsheds.garden/blog/2025/some-of-the-things-i-did-after-being-off-for-a-few-weeks/</link><dc:creator>Joep Schuurkes</dc:creator><description>&lt;div&gt;&lt;p&gt;&lt;em&gt;I wish people would share more of what they do day-to-day. Especially testers and quality engineers. Show the work you do. On the other hand, I do realize that that's hard. You don't want to share sensitive information. You want to respect the privacy of your team. And then there's the whole practical side. How much of the context do you need to share to have an intelligible story?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Since my current project is open source and my team works in public, I have more options than most. So let's see if this kind of post works out.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Last week was my first week back at work after a few weeks of vacation. So an important part of my week was catching up. Going through emails and chat messages. Talk with my fellow team members. Participate in the usual meetings. Some stuff that didn't make it into this post. More importantly, there are three things I did, that give a good idea of what a significant part of my job looks like.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://smallsheds.garden/blog/2025/some-of-the-things-i-did-after-being-off-for-a-few-weeks/"&gt;Read more…&lt;/a&gt; (5 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>exploratory testing</category><category>quality engineering</category><category>software testing</category><category>test automation</category><guid>https://smallsheds.garden/blog/2025/some-of-the-things-i-did-after-being-off-for-a-few-weeks/</guid><pubDate>Tue, 01 Jul 2025 22:00:00 GMT</pubDate></item><item><title>The difference between a test case and a requirement is the moment of discovery</title><link>https://smallsheds.garden/blog/2024/the-difference-between-a-test-case-and-a-requirement-is-the-moment-of-discovery/</link><dc:creator>Joep Schuurkes</dc:creator><description>&lt;div&gt;&lt;p&gt;There are several straightforward ways to distinguish a test case from a requirement. A test case tells you how to check some kind of thing about the application, a requirement tells you that the application should do some kind of thing. A test case is written by a tester, a requirement by a business analyst. A test case takes the shape of an action and an evaluation of the result, a requirement takes the form of a sentence like "product ABC shall do XYZ."&lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="https://smallsheds.garden/blog/2024/the-difference-between-a-test-case-and-a-requirement-is-the-moment-of-discovery/#fn:1"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;A less straightforward, but more interesting way to distinguish a test case and a requirement, is this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The difference between a test case and a requirement is the moment of discovery.&lt;sup id="fnref:2"&gt;&lt;a class="footnote-ref" href="https://smallsheds.garden/blog/2024/the-difference-between-a-test-case-and-a-requirement-is-the-moment-of-discovery/#fn:2"&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In this post I want to explore the meaning of that statement. In the next post I'll explore how looking at requirements and test cases in this way, can help us to do better testing. So this post will be a bit more philosophical, the next one more practical.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://smallsheds.garden/blog/2024/the-difference-between-a-test-case-and-a-requirement-is-the-moment-of-discovery/"&gt;Read more…&lt;/a&gt; (4 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>exploratory testing</category><category>quality engineering</category><category>semantics</category><category>software development</category><category>software testing</category><category>test cases</category><guid>https://smallsheds.garden/blog/2024/the-difference-between-a-test-case-and-a-requirement-is-the-moment-of-discovery/</guid><pubDate>Sun, 26 May 2024 22:00:00 GMT</pubDate></item><item><title>So you want to become a test engineer?</title><link>https://smallsheds.garden/blog/2024/so-you-want-to-become-a-test-engineer/</link><dc:creator>Joep Schuurkes</dc:creator><description>&lt;div&gt;&lt;p&gt;Becoming a test engineer these days is probably harder than it was for me back in 2006. Back then, there was no test automation, we worked in the slow rhythm of waterfall, and for years I was in a team with other testers or at least had a test manager to bounce ideas off. These days, there's a good chance none of these are true as you start as a test engineer.&lt;/p&gt;
&lt;p&gt;While most of these changes are good ones (please don't take test automation or agile away), it does make me empathize with anyone who starts their career as a test engineer today. The pace is higher and the skill set is broader. More importantly, you need to navigate your career while no one is really sure where to position testers in their organization. That's not a straightforward environment to start a career in.&lt;/p&gt;
&lt;p&gt;So here are four pieces of advice I'd give myself if I'd start my career in testing today:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;testing can be many different things&lt;/li&gt;
&lt;li&gt;you're a software engineer that specializes in testing&lt;/li&gt;
&lt;li&gt;the end-game is leadership skills&lt;/li&gt;
&lt;li&gt;shape your career in a way that suits you&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="https://smallsheds.garden/blog/2024/so-you-want-to-become-a-test-engineer/"&gt;Read more…&lt;/a&gt; (4 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>career</category><category>leadership</category><category>quality engineering</category><category>software development</category><category>software testing</category><guid>https://smallsheds.garden/blog/2024/so-you-want-to-become-a-test-engineer/</guid><pubDate>Sun, 25 Feb 2024 23:00:00 GMT</pubDate></item><item><title>My five favorite testing questions</title><link>https://smallsheds.garden/blog/2023/my-five-favorite-testing-questions/</link><dc:creator>Joep Schuurkes</dc:creator><description>&lt;div&gt;&lt;p&gt;Recently I realized there are a few testing questions I use a lot. They lie at the top of my testing toolbox, so to speak. Together they shape my testing style, making it easier for me to discover certain things, but probably also harder to find other kinds of things. So here are my five favorite testing questions, in no particular order.&lt;/p&gt;
&lt;h2&gt;What if there are zero, one, many, lots of this thing?&lt;a id="zero-ony-many-lots-oops"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Last year I expressed my surprise &lt;a href="https://chaos.social/@joeposaurus/109427704814392787"&gt;on Mastodon&lt;/a&gt; how many times I've found bugs by asking the question: &lt;em&gt;"What if there are 0 / 1 / several / lots of this thing?"&lt;/em&gt; And if you're working closely enough to the code, you should also ask about "null".&lt;/p&gt;
&lt;p&gt;Quite a few people responded to my message. Turns out it's a &lt;a href="https://www.qwan.eu/2021/07/09/tdd-0-1-n.html"&gt;very&lt;/a&gt; &lt;a href="http://blog.wingman-sw.com/tdd-guided-by-zombies"&gt;common&lt;/a&gt; &lt;a href="https://mas.to/@zebulon/109428667658139893"&gt;pattern&lt;/a&gt; in TDD. And Brian Marick&lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="https://smallsheds.garden/blog/2023/my-five-favorite-testing-questions/#fn:1"&gt;1&lt;/a&gt;&lt;/sup&gt; remembered it &lt;a href="https://mstdn.social/@marick/109428042023981110"&gt;standing out&lt;/a&gt; when he was looking into fixed bugs in the Linux kernel they used in the '80s. Personally I learned it from Elisabeth Hendrickson's &lt;a href="https://web.archive.org/web/20150217124452/http://testobsessed.com/wp-content/uploads/2011/04/testheuristicscheatsheetv1.pdf"&gt;"Test Heuristics Cheat Sheet"&lt;/a&gt;, which found a &lt;a href="https://www.ministryoftesting.com/articles/ab1cd85c?s_id=14715206"&gt;new home&lt;/a&gt; last year at the Ministry of Testing.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://smallsheds.garden/blog/2023/my-five-favorite-testing-questions/"&gt;Read more…&lt;/a&gt; (6 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>exploratory testing</category><category>heuristics</category><category>software testing</category><guid>https://smallsheds.garden/blog/2023/my-five-favorite-testing-questions/</guid><pubDate>Wed, 03 May 2023 06:57:25 GMT</pubDate></item><item><title>"Tester" is an overloaded variable</title><link>https://smallsheds.garden/blog/2022/tester-is-an-overloaded-variable/</link><dc:creator>Joep Schuurkes</dc:creator><description>&lt;div&gt;&lt;p&gt;Yesterday I came across a post on LinkedIn explaining why there are no testers in Scrum&lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="https://smallsheds.garden/blog/2022/tester-is-an-overloaded-variable/#fn:1"&gt;1&lt;/a&gt;&lt;/sup&gt;. What struck me most about the post was the amount of work the word "tester" was doing. In one sentence it meant one thing (a role in a team), in the next sentence something else (a step in the process), and so on. Hence the title of this post: the word "tester" was being used as an overloaded variable. So let's do some unpacking.&lt;/p&gt;
&lt;h2&gt;Testers to people management&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;"Having a tester"&lt;/em&gt; means that there are people with the official title of "tester" or "QA engineer" or whatever within the company. For the purposes of people management&lt;sup id="fnref:2"&gt;&lt;a class="footnote-ref" href="https://smallsheds.garden/blog/2022/tester-is-an-overloaded-variable/#fn:2"&gt;2&lt;/a&gt;&lt;/sup&gt;, there's a distinction between this role and the other roles in the company. This allows for more specific expectations about the role, for different career paths and salary scales, etc.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://smallsheds.garden/blog/2022/tester-is-an-overloaded-variable/"&gt;Read more…&lt;/a&gt; (4 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>management</category><category>scrum</category><category>semantics</category><category>software testing</category><category>test management</category><guid>https://smallsheds.garden/blog/2022/tester-is-an-overloaded-variable/</guid><pubDate>Thu, 04 Aug 2022 09:39:25 GMT</pubDate></item><item><title>It's time to retire our test case management tools</title><link>https://smallsheds.garden/blog/2020/its-time-to-retire-our-test-case-management-tools/</link><dc:creator>Joep Schuurkes</dc:creator><description>&lt;div&gt;&lt;p&gt;Recently the topic of test case management tools popped up a few times in my surroundings. In almost all cases I'd recommend against using these kinds of tools and I found myself able to give a few reasons, but also found that my thoughts lacked the clarity I'd like them to have. Hence this blog post, to force myself to think more deeply and communicate more clearly.&lt;/p&gt;
&lt;p&gt;Before I go into that, there are a few things this blog post is not about. I won't be really going into what effect test cases have on test execution, or rather if test cases are a good tool to use when doing actual testing. Personally I don't think they are and I wrote about my inability to use them in &lt;a href="https://smallsheds.garden/blog/2013/test-cases-cant-do-m-no-more/"&gt;this post from July 2013&lt;/a&gt;. For some deeper thoughts on this, I recommend James Bach's and Aaron Hodder's article "&lt;a href="https://www.testingcircus.com/documents/TestingTrapeze-2014-February.pdf#page=31"&gt;Test cases are not testing: Towards a culture of test performance&lt;/a&gt;".&lt;/p&gt;
&lt;p&gt;What I do want to cover in this post is managing test cases. Having a collection of test cases stored somewhere to re-use across releases and reporting their pass/fail numbers. Both are important use cases for a test case management tool and both are in my opinion a bad idea.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://smallsheds.garden/blog/2020/its-time-to-retire-our-test-case-management-tools/"&gt;Read more…&lt;/a&gt; (12 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>heuristics</category><category>test cases</category><category>test management</category><category>tools</category><guid>https://smallsheds.garden/blog/2020/its-time-to-retire-our-test-case-management-tools/</guid><pubDate>Sun, 19 Jul 2020 14:38:17 GMT</pubDate></item></channel></rss>