<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Istqb on Ocarina — manual</title>
    <link>https://mojo-molotov.github.io/from-ocarina-to-igor/tags/istqb/</link>
    <description>Recent content in Istqb on Ocarina — manual</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <lastBuildDate>Thu, 28 May 2026 21:02:53 +0200</lastBuildDate>
    <atom:link href="https://mojo-molotov.github.io/from-ocarina-to-igor/tags/istqb/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>01.02 — ISTQB vs pytest / Jest / Mocha</title>
      <link>https://mojo-molotov.github.io/from-ocarina-to-igor/01-philosophy/02-istqb-vs-pytest/</link>
      <pubDate>Wed, 20 May 2026 00:00:00 +0000</pubDate>
      <guid>https://mojo-molotov.github.io/from-ocarina-to-igor/01-philosophy/02-istqb-vs-pytest/</guid>
      <description>&lt;h1 id=&#34;0102istqb-vs-pytest--jest--mocha&#34;&gt;01.02 — ISTQB vs pytest / Jest / Mocha&lt;a class=&#34;anchor&#34; href=&#34;#0102istqb-vs-pytest--jest--mocha&#34; data-pagefind-ignore=&#34;all&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;the-methodological-observation&#34;&gt;The methodological observation&lt;a class=&#34;anchor&#34; href=&#34;#the-methodological-observation&#34; data-pagefind-ignore=&#34;all&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Past the technical bet on the technical / non-technical barrier (see &lt;a href=&#34;https://mojo-molotov.github.io/from-ocarina-to-igor/01-philosophy/01-flip-the-problem/&#34;&gt;&lt;code&gt;01-flip-the-problem.md&lt;/code&gt;&lt;/a&gt;), there&amp;rsquo;s a &lt;strong&gt;second bet&lt;/strong&gt;: the one on trade vocabulary.&lt;/p&gt;&#xA;&lt;blockquote class=&#39;book-hint &#39;&gt;&#xA;&lt;p&gt;The ISTQB and professional testers have spent decades building a precise, battle-tested vocabulary: &lt;em&gt;test cycles&lt;/em&gt;, &lt;em&gt;campaigns&lt;/em&gt;, &lt;em&gt;test suites&lt;/em&gt;, &lt;em&gt;test cases&lt;/em&gt;, &lt;em&gt;test steps&lt;/em&gt;. A clear hierarchy, built to &lt;strong&gt;organize, trace and drive&lt;/strong&gt; software quality.&lt;/p&gt;&#xA;&lt;p&gt;Automation tools have &lt;strong&gt;largely ignored that legacy&lt;/strong&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>12.08 — Ocarina in the testing industry</title>
      <link>https://mojo-molotov.github.io/from-ocarina-to-igor/12-manifesto-deciphered/08-ocarina-in-testing-industry/</link>
      <pubDate>Wed, 20 May 2026 00:00:00 +0000</pubDate>
      <guid>https://mojo-molotov.github.io/from-ocarina-to-igor/12-manifesto-deciphered/08-ocarina-in-testing-industry/</guid>
      <description>&lt;h1 id=&#34;1208ocarina-in-the-testing-industry&#34;&gt;12.08 — Ocarina in the testing industry&lt;a class=&#34;anchor&#34; href=&#34;#1208ocarina-in-the-testing-industry&#34; data-pagefind-ignore=&#34;all&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;blockquote class=&#39;book-hint &#39;&gt;&#xA;&lt;p&gt;Ocarina isn&amp;rsquo;t a &lt;em&gt;better&lt;/em&gt; pytest, isn&amp;rsquo;t a &lt;em&gt;better&lt;/em&gt; Robot Framework, isn&amp;rsquo;t a &lt;em&gt;better&lt;/em&gt; Cypress. It&amp;rsquo;s &lt;strong&gt;structurally elsewhere&lt;/strong&gt;. This chapter tries to explain the &lt;em&gt;shift&lt;/em&gt; it represents and the head start it takes.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&lt;h2 id=&#34;1-the-current-industry-map&#34;&gt;1. The current industry map&lt;a class=&#34;anchor&#34; href=&#34;#1-the-current-industry-map&#34; data-pagefind-ignore=&#34;all&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;three-big-e2e-tool-families&#34;&gt;Three big e2e tool families&lt;a class=&#34;anchor&#34; href=&#34;#three-big-e2e-tool-families&#34; data-pagefind-ignore=&#34;all&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Family&lt;/th&gt;&#xA;          &lt;th&gt;Examples&lt;/th&gt;&#xA;          &lt;th&gt;Model&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;Text DSLs&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Robot Framework, Cucumber + Gherkin&lt;/td&gt;&#xA;          &lt;td&gt;Permanent translation layer between &lt;em&gt;text&lt;/em&gt; and &lt;em&gt;code&lt;/em&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;Runner plugins&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;pytest-selenium, pytest-playwright, pytest-bdd&lt;/td&gt;&#xA;          &lt;td&gt;Grafted onto pytest, inherit its lifecycle&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;Vendor SaaS&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;BrowserStack, Sauce Labs, LambdaTest, Cypress Dashboard&lt;/td&gt;&#xA;          &lt;td&gt;Local runner + paid execution cloud&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;three-shared-friction-surfaces&#34;&gt;Three shared &lt;em&gt;friction surfaces&lt;/em&gt;&lt;a class=&#34;anchor&#34; href=&#34;#three-shared-friction-surfaces&#34; data-pagefind-ignore=&#34;all&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Friction&lt;/th&gt;&#xA;          &lt;th&gt;Manifestation&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;Marketing &amp;gt; Technical&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Tools sold on demos, conferences, and &lt;em&gt;oriented&lt;/em&gt; certifications. &lt;em&gt;Hype&lt;/em&gt; drives adoption.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;Vendor lock-in&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Once adopted, refactor is costly, &lt;em&gt;hostage taking&lt;/em&gt;.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;Misplaced cognitive effort&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Understanding the tool takes longer than doing the work.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;2-ocarinas-technical-bet&#34;&gt;2. Ocarina&amp;rsquo;s technical bet&lt;a class=&#34;anchor&#34; href=&#34;#2-ocarinas-technical-bet&#34; data-pagefind-ignore=&#34;all&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;No text DSL&lt;/strong&gt; → pure Python, &lt;em&gt;embedded DSL&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;No pytest plugin&lt;/strong&gt; → integrated runner, absolute ISTQB fidelity.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;No &lt;code&gt;async&lt;/code&gt;/&lt;code&gt;await&lt;/code&gt;&lt;/strong&gt; → simplicity, Selenium-synchronous compatibility, no &amp;ldquo;&lt;em&gt;geek tricks&lt;/em&gt;&amp;rdquo;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;No SaaS&lt;/strong&gt; → all local, very dense core, &lt;em&gt;white box&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;See also: &lt;a href=&#34;https://mojo-molotov.github.io/from-ocarina-to-igor/11-independence/03-explicit-refusals/&#34;&gt;&lt;code&gt;../11-independence/03-explicit-refusals.md&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>12.15 — Typing, ISTQB, Reinforcement Learning, probes: why AI works in Ocarina</title>
      <link>https://mojo-molotov.github.io/from-ocarina-to-igor/12-manifesto-deciphered/15-typing-ai-rl-probes/</link>
      <pubDate>Wed, 20 May 2026 00:00:00 +0000</pubDate>
      <guid>https://mojo-molotov.github.io/from-ocarina-to-igor/12-manifesto-deciphered/15-typing-ai-rl-probes/</guid>
      <description>&lt;h1 id=&#34;1215typing-istqb-reinforcement-learning-probes-why-ai-works-in-ocarina&#34;&gt;12.15 — Typing, ISTQB, Reinforcement Learning, &lt;em&gt;probes&lt;/em&gt;: why AI works in Ocarina&lt;a class=&#34;anchor&#34; href=&#34;#1215typing-istqb-reinforcement-learning-probes-why-ai-works-in-ocarina&#34; data-pagefind-ignore=&#34;all&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;blockquote class=&#39;book-hint &#39;&gt;&#xA;&lt;p&gt;Why so much &lt;strong&gt;obsession&lt;/strong&gt; over strict typing, formalizing every interface, alignment on &lt;strong&gt;ISTQB&lt;/strong&gt;, refusing to execute an assertion without having &lt;em&gt;observed&lt;/em&gt;? The mechanism is borrowed from &lt;strong&gt;Reinforcement Learning&lt;/strong&gt;: an agent only progresses under &lt;strong&gt;constraint&lt;/strong&gt; + &lt;strong&gt;reward signal&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&lt;h2 id=&#34;1-a-naked-llm-is-just-a-bad-collaborator&#34;&gt;1. A naked LLM is just a bad collaborator&lt;a class=&#34;anchor&#34; href=&#34;#1-a-naked-llm-is-just-a-bad-collaborator&#34; data-pagefind-ignore=&#34;all&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;An LLM without a structured environment is:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;em&gt;Optimistic&lt;/em&gt; — it assumes its code works.&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Persuasive&lt;/em&gt; — its &lt;em&gt;output&lt;/em&gt; is convincing even when wrong.&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Memoryless&lt;/em&gt; — it forgets conventions between sessions.&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Feedbackless&lt;/em&gt; — it has no way to know it was wrong.&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;Loves what it deems &amp;ldquo;most likely&amp;rdquo;&lt;/em&gt; — it drifts toward &lt;em&gt;popular&lt;/em&gt; patterns, not &lt;em&gt;correct&lt;/em&gt; ones.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;Without an environment, an LLM is an over-confident junior dev&lt;/strong&gt; producing code that &lt;em&gt;looks&lt;/em&gt; right, breaks in prod, and learns nothing from the failure.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
