<?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/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>Sun, 12 Apr 2026 11:47:01 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>How essential are your testers?</title><link>https://smallsheds.garden/blog/2025/how-essential-are-your-testers/</link><dc:creator>Joep Schuurkes</dc:creator><description>&lt;div&gt;&lt;p&gt;A question I don't seem to be able to let go of is: where does a tester fit into a software development team? More specifically, how essential are testers to the team?&lt;/p&gt;
&lt;p&gt;I think that there are basically three options:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Your testers do not add something essential.&lt;/li&gt;
&lt;li&gt;It's not clear if your testers add something essential.&lt;/li&gt;
&lt;li&gt;Your testers do add something essential.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 class="small"&gt;Your testers do not add something essential&lt;/h2&gt;
&lt;p&gt;I suspect this is becoming more and more common. Thanks to Agile, CI/CD, DevOps, improved tooling and changing expectations, you should not have testers that find the dumb bugs I was expected to find at the start of my career. If a programmer wrote a &lt;code&gt;&amp;gt;&lt;/code&gt; where it should have been a &lt;code&gt;&amp;gt;=&lt;/code&gt;, we should expect a unit test and not a tester to catch it.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://smallsheds.garden/blog/2025/how-essential-are-your-testers/"&gt;Read more…&lt;/a&gt; (3 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>career</category><category>management</category><category>quality engineering</category><category>software testing</category><category>teaching</category><category>test management</category><guid>https://smallsheds.garden/blog/2025/how-essential-are-your-testers/</guid><pubDate>Tue, 20 May 2025 22:00:00 GMT</pubDate></item><item><title>Optimizing for moments of discovery</title><link>https://smallsheds.garden/blog/2025/optimizing-for-moments-of-discovery/</link><dc:creator>Joep Schuurkes</dc:creator><description>&lt;div&gt;&lt;p&gt;&lt;em&gt;This is the third post in a three-part series about my statement "The difference between a test case and a requirement is the moment of discovery."&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Last year I wrote about how &lt;a href="https://smallsheds.garden/blog/2024/the-difference-between-a-test-case-and-a-requirement-is-the-moment-of-discovery/"&gt;the difference between a requirement and a test case is the moment of discovery&lt;/a&gt;. And how that means that we should &lt;a href="https://smallsheds.garden/blog/2024/being-intentional-about-exploratory-testing/"&gt;be intentional about our exploratory testing&lt;/a&gt;. Exploratory testing is just one example of a bigger idea, though: optimizing for moments of discovery.&lt;/p&gt;
&lt;p&gt;So what does that mean, optimizing for moments of discovery? Don't those moments just happen? Isn't that what serendipity is all about? I think it's fair to say that you can't make moments of discovery happen. You &lt;em&gt;can&lt;/em&gt; make them more likely to happen. That you &lt;em&gt;can&lt;/em&gt; optimize for.&lt;/p&gt;
&lt;p&gt;Before I go into two practices to optimize for these moments of discovery, I want to talk more generally about moving the moment of discovery, either earlier or later, for both requirements and test cases, i.e. for design and test. Because the two practices will do exactly that: moving the moment of discovery.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://smallsheds.garden/blog/2025/optimizing-for-moments-of-discovery/"&gt;Read more…&lt;/a&gt; (5 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>agile</category><category>elephant carpaccio</category><category>quality engineering</category><category>software development</category><category>software testing</category><guid>https://smallsheds.garden/blog/2025/optimizing-for-moments-of-discovery/</guid><pubDate>Sat, 15 Feb 2025 23:00:00 GMT</pubDate></item><item><title>The nine skills of exploratory testing</title><link>https://smallsheds.garden/blog/2024/the-nine-skills-of-exploratory-testing/</link><dc:creator>Joep Schuurkes</dc:creator><description>&lt;div&gt;&lt;p&gt;Exploratory testing is a learned skill, as I claimed in my previous post &lt;em&gt;&lt;a href="https://smallsheds.garden/blog/2024/being-intentional-about-exploratory-testing/"&gt;"Being intentional about exploratory testing"&lt;/a&gt;&lt;/em&gt;. In that post I mentioned the importance of two skills: noticing what there is to notice and deciding what to do next. Turns out it's not the first time I mentioned that pair of skills. In a post about &lt;a href="https://smallsheds.garden/blog/2021/an-approach-to-teaching-agile-20-years-after-the-agile-manifesto/#noticing-options-principles"&gt;how to teach Agile&lt;/a&gt;, I quoted John Mason's &lt;em&gt;"Researching Your Own Practice, The Discipline of Noticing"&lt;/em&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;"All professional development could be described as changes in sensitivity to notice and accumulation of alternative actions to initiate." (p. 147)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That does raise the question if the skills of exploratory testing can't be made a little more specific. After giving it some thought, I came up with seven additional skills, making a total of nine. For some reasons they ended up as questions rather than nouns. I like how that makes this post less of a checklist and more of a tool for self-reflection. Each skill could be its own blog post, so I'm going to focus on one key element of each skill.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://smallsheds.garden/blog/2024/the-nine-skills-of-exploratory-testing/"&gt;Read more…&lt;/a&gt; (8 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>exploratory testing</category><category>quality engineering</category><category>software development</category><category>software testing</category><guid>https://smallsheds.garden/blog/2024/the-nine-skills-of-exploratory-testing/</guid><pubDate>Sat, 14 Dec 2024 23:00:00 GMT</pubDate></item><item><title>Being intentional about exploratory testing</title><link>https://smallsheds.garden/blog/2024/being-intentional-about-exploratory-testing/</link><dc:creator>Joep Schuurkes</dc:creator><description>&lt;div&gt;&lt;p&gt;&lt;em&gt;This is the second post in a (to be) three-part series about my statement "The difference between a test case and a requirement is the moment of discovery."&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In the previous post I &lt;a href="https://smallsheds.garden/blog/2024/the-difference-between-a-test-case-and-a-requirement-is-the-moment-of-discovery/#translated-requirements"&gt;distinguished&lt;/a&gt; test cases that are translated requirements from ones that aren't. This is something I learned from &lt;a href="https://www.workroom-productions.com/"&gt;James Lyndsay&lt;/a&gt;. As he describes in &lt;em&gt;&lt;a href="https://www.workroom-productions.com/why-exploration-has-a-place-in-any-strategy/"&gt;"Why Exploration has a Place in any Strategy"&lt;/a&gt;&lt;/em&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Some tests are designed to find risks. They're made on-the-fly and run once. Some are designed to tell us about retained value. They're made once, and run forever after. You need &lt;em&gt;both&lt;/em&gt;: they tell you different things.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The tests with a focus on value are based on requirements, on things we know we want, they are prescribed (as in: written before). The tests with a focus on risks are exploratory, they are based on our decisions in the moment, we look for surprises and decide how we feel about those surprises.&lt;/p&gt;
&lt;p&gt;One thing I've noticed through the years, is that a lot more exploratory testing is happening than we give credit for. It's hidden, a required but implicit part of the work. We do it, but we're not intentional about it.&lt;/p&gt;
&lt;p&gt;Today I want to argue that it pays to be more intentional about exploratory testing. Before I get there, however, I want to explain what exploratory testing is, because there are still plenty of misconceptions going around.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://smallsheds.garden/blog/2024/being-intentional-about-exploratory-testing/"&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>risk</category><category>software development</category><category>software testing</category><guid>https://smallsheds.garden/blog/2024/being-intentional-about-exploratory-testing/</guid><pubDate>Fri, 08 Nov 2024 23:00:00 GMT</pubDate></item><item><title>What do you fix when you fix a test?</title><link>https://smallsheds.garden/blog/2024/what-do-you-fix-when-you-fix-a-test/</link><dc:creator>Joep Schuurkes</dc:creator><description>&lt;div&gt;&lt;p&gt;You ran the tests&lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="https://smallsheds.garden/blog/2024/what-do-you-fix-when-you-fix-a-test/#fn:1"&gt;1&lt;/a&gt;&lt;/sup&gt; - or a pipeline did it for you - and some of them failed. Time to fix the tests! But what is it exactly that needs fixing?&lt;/p&gt;
&lt;p&gt;There are quite a few things that might make a test fail:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;an issue with the build&lt;/li&gt;
&lt;li&gt;an issue with the pipeline (if that's where the test runs)&lt;/li&gt;
&lt;li&gt;an issue in the environment the code under test is running on&lt;/li&gt;
&lt;li&gt;an issue in the environment the test code is running on&lt;/li&gt;
&lt;li&gt;a bug in the code under test&lt;/li&gt;
&lt;li&gt;a mistake in the test code&lt;/li&gt;
&lt;li&gt;a mistake in what the test should test&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Arguably, on the last three describe a test that fails. The test did its job detecting a problem. In the first four we didn't even get that far. The issues prevented the test from doing its job. So in those cases, it's not the test(s) as such that need fixing.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://smallsheds.garden/blog/2024/what-do-you-fix-when-you-fix-a-test/"&gt;Read more…&lt;/a&gt; (5 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>coverage</category><category>quality engineering</category><category>software testing</category><category>test automation</category><category>test strategy</category><guid>https://smallsheds.garden/blog/2024/what-do-you-fix-when-you-fix-a-test/</guid><pubDate>Sat, 24 Aug 2024 22:00:00 GMT</pubDate></item></channel></rss>