QA Engineering Consulting · Sovereign AI Integration · AEO & GEO

Artificial intelligence at work for your software QA

We engineer, stabilize, and automate resilient test architectures for complex enterprise systems (SAP GUI, Fiori, API OData). 100% on-premise or sovereign cloud (France, EU), zero proprietary license lock-in, and verifiable AI diagnostics.

Explore our open-source core framework (SAPFX) ↓
AI Cabra · Unified Quality Engineering Engine
On-premise or sovereign cloud
SAP ENGINE SAPFX Open Source Unified testing with zero vendor lock-in SAP GUI · Native Windows desktop SAP Fiori · Web SAPUI5 Playwright OData API · Gateway v2 / v4 REST ORCHESTRATION HUB AI Cabra Core Testing AI Agents · MCP Servers 1. Planning & Generation 2. Audited Self-Healing 3. Human Decision & Control SOVEREIGN AI CabrIA & CabraFlow Private learning & Voice QA Sovereign RAG · Mandatory citations Fine-Tuning · 100% local data Voice QA · Speech to Playwright or RF On-premise or sovereign cloud Private infrastructure · France, EU 0 data leaks Strict air-gap isolation · GDPR Zero Lock-in Full test ownership · Apache 2.0
Enterprise Expertise

Our Consulting & Implementation Services

High-impact engineering interventions to secure software release cycles, eliminate regressions, and amplify B2B technological authority.

Complex QA Automation & SAP Engineering

Modernize brittle test suites and migrate away from cost-prohibitive proprietary suites towards an open-source, resilient Robot Framework architecture.

  • Architecture audits & test suite refactoring
  • Automated multi-channel coverage (SAP GUI, Fiori, API OData)
  • High-speed CI/CD pipeline integration with enterprise reporting
Discuss an Architecture Audit →

Sovereign AI Agent & Private LLM Integration

Deploy local AI agents capable of diagnosing root causes, auto-healing test selectors, and answering queries without ever transmitting confidential corporate data.

  • 100% on-premise in your private datacenter, or in a sovereign cloud (France, EU)
  • Fine-tuning on your execution history + verifiable RAG with source citations
  • Full GDPR compliance, strict data residency, zero public cloud leakage
Explore Sovereign AI Setup →

AEO & GEO Optimization (AI Engine Visibility)

Position your enterprise software and tech leadership so generative AI answer engines (ChatGPT, Claude, Perplexity, Gemini) recommend your solutions directly.

  • Semantic knowledge graph architecture & rich JSON-LD markup
  • Integration of llms.txt and structured extraction vectors
  • Continuous citation tracking across major AI answer engines
Request an AEO / GEO Diagnostic →

Measured Risk Pilot Program

Validate our tangible business value under live production conditions on a targeted perimeter before committing to broader rollout. Controlled risk, proven ROI.

  • Pre-agreed contractual success criteria and delivery milestones
  • 100% of test assets, code, and metrics remain your exclusive property
  • Preferential pilot pricing deductible from subsequent rollouts
Review Pilot Framework →
Strategic IT Arbitrage

Why modernize your enterprise testing strategy?

Proprietary Tooling & Silos

Legacy Enterprise Suites

Heavy, closed-source models inherited from 2010s proprietary test platforms

  • ×
    Recurring licensing costs Licenses paid every year, often per execution runner, for closed proprietary suites.
  • ×
    Brittleness & maintenance drains Rigid scripts breaking with every SAP upgrade or UI refresh, and as much maintenance time.
  • ×
    Vendor lock-in & data privacy exposure Telemetry, credentials, and test payload data routed to foreign cloud servers under extraterritorial laws.
  • ×
    Black-box AI Opaque replacements without clear audit logs, risking invisible regression injection into production.
Recommended · Next-Gen Open Standard

AI Cabra Methodology

Sovereign, open-source, agile, and measurable software quality engineering

  • ✓
    0 € test engine license cost Apache 2.0 open-source foundation (Robot Framework + SAPFX). You retain 100% ownership of your tests.
  • ✓
    Unified business keyword language A single expressive syntax controlling SAP GUI, Fiori web, and OData APIs with native semantic resilience.
  • ✓
    100% on-premise or sovereign cloud Local AI models hosted on your infrastructure or in a sovereign cloud (France, EU). Zero data leakage, full GDPR compliance.
  • ✓
    Full explainability & human authority Every diagnostic is logged, traced, and documented. The domain expert retains full decision authority.
