<?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 semantics)</title><link>https://smallsheds.garden/</link><description></description><atom:link href="https://smallsheds.garden/categories/semantics.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-sa/4.0/" rel="nofollow" target="_blank"&gt;
&lt;img alt="Creative Commons BY-SA License" style="border-width:0;margin: 0px 0px 4px 0px;" src="https://licensebuttons.net/l/by-sa/4.0/80x15.png" /&gt;
&lt;/a&gt;
</copyright><lastBuildDate>Sat, 04 Jul 2026 11:02:58 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><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>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>Quality: different purposes, different definitions</title><link>https://smallsheds.garden/blog/2022/quality-different-purposes-different-definitions/</link><dc:creator>Joep Schuurkes</dc:creator><description>&lt;div&gt;&lt;p&gt;For years when asked to define quality, I've said "value to a person who matters"&lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="https://smallsheds.garden/blog/2022/quality-different-purposes-different-definitions/#fn:1"&gt;1&lt;/a&gt;&lt;/sup&gt;. Not too long ago I used that definition in the &lt;a href="https://smallsheds.garden/blog/2021/choosing-your-value-system/"&gt;first post&lt;/a&gt; of my four-part series "Thinking about quality". However, in the &lt;a href="https://smallsheds.garden/blog/2021/thinking-about-quality-so-what-to-do/"&gt;fourth post&lt;/a&gt; of that series I also said that quality is something emergent. And I continued with:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We can have long discussions about what quality is, but that's a different question from how do you get quality?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Today I took this one step further, when I realized that depending on the context, I talk very differently about quality. And while I may not define 'quality' explicitly in every conversation, implicitly I'm still using different definitions. That alone, I think is interesting: instead of a single, general definition of quality that always applies, I have different definitions depending on their purpose&lt;sup id="fnref:2"&gt;&lt;a class="footnote-ref" href="https://smallsheds.garden/blog/2022/quality-different-purposes-different-definitions/#fn:2"&gt;2&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://smallsheds.garden/blog/2022/quality-different-purposes-different-definitions/"&gt;Read more…&lt;/a&gt; (1 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>quality</category><category>quality engineering</category><category>semantics</category><category>software development</category><category>software testing</category><guid>https://smallsheds.garden/blog/2022/quality-different-purposes-different-definitions/</guid><pubDate>Wed, 24 Aug 2022 17:41: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>Getting [name] from "Name: [name]" in Python - an engineering problem</title><link>https://smallsheds.garden/blog/2019/getting-name-from-name-name-in-python-an-engineering-problem/</link><dc:creator>Joep Schuurkes</dc:creator><description>&lt;div&gt;&lt;p&gt;Today I was presented with an interesting engineering problem. (Important later: context was the code of an auto-test.) Given a string of the format "Name: [name]", what's the best way to get the [name] in Python?&lt;/p&gt;
&lt;p&gt;There are several options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;lstrip()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;split()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;replace()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;string slicing&lt;/li&gt;
&lt;li&gt;regex&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So let's look at each of them and then I'll explain which one I prefer and why. All examples are in Python 3.6, using the &lt;a href="https://docs.python.org/3.6/tutorial/interpreter.html"&gt;Python Interpreter&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://smallsheds.garden/blog/2019/getting-name-from-name-name-in-python-an-engineering-problem/"&gt;Read more…&lt;/a&gt; (5 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>programming</category><category>python</category><category>semantics</category><guid>https://smallsheds.garden/blog/2019/getting-name-from-name-name-in-python-an-engineering-problem/</guid><pubDate>Mon, 26 Aug 2019 19:27:38 GMT</pubDate></item><item><title>Your CI/CD pipeline does not run regression tests</title><link>https://smallsheds.garden/blog/2019/your-ci-cd-pipeline-does-not-run-regression-tests/</link><dc:creator>Joep Schuurkes</dc:creator><description>&lt;div&gt;&lt;h3&gt;CI/CD pipelines&lt;/h3&gt;
&lt;p&gt;The purpose of a CI/CD pipeline is to allow you to deliver small changes in a fast and controlled way. Without any tests in your pipeline you would gain a lot of speed. You'd also lose a lot control, which is why people in general do run tests in their pipeline. The purpose of these tests is to check if that stage of the pipeline meets the minimum level of acceptable quality for that stage.&lt;/p&gt;
&lt;p&gt;For example, commit stage tests will consist of mostly unit tests, a few integration tests, and even fewer end-to-end tests, because early in the pipeline speed is more important than comprehensiveness. When I commit my changes, I want the results fast enough so that I will wait for them - ready to fix any issue that might occur.&lt;/p&gt;
&lt;h3&gt;Regression testing&lt;/h3&gt;
&lt;p&gt;There are many definitions of regression testing, as you can read in &lt;a href="https://arborosa.org/2015/07/31/regression-testing/"&gt;Arborosa's blog post on the topic&lt;/a&gt;. I have always defined regression testing along the lines of "testing the parts that weren't impacted by a change to see if they really weren't impacted." (Which is really weird if you start thinking about it: something is regression testing depending on your knowledge of the system and the change.)&lt;/p&gt;
&lt;h3&gt;The tests in your pipeline are regression tests, …&lt;/h3&gt;
&lt;p&gt;Most of the tests that run in your pipeline are regression tests. Your commits are small and you have a lot of tests, so most of those will cover parts of the system that shouldn't have been impacted by your changes. So yes, regression tests.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://smallsheds.garden/blog/2019/your-ci-cd-pipeline-does-not-run-regression-tests/"&gt;Read more…&lt;/a&gt; (3 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>ci/cd</category><category>devops</category><category>regression testing</category><category>semantics</category><category>test automation</category><guid>https://smallsheds.garden/blog/2019/your-ci-cd-pipeline-does-not-run-regression-tests/</guid><pubDate>Mon, 05 Aug 2019 21:47:51 GMT</pubDate></item><item><title>Regression testing, it means less than you think</title><link>https://smallsheds.garden/blog/2016/regression-testing-it-means-less-than-you-think/</link><dc:creator>Joep Schuurkes</dc:creator><description>&lt;div&gt;&lt;p&gt;The past weeks I have made several attempts at a blog post about regression testing. About how we use it to refer to different things: tests running on a CI server, people executing test scripts, etc. And about how often the term really doesn't mean much at all, yet nobody questions you when you use it: "What are you doing?" "Regression testing." "Oh good, carry on." The point of the post would be to argue we should use the term 'regression testing' a lot less, because most of the time we can be more specific without having to be more verbose.&lt;/p&gt;
&lt;p&gt;However, the more I thought about (what I would qualify as) proper regression testing, the more I felt that regression versus progression (or progressive) testing is a distinction without difference. One interesting observation in this regard is that "regression testing" returns 30 times more results on Google than "progression testing" and "progressive testing" combined. So what's going on here if we have a dichotomy with one member producing so much more discussion than the other? And there's more: regression testing is commonly contrasted with test types like functional testing and usability testing. But how then should I categorize a regression test focusing on functionality&lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="https://smallsheds.garden/blog/2016/regression-testing-it-means-less-than-you-think/#fn:1"&gt;1&lt;/a&gt;&lt;/sup&gt;?&lt;/p&gt;
&lt;p&gt;&lt;a href="https://smallsheds.garden/blog/2016/regression-testing-it-means-less-than-you-think/"&gt;Read more…&lt;/a&gt; (7 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>regression testing</category><category>semantics</category><category>test management</category><category>test strategy</category><guid>https://smallsheds.garden/blog/2016/regression-testing-it-means-less-than-you-think/</guid><pubDate>Sun, 03 Jan 2016 18:42:26 GMT</pubDate></item><item><title>Why the testing/checking debate is so messy - a fruit salad analogy</title><link>https://smallsheds.garden/blog/2015/why-the-testingchecking-debate-is-so-messy-a-fruit-salad-analogy/</link><dc:creator>Joep Schuurkes</dc:creator><description>&lt;div&gt;&lt;p&gt;Five days ago James Thomas posted &lt;a href="https://www.linkedin.com/grp/post/55636-6069749695687770112?trk=groups-post-b-title"&gt;the following&lt;/a&gt; in the Software Testing &amp;amp; Quality Assurance group on LinkedIn:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Are Testing and Checking different or not?&lt;/strong&gt;&lt;br&gt;
This &lt;a href="http://gerrardconsulting.com/?q=node/659"&gt;article by Paul Gerrard&lt;/a&gt; explains why we shouldn't be trying to draw a distinction between checking and testing, but should be paying more attention to the skills of the testers we employ to do the job.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I posted a reply there, but I think I can do better than those initial thoughts, so here we go.&lt;/p&gt;
&lt;p&gt;Let's imagine the following scene: Alice and Bob are preparing a fruit salad together.&lt;br&gt;
&lt;em&gt;Alice&lt;/em&gt;: "Ok, let's make a nice fruit salad. We need some apples and some fruit."&lt;br&gt;
&lt;em&gt;Bob&lt;/em&gt;: "Euh, aren't apples fruit?"&lt;br&gt;
&lt;em&gt;Alice&lt;/em&gt;: "Yes. Of course. But when I say 'fruit', I mean 'non-apple fruit'."&lt;/p&gt;&lt;p&gt;&lt;a href="https://smallsheds.garden/blog/2015/why-the-testingchecking-debate-is-so-messy-a-fruit-salad-analogy/"&gt;Read more…&lt;/a&gt; (3 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>context-driven testing</category><category>semantics</category><category>testing and checking</category><guid>https://smallsheds.garden/blog/2015/why-the-testingchecking-debate-is-so-messy-a-fruit-salad-analogy/</guid><pubDate>Sun, 15 Nov 2015 11:17:12 GMT</pubDate></item><item><title>What's the word for the part of testing that's not checking?</title><link>https://smallsheds.garden/blog/2015/whats-the-word-for-the-part-of-testing-thats-not-checking/</link><dc:creator>Joep Schuurkes</dc:creator><description>&lt;div&gt;&lt;h3&gt;The question I asked&lt;/h3&gt;
&lt;p&gt;Yesterday &lt;a href="https://twitter.com/j19sch/status/632910141751447552"&gt;I asked on twitter&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Question: what's the proper word for the part of testing that's not checking? #cdt #testing #semantics&lt;br&gt;
- Joep Schuurkes (@j19sch) August 16, 2015&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The reason I asked, is that I noticed I needed that word in discussions about testing and checking. If checking is part of testing - and in the RST namespace it most definitely is, see '&lt;a href="http://www.satisfice.com/blog/archives/856"&gt;Testing and checking refined&lt;/a&gt;' -, then what can I contrast checking with? Contrasting checking with testing (as in 'checking versus testing') isn't going to work: there's one thing that's checking and then there's this other thing, testing, that contains that one thing and some other stuff&lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="https://smallsheds.garden/blog/2015/whats-the-word-for-the-part-of-testing-thats-not-checking/#fn:1"&gt;1&lt;/a&gt;&lt;/sup&gt;, but it's like a completely different thing. See the difference? Conceptually that just doesn't work - at least not in my mind.&lt;/p&gt;
&lt;h3&gt;The answers I got&lt;/h3&gt;
&lt;p&gt;So I figured I'd ask twitter in all its infinite testing wisdom and lo and behold, not only did people reply, a discussion ensued with the following people (listed in no particular order) participating in different configurations: &lt;a href="https://twitter.com/eddybruin"&gt;@eddybruin&lt;/a&gt;, &lt;a href="https://twitter.com/mariakedemo"&gt;@mariakedemo&lt;/a&gt;, &lt;a href="https://twitter.com/SandroIbig"&gt;@SandroIbig&lt;/a&gt;, &lt;a href="https://twitter.com/TestPappy"&gt;@TestPappy&lt;/a&gt;, &lt;a href="https://twitter.com/dwiersma"&gt;@dwiersma&lt;/a&gt;, &lt;a href="https://twitter.com/ilarihenrik"&gt;@ilarihenrik&lt;/a&gt;, &lt;a href="https://twitter.com/PhilipHoeben"&gt;@PhilipHoeben&lt;/a&gt;, &lt;a href="https://twitter.com/huibschoots"&gt;@huibschoots&lt;/a&gt; and &lt;a href="https://twitter.com/deefex"&gt;@deefex&lt;/a&gt;. Thank you all!&lt;/p&gt;
&lt;p&gt;&lt;a href="https://smallsheds.garden/blog/2015/whats-the-word-for-the-part-of-testing-thats-not-checking/"&gt;Read more…&lt;/a&gt; (4 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>context-driven testing</category><category>semantics</category><category>testing and checking</category><guid>https://smallsheds.garden/blog/2015/whats-the-word-for-the-part-of-testing-thats-not-checking/</guid><pubDate>Mon, 17 Aug 2015 18:19:25 GMT</pubDate></item></channel></rss>