09.02 — I18n FR/EN/RU#
Toutes les pages du Holy Book existent en trois versions. EN à la racine de
docs/, FR sousdocs/fr/, RU sousdocs/ru/. VitePress route automatiquement.
Structure des fichiers#
docs/
├── index.md # EN home
├── what-is-it.md
├── first-feedbacks.md
├── setup.md
├── scenarios-composability.md
├── datasets-smoke-tests-setup-teardown-proxy-api-and-caching.md
├── handling-flakiness.md
├── extensibility.md
├── using-ocarina-with-ai.md
│
├── fr/
│ ├── index.md # FR home
│ ├── what-is-it.md
│ ├── first-feedbacks.md
│ ├── setup.md
│ ├── scenarios-composability.md
│ ├── datasets-smoke-tests-setup-teardown-proxy-api-and-caching.md
│ ├── handling-flakiness.md
│ ├── extensibility.md
│ └── using-ocarina-with-ai.md
│
├── ru/
│ ├── index.md # RU home
│ ├── what-is-it.md
│ ├── first-feedbacks.md
│ ├── setup.md
│ ├── scenarios-composability.md
│ ├── datasets-smoke-tests-setup-teardown-proxy-api-and-caching.md
│ ├── handling-flakiness.md
│ ├── extensibility.md
│ └── using-ocarina-with-ai.md
│
├── public/
│ ├── favicon.ico
│ ├── logo.png
│ ├── robots.txt
│ ├── .nojekyll
│ ├── .spa
│ └── assets/
│ └── content/
│ └── ... # images partagées EN+FR+RU
│
└── .vitepress/
├── config.mts
├── blog-theme.ts
├── shims.d.ts
├── plugins/
│ ├── llm.ts
│ ├── pub.ts
│ ├── skills.ts
│ └── webp.ts
└── theme/
├── index.ts
├── style.css
├── user-theme.css
├── components/
│ ├── Pagination.vue
│ ├── BlogHomeBanner.vue
│ └── NotFound.vue
└── assets/
└── bg.pngRouting#
| Page | URL EN | URL FR | URL RU |
|---|---|---|---|
| Page d’accueil | / | /fr/ | /ru/ |
| Pitch | /what-is-it | /fr/what-is-it | /ru/what-is-it |
| Coup de gueule | /first-feedbacks | /fr/first-feedbacks | /ru/first-feedbacks |
| Setup | /setup | /fr/setup | /ru/setup |
| … | … | … | … |
VitePress crée automatiquement le switcher de langue (en haut à droite). Cliquer sur « FR » depuis /setup → /fr/setup.
Frontmatter#
---
sticky: 1
pagefind-indexed: false
description: Les frameworks de test ont tous fait le même mauvais pari. Ocarina fait le contraire. Apprenez pourquoi.
date: 2026-04-24
head:
- - meta
- property: og:image
content: http://mojo-molotov.github.io/ocarina-holy-book/assets/content/what-is-it/creatives/the-children-tools-battle.png
---| Champ | Rôle |
|---|---|
sticky: 1 | Configuration obscure du thème, détail d’implémentation (@sugarat/theme) |
pagefind-indexed: false | Exclusion de l’index Pagefind (souvent pour les pages concernant la “philosophie” qu’on ne veut pas voir polluer la recherche technique) |
description | Meta description (SEO + Open Graph) |
date | Date de publication (affichée + utilisée par le tri + déterminant l’ordre des chapitres à la génération en PDF) |
head.meta.og:image | Image de couverture (réseaux sociaux/aperçus OG lors de partages dans des chats + cards d’article) |
Traduction humaine#
Les pages FR ne sont pas auto-traduites de l’EN.
Elles sont écrites séparément, avec :
- Des tournures idiomatiques.
- Des références culturelles (« paquet de clopes », « r/AntiTaff »).
- Des citations originales reprises telles quelles côté FR comme RU (comme « In the Lulzboat, salute, bitch, and show some respect. » qui reste en anglais).
La structure et le fond technique sont identiques.
Pages#
index.md#
---
layout: home
blog:
name: "Le livre sacré d'Ocarina"
minScreenAvatar: false
pageSize: 6
analysis: false
---Layout home = page d’accueil de blog (cards d’articles). 6 cards par page. Retrait de certaines fonctionnalités « fancy » du thème. Pas d’analytics.
what-is-it.md#
C’est le manifeste :
- « Encore un ! » (Eux, Nous)
- « Le problème culturel » (ISTQB)
- « Le vrai point de douleur » (créativité, science)
- « Vision » (grammaire souveraine, né sur le terrain, adoption)
Cf. ../01-philosophy/01-flip-the-problem.md, ../01-philosophy/02-istqb-vs-pytest.md
first-feedbacks.md#
C’est le pamphlet :
- « Premiers griefs »
- « Complexité ostentatoire »
- « Philosophie » (KISS, anti-narcissisme, etc.)
- « Sécession » (anti-no-code, anti-startup-nation, anti-hype, anti-slipologues)
- « Première interaction pertinente »
Cf. ../01-philosophy/03-kiss-and-complexity.md, ../01-philosophy/05-political-stance.md
setup.md#
C’est le premier tutoriel d’onboarding :
- Avertissement (« ce livre facilite la prise en main d’
ocarina-example, qui reste la source de vérité, mais rien ne remplace la pratique »). - Mise en place du projet.
- Les adapters (EnvGetters, Act, TestCampaign, TestSuite, MatchPage).
- Écrire un premier POM.
- Écrire des connectors.
- Écrire un premier scénario.
- Créer une suite.
- Créer une campagne.
- Créer un cycle.
- Bootstrapper le projet.
Cf. ../07-ocarina-example/02-adapters.md
scenarios-composability.md#
Un autre tutoriel pour aider à comprendre ses « premiers scénarios » :
- « La fin des états invalides » (act, drive_page, match_page).
- « Système immunitaire » (toutes les erreurs mypy qu’on a vues :
../02-ocarina/03-railway/02-action-chain-states.md). - « Répétitions » (
[...] * 5). - « Fragments » (pre/post).
- « Aliasing ».
datasets-smoke-tests-setup-teardown-proxy-api-and-caching.md#
Encore un tutoriel pour creuser un peu plus sous la forme de « Premiers jutsus » et détailler ce qu’Ocarina fait et ne fait PAS :
- Jeux de données (data-driven).
- Tests de fumée.
- Setup et teardown.
- Proxy pattern (HumanizedDriver).
- Programmation réactive : NON.
- Appels API et verrous.
- Profil navigateur.
handling-flakiness.md#
Un vrai retour terrain, « Premiers obstacles du monde réel », très focalisé sur les questions de flakiness :
- Aléas serveur (hook
on_failure). - Aléas de pas de test (retries internes au POM).
- Aléas de Selenium (
WebDriverExceptiondanstransient_errors). - Erreurs aléatoires discrètes (Watcher).
- Heisenbugs de concurrence (saturate_workers).
extensibility.md#
Article pour pouvoir commencer à dézoomer, qui présente l’« Extensibilité » :
- ValidationChain (chaînage d’invariants, chainvalidations, custom assertions, _type safety).
- Success et failure (handlers).
- Plugins post-exec.
- Grammaire extensible (« la seule contrainte du point d’extension : retourner un
ChainRunner»).
using-ocarina-with-ai.md#
C’est le dernier article, pour dézoomer encore, qui présente comment « Utiliser Ocarina avec l’IA ». Il ouvre la voie pour le vibe testing :
- Les trois pierres ancestrales.
CLAUDE.md(complet et slim).skills/(9 familles, 40+ skills).- Chaînes récurrentes.
- Discipline.
- Ce que ce setup n’est pas.
- Ressources exposées.