Technology & R&D

Our Automation Core & Research Programs

Robust, measurable, and lock-in free engineering toolsets designed to transform your test automation chain.

Engineering Core Apache 2.0 · Open Source
v0.8.5

SAPFX · SAP test automation for Robot Framework

Our open-source libraries for Robot Framework (version 0.8.5 on PyPI, 442 keywords, 462 scenarios run live on four real SAP systems) test SAP GUI, SAP Fiori apps and OData and RFC APIs with the same rules, even within a single test. An open path, with no license, to replace CBTA before the end of 2027. Beyond testing, heading toward test data sets, databases to populate for performance testing and the loading of configuration and migration data (not yet delivered).

> pip install robotframework-sapfx
*** Settings ***
Library    Browser
Library    SapFioriLibrary    ui5_timeout=20s

*** Test Cases ***
Search The API Reference
    New Browser    chromium    headless=True
    New Page       https://sdk.openui5.org/#/api
    Fill Ui5 Input    Button    controlType=SearchField
    ${xpath}=    Get Ui5 Xpath    controlType=SearchField
    Log    ${xpath}
    [Teardown]    Close Browser
*** Settings ***
Library    SapEccLibrary

*** Variables ***
${CONNECTION}    MY SYSTEM
${USER}          DEVELOPER
${PASSWORD}      ${EMPTY}
${GRID}          wnd[0]/usr/cntlGRID1/shellcont/shell

*** Test Cases ***
Read The Clients Table In SE16
    Open Sap Logon
    Connect To Session With Retry
    Open Connection    ${CONNECTION}
    Input Text        wnd[0]/usr/txtRSYST-BNAME    ${USER}
    Input Password    wnd[0]/usr/pwdRSYST-BCODE    ${PASSWORD}
    Send Vkey    0
    Scripting Should Be Fully Enabled
    Use ALV Grid In Data Browser
    Input Text    wnd[0]/usr/ctxtDATABROWSE-TABLENAME    T000
    Send Vkey    0
    Send Vkey    8
    ${rows}=    Read Full Grid    ${GRID}
    Log    ${rows}
*** Settings ***
Library    SapApiLibrary

*** Variables ***
${PASSWORD}    ${EMPTY}

*** Test Cases ***
Count The Products
    Open Api Session    http://localhost:50000    user=DEVELOPER
    ...                 password=${PASSWORD}    sap_client=001
    ${count}=    Get Odata Count    /sap/opu/odata/sap/SEPMRA_SHOP/Products
    Should Be True    ${count} > 0
    ${first}=    Get Odata Entities    /sap/opu/odata/sap/SEPMRA_SHOP/Products    top=3
    Length Should Be    ${first}    3
    [Teardown]    Close All Api Sessions
Product Count Agrees Across API And GUI Channels
    # …
    ${gui_count}=    Count Table Entries    ${EPM_PRODUCTS_TABLE}
    Should Be True    ${gui_count} > 0
    ...    msg=Table ${EPM_PRODUCTS_TABLE} vide : données EPM absentes sur ce système ?
    ${api_count}=    Get Odata Count    ${EPM_PRODUCTS_PATH}    alias=a4h
    Should Be Equal As Integers    ${api_count}    ${gui_count}
    ...    msg=OData $count (${api_count}) ≠ SE16 ${EPM_PRODUCTS_TABLE} (${gui_count}).
    Log    Produits EPM : ${api_count} via OData == ${gui_count} via SE16.
R&D Program On-premise or sovereign cloud

CabrIA · Sovereign 35B MoE Quality AI

Open 35-billion-parameter Mixture-of-Experts model, to be specialized on real executions: first fine-tuning run still pending, 1,892 training examples accepted as of 9 October 2026. Coupled with the local qa-brain RAG, in service (4,119 indexed passages, every answer cites its sources), on a cost-controlled laboratory setup. 1,070 automated tests passed on 9 October 2026.

01 Execution log capture Robot Framework, Web & OData traces 02 Local sovereign fine-tuning Local training still pending 03 Verifiable enterprise RAG Sourced generation & fact citations
R&D Program In design

CabraFlow · From narrated demo to test

A project in design. The goal: a keyword-driven orchestrator on top of Playwright that would turn a business walkthrough narrated aloud into a test scenario, resolved through the accessibility tree rather than fragile selectors. As of 6 October 2026: six specifications written, no code and no prototype yet.

