<?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 quality engineering)</title><link>https://smallsheds.garden/</link><description></description><atom:link href="https://smallsheds.garden/categories/quality-engineering.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, 08 Mar 2026 16:40:48 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Not continuous everything!</title><link>https://smallsheds.garden/blog/2025/not-continuous-everything/</link><dc:creator>Joep Schuurkes</dc:creator><description>&lt;div&gt;&lt;p&gt;In Chapter 18 of "Taking Testing Seriously" (I skipped ahead, sue me), &lt;a href="https://qualityremarks.com/"&gt;Keith Klain&lt;/a&gt; says:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;So much today is about "continuous everything" - continuous deployment, continuous integration - and speed. The pace at which people are doing things is really, really disruptive to thinking deeply about problems. Then the goal gets displaced from getting good products and services to customers quickly, and turns into, "How do we back something out quickly when we inevitably screw up?" It's continuous everything - except continuous thinking.&lt;br&gt;
&lt;em&gt;- Taking Testing Seriously, James Bach, Michael Bolton et al., 2025, p. 424&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;He has a point. But I got there by first kind of disagreeing with what he said. Because "continuous everything" is not about speed. It's about risk. Or rather, about managing certain risks: the risk of (code) integration and the risks of delivery/deployment. And how fast you go, should not just be determined by those two specific risks. (Or even worse, by the fact that you just think it's really cool that you can release every commit to your users.) It should be determined by your overall risk appetite, which is a much broader perspective.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://smallsheds.garden/blog/2025/not-continuous-everything/"&gt;Read more…&lt;/a&gt; (6 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>ci/cd</category><category>quality engineering</category><category>risk</category><guid>https://smallsheds.garden/blog/2025/not-continuous-everything/</guid><pubDate>Sat, 20 Dec 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><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>A good tester is all over the place</title><link>https://smallsheds.garden/blog/2023/a-good-tester-is-all-over-the-place/</link><dc:creator>Joep Schuurkes</dc:creator><description>&lt;div&gt;&lt;p&gt;Over the past year, I've been thinking about how testing-related roles are still an unsolved problem in software development. We keep trying different permutations: shifting left and shifting right, being closer to the programmers while not too far from other testers, doing less testing ourselves so we can support others more, etc.&lt;/p&gt;
&lt;p&gt;And still, to be effective in any of these permutations, you can't let yourself be limited by them. You need to work both inside and outside the existing structures. You have to "be all over the place", in a good way.&lt;/p&gt;
&lt;h2&gt;Testers do testing&lt;/h2&gt;
&lt;p&gt;Let's start with a straightforward statement: a tester tests. Then what is testing? I &lt;a href="https://smallsheds.garden/blog/2018/reflections-on-my-testing-manifesto/"&gt;still like&lt;/a&gt; the definition &lt;em&gt;"Testing is investigating in order to evaluate a product."&lt;/em&gt; The most obvious thing to investigate, to test, is the code that is being written. The best way to do this, in my opinion, is through the combination of exploratory testing and test automation, i.e. what &lt;a href="https://maaretp.com/"&gt;Maaret Pyhäjärvi&lt;/a&gt; has named "&lt;a href="https://www.youtube.com/watch?v=T_67oQrPZhQ"&gt;contemporary exploratory testing&lt;/a&gt;". And to be clear, while the execution part tends to be the most visible, effective testing also needs good test strategy, design, and reporting.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://smallsheds.garden/blog/2023/a-good-tester-is-all-over-the-place/"&gt;Read more…&lt;/a&gt; (11 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>management</category><category>quality engineering</category><category>software development</category><category>software testing</category><category>test management</category><guid>https://smallsheds.garden/blog/2023/a-good-tester-is-all-over-the-place/</guid><pubDate>Sat, 25 Nov 2023 23:00:00 GMT</pubDate></item></channel></rss>