Voice walkthrough
→
A11y Tree
→
Playwright & Robot
GDPR Compliant Hosted in France or EU

Our Technical Ethics

An uncompromising engineering standard without commercial complacency or black boxes:

100% SOVEREIGN Isolated Data In France or the EU GDPR · 0 cloud leaks TRANSPARENT Zero Black Boxes Audited self-healing No silent fixes GOVERNANCE Humans in Control AI suggests & speeds up Expert decides always
✓ Nothing heals silently: every self-healing locator action is systematically logged with warnings.
✓ Humans remain in command: AI accelerates and suggests, the domain expert decides.
✓ Your data never leaves: models run in your datacenter or in a sovereign cloud (France, EU).
Our method

Spec-Test-Driven Development (STDD)

The mindset shared by SAPFX, ODOOFX and rf-test-agents: the specification, written in human language and confronted with the real system, drives the test, and the test drives the development of the library. Three links in a chain, each guarded by a script, not by an instruction.

01 · specs/

Spec first, in human language

A broad, overall vision made of instructions, structured or not: a business goal, a user story, a BDD scenario, an existing test case. The planner confronts it with the live system (perceive → act → perceive) and writes its observed version, reviewed by a human, dated, with a lifecycle status: that version is what counts.

Human language, structured or not Confronted with the live system Observed version, reviewed
02 · tests/

The test is derived from the spec

The suite is generated from the plan, every step executed live before it is written, then sealed with the SHA256 of the plan: a plan changed without regeneration fails the guard. A generated suite is regenerated, never hand-edited.

Live execution before writing SHA256 provenance Regenerate, never patch
03 · src/

The development is derived from the test

What a test needs and the library cannot do yet becomes a library keyword, with its unit test and its documentation, never a workaround in a suite. The healer repairs the resources layer, never the test; a changed business flow goes back to the spec.

Capability in the library Healer confined to resources/ Back to the spec

Read against TDD. STDD keeps the logic of TDD and moves it one brick earlier. TDD is red, green, refactor: the test comes first, it fails, then the code makes it pass. In STDD the first brick is the spec, and a spec is green by default, in theory: it is written, believed and never run, so nothing can make it fail. STDD puts it to the test on the real system: red where the system refutes it, green once observed, and only then come the test and the code.

The STDD film · 8 min 34 · synthetic voice, captions burned in. A real SAP case, scenario 4 (a RAP travel created through Fiori Elements on ABAP Platform 2023), told link by link by Stedd (the agents), MCP (the messenger) and Terra (the real system).

Read the transcript

0:00 · Title

A short story about testing SAP systems, told by three characters: an agent, a messenger, a real system. And about a mindset, Spec-Test-Driven Development (STDD): what we test is first observed on the real system.

0:17 · Meet the cast

Stedd is the AI agent. One hat per job: plan, generate, verify, heal. MCP is the messenger: requests out to Robot Framework, answers back. Terra is the real SAP system. Two of them: Terra 2023, our target, and Terra A4H, its twin.

0:36 · The usual way

Most test automation starts from what we assume the system does: a document, a memory, a screenshot. The test is written from the assumption, without looking at the system. It runs. It turns green. But the real system was never asked: the tile does not exist, the app lives elsewhere. Green, and false.

1:00 · From TDD to STDD

You may know TDD: red, green, refactor. The test comes first, the code follows. STDD applies the same logic one brick earlier: the spec comes first. In theory, a spec is green by default: nobody tests it. STDD puts it to the test on the real system: red where it was wrong, green once observed. Only then comes the test.

1:25 · Three links

STDD is a chain of three links. Each one drives the next, and each one is checked by a script. 1 · The spec, written in human language, then confronted with the real system by an agent, before any code. 2 · The test, derived from the spec as it was observed, and sealed with the spec's fingerprint. 3 · The library, developed from what the test needs: never a workaround hidden in the test. Three scripts: agent_contract.py, check_spec_sync.py, check_conventions.py. They fail loudly.

1:59 · A real case: scenario 4

A real case: scenario 4, on Terra 2023 (ABAP Platform 2023): create a travel with a booking, in Fiori. The spec is a plain-language brief: seven lines, no code. Any form works: a goal, a user story, a BDD scenario… This one assumes two things: a Launchpad tile opens the app, and the target is the cap-sflight demo.

2:25 · Link 1 · the spec meets the real system

Link 1. The planner agent, an LLM, confronts the brief with the live system, before writing a single test. It does not guess. It sends MCP: Robot Framework drives SAP for real, the LLM only reads the answers. Assumption 1, a Launchpad tile: 62 intents checked on Terra 2023. None opens a travel app. Refuted. Assumption 2, cap-sflight: a local CAP app on port 4004. Not this target. Here, the app is RAP: /DMO/UI_TRAVEL_D_D. The real app exists anyway: 4,136 travels, and the server generates a Fiori Elements preview… behind an HTTP 500. The fix is read in the server's own source code: the address is obfuscated, +20 per character. Decoded: HTTP 200. Before writing anything: can we undo it? Discarding a draft needs If-Match. Tried, then proven: reversible. Side by side: the brief as assumed, the spec as observed on Terra 2023, line by line. No tile, another target, a required currency the screen hides, an ID that gets reassigned: none of it could be guessed. 12 deviations in all, each backed by a measurement. A human reviews them before anything is generated. The spec as observed, 12 deviations from the brief included, is written down, sealed with a sha256 and reviewed by a human. It becomes the source of truth. To remember: the spec is observed, not assumed. The surprises come before the tests, not after.

4:17 · Link 2 · the test, derived from the spec

Link 2. The generator agent turns the observed spec into a Robot Framework suite, in business vocabulary. Every step is executed on Terra 2023 first, through MCP, and written only once it works. No guessed locator. The suite carries the spec's fingerprint, its sha256: the test knows exactly which spec it was derived from. Change the spec without regenerating, and check_spec_sync.py refuses the run. Regenerated, reviewed: in phase again. A script, not a promise. To remember: nothing is written that has not run first, and the suite stays sealed to its spec.

5:02 · Link 3 · the test drives the library

Link 3. Sometimes the test needs something the library cannot do yet: a date format, a missing header… …then the gap becomes a keyword in the library, with its unit test. Never a workaround in the test: check_conventions.py watches. Six capabilities, each with its unit test: dates typed in the field's own format, If-Match, the release read over HTTP, the preview address… The library ships to PyPI, as robotframework-sapfx. The next project gets all six for free. To remember: the test drives the library, and every gap closed there helps the next project.

5:53 · An independent verifier

Stedd changes hats. The verifier reads the plan, the suite and the evidence. It runs nothing. Its first verdict on the green suite: not verified. 13 reserves, 3 of them blocking. All 13 fixed, then a counter-review: needs human, 7 more points. Fixed too. Every guard must be seen refusing. First, the reference on Terra 2023: release 758, 58 services. Then the suite is pointed at Terra A4H, on purpose: same system ID, same host name as Terra 2023. Compared: 754 ≠ 758, 38 ≠ 58, no UI5 runtime. Every guard refuses. Seen, not assumed. Second provocation: a draft planted by hand on Terra 2023. The guard spared it, the cleanup deleted it. Found, fixed, replayed. To remember: a guard that nobody has seen refuse proves nothing.

6:58 · Result

Result: 7 tests out of 7 on Terra 2023. Every travel created is deleted, and proven gone, entity by entity. Generating cost 1.67 M LLM tokens, once. Replaying costs zero tokens: plain Python, under five minutes.

7:19 · When the system changes

A real case, 1 September: the public OpenUI5 Demo Kit changed its shell overnight. Not one line of our repo moved. The campaign drops to 8 of 12. The healer's diagnosis: not a locator, the flow itself changed. The spec is marked STALE. The planner goes back to the real target, rewrites the spec on what it measures, and the suite follows: 12 of 12, sealed again. The other branch, tested blind on Terra A4H: a locator drift injected on purpose. The healer reads the live screen… …and patches one line of resources/. Tests touched: zero. Re-run: 7 of 7. STDD is a loop, not a pipeline. The healer repairs resources/, never the test. A changed flow goes back to the spec, and the suite follows it.

8:15 · Conclusion

Spec first, in human language. Test from the spec. Library from the test. Each link guarded by a script. Observed, derived, guarded, and kept alive when the system changes. Thanks for walking with Stedd, MCP and Terra.

What sets STDD apart: the specification is written in human language, never in code, and in any form (BDD is one of them, a standard test file is another); the version that counts is observed on the live system, not assumed, and guarded by scripts; and it drives the automation code as well, not only the tests. The method is defined in rf-test-agents, applied by SAPFX and by ODOOFX, the Odoo vertical (public repository). Definition in the glossary, dedicated question in the FAQ. Three more films are on the Explainer videos page: the pros and cons of AI for automated testing, how AI agents drive SAP (MCP, rf-mcp, the SAPFX plugins and qa-brain), and the SAPFX mindset in seven principles (11 min 11).

What already runs on real SAP systems

SAPFX is published as open source under the Apache 2.0 license. The code of the libraries is public; the figures below are measured and dated.

3959 unit tests replayed outside SAP
462 scenarios run live on 4 real SAP systems
95 % measured code coverage
0 € engine license cost (Apache 2.0)
Tailored Engagement

Pilot programme under real conditions

We support a limited number of QA teams on pilot projects at preferential terms. The framework never changes: a precise scope, measurable success criteria agreed upfront, and metrics you keep in full, whether or not the engagement continues with us.

Advanced Capabilities

Our technology expertise

What we master and put to work in the field.

LLM & RAG integration

Retrieval-Augmented Generation architecture with mandatory source citation, so every answer stays verifiable.

Local fine-tuning for QA

Training small specialised models on your own logs and test architectures, with no dependency on external APIs.

AI agents & MCP servers

Autonomous agents built around the plan → generate → self-heal cycle, always under human supervision.

Performance testing & AI

Realistic load simulation and predictive modelling of application bottlenecks before they reach production.

AEO & GEO services (AI visibility)

An authority strategy that gets your offering and software components recommended by ChatGPT, Claude, Perplexity and Gemini.

Sovereignty & GDPR security

Strict data isolation: on-premise deployment or a sovereign cloud (France, EU), with no leakage to third parties.

Every technical term used here is defined precisely in the glossary.

Evidence-first overview

Choose by outcome, then verify the claim

Each product page separates public evidence, internal measurements and limitations. No customer result or independent benchmark is implied without a source.

Test SAP GUI, Fiori and OData/RFC APIs with Robot Framework.

Published release 0.8.5. Published on 13 October 2026: pip install robotframework-sapfx, Python 3.10 or later, Robot Framework 7.4 or later. The package carries the three libraries; the agents and the MCP overlay are not part of it.

View product evidence →

Test Odoo with Robot Framework through the RPC API and the web UI, with ORM introspection.

Version 0.2.0 published on PyPI on 13 October 2026, alpha phase: RPC and web channels working, proven live on Odoo 16 and 19; wizards, section and note lines and line deletion not covered yet. 23 suites played on two development Docker instances between 1 and 13 October 2026: 55 tests on Odoo 16, 62 on Odoo 19. The RPC sales quotation flow (15 suites, 65 tests: creation, confirmation, sending, cancellation and rollback, a salesperson's rights, a stored product, negative cases, run on 1 October); the web client (read-only exploration, entering a contact, entering and confirming a quotation on screen) and ORM introspection (8 suites, 52 tests, run from 8 to 13 October). No customer instance.

View product evidence →

Explore local QA AI combining an open model and hybrid RAG.

R&D programme, not a stable public release. Run on 9 October 2026 in a single process: 1,070 passed out of 1,071 (capture 352, evaluation 130, orchestration 38, RAG 165, refinery 386). The remaining test queries the lab's live services and timed out. They verify CabrIA software, not the model's overall answer quality.

View product evidence →

Design the transformation of a narrated demonstration into Playwright or Robot Framework tests.

In design: specifications written, no prototype or demonstration yet. Six specifications written on 12 August 2026; no code, prototype or demonstration as of 6 October 2026. The voice mode awaits a quantified criterion (over 85% correct steps, under 2 s latency), not yet measured.

View product evidence →

Independent context references (not product validation): Robot Framework · Playwright locators

CabraMesh · Agentic engineering

CabraMesh, V2 research in agentic engineering: human control, local models and verifiable results. Separate from rf-test-agents V1.

CabraMesh · Agentic engineering
Audit & Advisory

Ready to secure your SAP release cycles and eliminate regressions?

Talk with our senior QA architects to audit your existing test suites, frame a risk-free pilot engagement, or discover SAPFX.

  • A technical exchange, not a sales pitch
  • Your data stays in France
Read the FAQ

or straight by email: