<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Robot Framework Blog</title>
        <link>https://docs.robotframework.org/blog</link>
        <description>News, releases and stories from the Robot Framework community</description>
        <lastBuildDate>Mon, 08 Jun 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <copyright>Copyright © 2026 Robot Framework Foundation</copyright>
        <item>
            <title><![CDATA[Robot Framework Use Case: System-Level Validation of an Embedded Passenger Counting Sensor]]></title>
            <link>https://docs.robotframework.org/blog/robot-framework-use-case-system-level-validation-of-an-embedded-passenger-counting-sensor</link>
            <guid>https://docs.robotframework.org/blog/robot-framework-use-case-system-level-validation-of-an-embedded-passenger-counting-sensor</guid>
            <pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[This is a guest post by Björn Morgenthaler, Head of Test Engineering & Validation at comlet Verteilte Systeme GmbH — an active member of the Robot Framework Foundation.]]></description>
            <content:encoded><![CDATA[<blockquote>
<p>This is a guest post by <strong>Björn Morgenthaler</strong>, Head of Test Engineering &amp; Validation at <strong>comlet Verteilte Systeme GmbH</strong> — an active member of the Robot Framework <a class="" href="https://docs.robotframework.org/blog/the-foundation-behind-the-framework">Foundation</a>.</p>
</blockquote>
<!-- -->
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="table-ofcontents">Table of&nbsp;Contents<a href="https://docs.robotframework.org/blog/robot-framework-use-case-system-level-validation-of-an-embedded-passenger-counting-sensor#table-ofcontents" class="hash-link" aria-label="Direct link to Table of&nbsp;Contents" title="Direct link to Table of&nbsp;Contents" translate="no">​</a></h4>
<p>1. Introduction<br>
<!-- -->2. Project context<br>
<!-- -->3. The testing challenge<br>
<!-- -->3.1 Black-box system testing for an embedded device<br>
<!-- -->3.2 Why manual testing reached its limits<br>
<!-- -->4. Representative test environment<br>
<!-- -->4.1 Hardware-based passenger simulation<br>
<!-- -->4.2 State synchronization and result retrieval<br>
<!-- -->5. Automation architecture<br>
<!-- -->5.1 Protocol-level Python libraries<br>
<!-- -->5.2 Domain-level Robot Framework keywords<br>
<!-- -->6. A representative use case: long-running stability testing<br>
<!-- -->7. CI/CD integration and firmware provisioning<br>
<!-- -->8. Outcomes and lessons learned<br>
<!-- -->9. References</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-introduction">1. Introduction<a href="https://docs.robotframework.org/blog/robot-framework-use-case-system-level-validation-of-an-embedded-passenger-counting-sensor#1-introduction" class="hash-link" aria-label="Direct link to 1. Introduction" title="Direct link to 1. Introduction" translate="no">​</a></h4>
<p>Automatic passenger counting sensors support operationally relevant processes in public transport. iris-GmbH infrared &amp; intelligent sensors [iris] positions passenger counting data as a basis for route optimization, occupancy evaluation, capacity planning and related operational decisions. Validating such systems requires more than isolated API or component checks. It requires a test approach that combines physical stimuli, device state changes and service-level communication [1].</p>
<p>Robot Framework provides a suitable foundation for this kind of work. It is platform- and application-independent, supports custom Python libraries, reusable higher-level keywords and integration into existing CI infrastructure [2].</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-projectcontext">2. Project&nbsp;context<a href="https://docs.robotframework.org/blog/robot-framework-use-case-system-level-validation-of-an-embedded-passenger-counting-sensor#2-projectcontext" class="hash-link" aria-label="Direct link to 2. Project&nbsp;context" title="Direct link to 2. Project&nbsp;context" translate="no">​</a></h4>
<p>This use case is based on a collaboration between iris and comlet Verteilte Systeme GmbH [comlet].</p>
<p>Based in Zweibrücken, Germany, comlet provides software engineering services for embedded systems and IoT, with more than 20 years of experience in networked products, embedded software development and continuous testing, including test automation and simulation for special embedded technology [8].</p>
<p>The project focused on the automated validation of the embedded sensor platform IRMA 6 used for automatic passenger counting in public transport.</p>
<p>From a public product perspective, iris positions IRMA 6 as an automatic passenger counting and object recognition platform for bus, subway, tram and train environments. That context matters for testing. Although the sensor was treated as a black box, the system under test remained an embedded device operating in a vehicle-related domain with several external interfaces and operationally relevant behavior&nbsp;[3].</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/1_oHeqcdEsm-9qfFgw3W4yAg-7aa3c96a2b7923240a8168b6e02c59e1.png" width="395" height="227" class="img_ev3q"></p>
<p>Figure 1: IRMA 6&nbsp;sensor</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-the-testing-challenge">3. The testing challenge<a href="https://docs.robotframework.org/blog/robot-framework-use-case-system-level-validation-of-an-embedded-passenger-counting-sensor#3-the-testing-challenge" class="hash-link" aria-label="Direct link to 3. The testing challenge" title="Direct link to 3. The testing challenge" translate="no">​</a></h4>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="31-black-box-system-testing-for-an-embeddeddevice">3.1 Black-box system testing for an embedded&nbsp;device<a href="https://docs.robotframework.org/blog/robot-framework-use-case-system-level-validation-of-an-embedded-passenger-counting-sensor#31-black-box-system-testing-for-an-embeddeddevice" class="hash-link" aria-label="Direct link to 3.1 Black-box system testing for an embedded&nbsp;device" title="Direct link to 3.1 Black-box system testing for an embedded&nbsp;device" translate="no">​</a></h4>
<p>The tests were designed as automated system tests from a black-box perspective in a representative environment. The goal was to control relevant external inputs and validate externally observable behavior rather than internal implementation details.</p>
<p>Even with a black-box test strategy, the system under test remained an embedded device with mixed interfaces. Its behavior depended on the interaction of physical movement, operational states and service communication. The validation problem therefore was not limited to network traffic or static responses. It was defined by the complete externally visible stimulus-response chain.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="32-why-manual-testing-reached-itslimits">3.2 Why manual testing reached its&nbsp;limits<a href="https://docs.robotframework.org/blog/robot-framework-use-case-system-level-validation-of-an-embedded-passenger-counting-sensor#32-why-manual-testing-reached-itslimits" class="hash-link" aria-label="Direct link to 3.2 Why manual testing reached its&nbsp;limits" title="Direct link to 3.2 Why manual testing reached its&nbsp;limits" translate="no">​</a></h4>
<p>Before automation, this combination created three recurring problems. First, manual execution involved substantial effort, particularly when the same scenario had to be repeated many times under controlled conditions. Second, reproducibility was limited. Physical interaction, timing and state coordination are difficult to reproduce consistently by hand. Third, failures were harder to analyze, because the relevant cause could lie in the interaction between the simulation setup, the device state and the service layer rather than in one isolated element.<br>
<!-- -->These constraints made the project a strong candidate for a keyword-driven and library-based automation approach.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-representative-test-environment">4. Representative test environment<a href="https://docs.robotframework.org/blog/robot-framework-use-case-system-level-validation-of-an-embedded-passenger-counting-sensor#4-representative-test-environment" class="hash-link" aria-label="Direct link to 4. Representative test environment" title="Direct link to 4. Representative test environment" translate="no">​</a></h4>
<p>A key part of the project was a customer-provided simulation setup in which the sensors were mounted and operated under representative conditions. The setup made it possible to simulate passenger movement within the detection area of the sensor in a controlled and repeatable manner.</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/1_V_htECg2ZUZ-f_-Zaj2_DA-e97b74f39127af4978b765cbdb6cda7c.png" width="976" height="307" class="img_ev3q"></p>
<p>Figure 2: Representative test environment used for automated system-level validation of an embedded passenger counting&nbsp;sensor.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="41-hardware-based-passenger-simulation">4.1 Hardware-based passenger simulation<a href="https://docs.robotframework.org/blog/robot-framework-use-case-system-level-validation-of-an-embedded-passenger-counting-sensor#41-hardware-based-passenger-simulation" class="hash-link" aria-label="Direct link to 4.1 Hardware-based passenger simulation" title="Direct link to 4.1 Hardware-based passenger simulation" translate="no">​</a></h4>
<p>The simulation setup allowed a simulated passenger object to be moved through three spatial dimensions. For the automated tests, this movement was controlled through a proprietary serial PLC-based protocol. This meant that the physical stimulus applied to the embedded device could be reproduced deterministically rather than manually improvised from run to&nbsp;run.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="42-state-synchronization-and-result-retrieval">4.2 State synchronization and result retrieval<a href="https://docs.robotframework.org/blog/robot-framework-use-case-system-level-validation-of-an-embedded-passenger-counting-sensor#42-state-synchronization-and-result-retrieval" class="hash-link" aria-label="Direct link to 4.2 State synchronization and result retrieval" title="Direct link to 4.2 State synchronization and result retrieval" translate="no">​</a></h4>
<p>Physical movement alone was not sufficient. The automated workflow also had to synchronize counting-relevant states, such as the beginning and end of a counting phase, and then retrieve the resulting count information for verification.</p>
<p>At service level, the workflow relied on standards-based communication relevant in public transport environments. VDV publishes IBIS-IP openly as an IP-based communication standard for public transport vehicles, and ITxPT makes its specifications publicly available through its documentation center. Within the project, the automated interactions covered the subset of communication required for the selected scenarios, including passenger-counting-related and inventory-related functions [4][5].</p>
<p>Together, these elements established a representative system test environment: a physical stimulus was applied under controlled conditions, relevant states were synchronized, and the resulting behavior of the embedded device was verified through external interfaces.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-automation-architecture">5. Automation architecture<a href="https://docs.robotframework.org/blog/robot-framework-use-case-system-level-validation-of-an-embedded-passenger-counting-sensor#5-automation-architecture" class="hash-link" aria-label="Direct link to 5. Automation architecture" title="Direct link to 5. Automation architecture" translate="no">​</a></h4>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="51-protocol-level-python-libraries">5.1 Protocol-level Python libraries<a href="https://docs.robotframework.org/blog/robot-framework-use-case-system-level-validation-of-an-embedded-passenger-counting-sensor#51-protocol-level-python-libraries" class="hash-link" aria-label="Direct link to 5.1 Protocol-level Python libraries" title="Direct link to 5.1 Protocol-level Python libraries" translate="no">​</a></h4>
<p>The maintainability of the solution came from a clear architectural separation between low-level protocol access and higher-level test intent.<br>
<!-- -->For the passenger simulation, a custom Python library was developed on top of a serial communication library. This library encapsulated the proprietary serial PLC-based protocol used to control the simulation device. At this layer, the focus was on deterministic low-level interaction with the hardware-based passenger simulator.</p>
<p>For the service side, a second custom Python library implemented the required subset of standards-based communication used in the project. The request-response interactions relevant here followed the HTTP-based part of the model. VDV documentation explicitly describes the use of HTTP GET and HTTP POST for such operations, and RequestsLibrary is intended for HTTP API testing in Robot Framework [6][7].</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="52-domain-level-robot-framework-keywords">5.2 Domain-level Robot Framework keywords<a href="https://docs.robotframework.org/blog/robot-framework-use-case-system-level-validation-of-an-embedded-passenger-counting-sensor#52-domain-level-robot-framework-keywords" class="hash-link" aria-label="Direct link to 5.2 Domain-level Robot Framework keywords" title="Direct link to 5.2 Domain-level Robot Framework keywords" translate="no">​</a></h4>
<p>On top of these protocol-level components, higher-level Robot Framework user keywords were created to express the actual validation intent in a concise and readable way. Instead of exposing serial commands or service details directly in the test cases, the suites used domain-oriented keywords that described the expected system interaction more clearly. In an embedded-device context, this layered approach is particularly valuable because it allows teams to hide interface-specific complexity while keeping system-level tests readable and maintainable [2].</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="6-a-representative-use-case-long-running-stability-testing">6. A representative use case: long-running stability testing<a href="https://docs.robotframework.org/blog/robot-framework-use-case-system-level-validation-of-an-embedded-passenger-counting-sensor#6-a-representative-use-case-long-running-stability-testing" class="hash-link" aria-label="Direct link to 6. A representative use case: long-running stability testing" title="Direct link to 6. A representative use case: long-running stability testing" translate="no">​</a></h4>
<p>One of the first automated scenarios implemented in the project was a long-running stability test. The same counting workflow was executed repeatedly over several hours to observe whether the behavior of the sensor remained robust and reproducible over&nbsp;time.</p>
<p>This scenario addressed a typical limitation of manual testing. A single successful run is often not enough to reveal timing-related inconsistencies, stability issues or subtle degradations in behavior. Repeating the same workflow under controlled conditions made it possible to assess whether the counting result remained consistent over longer&nbsp;periods.</p>
<p>From a test design perspective, the stability test also served as a compact demonstration of the overall approach. It combined controlled passenger simulation, synchronized device states, standards-based service interaction and automated comparison of actual versus expected results. That made it both a useful regression scenario and a practical proof of concept for Robot Framework in this embedded-device setting.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="7-cicd-integration-and-firmware-provisioning">7. CI/CD integration and firmware provisioning<a href="https://docs.robotframework.org/blog/robot-framework-use-case-system-level-validation-of-an-embedded-passenger-counting-sensor#7-cicd-integration-and-firmware-provisioning" class="hash-link" aria-label="Direct link to 7. CI/CD integration and firmware provisioning" title="Direct link to 7. CI/CD integration and firmware provisioning" translate="no">​</a></h4>
<p>The regression workflow did not start with test execution alone. Before the Robot Framework-based system tests were run, the sensors were provisioned with the current development build or release candidate as part of the CI/CD&nbsp;process.</p>
<p>This firmware update step was automated as well, but it was implemented outside Robot Framework and outside the public service interfaces used by the tests themselves. Robot Framework was used for the system-level validation, while the overall regression workflow combined that validation with separate provisioning automation for the device under test.<br>
<!-- -->This ensured that representative automated tests could be executed repeatedly against current development states and release candidates without requiring manual firmware handling before each&nbsp;run.</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="8-outcomes-and-lessonslearned">8. Outcomes and lessons&nbsp;learned<a href="https://docs.robotframework.org/blog/robot-framework-use-case-system-level-validation-of-an-embedded-passenger-counting-sensor#8-outcomes-and-lessonslearned" class="hash-link" aria-label="Direct link to 8. Outcomes and lessons&nbsp;learned" title="Direct link to 8. Outcomes and lessons&nbsp;learned" translate="no">​</a></h4>
<p>The automated workflow shortened feedback cycles and enabled unattended execution, including runs outside regular working hours. This made it possible to use available lab and infrastructure time more effectively and to obtain regression feedback earlier in the development cycle.</p>
<p>Another important effect was reuse. The same tests that were integrated into the CI/CD pipeline could also be executed manually by testers when needed. This reduced duplicated effort and helped establish a common validation basis across automated regression and interactive investigation.<br>
<!-- -->The automated approach also helped uncover defects in development builds that had not been identified during earlier manual testing. In addition, implementing automated interactions against the protocol specification helped reveal deviations from expected service behavior in development builds and release candidates.</p>
<p>Taken together, the project did not simply automate the existing manual procedure. It improved repeatability, extended the practical reach of system-level regression and strengthened specification-driven validation for an embedded sensor platform.</p>
<blockquote>
<p><em>We’re always looking for guest posts to feature on this blog. Got something to share with the Robot Framework community — a use case, a lesson learned, or something completely different? We’d love to hear from you.</em> <a href="mailto:executive.director@robotframework.org" target="_blank" rel="noopener noreferrer" class=""><em>Drop me a line</em></a> <em>and you could be our next guest author.</em></p>
</blockquote>
<blockquote>
<p><em>Yours truly,</em></p>
</blockquote>
<blockquote>
<p><em>Miikka Solmela</em></p>
</blockquote>
<blockquote>
<p><em>Executive Director, Robot Framework Foundation</em></p>
</blockquote>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="9-references">9. References<a href="https://docs.robotframework.org/blog/robot-framework-use-case-system-level-validation-of-an-embedded-passenger-counting-sensor#9-references" class="hash-link" aria-label="Direct link to 9. References" title="Direct link to 9. References" translate="no">​</a></h4>
<p>[1] iris-GmbH infrared &amp; intelligent sensors. Passenger counting: The benefits of automated systems. <a href="https://www.iris-sensing.com/products/automatic-passenger-counting" target="_blank" rel="noopener noreferrer" class="">https://www.iris-sensing.com/products/automatic-passenger-counting</a> (accessed 30 March 2026).<br>
<!-- -->[2] Robot Framework Foundation. Robot Framework User Guide. <a href="https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html" target="_blank" rel="noopener noreferrer" class="">https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html</a> (accessed 30 March 2026).<br>
<!-- -->[3] iris-GmbH infrared &amp; intelligent sensors. IRMA 6. <a href="https://www.iris-sensing.com/products/irma-6/" target="_blank" rel="noopener noreferrer" class="">https://www.iris-sensing.com/products/irma-6/</a> (accessed 30 March 2026).<br>
<!-- -->[4] Verband Deutscher Verkehrsunternehmen e. V. VDV 301–1 IBIS-IP Teil 1: Systemarchitektur. <a href="https://www.vdv.de/vdv-301-1-ibis-ip-teil-1-systemarchitektur.pdfx?forced=true" target="_blank" rel="noopener noreferrer" class="">https://www.vdv.de/vdv-301-1-ibis-ip-teil-1-systemarchitektur.pdfx?forced=true</a> (accessed 30 March 2026).<br>
<!-- -->[5] ITxPT. Specifications. <a href="https://itxpt.org/specifications/" target="_blank" rel="noopener noreferrer" class="">https://itxpt.org/specifications/</a> (accessed 30 March 2026).<br>
<!-- -->[6] Verband Deutscher Verkehrsunternehmen e. V. 301–2-SDS V2.1 BasicServices. <a href="https://www.vdv.de/301-2-sds-v2-1-basicservices.pdfx?forced=false" target="_blank" rel="noopener noreferrer" class="">https://www.vdv.de/301-2-sds-v2-1-basicservices.pdfx?forced=false</a> (accessed 30 March 2026).<br>
<!-- -->[7] Robot Framework. Requests Library — Robot Framework. <a href="https://docs.robotframework.org/docs/different_libraries/requests" target="_blank" rel="noopener noreferrer" class="">https://docs.robotframework.org/docs/different_libraries/requests</a> (accessed 30 March 2026).<br>
<!-- -->[8] comlet Verteilte Systeme GmbH. <a href="https://www.comlet.de/?lang=en" target="_blank" rel="noopener noreferrer" class="">https://www.comlet.de/?lang=en</a> (accessed 30 March&nbsp;2026).</p>]]></content:encoded>
            <category>open-source</category>
            <category>embedded-systems</category>
            <category>robot-framework</category>
            <category>test-automation</category>
            <category>quality-assurance</category>
        </item>
        <item>
            <title><![CDATA[And Now for Something Completely Different: The RoboCon 2026 Watch Parties]]></title>
            <link>https://docs.robotframework.org/blog/and-now-for-something-completely-different-the-robocon-2026-watch-parties</link>
            <guid>https://docs.robotframework.org/blog/and-now-for-something-completely-different-the-robocon-2026-watch-parties</guid>
            <pubDate>Mon, 23 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[– How to Get the Free (or €10) Experience]]></description>
            <content:encoded><![CDATA[<p><em>– How to Get the Free (or €10) Experience</em></p>
<blockquote>
<p><strong>RoboCon 2026 Preview&nbsp;Series</strong></p>
</blockquote>
<blockquote>
<p>In the lead-up to RoboCon 2026, we’re publishing a series of guest posts from contributors across the conference program. Each post previews a session and highlights ideas, approaches, or experiences related to Robot Framework.</p>
</blockquote>
<!-- -->
<blockquote>
<p>This post was written by <strong>Krzysztof Żminkowski</strong>, member of the RoboCon 2026 organizing team and one of the workshop organizers, as part of the RoboCon 2026 Preview&nbsp;Series.</p>
</blockquote>
<p>It is a universally acknowledged truth that the modern test automation engineer appreciates a well-structured, highly efficient digital environment.</p>
<p>With RoboCon 2026 rapidly approaching — featuring an exceptionally robust global online program from the 3rd to the 6th of March — many of us are quite looking forward to consuming a wealth of technical knowledge from the profound, unbothered comfort of our home offices. The digital conference platform, complete with its interactive Gather.Town ecosystem, offers a brilliantly optimized way to attend. You can absorb insights on advanced topics like cloud-native testing while wearing your most structurally forgiving trousers, and frankly, it is a magnificent way to experience a conference.</p>
<p>Both the strictly online path and the physical one are undeniably excellent choices. However, occasionally, one might feel a mild, entirely manageable urge to step away from the monitors and verify that the outside world still exists. If you happen to find yourself experiencing this phenomenon, and you reside in the vicinity of specific European coordinates, there is a rather intriguing alternative to sitting at home&nbsp;alone.</p>
<p>We present for your consideration: the localized RoboCon 2026 Watch&nbsp;Parties.</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/0_g9PYqOKIKVESv-Ff-82a3cea2adc3d4b62ac7f4fb8b9d0381.jpeg" width="700" height="983" class="img_ev3q"></p>
<p>The conference theme 2026 is the Aurora Borealis.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-on-earth-is-a-watchparty">What On Earth is a Watch&nbsp;Party?<a href="https://docs.robotframework.org/blog/and-now-for-something-completely-different-the-robocon-2026-watch-parties#what-on-earth-is-a-watchparty" class="hash-link" aria-label="Direct link to What On Earth is a Watch&nbsp;Party?" title="Direct link to What On Earth is a Watch&nbsp;Party?" translate="no">​</a></h3>
<p>Despite what the somewhat dramatic nomenclature might imply, a Watch Party does not involve monitoring timepieces or standing guard over a fortress. It is, quite sensibly, an independently organized gathering of Robot Framework enthusiasts in a physical location. You arrive, you consume coffee that you did not have to personally brew, and you watch the live stream of the RoboCon online conference on a reasonably large screen alongside your professional peers.</p>
<p>In an era where artificial intelligence threatens to automate everything up to and including our existential dread, we maintain the controversial opinion that human connection remains marginally useful. A localized Watch Party provides an excellent venue to debate the finer points of keyword-driven testing, complain politely about flaky tests, and remember what it is like to laugh collectively at a well-timed slide transition.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="where-are-these-gatherings-occurring">Where Are These Gatherings Occurring?<a href="https://docs.robotframework.org/blog/and-now-for-something-completely-different-the-robocon-2026-watch-parties#where-are-these-gatherings-occurring" class="hash-link" aria-label="Direct link to Where Are These Gatherings Occurring?" title="Direct link to Where Are These Gatherings Occurring?" translate="no">​</a></h3>
<p>Through a combination of community goodwill and impressive logistical fortitude, physical Watch Parties have spontaneously materialized across the European continent.</p>
<p>For the relevant software professionals, your geographical options are as&nbsp;follows:</p>
<p><strong>1. The Germanic Deployment (Hosted by imbus&nbsp;AG)</strong></p>
<p>In a stunning display of efficiency that surprises absolutely no one, imbus AG has not merely organized a Watch Party; they have organized five of them. Simultaneously. On March 4th, doors will open precisely at 09:00 local time in Köln, Hofheim am Taunus, Möhrendorf, München, and Braunschweig.</p>
<p>You will arrive, you will be handed a welcome beverage, and you will consume high-quality technical talks. At 15:30, local panel discussions will commence, followed by a thoroughly civilized Meetup featuring dinner and drinks stretching until the entirely reasonable hour of 20:00. It is a masterpiece of corporate scheduling.</p>
<p><strong>2. The Silesian Two-Part Saga (Hosted by NiceLabs)</strong></p>
<p>In Wrocław, Poland, NiceLabs has opted for a slightly more theatrical approach, splitting the event across two days at the Politechnika Wrocławska. Attendance on the evening of March 3rd is strictly mandatory. You must appear at 15:45, mingle with fellow humans, review the highlights from the live Helsinki event, and redeem your digital access voucher. Only then are you permitted to return on the 4th of March to watch the online conference. It is a brilliant administrative maneuver to ensure no one attempts to sneak in solely for the free Wi-Fi. Please remember to bring your own&nbsp;device.</p>
<p><strong>3. The Helsinki Academic Sanctuary (Hosted by Haaga-Helia)</strong></p>
<p>Finally, for those residing near the epicenter of the Robot Framework universe, Haaga-Helia University of Applied Sciences is hosting a Watch Party on March 4th at their Pasila Campus. However, there is a catch. You must be a student. If you possess a valid Finnish student card, you are granted free entry, a complimentary online ticket, and an exclusive local program featuring a formal greeting from the Foundation itself. If you are a fully employed professional, you will be politely turned away at the door and instructed to return to your&nbsp;office.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="navigating-the-bureaucracy-how-to-signup">Navigating the Bureaucracy (How to Sign&nbsp;Up)<a href="https://docs.robotframework.org/blog/and-now-for-something-completely-different-the-robocon-2026-watch-parties#navigating-the-bureaucracy-how-to-signup" class="hash-link" aria-label="Direct link to Navigating the Bureaucracy (How to Sign&nbsp;Up)" title="Direct link to Navigating the Bureaucracy (How to Sign&nbsp;Up)" translate="no">​</a></h3>
<p>Participating in this sudden outbreak of human socialization requires navigating a very minor amount of administrative friction.</p>
<ul>
<li class=""><strong>For the German events:</strong> Anyone may attend the local gathering for €10 — this alone grants access to the local on-site stream. If you also want a full RoboCon online ticket, you can either buy one in advance (the safe route) or try your luck: Imbus will be sponsoring and giving away a number of full online tickets at the venue. Registration, naturally, remains mandatory.</li>
<li class=""><strong>For the Polish event:</strong> A financial transaction of €10. Brilliantly, this minor fee includes your global online access&nbsp;pass.</li>
<li class=""><strong>For the Finnish event</strong>: It is miraculously free of charge, provided you register through Haaga-Helia and can successfully prove your academic status upon&nbsp;entry.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-directive">The Directive<a href="https://docs.robotframework.org/blog/and-now-for-something-completely-different-the-robocon-2026-watch-parties#the-directive" class="hash-link" aria-label="Direct link to The Directive" title="Direct link to The Directive" translate="no">​</a></h3>
<p>The time for solitary, isolated technical enrichment has passed. It is time to emerge from the digital wilderness. We humbly suggest that you cease staring at this blog post, navigate to the <a href="https://www.robocon.io/watch-parties" target="_blank" rel="noopener noreferrer" class="">Watch Party registration page</a>, and secure your place in a physical room filled with your&nbsp;peers.</p>
<p>Go forth, complete the required forms, and prepare to interact with carbon-based lifeforms. Your test suites will remain exactly where you left them when you&nbsp;return.</p>
<blockquote>
<p><strong>Part of the RoboCon 2026 Preview&nbsp;Series</strong></p>
</blockquote>
<blockquote>
<p>This post is part of a series highlighting sessions and ideas from across the RoboCon 2026 program. More previews will follow, covering a wide range of Robot Framework–related topics, use cases, and industries.</p>
</blockquote>
<blockquote>
<p><em>👉 The full RoboCon 2026 program is available at robocon.io</em></p>
</blockquote>]]></content:encoded>
            <category>test-automation</category>
            <category>testing</category>
            <category>conference</category>
            <category>community</category>
            <category>robot-framework</category>
        </item>
        <item>
            <title><![CDATA[The Aurora Hasn’t Faded Yet: Why join RoboCon 2026 Online]]></title>
            <link>https://docs.robotframework.org/blog/the-aurora-hasnt-faded-yet-why-join-robocon-2026-online</link>
            <guid>https://docs.robotframework.org/blog/the-aurora-hasnt-faded-yet-why-join-robocon-2026-online</guid>
            <pubDate>Thu, 19 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A preview of our upcoming RoboCon 2026 Online Conference]]></description>
            <content:encoded><![CDATA[<p><em>A preview of our upcoming RoboCon 2026 Online Conference</em></p>
<blockquote>
<p><strong>RoboCon 2026 Preview&nbsp;Series</strong></p>
</blockquote>
<blockquote>
<p><em>In the lead-up to RoboCon 2026, we’re publishing a series of guest posts from contributors across the conference program. Each post previews a session and highlights ideas, approaches, or experiences related to Robot Framework.</em></p>
</blockquote>
<!-- -->
<blockquote>
<p>This post was written by <strong>Krzysztof Żminkowski</strong>, member of the RoboCon 2026 organizing team and one of the workshop organizers, as part of the RoboCon 2026 Preview&nbsp;Series.</p>
</blockquote>
<p>If your LinkedIn feed is anything like mine, it’s currently buried under photos of the “Aurora Borealis” lighting at the Bio Rex cinema. The Helsinki event just wrapped up, and the energy — from the workshops to the after-party — was undeniable.</p>
<p>But if you’re sitting there battling a severe case of FOMO, here is the good news: <strong>You haven’t missed the boat. You’ve just missed the in-person kickoff.</strong></p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/0_si2OcWHmVeU5Ub71-05f8946dd9331226b81ab7682c8c28bf.jpeg" width="700" height="983" class="img_ev3q"></p>
<p>The conference theme 2026 is the Aurora Borealis.</p>
<p>RoboCon 2026 Online (March 3–6) isn’t a “backup plan” for people who couldn’t fly to Finland. It is a fully distinct <strong>Chapter 2</strong> of the conference. In fact, the 250+ attendees who were in Helsinki are already gearing up to join you online. Why? Because the online edition features <strong>exclusive talks and sessions that were not presented in Helsinki</strong>.</p>
<p>Here is why grabbing a ticket now is the smartest career move you can make this&nbsp;month.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-its-freshcontent">1. It’s Fresh&nbsp;Content<a href="https://docs.robotframework.org/blog/the-aurora-hasnt-faded-yet-why-join-robocon-2026-online#1-its-freshcontent" class="hash-link" aria-label="Direct link to 1. It’s Fresh&nbsp;Content" title="Direct link to 1. It’s Fresh&nbsp;Content" translate="no">​</a></h3>
<p>The online agenda features a lineup of speakers and topics that are unique to this digital edition. We are talking about fresh deep dives into the ecosystem that even the people in Helsinki haven’t seen&nbsp;yet.</p>
<ul>
<li class=""><strong>Exclusive Tools:</strong> Catch talks like <strong>“What’s New in RobotDashboard”</strong>, where Tim de Groot unveils new data-driven insights for spotting flaky tests — content designed specifically for the online audience.</li>
<li class=""><strong>New Strategies:</strong> Sessions like <strong>“RoboMonX”</strong> (integrating Xray with Robot Framework) and <strong>“The Art of Convincing Leaders”</strong> are part of this exclusive online&nbsp;track.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-the-hallway-track-is-virtual-and-itworks">2. The “Hallway Track” is Virtual (and it&nbsp;Works)<a href="https://docs.robotframework.org/blog/the-aurora-hasnt-faded-yet-why-join-robocon-2026-online#2-the-hallway-track-is-virtual-and-itworks" class="hash-link" aria-label="Direct link to 2. The “Hallway Track” is Virtual (and it&nbsp;Works)" title="Direct link to 2. The “Hallway Track” is Virtual (and it&nbsp;Works)" translate="no">​</a></h3>
<p>RoboCon Online has a virtual venue where you can approach and meet people from the community.</p>
<p>Instead of staring at a static screen, you enter a 2D virtual world inspired by the conference theme. You have an avatar. You walk around. When you get close to other people, your video and audio fade in — just like real&nbsp;life.</p>
<ul>
<li class=""><strong>The “Bus Factor” is Zero:</strong> Want to ask a speaker a niche question about a library? You don’t have to type it into a Q&amp;A box and hope a moderator picks it. You can literally walk up to them after their talk in the virtual Speaker’s Corner.</li>
<li class=""><strong>Community Time:</strong> After the day and during the breaks the platform opens up for dedicated community fun. It’s not forced “corporate fun”; it’s actual gaming, chatting, and hanging out with the developers who build the tools you use every&nbsp;day.</li>
<li class=""><strong>Community Day — March 6:</strong> March 6 is a community-driven, non-conference day focused on collaboration, learning, and hands-on work across the Robot Framework ecosystem. Think peer discussions, problem-solving, and lightweight hackathon-style sessions where everyone brings their own&nbsp;topics.</li>
<li class=""><strong>AI You Can Actually Use:</strong> David Fogl’s online workshop, <strong>“Integrating AI &amp; Robot Framework,”</strong> isn’t about vague theory. It’s a hands-on guide to building AI agents that generate test data and self-heal broken&nbsp;scripts.</li>
<li class=""><strong>Cloud-Native Skills:</strong> Nils Balkow-Tychsen is leading a session on testing <strong>Cloud-Native Applications</strong>. If your company is moving to Kubernetes (and whose isn’t?), this session alone pays for the ticket by showing you how to validate infrastructure-as-code using Robot Framework.</li>
</ul>
<p>And that is just to name a few of the talks that are on the&nbsp;agenda</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-the-watch-partyloophole">3. The “Watch Party”&nbsp;Loophole<a href="https://docs.robotframework.org/blog/the-aurora-hasnt-faded-yet-why-join-robocon-2026-online#3-the-watch-partyloophole" class="hash-link" aria-label="Direct link to 3. The “Watch Party”&nbsp;Loophole" title="Direct link to 3. The “Watch Party”&nbsp;Loophole" translate="no">​</a></h3>
<p>Quick math your manager will&nbsp;like:</p>
<ul>
<li class=""><strong>Individual ticket:</strong> 250&nbsp;€</li>
<li class=""><strong>Watch Party Host (10 tickets):</strong> 1,875 € → 187.50 € per&nbsp;person</li>
</ul>
<p>Bring your team together, stream it in a meeting room (or online), and turn it into a shared learning day or internal workshop.</p>
<p>And it’s not just DIY. There are officially <a href="https://www.robocon.io/watch-parties" target="_blank" rel="noopener noreferrer" class="">sponsored Watch Parties</a> happening locally — often heavily subsidized by the host company. The ticket fees are symbolic (starting from 10 €), with venue, local program, and even food covered by the&nbsp;sponsor.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-join-the-in-crowd">4. Join the “In-Crowd”<a href="https://docs.robotframework.org/blog/the-aurora-hasnt-faded-yet-why-join-robocon-2026-online#4-join-the-in-crowd" class="hash-link" aria-label="Direct link to 4. Join the “In-Crowd”" title="Direct link to 4. Join the “In-Crowd”" translate="no">​</a></h3>
<p>The Helsinki attendees aren’t gatekeeping the fun; they are waiting for you to join them. Since every in-person ticket included online access, the virtual world will be populated by the full force of the community — fresh off the excitement of the live event and ready to discuss the new online-exclusive topics.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="dont-let-the-aurora-fade-withoutyou">Don’t Let the Aurora Fade Without&nbsp;You<a href="https://docs.robotframework.org/blog/the-aurora-hasnt-faded-yet-why-join-robocon-2026-online#dont-let-the-aurora-fade-withoutyou" class="hash-link" aria-label="Direct link to Don’t Let the Aurora Fade Without&nbsp;You" title="Direct link to Don’t Let the Aurora Fade Without&nbsp;You" translate="no">​</a></h3>
<p>The lights are going up on the global stage. The content is new, the platform is interactive, and the community is&nbsp;open.</p>
<p><strong>RoboCon 2026 Online starts March 3rd — secure your spot now and get 20% off through this&nbsp;link.</strong></p>
<p>👉 <a href="https://tickets.robotframework.org/robocon-2026/redeem?voucher=PARTNER-20-ONL" target="_blank" rel="noopener noreferrer" class=""><strong>Get your ticket&nbsp;here</strong></a></p>
<blockquote>
<p><strong>Part of the RoboCon 2026 Preview&nbsp;Series</strong></p>
</blockquote>
<blockquote>
<p><em>This post is part of a series highlighting sessions and ideas from across the RoboCon 2026 program. More previews will follow, covering a wide range of Robot Framework–related topics, use cases, and industries.</em></p>
</blockquote>
<blockquote>
<p>👉 The full RoboCon 2026 program is available at robocon.io</p>
</blockquote>]]></content:encoded>
            <category>community</category>
            <category>robot-framework</category>
            <category>robocon</category>
            <category>conference</category>
            <category>test-automation</category>
        </item>
        <item>
            <title><![CDATA[Beyond the Core: A Deep Dive into the RoboCon 2026 Ecosystem Talks]]></title>
            <link>https://docs.robotframework.org/blog/beyond-the-core-a-deep-dive-into-the-robocon-2026-ecosystem-talks</link>
            <guid>https://docs.robotframework.org/blog/beyond-the-core-a-deep-dive-into-the-robocon-2026-ecosystem-talks</guid>
            <pubDate>Fri, 23 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[The future of the ecosystem is looking bright.]]></description>
            <content:encoded><![CDATA[<blockquote>
<p>The future of the ecosystem is looking&nbsp;bright.</p>
</blockquote>
<blockquote>
<p><strong>RoboCon 2026 Preview&nbsp;Series</strong></p>
</blockquote>
<blockquote>
<p>In the lead-up to RoboCon 2026, we’re publishing a series of guest posts from contributors across the conference program. Each post previews a session and highlights ideas, approaches, or experiences related to Robot Framework.</p>
</blockquote>
<!-- -->
<blockquote>
<p>This post was written by <strong>Krzysztof Żminkowski</strong>, member of the RoboCon 2026 organizing team and one of the workshop organizers, as part of the RoboCon 2026 Preview&nbsp;Series.</p>
</blockquote>
<p>Let’s be honest — Robot Framework is a powerhouse, but the ecosystem is what gives it wings. It’s the difference between having a high-end engine and having a fully customized, race-ready vehicle. As we look ahead to RoboCon 2026, the lineup for the ecosystem track is shaping up to be one of the most practical and forward-thinking yet.</p>
<p>Whether you’re a veteran automation architect or a specialist looking to solve that one annoying “how do I test this legacy message queue?” problem, RoboCon 2026 is where the answers are coming to light. We’ve managed to get a look at the scheduled ecosystem talks, and if you haven’t booked your tickets yet, these highlights might just be the push you&nbsp;need.</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/1_mxWwIzLNuf6jj9loPkliRA-0c3900a7182f57986fcf7aea104022a6.jpeg" width="1024" height="1438" class="img_ev3q"></p>
<p>The conference theme 2026 is the Aurora Borealis.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-rise-of-visual-automation-robot-framework-meetsn8n">The Rise of Visual Automation: Robot Framework Meets&nbsp;n8n<a href="https://docs.robotframework.org/blog/beyond-the-core-a-deep-dive-into-the-robocon-2026-ecosystem-talks#the-rise-of-visual-automation-robot-framework-meetsn8n" class="hash-link" aria-label="Direct link to The Rise of Visual Automation: Robot Framework Meets&nbsp;n8n" title="Direct link to The Rise of Visual Automation: Robot Framework Meets&nbsp;n8n" translate="no">​</a></h3>
<p>Automation is rarely a lonely island anymore. Namik Delilovic is set to present <strong>“Bringing Robot Framework into n8n Visual Workflows,”</strong> introducing a community node that allows you to run Robot Framework tasks inside n8n’s visual&nbsp;canvas.</p>
<p>Imagine a world where a Slack alert or an IoT sensor trigger kicks off a Robot task, which then hands off data to an AI node for sentiment analysis before updating your CRM. This session promises to show us how to bridge the gap between low-code orchestration and high-power test automation. It’s the kind of cross-tool synergy that makes you feel like a literal wizard of the workflow.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="scaling-and-visibility-performance-meetsdata">Scaling and Visibility: Performance Meets&nbsp;Data<a href="https://docs.robotframework.org/blog/beyond-the-core-a-deep-dive-into-the-robocon-2026-ecosystem-talks#scaling-and-visibility-performance-meetsdata" class="hash-link" aria-label="Direct link to Scaling and Visibility: Performance Meets&nbsp;Data" title="Direct link to Scaling and Visibility: Performance Meets&nbsp;Data" translate="no">​</a></h3>
<p>Performance testing and visibility are the twin pillars of any mature automation strategy, and RoboCon 2026 isn’t skimping on&nbsp;either.</p>
<p>Dave Amies and Arkadiusz Kuczyński will be giving us a much-anticipated <strong>RFSwarm Update</strong>, sharing the roadmap for this load-testing powerhouse and discussing how community contributions from projects like NiceProject are pushing the tool&nbsp;further.</p>
<p>But what good is a test run if nobody can understand the results? Tim de Groot will be showcasing the evolution of <strong>RobotDashboard</strong>. Moving beyond simple visualization, Tim will demonstrate how this open-source project is becoming a hub for identifying flaky tests and analyzing long-running suites through custom database integrations.</p>
<p>If you’re tired of explaining to stakeholders why a “Red” result isn’t always a disaster, this talk is your new best&nbsp;friend.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-must-have-foundations-databases-andqueues">The “Must-Have” Foundations: Databases and&nbsp;Queues<a href="https://docs.robotframework.org/blog/beyond-the-core-a-deep-dive-into-the-robocon-2026-ecosystem-talks#the-must-have-foundations-databases-andqueues" class="hash-link" aria-label="Direct link to The “Must-Have” Foundations: Databases and&nbsp;Queues" title="Direct link to The “Must-Have” Foundations: Databases and&nbsp;Queues" translate="no">​</a></h3>
<p>Sometimes, we just need to get back to the basics — and by basics, we mean the heavy-duty infrastructure that keeps the world&nbsp;turning.</p>
<p>Andre Mochinin is returning with a vital <strong>Database Library Update</strong>. With a slew of improvements and changes over the last two years, this session is a must-attend for anyone who needs to ensure their data validation is as robust as their UI&nbsp;tests.</p>
<p>And for those working in the deep trenches of enterprise systems, Elout van Leeuwen and Niels Janssen are introducing <strong>MQLibrary</strong>. Specifically designed for IBM MQ — the backbone of many government and banking systems — this wrapper for pymqi finally brings native, production-like message queue interaction to the Robot Framework ecosystem.</p>
<p>No more clunky workarounds or “simulating” queues with folders; it’s time to test the real&nbsp;thing.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="engineering-for-speed-medusa-and-the-art-ofcaching">Engineering for Speed: Medusa and the Art of&nbsp;Caching<a href="https://docs.robotframework.org/blog/beyond-the-core-a-deep-dive-into-the-robocon-2026-ecosystem-talks#engineering-for-speed-medusa-and-the-art-ofcaching" class="hash-link" aria-label="Direct link to Engineering for Speed: Medusa and the Art of&nbsp;Caching" title="Direct link to Engineering for Speed: Medusa and the Art of&nbsp;Caching" translate="no">​</a></h3>
<p>If your test suite currently takes longer to run than a director’s cut of a fantasy trilogy, you’ll want a front-row seat for Edin&nbsp;Tarić.</p>
<p>He’ll be introducing <strong>Medusa</strong>, a resource-aware parallel execution tool. By using suite metadata to dynamically avoid resource conflicts, Edin’s team managed to cut 50 hours of sequential testing down to a mere five. That’s not just a speed boost; it’s a lifestyle change for your CI/CD pipeline.</p>
<p>To keep things even snappier, Sander van Beek will walk us through the <strong>“5 Levels of Caching.”</strong> We often forget that the fastest test is the one you don’t have to repeat. Sander will explore everything from simple test variables to persistent cache files that survive between runs, proving that efficiency is often just about “doing fewer things” by being smarter about what we’ve already&nbsp;done.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="improving-the-developer-experience-dx">Improving the Developer Experience (DX)<a href="https://docs.robotframework.org/blog/beyond-the-core-a-deep-dive-into-the-robocon-2026-ecosystem-talks#improving-the-developer-experience-dx" class="hash-link" aria-label="Direct link to Improving the Developer Experience (DX)" title="Direct link to Improving the Developer Experience (DX)" translate="no">​</a></h3>
<p>Developer Experience is a recurring theme for 2026, with a focus on making Robot Framework projects more maintainable and understandable.</p>
<p>Marc David Sutjipto and Julian Blanke will present <strong>RoboView</strong>, a VS Code extension designed to provide deep insights into your keyword structures through tabular and graph views. It’s the perfect tool for those moments when you realize your “simple” project has evolved into a 500-keyword labyrinth.</p>
<p>For teams looking to involve domain experts without forcing them to learn Python, Marduk Bolanos will showcase <strong>KeyTA 2.0</strong>. This web-based interface combines the familiarity of an Excel sheet with the flexibility of a REPL, allowing non-coders to execute keywords and even resume failed tests from a specific&nbsp;step.</p>
<p>It’s about democratizing automation without sacrificing power.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-eyes-of-the-robot-advanced-image-recognition">The Eyes of the Robot: Advanced Image Recognition<a href="https://docs.robotframework.org/blog/beyond-the-core-a-deep-dive-into-the-robocon-2026-ecosystem-talks#the-eyes-of-the-robot-advanced-image-recognition" class="hash-link" aria-label="Direct link to The Eyes of the Robot: Advanced Image Recognition" title="Direct link to The Eyes of the Robot: Advanced Image Recognition" translate="no">​</a></h3>
<p>Finally, Hélio Guilherme will dive into the visual side of automation with a session on <strong>SikuliLibrary</strong> and <strong>ImageHorizonLibrary</strong>.</p>
<p>When DOM identifiers are missing or too expensive to maintain, image recognition becomes the hero we need. Hélio will explore the “What, Why, and How” of these libraries, including a look at the future of SikuliLibrary as it migrates toward a more Python-centric, JRE-free integration.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-takeaway">The Takeaway<a href="https://docs.robotframework.org/blog/beyond-the-core-a-deep-dive-into-the-robocon-2026-ecosystem-talks#the-takeaway" class="hash-link" aria-label="Direct link to The Takeaway" title="Direct link to The Takeaway" translate="no">​</a></h3>
<p>The RoboCon 2026 ecosystem track is shaping up to be a masterclass in solving real-world automation headaches. From high-level AI orchestration to low-level message queues, the message is clear: the community is building the tools we need to stay ahead of the&nbsp;curve.</p>
<p>We’ll see you in Helsinki — make sure your laptop is charged and your curiosity is piqued. The future of the ecosystem is looking&nbsp;bright.</p>
<blockquote>
<p><strong>Part of the RoboCon 2026 Preview&nbsp;Series</strong></p>
</blockquote>
<blockquote>
<p>This post is part of a series highlighting sessions and ideas from across the RoboCon 2026 program. More previews will follow, covering a wide range of Robot Framework–related topics, use cases, and industries.</p>
</blockquote>
<blockquote>
<p><em>👉 The full RoboCon 2026 program is available at robocon.io</em></p>
</blockquote>]]></content:encoded>
            <category>robocon</category>
            <category>qa-engineering</category>
            <category>software-testing</category>
            <category>robot-framework</category>
            <category>test-automation</category>
        </item>
        <item>
            <title><![CDATA[Integrating AI into Your Robot Framework Strategy: What to Expect at RoboCon 2026]]></title>
            <link>https://docs.robotframework.org/blog/integrating-ai-into-your-robot-framework-strategy-what-to-expect-at-robocon-2026</link>
            <guid>https://docs.robotframework.org/blog/integrating-ai-into-your-robot-framework-strategy-what-to-expect-at-robocon-2026</guid>
            <pubDate>Mon, 29 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[A preview of our upcoming RoboCon 2026 talk]]></description>
            <content:encoded><![CDATA[<p><em>A preview of our upcoming RoboCon 2026&nbsp;talk</em></p>
<blockquote>
<p><strong>RoboCon 2026 Preview&nbsp;Series</strong></p>
</blockquote>
<blockquote>
<p>In the lead-up to RoboCon 2026, we’re publishing a series of guest posts from contributors across the conference program. Each post previews a session and highlights ideas, approaches, or experiences related to Robot Framework.</p>
</blockquote>
<!-- -->
<blockquote>
<p>This post was written by <strong>Krzysztof Żminkowski</strong>, member of the RoboCon 2026 organizing team and one of the workshop organizers, as part of the RoboCon 2026 Preview&nbsp;Series.</p>
</blockquote>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/1_mxWwIzLNuf6jj9loPkliRA-0c3900a7182f57986fcf7aea104022a6.jpeg" width="1024" height="1438" class="img_ev3q"></p>
<p>The conference theme 2026 is the Aurora Borealis.</p>
<p>The intersection of Artificial Intelligence and test automation is no longer a theoretical discussion; it is a practical shift in how we build and maintain automation suites. At RoboCon 2026, the schedule features several sessions dedicated to bridging the gap between Large Language Models (LLMs) and the Robot Framework ecosystem.</p>
<p>If you are evaluating how to move beyond simple prompt engineering and into robust, AI-enhanced automation, these eight sessions offer a comprehensive look at the current state of the&nbsp;art.</p>
<ol>
<li class=""><strong>Visual Workflows and Orchestration</strong></li>
</ol>
<p><strong>Speaker: Namik Delilovic</strong></p>
<p>Automation rarely exists in a vacuum. Namik Delilovic introduces n8n-nodes-robotframework, a community node designed to run Robot Framework within n8n’s visual workflows. This approach allows teams to trigger Robot Framework tasks based on external events — such as IoT alerts or database updates — and process the results through AI analysis&nbsp;nodes.</p>
<p>It provides a self-hosted, visual way to integrate Robot Framework with hundreds of other APIs and messaging services.</p>
<p>2. <strong>Eliminating AI Hallucinations in Test Generation</strong></p>
<p><strong>Speaker: Many&nbsp;Kasiriha</strong></p>
<p>A common barrier to using AI in testing is the hallucination of non-existent keywords. RF-MCP addresses this by executing steps in a real Robot Framework runtime before generating code. By using LibDoc to discover keywords from your actual libraries, the tool ensures that the AI only suggests valid, executable steps.</p>
<p>This results in generated suites that include proper imports and validated logic, suitable for both engineers and business analysts.</p>
<p>3. <strong>Intent-Based Automation and Computer&nbsp;Vision</strong></p>
<p>Speakers: Abdelkader Hassine &amp; Pavlo Ivashchenko</p>
<p>Moving away from brittle locator-based definitions, this session explores an AI Agent that interprets high-level testing goals. By combining LLMs with Visual Language Models (VLMs), the agent uses keywords like Agent.Do and Agent.Check to interact with GUI elements based on visual context and&nbsp;intent.</p>
<p>This prototype aims to create a more resilient, self-adaptive testing approach for applications with rapidly evolving user interfaces.</p>
<p>4. <strong>The Impact of GenAI on Engineering Education</strong></p>
<p><strong>Speaker: Arttu&nbsp;Taipale</strong></p>
<p>Beyond the tools themselves, the rise of code-by-prompt development is fundamentally changing how we learn and work. Arttu Taipale discusses the shifting role of the developer when knowing fundamentals is no longer a strict requirement for producing code.</p>
<p>The talk examines how open-source tools like Robot Framework might evolve to stay relevant in an ecosystem where AI models — rather than just humans — are primary consumers of documentation and&nbsp;code.</p>
<p>5. <strong>RPA and Local AI Agents: Privacy Meets&nbsp;Power</strong></p>
<p><strong>Speaker: Joshua&nbsp;Gorospe</strong></p>
<p>One of the biggest hurdles in enterprise AI is data privacy. Joshua Gorospe addresses this by demonstrating how to combine Robot Framework RPA with locally running AI&nbsp;agents.</p>
<p>Using tools like Ollama for private LLM instances and the Codename Goose framework, this talk shows how to automate both sequential and parallel tasks without sending sensitive data to the cloud. It is a practical look at building a powerful, private automation ecosystem on your own hardware.</p>
<p>6. <strong>Case Study: AI-Enhanced SAP Automation in&nbsp;Banking</strong></p>
<p><strong>Speakers: Yibo Wang &amp; Hazem&nbsp;Khaled</strong></p>
<p>In highly regulated sectors like banking, consistency and traceability are non-negotiable. This session details a comprehensive SAP testing solution built for a major German&nbsp;bank.</p>
<p>The authors highlight how they use Generative AI not just for testing, but for Quality Governance — including an AI-driven Pull Request Analyzer that ensures code changes align perfectly with Jira user stories. Attendees will see how AI elevates documentation quality and test governance in complex enterprise landscapes.</p>
<p>7. <strong>Automated Bug Classification and Defect&nbsp;Triage</strong></p>
<p><strong>Speakers: Mohamed Sedky &amp; Rwan Al-Halwan</strong></p>
<p>Extracting actionable insights from thousands of test logs is often a manual bottleneck. This talk introduces an automated pipeline that uses LLM reasoning to interpret Robot Framework reports and automatically generate structured bug&nbsp;tickets.</p>
<p>By classifying failures — separating functional bugs from environment issues — this AI-driven framework pushes detailed reports directly to Jira or TFS, significantly accelerating the release&nbsp;cycle.</p>
<p>8. <strong>Eliminating Global Resource Files with&nbsp;AI</strong></p>
<p><strong>Speaker: Silken&nbsp;Kleer</strong></p>
<p>Every long-term project eventually faces the import-everything anti-pattern: massive global resource files that make maintenance a nightmare. Silken Kleer presents a real-world case study on using AI to handle the grunt work of refactoring these&nbsp;files.</p>
<p>By utilizing AI for memory simulation and import redistribution, this session provides concrete strategies for breaking up monolithic files into manageable, clean code without the overwhelming manual&nbsp;effort.</p>
<p>Whether you are looking for new tools to implement immediately or a deeper understanding of where the industry is headed, these sessions provide a balanced perspective on AI’s role in modern automation.</p>
<blockquote>
<p><strong>Part of the RoboCon 2026 Preview&nbsp;Series</strong></p>
</blockquote>
<blockquote>
<p>This post is part of a series highlighting sessions and ideas from across the RoboCon 2026 program. More previews will follow, covering a wide range of Robot Framework–related topics, use cases, and industries.</p>
</blockquote>
<blockquote>
<p><em>👉 The full RoboCon 2026 program is available at robocon.io</em></p>
</blockquote>]]></content:encoded>
            <category>robocon</category>
            <category>software-testing</category>
            <category>test-automation</category>
            <category>ai</category>
            <category>robot-framework</category>
        </item>
        <item>
            <title><![CDATA[Exploring New Horizons: Using Robot Framework in Aerospace and Galileo Projects]]></title>
            <link>https://docs.robotframework.org/blog/exploring-new-horizons-using-robot-framework-in-aerospace-and-galileo-projects</link>
            <guid>https://docs.robotframework.org/blog/exploring-new-horizons-using-robot-framework-in-aerospace-and-galileo-projects</guid>
            <pubDate>Mon, 22 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[A preview of our upcoming RoboCon 2026 talk]]></description>
            <content:encoded><![CDATA[<p><em>A preview of our upcoming RoboCon 2026&nbsp;talk</em></p>
<blockquote>
<p><strong>RoboCon 2026 Preview&nbsp;Series</strong></p>
</blockquote>
<blockquote>
<p>In the lead-up to RoboCon 2026, we’re publishing a series of guest posts from contributors across the conference program. Each post previews a session and highlights ideas, approaches, or experiences related to Robot Framework.</p>
</blockquote>
<!-- -->
<blockquote>
<p>This post was written by <strong>José María Martín Blázquez</strong> as part of the RoboCon 2026 Preview&nbsp;Series.</p>
</blockquote>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/1_teAl25taxUwwaBl1fl-bwQ-ad6b11c8ad7a820e9449c5c3a5a9957d.png" width="1024" height="1438" class="img_ev3q"></p>
<p>The conference theme 2026 is the Aurora Borealis.</p>
<p>Robot Framework is widely known for its versatility in automating tests for web applications, APIs, and enterprise systems. However, its potential extends far beyond those conventional domains. In our talk for RoboCon 2026, we will present how Robot Framework is used not only in satellite data-processing systems, but also in one of Europe’s largest and most iconic space programmes: Galileo, the European Global Navigation Satellite System.</p>
<p>In aerospace environments, test activities must comply with strict standards, configuration control, and traceability obligations. Over the past years, we have built an ecosystem of tools and conventions that integrates Robot Framework with requirements management (including DOORS), automated generation of test procedures, structured validation workflows, and extraction of test evidence. This approach has been successfully applied in missions such as MTG, CO2M and EPSSG, and more recently expanded to the Galileo Control Center. As part of the session, we will dedicate a section to explaining how Robot Framework is being used within the Galileo Ground Control Segment, highlighting test environments used, how Robot Framework is used and adaptations made for the Galileo&nbsp;context.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-this-topic-a-note-from-theauthors">Why this topic? A note from the&nbsp;authors<a href="https://docs.robotframework.org/blog/exploring-new-horizons-using-robot-framework-in-aerospace-and-galileo-projects#why-this-topic-a-note-from-theauthors" class="hash-link" aria-label="Direct link to Why this topic? A note from the&nbsp;authors" title="Direct link to Why this topic? A note from the&nbsp;authors" translate="no">​</a></h3>
<p>Our motivation for bringing this topic to RoboCon is simple:<br>
<!-- -->we want to show a new and perhaps unexpected scope where Robot Framework is already delivering substantial value. While the aerospace sector is not typically highlighted in the RF community, it represents an exciting frontier where automation must be both flexible and fully compliant with engineering standards.</p>
<p>We have been following RoboCon for years through published videos and past sessions, and we have always admired the openness, innovation, and collaboration within the Robot Framework community. The talk <em>“</em><a href="https://www.youtube.com/watch?v=NfsbpohP4Yc" target="_blank" rel="noopener noreferrer" class=""><em>Robot Framework as a Compliance Enabler</em></a><em>”</em> (RoboCon 2024) was particularly inspirational. It demonstrated how test automation can become a driver for governance and quality — a concept that aligns perfectly with the needs of both satellite missions and Galileo operations.</p>
<p>That talk encouraged us to submit our proposal, and here we are: ready to contribute our experience back to the community.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-this-topicmatters">Why this topic&nbsp;matters<a href="https://docs.robotframework.org/blog/exploring-new-horizons-using-robot-framework-in-aerospace-and-galileo-projects#why-this-topicmatters" class="hash-link" aria-label="Direct link to Why this topic&nbsp;matters" title="Direct link to Why this topic&nbsp;matters" translate="no">​</a></h3>
<p>By presenting these use cases — from scientific missions to the Galileo Ground Control Segment — we aim&nbsp;to:</p>
<ul>
<li class="">Expand the community’s understanding of what Robot Framework can&nbsp;achieve</li>
<li class="">Demonstrate how RF supports traceability, compliance, and automated documentation, even in highly regulated industries</li>
<li class="">Share concrete adaptations and architecture choices that enable RF to perform in mission-critical environments</li>
<li class="">Encourage other sectors (medical devices, railway, defense, utilities…) to explore RF for their own complex&nbsp;systems</li>
<li class="">Strengthen the bridge between the Robot Framework community and the aerospace engineering ecosystem</li>
</ul>
<p>Robot Framework has proven to be a powerful, adaptable, and reliable tool in these demanding contexts, and we are excited to show real examples of how this works in practice.</p>
<blockquote>
<p><strong>Part of the RoboCon 2026 Preview&nbsp;Series</strong></p>
</blockquote>
<blockquote>
<p>This post is part of a series highlighting sessions and ideas from across the RoboCon 2026 program. More previews will follow, covering a wide range of Robot Framework–related topics, use cases, and industries.</p>
</blockquote>
<blockquote>
<p>👉 The full RoboCon 2026 program is available at <a href="http://robocon.io/" target="_blank" rel="noopener noreferrer" class=""><strong>robocon.io</strong></a>.</p>
</blockquote>]]></content:encoded>
            <category>software-testing</category>
            <category>test-automation</category>
            <category>robot-framework</category>
            <category>robocon</category>
            <category>aerospace</category>
        </item>
        <item>
            <title><![CDATA[RoboCon 2026: Where the Robot Framework Community Comes Together]]></title>
            <link>https://docs.robotframework.org/blog/robocon-2026-where-the-robot-framework-community-comes-together</link>
            <guid>https://docs.robotframework.org/blog/robocon-2026-where-the-robot-framework-community-comes-together</guid>
            <pubDate>Fri, 12 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Winter 2026 brings RoboCon back — and this time, it shines a little brighter.]]></description>
            <content:encoded><![CDATA[<p>Winter 2026 brings RoboCon back — and this time, it shines a little brighter.</p>
<p><a href="https://www.robocon.io/" target="_blank" rel="noopener noreferrer" class="">RoboCon 2026</a> is where the Robot Framework community meets in full force: learning together, debating ideas, building tools, and reminding ourselves why open source works best when people actually show&nbsp;up.</p>
<!-- -->
<p>Two formats, one shared experience:</p>
<p><strong>Helsinki, Finland — 10–13 February 2026</strong><br>
<strong>Online, worldwide — 3–6 March&nbsp;2026</strong></p>
<p>The program has been out for a month now. Tickets are moving. So let’s talk about what RoboCon 2026 actually offers — and what’s genuinely new this&nbsp;year.</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/1_qdrMOlPdxK1ZCn16UNgVvA-ec57571ee4110119721f030133566120.jpeg" width="1024" height="1366" class="img_ev3q"></p>
<p>The theme colors were shown in Bio Rex. Credits Jani&nbsp;Haapala.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="two-ways-to-attend-one-community">Two ways to attend, one community<a href="https://docs.robotframework.org/blog/robocon-2026-where-the-robot-framework-community-comes-together#two-ways-to-attend-one-community" class="hash-link" aria-label="Direct link to Two ways to attend, one community" title="Direct link to Two ways to attend, one community" translate="no">​</a></h3>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="live-in-helsinki-biorex">Live in Helsinki (Bio&nbsp;Rex)<a href="https://docs.robotframework.org/blog/robocon-2026-where-the-robot-framework-community-comes-together#live-in-helsinki-biorex" class="hash-link" aria-label="Direct link to Live in Helsinki (Bio&nbsp;Rex)" title="Direct link to Live in Helsinki (Bio&nbsp;Rex)" translate="no">​</a></h3>
<p>RoboCon Helsinki follows a familiar, well-tested rhythm:</p>
<ul>
<li class=""><strong>10 Feb — Workshops</strong><br>
<!-- -->Full-day, hands-on training with Robot Framework experts.</li>
<li class=""><strong>11 Feb — Community Day</strong><br>
<!-- -->A free, attendee-driven unconference where the agenda is created on the&nbsp;spot.</li>
<li class=""><strong>12–13 Feb — Main Conference</strong><br>
<!-- -->Two full days of talks, discussions, Speakers’ Corner conversations — and evening&nbsp;events.</li>
</ul>
<p>Bio Rex, right in the center of Helsinki, gives us a proper auditorium for talks and plenty of space for hallway conversations — which, as always, are where half the learning&nbsp;happens.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="online-worldwideand-more-global-thanever">Online, worldwide — and more global than&nbsp;ever<a href="https://docs.robotframework.org/blog/robocon-2026-where-the-robot-framework-community-comes-together#online-worldwideand-more-global-thanever" class="hash-link" aria-label="Direct link to Online, worldwide — and more global than&nbsp;ever" title="Direct link to Online, worldwide — and more global than&nbsp;ever" translate="no">​</a></h3>
<p>The online part of RoboCon runs on <strong>Gather.Town</strong>, not a passive video platform but an interactive space where conversations happen naturally.</p>
<ul>
<li class=""><strong>3 Mar — Online Workshops</strong><br>
<!-- -->Full-day (~7h), instructor-led, hands-on workshops in small&nbsp;groups.</li>
<li class=""><strong>4–5 Mar — Online Conference</strong><br>
<!-- -->Pre-recorded talks streamed live, with real-time Q&amp;A, panels, and interactive sessions.</li>
<li class=""><strong>6 Mar — Community Day + Tutorials</strong><br>
<!-- -->Unconference-style Community Day plus interactive tutorials, all included for ticket&nbsp;holders.</li>
</ul>
<p><strong>What’s new in 2026:</strong><br>
<!-- -->For the <strong>first time ever</strong>, RoboCon Online includes <strong>dedicated content during Americas-friendly time zones</strong> — including:</p>
<ul>
<li class="">a full online conference day</li>
<li class="">a separate Americas session during Community Day</li>
</ul>
<p>This is a meaningful shift for us, and an open invitation to the US and the wider Americas community.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="new-in-2026-watch-parties">New in 2026: Watch Parties&nbsp;🌍<a href="https://docs.robotframework.org/blog/robocon-2026-where-the-robot-framework-community-comes-together#new-in-2026-watch-parties" class="hash-link" aria-label="Direct link to New in 2026: Watch Parties&nbsp;🌍" title="Direct link to New in 2026: Watch Parties&nbsp;🌍" translate="no">​</a></h3>
<p>This year we’re introducing <strong>Watch Parties</strong> — local RoboCon hotspots where Robot Framework enthusiasts gather to experience the conference together.</p>
<p>Watch Parties come in two&nbsp;flavors:</p>
<p><strong>Community-driven Watch Parties</strong><br>
<!-- -->Anyone can organize a small, local Watch Party. Simply grab a discounted bundle of online tickets, gather your colleagues or local community, and make it happen. Low barrier, high&nbsp;energy.</p>
<p><a href="https://www.robocon.io/sponsor" target="_blank" rel="noopener noreferrer" class=""><strong>Sponsor</strong></a><strong>-hosted Watch Parties</strong><br>
<!-- -->Our <strong>Online Gold and Platinum online sponsors</strong> can host larger, more visible Watch Parties — streaming RoboCon live and adding their own local&nbsp;program.</p>
<p>These sponsored Watch Parties are our most prominent hubs and may&nbsp;include:</p>
<ul>
<li class="">tutorials or hands-on workshops</li>
<li class="">customer case presentations</li>
<li class="">local technical talks</li>
<li class="">shared meals, networking, or social&nbsp;events</li>
</ul>
<p>Every participant still needs their own RoboCon ticket (packages and bundles are available), but the experience becomes local, social, and&nbsp;human.</p>
<p>If Helsinki is the north star, Watch Parties are the constellation.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="helsinki-workshops-learn-deeplyhands-on">Helsinki workshops: learn deeply,&nbsp;hands-on<a href="https://docs.robotframework.org/blog/robocon-2026-where-the-robot-framework-community-comes-together#helsinki-workshops-learn-deeplyhands-on" class="hash-link" aria-label="Direct link to Helsinki workshops: learn deeply,&nbsp;hands-on" title="Direct link to Helsinki workshops: learn deeply,&nbsp;hands-on" translate="no">​</a></h3>
<p>Workshops on <strong>10 February</strong> are full-day, practical sessions. You bring your laptop — and you leave&nbsp;<strong>wiser</strong>.</p>
<p>A few examples from this year’s&nbsp;lineup:</p>
<ul>
<li class=""><strong>Mastering Robot Framework Browser: Extend, Automate, Integrate with Playwright</strong><br>
<em>Tatu Aalto, René Rohner</em><br>
<!-- -->A deep dive into Browser library internals: architecture, scopes, selectors, tracing, and extending with JavaScript and&nbsp;Python.</li>
<li class=""><strong>From Natural Language to Robot Framework with AI Agents, MCP &amp; Self Healing Things</strong><br>
<em>Many Kasiriha, Daniel Biehl</em><br>
<!-- -->One coherent hands-on flow: natural-language scenarios turned into executable tests, validated in real Robot Framework runtime, with self-healing execution.</li>
<li class=""><strong>Extending Robot Framework (Advanced)</strong><br>
<em>Pekka Klärck</em><br>
<!-- -->Advanced library APIs, listener API, parsing, execution and result&nbsp;models.</li>
</ul>
<p>Add to that advanced Selenium usage, OpenAPI-based testing, desktop automation with PlatynUI, parallel execution with Pabot, BPMN-based orchestration, and AI-powered RAG systems — and you get a workshop day that covers both depth and&nbsp;breadth.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="community-day-built-by-the-people-in-theroom">Community Day: built by the people in the&nbsp;room<a href="https://docs.robotframework.org/blog/robocon-2026-where-the-robot-framework-community-comes-together#community-day-built-by-the-people-in-theroom" class="hash-link" aria-label="Direct link to Community Day: built by the people in the&nbsp;room" title="Direct link to Community Day: built by the people in the&nbsp;room" translate="no">​</a></h3>
<p><strong>11 February in Helsinki</strong> (and <strong>6 March online</strong>) is Community Day.</p>
<p>No fixed agenda. No sales pitches. Attendees propose topics in the morning, vote, split into groups — and get to&nbsp;work.</p>
<p>It’s free for all ticket holders (with limited spots), and it’s often&nbsp;where:</p>
<ul>
<li class="">long-standing problems finally get&nbsp;solved</li>
<li class="">contributors find each&nbsp;other</li>
<li class="">new projects quietly&nbsp;start</li>
</ul>
<p>If RoboCon has a heart, this is where it beats&nbsp;loudest.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="main-conference-two-days-the-whole-ecosystem">Main Conference: two days, the whole ecosystem<a href="https://docs.robotframework.org/blog/robocon-2026-where-the-robot-framework-community-comes-together#main-conference-two-days-the-whole-ecosystem" class="hash-link" aria-label="Direct link to Main Conference: two days, the whole ecosystem" title="Direct link to Main Conference: two days, the whole ecosystem" translate="no">​</a></h3>
<p>The main conference days in Helsinki (<strong>12–13 Feb</strong>) cover the full Robot Framework universe: testing, RPA, AI, governance, accessibility, enterprise adoption, regulated industries, and personal&nbsp;growth.</p>
<p>A few highlights from the&nbsp;program:</p>
<ul>
<li class=""><strong>RF-MCP: Say It, Test It, Ship It</strong> — <em>Many Kasiriha</em><br>
<!-- -->Plain English becomes executable Robot Framework tests — validated step by step in real&nbsp;runtime.</li>
<li class=""><strong>Bringing Robot Framework to Aerospace: Traceable Automation in Space Projects</strong><br>
<em>José María Martín Blázquez, Bruno Néstor Calvo Chevillat</em><br>
<!-- -->Robot Framework applied under strict standards and traceability requirements, with a real operational project.</li>
<li class=""><strong>Robot Framework Core Updates</strong> — <em>Pekka Klärck</em><br>
<!-- -->A look at what’s new and what’s coming&nbsp;next.</li>
<li class=""><strong>Panel Discussion: Robot Framework and AI</strong><br>
<!-- -->Hosted by <em>René Rohner</em>, with rotating seats and audience-driven topics.</li>
</ul>
<p>Alongside the talks, there’s the <strong>conference dinner</strong>, the <strong>after-party</strong>, and plenty of informal conversations that usually end up being just as valuable as the sessions themselves.</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/1_pPQXHO2slWV_Cm64WroXTA-98e9d0f7274e35a66c89365cbf084d0c.png" width="1024" height="671" class="img_ev3q"></p>
<p>Bio Rex has great auditorium. Credits: Jani&nbsp;Haapala.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="online-conference-interactive-bydesign">Online conference: interactive by&nbsp;design<a href="https://docs.robotframework.org/blog/robocon-2026-where-the-robot-framework-community-comes-together#online-conference-interactive-bydesign" class="hash-link" aria-label="Direct link to Online conference: interactive by&nbsp;design" title="Direct link to Online conference: interactive by&nbsp;design" translate="no">​</a></h3>
<p>RoboCon Online (<strong>4–5 March</strong>) combines pre-recorded talks with live streaming, real-time Q&amp;A, and fully live sessions such as panels — all inside Gather.Town.</p>
<p>The program&nbsp;spans:</p>
<ul>
<li class="">Robot Framework updates</li>
<li class="">enterprise and open-source case&nbsp;studies</li>
<li class="">ecosystem libraries and&nbsp;tools</li>
<li class="">AI-assisted testing and reporting</li>
<li class="">performance, observability, embedded systems, and adoption&nbsp;stories</li>
</ul>
<p>On <strong>6 March</strong>, live tutorials (included with all tickets) offer focused, two-hour deep dives, followed by Community Day sessions split between <strong>EMEA</strong> and <strong>Americas</strong> time&nbsp;zones.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-roboconmatters">Why RoboCon&nbsp;matters<a href="https://docs.robotframework.org/blog/robocon-2026-where-the-robot-framework-community-comes-together#why-roboconmatters" class="hash-link" aria-label="Direct link to Why RoboCon&nbsp;matters" title="Direct link to Why RoboCon&nbsp;matters" translate="no">​</a></h3>
<p>RoboCon isn’t about hype. It’s about&nbsp;clarity.</p>
<p>People come to RoboCon&nbsp;to:</p>
<ul>
<li class="">learn what actually works — tools, techniques, and patterns&nbsp;included</li>
<li class="">understand where Robot Framework is&nbsp;going</li>
<li class="">meet the people behind the&nbsp;tools</li>
<li class="">build lasting connections in the community</li>
<li class="">and leave with ideas you can apply right&nbsp;away</li>
</ul>
<p>If you want the full in-person experience, join us in Helsinki.<br>
<!-- -->If you want global access without losing the community — or to gather locally at a Watch Party — the online conference has you&nbsp;covered.</p>
<p><a href="https://www.robocon.io/" target="_blank" rel="noopener noreferrer" class=""><strong>Tickets</strong></a> <strong>are available now.</strong><br>
<!-- -->We’d love to have you with us — wherever you join&nbsp;from.</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/1_ZZt6PphroGwIrIapLAACsw-8448ee630d9e011f87c0b6c834a360f4.png" width="1024" height="576" class="img_ev3q"></p>
<p>Yours truly,</p>
<p><strong>Miikka Solmela</strong><br>
<!-- -->RoboCon 2026 Orga Team &amp;<br>
<!-- -->Executive Director, Robot Framework Foundation</p>]]></content:encoded>
            <category>conference</category>
            <category>robot-framework</category>
            <category>robocon</category>
            <category>test-automation</category>
            <category>software-testing</category>
        </item>
        <item>
            <title><![CDATA[Robot Framework test distribution]]></title>
            <link>https://docs.robotframework.org/blog/robot-framework-test-distribution</link>
            <guid>https://docs.robotframework.org/blog/robot-framework-test-distribution</guid>
            <pubDate>Thu, 09 Oct 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Franz Haas is an active member of the Robot Framework community who has contributed significantly to embedded and short-run hardware testing. In this post, Franz shares practical insights on distributing Robot Framework tests and RPA solutions in constrained or isolated environments — an important topic for those working beyond typical CI/CD pipelines.]]></description>
            <content:encoded><![CDATA[<p>Franz Haas is an active member of the Robot Framework community who has contributed significantly to embedded and short-run hardware testing. In this post, Franz shares practical insights on distributing Robot Framework tests and RPA solutions in constrained or isolated environments — an important topic for those working beyond typical CI/CD pipelines.</p>
<!-- -->
<p>In some situations distributing Robot Framework tests/RPA including the libraries is cumbersome. We will go over some of the situations where this is relevant and propose a couple of solutions.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-does-thismatter">Why does this&nbsp;matter?<a href="https://docs.robotframework.org/blog/robot-framework-test-distribution#why-does-thismatter" class="hash-link" aria-label="Direct link to Why does this&nbsp;matter?" title="Direct link to Why does this&nbsp;matter?" translate="no">​</a></h3>
<p>Being able to reproduce results is what differentiates professional engineering and scientific research from religious believe. Some quality standards explicitly require reproducibility, others are easier to meet with reproducibility.</p>
<p>For many of us a CI/CD pipeline which is a well maintained infrastructure solves this problem. The devops tool set is extensive and well established. The environment runs in a climatised data center isolated from real world influences by dedicated teams. I have the deepest respect of those who make this possible, it is incredible what has been achieved.</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/0_5T72ROw1cepNLc8J-644cc5a2544f6ef3ce58ef3816628df1.jpeg" width="1024" height="683" class="img_ev3q"></p>
<p>Thanks to <a href="https://www.pexels.com/@brett-sayles/" target="_blank" rel="noopener noreferrer" class="">https://www.pexels.com/@brett-sayles/</a></p>
<p>This article is for those of us who can not benefit from that. Some of us interact with the real world, others are doing RPA in a locked down environment.</p>
<p>Robot Framework is highly modular, lives in the python ecosystem which is very diverse, runs on many operating systems or even without an operating system and easily integrates with the system level using interfaces like <a href="https://cffi.readthedocs.io/en/stable/" target="_blank" rel="noopener noreferrer" class="">CFFI</a> making it as powerful as C/C++/Rust for interacting with hardware.</p>
<p>This is great, but can be the source of headache when documenting how a measurement/test/RPA was made for future reference, or reproducing a setup on a new location. For example in the hardware production test environment reproducibility is a non negotiable must have requirement.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="requirement-sets-discussed">Requirement sets discussed<a href="https://docs.robotframework.org/blog/robot-framework-test-distribution#requirement-sets-discussed" class="hash-link" aria-label="Direct link to Requirement sets discussed" title="Direct link to Requirement sets discussed" translate="no">​</a></h3>
<ul>
<li class="">Close in time, access to wheels, uv preinstalled<br>
<!-- -->(This is your typical laboratory setup. The network is often isolated but there is normally a way to install vetted&nbsp;wheels.)</li>
<li class="">No access to wheels, python pre installed<br>
<!-- -->(This is your typical production test environment. There are maintainers who will take care of keeping the environment stable after ramp-up, gate keeping updates.)</li>
<li class="">No python infrastructure preinstalled<br>
<!-- -->(This is your typical non cooperative destination)</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="close-in-time-with-access-to-wheels-uv-available">Close in time with access to wheels, uv available<a href="https://docs.robotframework.org/blog/robot-framework-test-distribution#close-in-time-with-access-to-wheels-uv-available" class="hash-link" aria-label="Direct link to Close in time with access to wheels, uv available" title="Direct link to Close in time with access to wheels, uv available" translate="no">​</a></h3>
<p><a href="https://docs.astral.sh/uv/" target="_blank" rel="noopener noreferrer" class="">uv</a> allows us to do this with an incredibly small overhead.</p>
<p>uvx --python=3.13.6 --from robotframework==7.2.2 --with numpy==2.2.6 robot</p>
<p>Operating system drivers are not included. There is a dependency on uv which is owned by astral and the wheel distribution infrastructure, however not a lot of effort and resources is sunk for this solution.</p>
<p>The wheel distribution infrastructure is either pypi, or a dedicated in-house solution under local control. Astral is a private&nbsp;company.</p>
<p>Keep in mind that versions may not be provided indefinitely.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="no-access-to-wheels-python-is-available-zipapp">No access to wheels python is available (zipapp)<a href="https://docs.robotframework.org/blog/robot-framework-test-distribution#no-access-to-wheels-python-is-available-zipapp" class="hash-link" aria-label="Direct link to No access to wheels python is available (zipapp)" title="Direct link to No access to wheels python is available (zipapp)" translate="no">​</a></h3>
<p>Since python 3.5 it is possible to bundle python files into a zip file which can then be run using python. These can appear to be regular exe files on windows, and regular executable files on unix. However portable between those are the pyz files which can be executed by python like a script, but actually are a zip&nbsp;file.</p>
<p>While it is possible to include native dependencies, some of them are very tricky to be included and the resulting zipapp is much less portable. Native modules which consist of a single self contained pyd/so file are bearable (for example <a href="https://docs.pola.rs/api/python/stable/reference/index.html" target="_blank" rel="noopener noreferrer" class="">polars</a>), those who do something more complex are a headache (for example&nbsp;<a href="https://numpy.org/" target="_blank" rel="noopener noreferrer" class="">numpy</a>).</p>
<p>This is great for long term archiving and sharing in restricted environments. Only one relatively small file needs to get through, and there is no dependency beyond this single file and a specific version of&nbsp;python.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="no-access-to-wheels-no-python-available-frozenapp">No access to wheels, no python available (frozen&nbsp;app)<a href="https://docs.robotframework.org/blog/robot-framework-test-distribution#no-access-to-wheels-no-python-available-frozenapp" class="hash-link" aria-label="Direct link to No access to wheels, no python available (frozen&nbsp;app)" title="Direct link to No access to wheels, no python available (frozen&nbsp;app)" translate="no">​</a></h3>
<p>In frozen applications python, Robot Framework and everything to run these are frozen together, either as a single file executable (linux) or a installable file (msi, dmg, deb,&nbsp;rpm).</p>
<p>When using <a href="https://cx-freeze.readthedocs.io/en/stable/script.html" target="_blank" rel="noopener noreferrer" class="">cxfreeze</a> two pitfalls might get in your&nbsp;way.</p>
<ol>
<li class="">the cxfreeze script takes a parameter “ — script” which shall point to the script which starts the frozen application. When the src/robot/run.py file of the Robot Framework is used, this will fail, due to a missing module (pythonpathsetter). You need to provide a custom start&nbsp;script.</li>
<li class="">cxfreeze will not include python libraries when it does not see them actually used, unless explicitly told to. All libraries intended to be used need to be explicitly included.</li>
</ol>
<p>This has the advantage over zipapps that python is included and native modules are supported, on the downside they are not portable across operating systems and they are&nbsp;bigger.</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/0_J4IMnoT-WyQLQg5i-b35bf98b8c683aee9d7bd7612f212a9e.png" width="1024" height="770" class="img_ev3q"></p>
<p>Visualization of the dependencies covered</p>
<p>We did not touch on two important topics. Distributing the robot files, and distributing operating system, drivers and hardware, especially non standard hardware.</p>
<p>For the operating system drivers and non standard hardware no solution is offered&nbsp;here.</p>
<p>The robot / resource files, these can be stored as resources within python projects / wheels, and from there included inside of zipapps and frozen apps. Remember to put a “__init__.py” into these directories, to properly configure <a href="https://setuptools.pypa.io/en/latest/userguide/declarative_config.html" target="_blank" rel="noopener noreferrer" class="">setup.cfg</a> to include them. Use this context manager to access these&nbsp;files.:</p>
<p>with importlib.resources.path(specification, "data") as path:
robot.run(path)</p>
<p>Do not rely on the <a href="https://docs.python.org/3/reference/datamodel.html#module.__file__" target="_blank" rel="noopener noreferrer" class="">__file__</a>, attribute, as it may not&nbsp;exist.</p>
<p><a href="https://github.com/MarketSquare/compact_testprogram_distribution" target="_blank" rel="noopener noreferrer" class="">Examples and implementation</a> details are available on <a href="https://github.com/MarketSquare/" target="_blank" rel="noopener noreferrer" class="">MarketSquare</a> on&nbsp;github.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="decision-aid">Decision aid<a href="https://docs.robotframework.org/blog/robot-framework-test-distribution#decision-aid" class="hash-link" aria-label="Direct link to Decision aid" title="Direct link to Decision aid" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/0_pCNmjhrd6x3lfZ4D-c1460e20743cb42f53d2d503f6eee56c.png" width="972" height="201" class="img_ev3q"></p>
<p>For topics like this the community day at <a href="https://www.robocon.io/" target="_blank" rel="noopener noreferrer" class="">robocon</a> is a very good address. If you are interested in Robot Framework for hardware production test this <a href="https://www.itctestweek.org/wp-content/uploads/2022/09/ITC2022_Final_Program.pdf" target="_blank" rel="noopener noreferrer" class="">itcweek</a> (paywalled) had a poster about&nbsp;that.</p>
<p>These tools have been discussed.:</p>
<ul>
<li class=""><a href="https://cx-freeze.readthedocs.io/en/stable/" target="_blank" rel="noopener noreferrer" class="">frozen app</a></li>
<li class=""><a href="https://docs.python.org/3/library/zipapp.html" target="_blank" rel="noopener noreferrer" class="">zipapp</a> / <a href="https://github.com/frostming/pdm-packer" target="_blank" rel="noopener noreferrer" class="">pdm-packer</a></li>
<li class=""><a href="https://docs.astral.sh/uv/" target="_blank" rel="noopener noreferrer" class="">uv</a></li>
</ul>
<p>Do you have something you’d like to share with the Robot Framework community? We’re always happy to feature community insights and experiences.</p>
<p>Thanks to <strong>Franz Haas</strong> for sharing his expertise and perspective with&nbsp;us.</p>
<p>Yours truly,<br>
<strong>Miikka Solmela</strong><br>
<!-- -->Executive Director, Robot Framework Foundation</p>]]></content:encoded>
            <category>embedded-systems</category>
            <category>test-automation</category>
            <category>robotframeworkpackaging</category>
            <category>rpa-solutions</category>
            <category>robot-framework</category>
        </item>
        <item>
            <title><![CDATA[The Foundation Behind the Framework]]></title>
            <link>https://docs.robotframework.org/blog/the-foundation-behind-the-framework</link>
            <guid>https://docs.robotframework.org/blog/the-foundation-behind-the-framework</guid>
            <pubDate>Thu, 10 Jul 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Why Robot Framework works (and keeps getting better)]]></description>
            <content:encoded><![CDATA[<p><em>Why Robot Framework works (and keeps getting&nbsp;better)</em></p>
<p><strong>Let’s be blunt:</strong> open source doesn’t magically maintain itself. Someone has to pay for infrastructure, review PRs, fund development, organize the community, and make real decisions. For Robot Framework, that “someone” is the Robot Framework Foundation.</p>
<!-- -->
<p>And it&nbsp;works.</p>
<p>But it didn’t always look like&nbsp;this.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="a-quick-flashback-three-yearsago">A Quick Flashback: Three Years&nbsp;Ago<a href="https://docs.robotframework.org/blog/the-foundation-behind-the-framework#a-quick-flashback-three-yearsago" class="hash-link" aria-label="Direct link to A Quick Flashback: Three Years&nbsp;Ago" title="Direct link to A Quick Flashback: Three Years&nbsp;Ago" translate="no">​</a></h3>
<p>Back in 2022, I wrote <a class="" href="https://docs.robotframework.org/blog/robot-framework-foundation">this blog post</a> to explain what the Foundation is, how we operate, and why it&nbsp;matters.</p>
<p>Since then?</p>
<p>We’ve grown. We’ve improved. And frankly, we’ve become a textbook example of how open source can be supported — without selling&nbsp;out.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="so-what-is-the-robot-framework-foundation">So, What Is the Robot Framework Foundation?<a href="https://docs.robotframework.org/blog/the-foundation-behind-the-framework#so-what-is-the-robot-framework-foundation" class="hash-link" aria-label="Direct link to So, What Is the Robot Framework Foundation?" title="Direct link to So, What Is the Robot Framework Foundation?" translate="no">​</a></h3>
<p>In legal terms, it’s a non-profit association based in Finland. In practical terms, it’s a structured, democratic, community-driven machine that exists solely to keep Robot Framework strong, stable, and evolving.</p>
<ul>
<li class="">We fund and manage development of Robot Framework core.</li>
<li class="">We maintain the infrastructure that makes everything run: <a href="https://robotframework.org/" target="_blank" rel="noopener noreferrer" class="">robotframework.org</a>, Slack, the Newsletter, and&nbsp;more.</li>
<li class="">We organize RoboCon, support community education, maintain documentation, and manage <a href="https://cert.robotframework.org/" target="_blank" rel="noopener noreferrer" class="">certification programs</a>.</li>
<li class="">We run a real governance model: elected board, transparent processes, community-first decisions.</li>
</ul>
<p>It’s not flashy. It’s just functional. And it works because of the&nbsp;members.</p>
<p><img decoding="async" loading="lazy" alt="Screenshot from robotframework.org frontpage." src="https://docs.robotframework.org/assets/images/1_qADVMgiKaLw-YNAgRYFJmA-f6d61b669cb06c26672cea55f83423a6.png" width="1024" height="504" class="img_ev3q"></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="open-source--real-governance--sustainable-development">Open Source + Real Governance = Sustainable Development<a href="https://docs.robotframework.org/blog/the-foundation-behind-the-framework#open-source--real-governance--sustainable-development" class="hash-link" aria-label="Direct link to Open Source + Real Governance = Sustainable Development" title="Direct link to Open Source + Real Governance = Sustainable Development" translate="no">​</a></h3>
<p>We’ve all seen open source projects collapse under the weight of success. No plan. No governance. No way to&nbsp;scale.</p>
<p>We took a different path.</p>
<p>Our governance model is based on clarity, transparency, and actual rules. There’s a board of directors, elected by the members. Association meetings define the annual roadmap and budget. Workgroups take responsibility for key areas — from conference planning to core development. Anyone in the community can join and contribute.</p>
<p>It’s not perfect. But it’s consistent. It’s accountable. And it’s always improving.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-the-foundation-modelmatters">Why the Foundation Model&nbsp;Matters<a href="https://docs.robotframework.org/blog/the-foundation-behind-the-framework#why-the-foundation-modelmatters" class="hash-link" aria-label="Direct link to Why the Foundation Model&nbsp;Matters" title="Direct link to Why the Foundation Model&nbsp;Matters" translate="no">​</a></h3>
<p>Without the Foundation, there would be no RoboCon. No certification program. No funding for releases. No roadmap. No full-time maintenance. No Slack community with over 33,000&nbsp;members.</p>
<p>The Foundation exists so Robot Framework isn’t just another abandoned GitHub&nbsp;project.</p>
<p>It keeps the&nbsp;tool:</p>
<ul>
<li class=""><strong>Free and&nbsp;open</strong></li>
<li class=""><strong>Actively developed</strong></li>
<li class=""><strong>Technically stable</strong></li>
<li class=""><strong>Community-driven</strong></li>
</ul>
<p>If your company or organization uses Robot Framework, the Foundation is already working for you — whether you realize it or&nbsp;not.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-you-yes-you-shouldjoin">Why You (Yes, You) Should&nbsp;Join<a href="https://docs.robotframework.org/blog/the-foundation-behind-the-framework#why-you-yes-you-shouldjoin" class="hash-link" aria-label="Direct link to Why You (Yes, You) Should&nbsp;Join" title="Direct link to Why You (Yes, You) Should&nbsp;Join" translate="no">​</a></h3>
<p>Our members — companies, organizations, and foundations — are committed to ensuring Robot Framework remains strong and&nbsp;free.</p>
<p><strong>Joining means:</strong></p>
<ul>
<li class="">You get visibility.</li>
<li class="">You support a sustainable future for the tool you rely&nbsp;on.</li>
<li class="">You help steer the direction of Robot Framework.</li>
<li class="">You contribute to improving the&nbsp;tool.</li>
<li class="">You have a voice in which features get&nbsp;built.</li>
<li class="">You support open-source software the right&nbsp;way.</li>
</ul>
<p><strong>Join the Foundation. Simple as&nbsp;that.</strong></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="final-word-real-structure-realimpact">Final Word: Real Structure, Real&nbsp;Impact<a href="https://docs.robotframework.org/blog/the-foundation-behind-the-framework#final-word-real-structure-realimpact" class="hash-link" aria-label="Direct link to Final Word: Real Structure, Real&nbsp;Impact" title="Direct link to Final Word: Real Structure, Real&nbsp;Impact" translate="no">​</a></h3>
<p>The Foundation isn’t a feel-good club. It’s a working system that keeps one of the world’s best test automation tools — and its ecosystem — alive and moving forward. It’s legal, structured, documented, and governed — without being stiff or bureaucratic.</p>
<p>Think of it like&nbsp;this:</p>
<blockquote>
<p><em>A lighthouse isn’t glamorous. But without one, things&nbsp;crash.</em></p>
</blockquote>
<p>Robot Framework keeps working because the Foundation keeps showing&nbsp;up.</p>
<p><img decoding="async" loading="lazy" alt="Description: A white and black lighthouse under a blue night sky, symbolizing guidance and stability." src="https://docs.robotframework.org/assets/images/1_cO5LxTN29haJX5HJIlbt8A-ac6505a49b6936c669e0a1e59b6c87f3.jpeg" width="640" height="427" class="img_ev3q"></p>
<p>📷 Photo by Clay Banks on&nbsp;Unsplash</p>
<p><strong>If your organization uses Robot Framework, it’s time to support the people who make that possible. Become a member&nbsp;today.</strong></p>
<p>Yours truly,</p>
<p><em>Miikka Solmela</em></p>
<p>Executive Director, Robot Framework Foundation</p>]]></content:encoded>
            <category>robot-framework</category>
            <category>testing</category>
            <category>test-automation</category>
            <category>governance</category>
            <category>open-source</category>
        </item>
        <item>
            <title><![CDATA[RoboCon 2025 Recap: Helsinki, Online & A Whole Lot of Community]]></title>
            <link>https://docs.robotframework.org/blog/robocon-2025-recap-helsinki-online-a-whole-lot-of-community</link>
            <guid>https://docs.robotframework.org/blog/robocon-2025-recap-helsinki-online-a-whole-lot-of-community</guid>
            <pubDate>Thu, 27 Mar 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[RoboCon 2025 is a wrap. Two formats — in-person in snowy Helsinki and online a few weeks later via Gather.town — and both delivered. Different energy in each, but the same feeling throughout: this community keeps showing up, sharing, and pushing things forward.]]></description>
            <content:encoded><![CDATA[<p>RoboCon 2025 is a wrap. Two formats — in-person in snowy Helsinki and online a few weeks later via Gather.town — and both delivered. Different energy in each, but the same feeling throughout: this community keeps showing up, sharing, and pushing things&nbsp;forward.</p>
<!-- -->
<p>Let’s break it&nbsp;down.</p>
<p><img decoding="async" loading="lazy" alt="RoboCon logo and a picture of the auditorium" src="https://docs.robotframework.org/assets/images/1_DWlSac-vZb-IP2BDekwLIQ-92ce332c80b77d3a4ab101acb9461e1a.jpeg" width="1024" height="1365" class="img_ev3q"></p>
<p>The theme colors were shown in Bio Rex. Credits Jani&nbsp;Haapala.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-quickfacts"><strong>📍 Quick&nbsp;Facts</strong><a href="https://docs.robotframework.org/blog/robocon-2025-recap-helsinki-online-a-whole-lot-of-community#-quickfacts" class="hash-link" aria-label="Direct link to -quickfacts" title="Direct link to -quickfacts" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="in-person-helsinkibiorex">In-Person (Helsinki — Bio&nbsp;Rex)<a href="https://docs.robotframework.org/blog/robocon-2025-recap-helsinki-online-a-whole-lot-of-community#in-person-helsinkibiorex" class="hash-link" aria-label="Direct link to In-Person (Helsinki — Bio&nbsp;Rex)" title="Direct link to In-Person (Helsinki — Bio&nbsp;Rex)" translate="no">​</a></h4>
<p>🗓️ <strong>Feb 11–15,&nbsp;2025</strong></p>
<ul>
<li class=""><strong>Tue:</strong> Community Day (unconference-style)</li>
<li class=""><strong>Wed:</strong> Hands-on Workshops (Gold&nbsp;ticket)</li>
<li class=""><strong>Thu–Fri:</strong> Conference Days</li>
<li class=""><strong>Evenings:</strong> Optional Finnish-German dinner (Thu), afterparty (Fri)</li>
<li class=""><strong>Sat:</strong> Optional Suomenlinna trip</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="online-gathertown">Online (Gather.town)<a href="https://docs.robotframework.org/blog/robocon-2025-recap-helsinki-online-a-whole-lot-of-community#online-gathertown" class="hash-link" aria-label="Direct link to Online (Gather.town)" title="Direct link to Online (Gather.town)" translate="no">​</a></h4>
<p>🗓️ <strong>March 4–7,&nbsp;2025</strong></p>
<ul>
<li class=""><strong>March 4:</strong> Tutorials</li>
<li class=""><strong>March 5–6:</strong> Talks +&nbsp;Q&amp;A</li>
<li class=""><strong>March 7:</strong> Community Day</li>
<li class="">All in a virtual world where avatars roam, side chats happen in 2D bars, and yes — there’s a&nbsp;sauna</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-helsinki-highlights">🎤 Helsinki Highlights<a href="https://docs.robotframework.org/blog/robocon-2025-recap-helsinki-online-a-whole-lot-of-community#-helsinki-highlights" class="hash-link" aria-label="Direct link to 🎤 Helsinki Highlights" title="Direct link to 🎤 Helsinki Highlights" translate="no">​</a></h3>
<p>Being back at Bio Rex just worked. That classic venue delivers — great auditorium for talks, and the side bar area gave space for quieter&nbsp;convos.</p>
<p>The Finnish theme added&nbsp;flavor:</p>
<ul>
<li class="">Our team, team Robot Framework, repping blue-and-white hockey&nbsp;shirts</li>
<li class="">Mölkky on the snowy&nbsp;terrace</li>
<li class="">Tabletop hockey and the Robot Framework Snake&nbsp;game</li>
<li class="">Finnish food at the conference</li>
</ul>
<p>Gamification was well-received. Sponsor booths got solid traffic, and the Elevator Pitch competition turned out to be a good mix of pressure and&nbsp;fun.</p>
<p><img decoding="async" loading="lazy" alt="A picture of the conference gamification badge with a perfect game — all stickers collected. The gamification added a lot of interactivity to the conference." src="https://docs.robotframework.org/assets/images/1_BZdIPbO4L4cGwEYYuG7atw-5d5539cd5bc3b0eaaf5b3ce764317890.jpeg" width="1024" height="1365" class="img_ev3q"></p>
<p>The conference gamification badge with a perfect game — all stickers collected. The gamification added a lot of interactivity to the conference. Credits Lisa Böttinger.</p>
<p>A personal favorite: the Finnish-German dinner. It started with <em>Helan Går</em> and somehow ended in karaoke with a room full of test automation folks. A night to remember.</p>
<p>The talks themselves hit home — average rating: <strong>4.53 / 5</strong>. A strong sign that the content landed&nbsp;well.</p>
<p>The vibe? Friendly, focused, and grounded.<br>
<strong>NPS score: 65%</strong> — a clear signal that people left with good&nbsp;energy.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-online-conference-takeaways">🌐 Online Conference Takeaways<a href="https://docs.robotframework.org/blog/robocon-2025-recap-helsinki-online-a-whole-lot-of-community#-online-conference-takeaways" class="hash-link" aria-label="Direct link to 🌐 Online Conference Takeaways" title="Direct link to 🌐 Online Conference Takeaways" translate="no">​</a></h3>
<p>The online event had a different kind of flow — more flexible, yet interactive, and very much&nbsp;alive.</p>
<p><strong>Joe Colantonio</strong> hosted again and kept the pace right. Talks and Q&amp;A were sharp throughout, with an average <strong>talk rating of 4.3 /&nbsp;5</strong>.</p>
<p><strong>Gather.town</strong> continues to&nbsp;shine:</p>
<ul>
<li class="">Speaker Corners gave direct access to&nbsp;speakers</li>
<li class="">Casual bar/lounge chats felt&nbsp;natural</li>
<li class="">Thursday night games and hangouts brought real connection</li>
</ul>
<p><strong>Community Day</strong> stood out — no real agenda, just the community building it together. People shared, coded, and collaborated across time&nbsp;zones.</p>
<p>And the feedback matched the vibe:<br>
<strong>Online NPS: 69%</strong> — excellent for a virtual&nbsp;event.</p>
<p><img decoding="async" loading="lazy" alt="A picture from stage with people who have helped to test the RFCP certificate." src="https://docs.robotframework.org/assets/images/1_CyTNwBpN-pFQgsNHU7qypQ-b2cc5f3f4e7d103b1db0c4aa91ccb6be.png" width="1024" height="472" class="img_ev3q"></p>
<p>During the online conference, we officially launched the <a href="https://cert.robotframework.org/" target="_blank" rel="noopener noreferrer" class="">Robot Framework Certified Professional</a> (RFCP) certificate. At the in-person event, we also awarded paper certificates — hand-signed — to some of the people who had already helped test the exam. Credits Jan Lewandowski.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="️-tutorials-workshops-extras">🛠️ Tutorials, Workshops &amp;&nbsp;Extras<a href="https://docs.robotframework.org/blog/robocon-2025-recap-helsinki-online-a-whole-lot-of-community#%EF%B8%8F-tutorials-workshops-extras" class="hash-link" aria-label="Direct link to 🛠️ Tutorials, Workshops &amp;&nbsp;Extras" title="Direct link to 🛠️ Tutorials, Workshops &amp;&nbsp;Extras" translate="no">​</a></h3>
<ul>
<li class=""><strong>Tutorial Day (March 4)</strong> kicked things off with practical, hands-on sessions online. Great learning you can revisit on our <a href="https://www.youtube.com/@RobotFrameworkChannel/streams" target="_blank" rel="noopener noreferrer" class="">YouTube&nbsp;Channel</a></li>
<li class=""><strong>Workshops (Feb 12 in Helsinki)</strong> gave Gold ticket holders a chance to dive deep with experts. Superior sessions delivered by awesome&nbsp;trainers</li>
<li class=""><strong>Suomenlinna trip</strong> on Saturday gave everyone a scenic, low-key end to a high-energy week</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-heard-aroundrobocon">💬 Heard Around&nbsp;RoboCon<a href="https://docs.robotframework.org/blog/robocon-2025-recap-helsinki-online-a-whole-lot-of-community#-heard-aroundrobocon" class="hash-link" aria-label="Direct link to �💬 Heard Around&nbsp;RoboCon" title="Direct link to 💬 Heard Around&nbsp;RoboCon" translate="no">​</a></h3>
<p>A few attendee reflections from this&nbsp;year:</p>
<blockquote>
<p><strong>“This conference is something special for me every year: nowhere else do I experience a community that shares so openly, discusses together and drives new ideas forward.”</strong>*<br>
<!-- --> — *Simon&nbsp;Meggle</p>
</blockquote>
<blockquote>
<p><strong>“We collected a lot of input and experienced plenty of inspiration and ideas — — Thank you very much for professionally organizing this rich RoboCon Online 2025. We will definitely be with you again next year.”</strong>*<br>
<!-- --> — *Marc&nbsp;Rüger</p>
</blockquote>
<blockquote>
<p><strong>“Being surrounded by such passionate, talented, and innovative individuals was truly inspiring. The spirit of collaboration, learning, and sharing within this community is unmatched, and I feel so lucky to have been part of it.”</strong>*<br>
<!-- --> — *Daniel&nbsp;Seim</p>
</blockquote>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-more-voices-from-the-community">📝 More Voices from the Community<a href="https://docs.robotframework.org/blog/robocon-2025-recap-helsinki-online-a-whole-lot-of-community#-more-voices-from-the-community" class="hash-link" aria-label="Direct link to 📝 More Voices from the Community" title="Direct link to 📝 More Voices from the Community" translate="no">​</a></h3>
<p><strong>Blog Posts</strong><br>
<!-- -->🧠 <a href="https://www.robotmk.org/en/blog/robocon25-recap/" target="_blank" rel="noopener noreferrer" class="">Simon Meggle — RoboCon25 Recap</a><br>
<!-- -->🧪 <a href="https://labs.sogeti.com/robocon-2025-insights-and-highlights/" target="_blank" rel="noopener noreferrer" class="">Tuukka Virtanen — Insights &amp; Highlights from RoboCon&nbsp;2025</a></p>
<p><strong>LinkedIn Posts</strong><br>
<!-- -->👥 <a href="https://www.linkedin.com/posts/daniel-seim-go-bigger_robocon-robotframework-community-activity-7297979523495546880-Exhr/" target="_blank" rel="noopener noreferrer" class="">Daniel Seim — Reflections on RoboCon &amp; Community</a><br>
<!-- -->🎤 <a href="https://www.linkedin.com/feed/update/urn:li:activity:7297897414873542657/" target="_blank" rel="noopener noreferrer" class="">Yuri Verweij — First RoboCon Experience</a><br>
<!-- -->🔍 <a href="https://www.linkedin.com/posts/mohammedsedky_robocon2025-robotframework-testautomation-activity-7298335554981523456-g3if/?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAB-y3skBodlZLohDy6c9KMlXJLVYNrdQyac" target="_blank" rel="noopener noreferrer" class="">Mohamed Sedky — Self-Healing Tests and Big Ideas from RoboCon</a><br>
<!-- -->🤖 <a href="https://www.linkedin.com/posts/niceproject-sp-z-o-o_robocon2025-testautomation-ai-activity-7298691070534524928-Y4ER/?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAAyCupEBMEkwABH7HYU_TC0zMSa_pAKixnM" target="_blank" rel="noopener noreferrer" class="">NiceProject — RoboCon Highlights from the Team</a><br>
<!-- -->🧠 <a href="https://www.linkedin.com/posts/activity-7295462611402305537-ff1j/?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAABsKcysBvi3nwZAqY8YY9h_fmIlwT-tgECo" target="_blank" rel="noopener noreferrer" class="">Markus Boos — Insights &amp; Takeaways from&nbsp;RoboCon</a></p>
<p>If you wrote or shared something —<a href="mailto:executive.director@robotframework.org" target="_blank" rel="noopener noreferrer" class=""> inform</a> us. We’ll keep updating the list.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-aftermovie-gallery">🎥 Aftermovie &amp;&nbsp;Gallery<a href="https://docs.robotframework.org/blog/robocon-2025-recap-helsinki-online-a-whole-lot-of-community#-aftermovie-gallery" class="hash-link" aria-label="Direct link to 🎥 Aftermovie &amp;&nbsp;Gallery" title="Direct link to 🎥 Aftermovie &amp;&nbsp;Gallery" translate="no">​</a></h3>
<p>📽️ <a href="https://youtu.be/qRxYO4h_xLw?si=6EtsiFT0kP7fX_rd" target="_blank" rel="noopener noreferrer" class="">Watch the After movie</a><br>
<!-- -->🖼️ <a href="https://drive.google.com/drive/folders/1ijjNmuk3XdIv3-rRwiR82YYzv_QLM8Sk?usp=sharing" target="_blank" rel="noopener noreferrer" class="">Browse the Photo&nbsp;Gallery</a></p>
<p>Thanks again to everyone who helped make RoboCon 2025 what it was — whether you joined in person, online, or supported from behind the scenes. We’re lucky to have this community.</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/1_b0xyWDrX6OTlF8TCJLLKSg-b4e42ad2663221f71843b516f97a7095.jpeg" width="1024" height="683" class="img_ev3q"></p>
<p>The organizing team of RoboCon 2025. Credits Jani&nbsp;Haapala.</p>
<p>See you in&nbsp;2026.</p>
<p>Yours truly,</p>
<p><em>Miikka Solmela</em></p>
<p>Executive Director, Robot Framework Foundation</p>]]></content:encoded>
            <category>conference</category>
            <category>automation</category>
            <category>robot-framework</category>
            <category>robocon</category>
            <category>testing</category>
        </item>
        <item>
            <title><![CDATA[Robotframework-construct]]></title>
            <link>https://docs.robotframework.org/blog/robotframework-construct</link>
            <guid>https://docs.robotframework.org/blog/robotframework-construct</guid>
            <pubDate>Mon, 27 Jan 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[In this blog post, we give voice to Franz Haas, a long-time Robot Framework community member.]]></description>
            <content:encoded><![CDATA[<p><strong>In this blog post, we give voice to Franz Haas, a long-time Robot Framework community member.</strong></p>
<p>Franz’s project was part of the Ecosystem Project Funding Round and received support from the Robot Framework Foundation in Fall 2024. Read about how Franz has developed a new project, <strong>Robot Framework Construct</strong>, which tackles the challenge of working with binary data in a structured and intuitive way within Robot Framework. Enjoy!</p>
<!-- -->
<p><strong>Introduction, what is robotframework-construct</strong></p>
<p>This is a compact library that integrates the power of <a href="https://construct.readthedocs.io/" target="_blank" rel="noopener noreferrer" class="">construct</a> to Robot Framework.</p>
<p>Directly from the construct documentation.:</p>
<p>“Construct is a powerful <strong>declarative</strong> and <strong>symmetrical</strong> parser and builder for binary data.</p>
<p>Instead of writing <em>imperative code</em> to parse a piece of data, you declaratively define a <em>data structure</em> that describes your data. As this data structure is not code, you can use it in one direction to <em>parse</em> data into Pythonic objects, and in the other direction, to <em>build</em> objects into binary data.</p>
<p>The library provides both simple, atomic constructs (such as integers of various sizes), as well as composite ones which allow you form hierarchical and sequential structures of increasing complexity. Construct features <strong>bit and byte granularity</strong>, easy debugging and testing, an <strong>easy-to-extend subclass system</strong>, and lots of primitive constructs to make your work easier:</p>
<ul>
<li class="">Fields: raw bytes or numerical types</li>
<li class="">Structs and Sequences: combine simpler constructs into more complex ones</li>
<li class="">Bitwise: splitting bytes into bit-grained fields</li>
<li class="">Adapters: change how data is represented</li>
<li class="">Arrays/Ranges: duplicate constructs</li>
<li class="">Meta-constructs: use the context (history) to compute the size of data</li>
<li class="">If/Switch: branch the computational path based on the context</li>
<li class="">On-demand (lazy) parsing: read and parse only the fields what you require</li>
<li class="">Pointers: jump from here to there in the data stream</li>
<li class="">Tunneling: prefix data with a byte count or compress it</li>
</ul>
<p>Allowing us to access binary data in an intuitive and beautiful way.</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/0_KOD2NbAJ6wvJ2Okv-26a485cf7685551e3f87ad0470468c59.png" width="640" height="361" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="a-long-journey-for-binary-data-in-robot-framework">A long journey for binary data in Robot Framework<a href="https://docs.robotframework.org/blog/robotframework-construct#a-long-journey-for-binary-data-in-robot-framework" class="hash-link" aria-label="Direct link to A long journey for binary data in Robot Framework" title="Direct link to A long journey for binary data in Robot Framework" translate="no">​</a></h2>
<p>One of the very first open-source keyword libraries in the open-source ecosystem of Robot Framework is rammbock. Its oldest commit is from July 8, 2010. At the time Robot Framework was open source for just 2 years, and it was still roughly one year before I started using Robot Framework.</p>
<p>Rammbock is an awesome project and at the time it was instrumental in motivating me to start using Robot Framework . However although I loved the concept, I never ended up using it.</p>
<p>On the one hand, I did not work with binary network protocols. I always engaged with register access, UARTs, and I2C interfaces, which are not first-class citizens in rammbock.</p>
<p>On the other hand, it is the way my projects progressed. Initially, Robot Framework is used to explore the system, and bring it into a working state. But once this is achieved a different system without Robot Framework or Python would use what was learned. Usually, it either uses constant byte arrays or an independently developed parser/generator outside of the Python ecosystem. Constructs’ ability to transform between readable and byte array representation on the REPL is helpful in this situation.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-situation-of-rammbock-and-construct-right-now">The situation of rammbock and construct right now<a href="https://docs.robotframework.org/blog/robotframework-construct#the-situation-of-rammbock-and-construct-right-now" class="hash-link" aria-label="Direct link to The situation of rammbock and construct right now" title="Direct link to The situation of rammbock and construct right now" translate="no">​</a></h2>
<p>Both projects are awesome, and both are low on engineering time. Rammbock is looking for new maintenance, the last development commit was in January 2017. Construct is still maintained but at a slow pace.</p>
<p>Comparison of pypi stats of robotframework and construct</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/0_Pi_IqnVhY-M1hYYO-1c693885b408dd6b2954486fdd49469a.png" width="640" height="292" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/0_kOy2r9SBVIrDR4zW-d4dceee724dc72853b3b7899bffcadad.png" width="640" height="359" class="img_ev3q"></p>
<p>On the other hand, constructs download stats according to pypistats are in the same ballpark as robot-framework (screenshots taken 05-Dec-2024). It is one of the struggling open-source libraries with a relatively large user base.</p>
<p>Together with my other experiences with construct (See for example here <a href="https://www.youtube.com/watch?v=EKHmPFFu1Q4" target="_blank" rel="noopener noreferrer" class="">PyConLT</a>), the fact that I am familiar with parts of its code base, and the already existing integration into other communities (construct -&gt; kaitai -&gt; C++/C#/Lua/etc…) convinced me that the best way to go forward would be to connect Robot Framework with construct, as opposed of maintaining rammbock.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="where-are-we-now">Where are we now?<a href="https://docs.robotframework.org/blog/robotframework-construct#where-are-we-now" class="hash-link" aria-label="Direct link to Where are we now?" title="Direct link to Where are we now?" translate="no">​</a></h2>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="available-features-with-examples">Available features with examples<a href="https://docs.robotframework.org/blog/robotframework-construct#available-features-with-examples" class="hash-link" aria-label="Direct link to Available features with examples" title="Direct link to Available features with examples" translate="no">​</a></h2>
<p>Robotrfamework-construct has its first releases out and is generally operable. Examples are provided for these use cases.:</p>
<ul>
<li class="">Memory</li>
<li class="">binary files</li>
<li class="">TCP network communication</li>
<li class="">UDP network communication</li>
<li class="">Simulated register access</li>
<li class="">USB HID tests for USB keyboards (currently only Linux is supported)</li>
<li class="">NFC demo kit HW for STM32 + ST25R3916</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-bson-example">The bson example<a href="https://docs.robotframework.org/blog/robotframework-construct#the-bson-example" class="hash-link" aria-label="Direct link to The bson example" title="Direct link to The bson example" translate="no">​</a></h2>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-the-binary-data-structure-is-declared">How the binary data structure is declared<a href="https://docs.robotframework.org/blog/robotframework-construct#how-the-binary-data-structure-is-declared" class="hash-link" aria-label="Direct link to How the binary data structure is declared" title="Direct link to How the binary data structure is declared" translate="no">​</a></h2>
<p>Bson is a binary alternative to JSON. The declaration in construct can be derived from the <a href="https://bsonspec.org/spec.html" target="_blank" rel="noopener noreferrer" class="">bson</a> specification.</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/1_OZjdwVyOobgxWwW4JCYa6w-a557c66c5cae29157c26d461119c4a6f.png" width="640" height="330" class="img_ev3q"></p>
<p>Placing the specification text (right) next to the declaration in construct, the close matching of the two representations is obvious.</p>
<p>AI is reasonably good at performing this transformation. Supervising this AI process and verifying the very compact and readable result is easy.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-result">The result<a href="https://docs.robotframework.org/blog/robotframework-construct#the-result" class="hash-link" aria-label="Direct link to The result" title="Direct link to The result" translate="no">​</a></h2>
<p>Parsing and generating the binary payload is straightforward. The binary data and the human-readable visualization are available in the log file. This is helpful when dealing with trust issues in the team and allows the extraction of blobs.</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/0_Cx03ZreBg4qKHBab-0595cf2581c24c079ba130ea8ef4dbb8.png" width="640" height="325" class="img_ev3q"></p>
<p>This example shows the equivalence between the construct solution and the official bson library as bundled with pymongo.</p>
<p>Please note how little transformations are between specification, declaration, and log entry. This makes it easy for engineers to move between those easily without straining the brain.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-dns-example">The DNS example<a href="https://docs.robotframework.org/blog/robotframework-construct#the-dns-example" class="hash-link" aria-label="Direct link to The DNS example" title="Direct link to The DNS example" translate="no">​</a></h2>
<p>The Domain Name System (DNS) is a hierarchical and distributed name service that provides a naming system on IP networks. This example shows how binary network protocols can be made accessible using robotframework-construct, and how a reflector can provide server functionality without implementing a server.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-data-is-sent-received-and-reflected">How data is sent, received, and reflected<a href="https://docs.robotframework.org/blog/robotframework-construct#how-data-is-sent-received-and-reflected" class="hash-link" aria-label="Direct link to How data is sent, received, and reflected" title="Direct link to How data is sent, received, and reflected" translate="no">​</a></h2>
<p>When testing clients, having control of the server can be very helpfull. However, it is relatively hard to control a server, as servers react to client requests, not to Robot Framework steps.</p>
<p>The chosen solution is to avoid having a server, instead there is a reflector, which forwards data between sockets. This allows to place server action as Robot Framework sequence steps.</p>
<p>Another solution could be to use both ends of a single socket, however, the accept step would be asymmetrical. The reflecting solution allows for small easily understood and documented steps, which can be redirected to a real server with little effort. This is a judgment call there is nothing wrong with a single socket approach, pull requests are welcome.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-result-1">The result<a href="https://docs.robotframework.org/blog/robotframework-construct#the-result-1" class="hash-link" aria-label="Direct link to The result" title="Direct link to The result" translate="no">​</a></h2>
<p>Starting the reflector creates 2 connections, which can be used with the client interface.</p>
<p>This example shows how this reflection can be used in practice. Note how binary data transmitted to connection1 shows up on conection2. The data can be stored in the connection, it is not necessary to read it out immediately.</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/0_d5IzTqnY4Du0aw2f-ab3601b7819cee201976957760fdac36.png" width="640" height="231" class="img_ev3q"></p>
<p>For this to work, it is necessary that the receive and response steps can be separated.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-nfc-example">The NFC example<a href="https://docs.robotframework.org/blog/robotframework-construct#the-nfc-example" class="hash-link" aria-label="Direct link to The NFC example" title="Direct link to The NFC example" translate="no">​</a></h2>
<p>This example showcases how to use the binary interface in combination with a UART to control an NFC reader.</p>
<p>See also this interesting <a class="" href="https://docs.robotframework.org/blog/robot-framework-use-case-testing-payments-cards">blog</a> article about the point of sales use case of NFC from Miikka Solmela.</p>
<p>Special recognition goes to STMicroelectronics for providing the hardware and supporting this effort.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-to-handle-uart-data-reception">How to handle UART data reception<a href="https://docs.robotframework.org/blog/robotframework-construct#how-to-handle-uart-data-reception" class="hash-link" aria-label="Direct link to How to handle UART data reception" title="Direct link to How to handle UART data reception" translate="no">​</a></h2>
<p>Pyserial supports reading with a timeout, however often it is helpful to have a keyword that waits for data to arrive.</p>
<p>Using the UART interface file on systems supporting select (basically everything but Windows) is a simple and elegant solution. On Windows polling is used to compensate for the lack of select.</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/0_Acwo1qtIXb6qQIpR-29cf63d51d86fa4a29261904f6962fff.png" width="640" height="246" class="img_ev3q"></p>
<p>While it is a shame that on Windows busy waiting needs to be used, it should be noted that this happens when a single-threaded Robot Framework system has nothing to do. An often-discussed alternative is to use threads. I advise against it. The decision to use threads means that fork system calls can not be used (note.: windows does not support fork). The sequence of events gets unpredictable and often undocumented. If threads are used, I recommend using message queues to share the data. Avoid shared mutable state.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="breaking-out-of-the-ecosystem">Breaking out of the ecosystem<a href="https://docs.robotframework.org/blog/robotframework-construct#breaking-out-of-the-ecosystem" class="hash-link" aria-label="Direct link to Breaking out of the ecosystem" title="Direct link to Breaking out of the ecosystem" translate="no">​</a></h2>
<p>Migrating the constructs to different ecosystems requires an understanding of the target ecosystem. Kaitai targets 11 languages, I chose C++ as a target as I have experience with it, and it is a very different ecosystem to Robot Framework .</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="generating-and-compiling-the-parser-with-kaitai">Generating and compiling the parser with kaitai<a href="https://docs.robotframework.org/blog/robotframework-construct#generating-and-compiling-the-parser-with-kaitai" class="hash-link" aria-label="Direct link to Generating and compiling the parser with kaitai" title="Direct link to Generating and compiling the parser with kaitai" translate="no">​</a></h2>
<p>This xonsh script shows the involved steps.:</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/0_pbDN8SnBlQ1d3YEK-93c9f565d311612d4175614005036972.png" width="555" height="145" class="img_ev3q"></p>
<p>Here “export_ksy” is part of construct, it creates a kaitai file that is language agnostic, and the kaitai-struct-compiler transforms this file into a cpp file. The C++ target needs some C++ code. This C++ dependency needs to be compiled as well.</p>
<p>The main file looks like this.:</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/0_0fPlZmzp54QOkO5f-441d9877e919a1c0afeee40a0dab8e60.png" width="362" height="348" class="img_ev3q"></p>
<p>This is reasonably normal C++ code. Keep in mind that kaitai only supports parsing, not building binary data.</p>
<p>Also, keep in mind that disadvantages compound more easily than advantages.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="quality-control-measures">Quality control measures<a href="https://docs.robotframework.org/blog/robotframework-construct#quality-control-measures" class="hash-link" aria-label="Direct link to Quality control measures" title="Direct link to Quality control measures" translate="no">​</a></h2>
<p>Mutation testing ensures that the test suite finds bugs if bugs are there, by introducing bugs through mutating the code.</p>
<p>Unit tests are generally avoided. They are used to deal with code paths that are not reachable using Robot Framework due to automatic data type conversions. Instead, the focus is on acceptance tests and a high percentage of killed mutants.</p>
<p>This ensures that all error paths are executed and all error messages are at least looked at once during development.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-limitations-of-mutation-testing">The limitations of mutation testing<a href="https://docs.robotframework.org/blog/robotframework-construct#the-limitations-of-mutation-testing" class="hash-link" aria-label="Direct link to The limitations of mutation testing" title="Direct link to The limitations of mutation testing" translate="no">​</a></h2>
<p>Mutation testing is a potent tool to assess the effectiveness of quality control. It verifies if mutations in the code will be detected as a bug. There are false alarms if mutations lead to equivalent code, or if the difference is small enough to be negligible. Missing untested features can not be detected. This <a href="https://www.youtube.com/watch?v=jwB3Nn4hR1o" target="_blank" rel="noopener noreferrer" class="">goto; Copenhagen 2015</a> is a full-length presentation on the technique from Austin Bingham (Technical Director at Sixty North AS), this much shorter <a href="https://www.youtube.com/watch?v=eWOzkWyqF28" target="_blank" rel="noopener noreferrer" class="">robocon 2023 talk</a> covers this topic as one tool in a toolbox for quality controlling Robot Framework endeavors.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="conclusion">Conclusion<a href="https://docs.robotframework.org/blog/robotframework-construct#conclusion" class="hash-link" aria-label="Direct link to Conclusion" title="Direct link to Conclusion" translate="no">​</a></h2>
<p>Dealing with binary data in Robot Framework used to be an underserved topic. Rammbock is an interesting solution for binary network protocols, but many use cases remain unserved.</p>
<p>As far as I know, either hex representations or ad hoc parsers/generators (sometimes with construct) are used.</p>
<p>This structured approach provides a Robot Framework -independent parser/generator and parsers for many programming languages.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="acknowledgments">Acknowledgments<a href="https://docs.robotframework.org/blog/robotframework-construct#acknowledgments" class="hash-link" aria-label="Direct link to Acknowledgments" title="Direct link to Acknowledgments" translate="no">​</a></h2>
<p>Special thanks to the robotramework-foundation for funding this project, STMicroelectronics, and the construct project (especially Arkadiusz Bulski, Tomer Filiba, and Corbin Simpson).</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="closing-words">Closing words<a href="https://docs.robotframework.org/blog/robotframework-construct#closing-words" class="hash-link" aria-label="Direct link to Closing words" title="Direct link to Closing words" translate="no">​</a></h2>
<p>Thank you, Franz, for this intriguing new project and blog post!</p>
<p>P.S. RoboCon 2025 is coming up soon! Please check the agenda and get your tickets here: <a href="http://robocon.io/" target="_blank" rel="noopener noreferrer" class="">robocon.io</a></p>
<p>Yours truly,</p>
<p><em>Miikka Solmela</em></p>
<p>The Executive Director of the Robot Framework Foundation</p>]]></content:encoded>
            <category>robot-framework</category>
            <category>open-source</category>
            <category>binary-data</category>
            <category>community</category>
        </item>
        <item>
            <title><![CDATA[Spring Into Action with the Robot Framework Foundation!]]></title>
            <link>https://docs.robotframework.org/blog/spring-into-action-with-the-robot-framework-foundation</link>
            <guid>https://docs.robotframework.org/blog/spring-into-action-with-the-robot-framework-foundation</guid>
            <pubDate>Tue, 16 Apr 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[As the flowers bloom and the days grow longer, the Robot Framework Foundation is abuzz with activity, propelling forward with exciting updates, and nurturing the seeds of innovation. Here’s a peek at what we’ve been up to and what’s blossoming on the horizon!]]></description>
            <content:encoded><![CDATA[<p>As the flowers bloom and the days grow longer, the Robot Framework Foundation is abuzz with activity, propelling forward with exciting updates, and nurturing the seeds of innovation. Here’s a peek at what we’ve been up to and what’s blossoming on the horizon!</p>
<!-- -->
<p><strong>RoboCon 2024: A Tale of Two Formats</strong></p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/1_qd85_pcTzBt_hqxlLaYsgA-ee6c7091101d57299f6bfe2b13cb7822.jpeg" width="640" height="427" class="img_ev3q"></p>
<p>The speakers, workshop organizers and organizing team of the RoboCon 2024 on stage.</p>
<p><strong>Digital Delights:</strong></p>
<p>Our online edition of RoboCon 2024 garnered glowing reviews, much like a well-executed script passing all its tests. Participants described the experience with enthusiastic adjectives like “inspiring” and “engaging,” and the NPS score being 58, it was clearly an amazing overall experience. While the overall sentiment was akin to a standing ovation, navigating the virtual hallways of Gather.Town sometimes felt like a maze — exciting yet slightly perplexing. We’re taking your constructive critiques to heart, aiming to smooth out the digital experience just like debugging a tricky piece of code.</p>
<p><strong>Key Online Insights:</strong></p>
<ul>
<li class=""><strong>Encore-Worthy Sessions:</strong> Talks such as “Empowering Lives Through Automation” and “News about Robot Framework 7.0” not only drew applause but also ignited ideas, with many eager to translate these insights into their workflows.</li>
</ul>
<p><strong>In-Person Connections:</strong></p>
<p>For those who joined us physically, RoboCon 2024 was a vibrant hub of human connection, the gamification made things even more exciting this year. Scoring an NPS of 86.8, it was evident that the event wasn’t just liked; it was loved. Yet, we strive not just for satisfaction but for absolute delight. Based on your suggestions, we’re keen on enhancing the comfort and visibility in the auditorium, ensuring every seat is the best seat in the house.</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/1_JIkil0F6fQqp_h40MKh9CA-fa731e5f91f4eeed7503fb6dd0b6b2e2.jpeg" width="640" height="427" class="img_ev3q"></p>
<p>Eftychia Thomaidou giving her talk “The Happiness Advantage in QA”.</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/1_8M7As_QHkCyRMK6NNHk0MQ-2d5575a8c8658948264d7203fb5a0c1f.jpeg" width="640" height="427" class="img_ev3q"></p>
<p>René Rohner and Mateusz Nojek hosted a game of (Test) Automation and Robot Framework themed Jeopardy.</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/1_yjCthwaw8FZUl9GKQxWdfA-fdfea97b6dd4a5a3f7d7eaa6d8913e07.jpeg" width="640" height="427" class="img_ev3q"></p>
<p>The foyer area had a lot of space for interaction.</p>
<p><strong>Key In-Person Highlights:</strong></p>
<ul>
<li class=""><strong>Community Spirit:</strong> The atmosphere buzzed with networking and knowledge exchange, proving that the heart of our community beats strongest when we’re together.</li>
<li class=""><strong>Highlighted Talks:</strong> “Scalable Test Automation in an Insurance Company” and “Bridging Innovation and Regulation in Embedded Software Testing with Robot Framework” were particularly well-received, offering relevant insights and innovative strategies.</li>
</ul>
<p>Stay tuned in our <a href="https://www.youtube.com/@RobotFrameworkChannel" target="_blank" rel="noopener noreferrer" class="">YouTube</a> for the release of the RoboCon 2024 talks!</p>
<p><strong>Workgroups: The Engine Room of Innovation</strong></p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/1_gsSY9cxt6HCKS1rXmjCuiw-ebeb3eadceecd0743633d5347e0d9e1c.png" width="640" height="640" class="img_ev3q"></p>
<p>Our dedicated workgroups are the gears that keep our mission moving smoothly. Here’s the latest from our bustling community:</p>
<ul>
<li class=""><strong>Core Development:</strong> Spearheaded by Pekka Klärck, this group focuses on integrating pull requests and maintaining the platform’s robustness. Janne Härkönen is currently enhancing the libdoc, with ongoing updates shared in our Slack channel #devel.</li>
<li class=""><strong>Road Map Planning:</strong> The roadmap for 2024 includes the imminent RF 7.0.1 bug fix release, the RF 7.1 feature release in mid-year, and preliminary planning for RF 7.2 or 8.0 starting in September. This group stays busy ensuring our future releases align with community needs and technological advancements.</li>
<li class=""><strong>Certifications:</strong> We’re actively developing a structured certification process to standardize Robot Framework skills. After this summer, we’ll be seeking beta testers to help refine this initiative. Your participation could be crucial to its success.</li>
<li class=""><strong>Web Presence and Community Education:</strong> We’ve initiated several projects to enhance our website and documentation, aiming for a more user-friendly experience. The community platform team is seeking more feedback, especially to improve our <a href="https://forum.robotframework.org/" target="_blank" rel="noopener noreferrer" class="">forum</a>’s functionality.</li>
<li class=""><strong>Event Organization and Marketing Initiatives:</strong> We’re vigorously planning and promoting events, such as the upcoming meetups in <a href="https://www.meetup.com/robot-framework-usergroup-munsterland/" target="_blank" rel="noopener noreferrer" class="">Münster</a> and in <a href="https://robot-framework.circle.so/c/events-meetups/robot-framework-brno-meetup-aneb-jak-to-delam-ja" target="_blank" rel="noopener noreferrer" class="">Bruno</a>. Our marketing efforts are in full swing on social media — your likes and shares help extend our reach.</li>
<li class=""><strong>Robot Framework Ambassador Program:</strong> Plans are underway to launch this program in 2025, aiming to enhance our visibility and impact globally. Stay tuned for more details as this exciting initiative unfolds.</li>
</ul>
<p><strong>Call to Action</strong></p>
<p>We invite you to get involved! For more information or to offer your skills, please <a href="mailto:executive.director@robotframework.org" target="_blank" rel="noopener noreferrer" class="">reach out</a> to us. Whether you want to join a workgroup, participate in the community or simply learn more, your involvement is invaluable.</p>
<p><strong>A Heartfelt Thank You</strong></p>
<p>To all who have signed up, contributed, and dedicated their efforts — for the love of our community and the spirit of open source — we extend our deepest gratitude. Your commitment is the foundation of our success.</p>
<p>As we continue to grow and improve, we are inspired by your enthusiasm and dedication. Here’s to a season of spectacular achievements with the Robot Framework Foundation!</p>
<p>Yours truly,</p>
<p><em>Miikka Solmela</em></p>
<p>Executive Director, Robot Framework Foundation</p>]]></content:encoded>
            <category>robocon</category>
            <category>robot-framework</category>
            <category>conference</category>
            <category>open-source</category>
            <category>community</category>
        </item>
        <item>
            <title><![CDATA[The Epic Saga of RoboCon’s Inception]]></title>
            <link>https://docs.robotframework.org/blog/the-epic-saga-of-robocons-inception</link>
            <guid>https://docs.robotframework.org/blog/the-epic-saga-of-robocons-inception</guid>
            <pubDate>Mon, 22 Jan 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[The Dawn of RoboCon: A Tale of Valor and Vision]]></description>
            <content:encoded><![CDATA[<p><strong>The Dawn of RoboCon: A Tale of Valor and Vision</strong></p>
<p>In the yesteryears, precisely 7.75 years past, within the mystical Far Realm of Finland, the noble knights of the Robot Framework Foundation embarked on a quest of grandeur. With hearts valiant and minds astute, they sought to forge an alliance of unparalleled might and wisdom.</p>
<!-- -->
<p>This alliance, a covenant of honor and innovation, was not merely to convene a gathering of minds. It was destined to birth a gathering unlike any before — the inception of RoboCon, It heralded a dedicated celebration of the Robot Framework in its entirety, encompassing its versatile applications in test automation, RPA, and beyond as a comprehensive technological tool.</p>
<p>Amidst challenges most daunting — scarce resources and the shadow of oblivion looming should they falter — these steadfast knights persevered. They conjured an event of legend, ensconcing it in a venue befitting the grandest of courts, attended by diverse denizens from kingdoms near and far. Together, they raised the banner of the Robot Framework, pledging fealty to its enduring legacy.</p>
<p>Thus was the tale of RoboCon’s dawn — a story woven into the tapestry of time, its splendor echoing through the ages.</p>
<p>Behold the array of captured moments, each a vibrant tableau from the inaugural RoboCon, chronicling the early chapters in the storied history of the Robot Framework Foundation.</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/0_VnfKetNH6GQ1MUbQ-2297de4cf548586cdb540f067e119bd3.png" width="640" height="427" class="img_ev3q"></p>
<p>The inaugural conference unfolded within the hallowed confines of Helsinki’s ancient White Hall, known in the tongue of the hobbits as ‘Valkoinen sali.</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/0_Gk-fxKLNqo2O4xCH-7481592815f982bb835a28fe2885c752.png" width="640" height="960" class="img_ev3q"></p>
<p>The venerable Sir Ismo Aro, an esteemed Elder Knight of the Robot Framework Foundation, once graced the distinguished position of Chairperson of the Board.</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/0_Hz_RLvGYgfBDQAdH-fb14a1b718201faf0b6b3e28865bcfc7.png" width="640" height="427" class="img_ev3q"></p>
<p>An evocative image from the early days of RoboCon, depicting the esteemed Creator and Grand Mage of Robot Framework, Pekka Klärck, in his element on the mystical stage.</p>
<p><strong>Chronicles of the Ensuing Years</strong></p>
<p>As the wheel of time turned, the Robot Framework Foundation’s knights convened anew, marshaling their forces to not only resurrect but to elevate this majestic conclave. Triumph followed triumph, until the unforeseen scourge of COVID-19, a dark plague, threatened to cast all into shadow.</p>
<p>Yet, undeterred, these resolute knights, alongside the sagacious wizards of their order, invoked the Ethereal Library — an invisible network of knowledge and connection. In this new realm, RoboCon transcended physical boundaries, manifesting as an online congregation in the year of our Robot Lord 2021.</p>
<p>This novel paradigm flourished, evolving into hybrid gatherings and culminating in a dual conference — a beacon of enlightenment and camaraderie, reaching out to all corners of the world.</p>
<p><strong>Anticipations for 2024: The Next Chapter</strong></p>
<p>As we gaze upon the horizon of 2024, the Robot Framework Foundation’s knights extend an invitation to all — a call to partake in an odyssey of discovery and fellowship. Embodying the virtues of chivalry, kindness, and indomitable courage, they beckon you to join them, be it in the physical realm or through the mystical portals of digital convergence.</p>
<p>Embrace the RoboCon experience, commencing with a week of tactile learning and communal revelry. The main conference, a tapestry of wisdom and innovation, concludes with a celebration worthy of song. For those with hearts bold and spirits adventurous, a trek through the Northland’s untamed beauty awaits.</p>
<p>In the digital realm, journey to the enchanted land of gather.town, transformed into avatars of lore. Here, in this whimsical domain, seek truths anew and forge bonds across the ether.</p>
<p>And so, in true knightly tradition, let us raise our goblets — be they virtual or tangible — toasting to the valiant struggles against the digital beasts and fiends that plague our age.</p>
<p><strong>The Call to Knighthood</strong></p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/1_sR-cia0mBpj-tCPMPY4Fcw-9758a3366200b1be3f01343ca952453d.png" width="640" height="640" class="img_ev3q"></p>
<p>What hinders thee? Join the ranks of RoboCon’s chivalrous order. Claim thy Letters of RoboCon Knighthood and inscribe thy name in the annals of this illustrious saga.</p>
<p>The magical ethereal scroll: <a href="https://robocon.io/" target="_blank" rel="noopener noreferrer" class="">https://robocon.io/</a></p>
<p>Yours truly,</p>
<p><em>Miikka Solmela</em></p>
<p>The Esteemed Steward of the Robot Framework Foundation</p>]]></content:encoded>
            <category>robocon</category>
            <category>robot-framework</category>
            <category>test-automation</category>
            <category>conference</category>
            <category>rpa-tools</category>
        </item>
        <item>
            <title><![CDATA[Mobile App Testing -A War Story]]></title>
            <link>https://docs.robotframework.org/blog/mobile-app-testing-a-war-story</link>
            <guid>https://docs.robotframework.org/blog/mobile-app-testing-a-war-story</guid>
            <pubDate>Mon, 15 Jan 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[This time, we’re excited to feature a guest post by Felix Doppel and Christoph Singer. Dive into their insightful perspectives and enjoy the read!]]></description>
            <content:encoded><![CDATA[<p>This time, we’re excited to feature a guest post by Felix Doppel and Christoph Singer. Dive into their insightful perspectives and enjoy the read!</p>
<!-- -->
<p>So, how was your first time with test automation? Ours was a bit of a disaster. And that was a good thing! Because we learned from our mistakes, repositioned ourselves and are now completely satisfied with our automation solution.</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/0_RbY_DKN9DVdGhPo8-0f2cc7d0dac80606ce11dbd5b3dcb978.png" width="640" height="640" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="background">Background<a href="https://docs.robotframework.org/blog/mobile-app-testing-a-war-story#background" class="hash-link" aria-label="Direct link to Background" title="Direct link to Background" translate="no">​</a></h2>
<p>We operate in the insurance sector and offer one of the leading telematics solutions on the German market. Our system under test is therefore a telematics app that gives drivers live feedback on their driving behavior. That’s why we created a “mobility” ecosystem that provides feedback on all aspects of driving — e.g. a damage report, a contract service and the option to book services. This makes the app very complex and not exactly easy to test. With the increasing scope of the regression test, we therefore wanted to follow the agile approach and automate as many test cases as possible.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="round-one">Round One<a href="https://docs.robotframework.org/blog/mobile-app-testing-a-war-story#round-one" class="hash-link" aria-label="Direct link to Round One" title="Direct link to Round One" translate="no">​</a></h2>
<p>Our first approach for this was the Cucumber framework with the Gherkin syntax. We hoped that this would be easy to use for business users (not developers) and that we would be able to run as many tests as possible in a short space of time. We therefore decided that we would at least try to automate every test.</p>
<p>…but we really fell flat on our faces…</p>
<p>However, this was not primarily due to the framework but to the processes modeled behind it. The framework was integrated into the source code of the app, so it required more maintenance and developer input. Creating the tests was also more difficult than expected and the work was mostly left to the test automation engineer — without any input from the manual tests, as they very quickly lost interest. In the end, it felt like the test team was working separately from each other…</p>
<p>And the worst thing was: the test runs of the automated tests always showed green bars. However, the manual test found many, sometimes very critical errors in the same test environment. Trust looks different…!</p>
<p>To summarize, we made the following mistakes:</p>
<p>· We tried to automate every test</p>
<p>· We pulled the automation out of the development process and thus isolated it</p>
<p>· At the same time, we made work for the developers by not separating the code. Separated them from each other</p>
<p>· We didn’t pay attention to whether the solution was really suitable for business users</p>
<p>The chosen framework also turned out to be not really suitable for our solution:</p>
<p>Mobile-specific tests such as flight mode, gestures or different operating systems and settings could not be mapped.</p>
<p>The necessary variety of devices (500,000 active users) could not really be represented, as a connection to a cloud test lab was not easily possible.</p>
<p>In the end, we failed because the tests could not deliver any real added value. For us, the question remained: was that it with test automation? Is it simply not feasible for us or do we try again?</p>
<p>The decision was made to get up, wipe our mouths and carry on. But this time properly and with the lessons learned from the first attempt.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="round-two-test">Round two, test!<a href="https://docs.robotframework.org/blog/mobile-app-testing-a-war-story#round-two-test" class="hash-link" aria-label="Direct link to Round two, test!" title="Direct link to Round two, test!" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/0_ekrkhYHGH6ye90AQ-c052e561811c01437075a38429408e63.png" width="640" height="640" class="img_ev3q"></p>
<p>During the tool evaluation conducted by imbus, the Robot Framework in combination with Appium emerged as the best-suited tool for our requirements. By utilizing multiple abstraction levels, domain testers can develop test cases in their familiar language (Domain Specific Language). The test automators can focus on implementing the keywords and do not necessarily need to have in-depth domain knowledge. It was also important for us that we could run the written test cases in both worlds: iOS and Android. This is feasible as long as the apps are identically structured and differ only in minor details. The framework comprises the following layers:</p>
<p><img decoding="async" loading="lazy" src="data:image/png;base64,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" width="257" height="254" class="img_ev3q"></p>
<p>Test cases are created from keywords from the Business Layer. These represent technical test steps and can consist of other Business and Technical Keywords. The content of the upper three layers is implemented only once and can be used for both iOS and Android. Objects such as buttons, text fields, etc., are addressed in the keywords through variables. This creates a Single Point of Change for the identifiers, which greatly contributes to the maintainability of the test automation. The identifiers are also the point that differs between the apps in iOS and Android. Meaning, during the test execution, it only needs to be decided which resources should be included. This can be done via a configuration file, or passed via the command line.</p>
<p>The execution of the tests is carried out at SauceLabs in the mobile device cloud. This enables us to achieve broad test coverage at the device level. Additionally, this allows us the capability to run tests in parallel on multiple devices using pabot, drastically reducing throughput time. For synchronizing the test results after SauceLabs (SauceLabs only executes commands but does not know if a test step is pass or fail), the er API is used.</p>
<p>For controlling the test execution, Jenkins is used. Additionally, the ability to trigger a test execution from Jira was established. Here, the Jenkins job is executed with parameters, including the test environment (Android, iOS) and the specific test case to be run.</p>
<p>After the initial attempt with the Cucumber Framework failed due to its limitations and lack of integration into the development process, switching to the Robot Framework in combination with Appium led to an effective solution. The capability to use test cases and keywords for both iOS and Android, coupled with the integration of a mobile device cloud, allows for an efficient and flexible solution. This journey demonstrates that the right tool selection and learning from mistakes can lead to a powerful and adaptable test automation strategy.</p>
<p>The Blog text is by the authors</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/1_VMQ2sRlcwpWKfbRY9cjTwA-004e844fb8ca9493774ce6a0fafdb336.jpeg" width="640" height="962" class="img_ev3q"></p>
<p>Christoph Singer,</p>
<p>Senior Test Automation Engineer at imbus</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/0_yxSfs1MLVurRg-Du-e9d9901f6aa70c9e537648a0e189d8bc.png" width="640" height="426" class="img_ev3q"></p>
<p>Felix Doppel,</p>
<p>Test manager at HUK-COBURG</p>
<p>If you wish to write blogs with us, do <a href="mailto:executive.director@robotframework.org" target="_blank" rel="noopener noreferrer" class="">contact</a> us!</p>]]></content:encoded>
            <category>mobile-testing</category>
            <category>testing</category>
            <category>robot-framework</category>
            <category>cucumber</category>
            <category>test-automation</category>
        </item>
        <item>
            <title><![CDATA[RoboCon 2023 is dead, long live RoboCon 2024!]]></title>
            <link>https://docs.robotframework.org/blog/robocon-2023-is-dead-long-live-robocon-2024</link>
            <guid>https://docs.robotframework.org/blog/robocon-2023-is-dead-long-live-robocon-2024</guid>
            <pubDate>Mon, 12 Jun 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[In this post I am going to talk a bit about the RoboCon 2023 online and the preparations for the upcoming conference 2024.]]></description>
            <content:encoded><![CDATA[<p>In this post I am going to talk a bit about the RoboCon 2023 online and the preparations for the upcoming conference 2024.</p>
<!-- -->
<p>About the RoboCon 2023 in-person please see this <a class="" href="https://docs.robotframework.org/blog/robocon-2023-intermission">post</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="robocon-2023-online">RoboCon 2023 Online<a href="https://docs.robotframework.org/blog/robocon-2023-is-dead-long-live-robocon-2024#robocon-2023-online" class="hash-link" aria-label="Direct link to RoboCon 2023 Online" title="Direct link to RoboCon 2023 Online" translate="no">​</a></h2>
<p>What an experience! We had a really great conference experience in the RoboCon online 2023. Our host Joe Colantonio did a superb job entertaining the crowd. His easy going live Q&amp;A’s after each talk was music to the ears.</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/1_ruhXn85xwUiJME5ga0I0nA-039ff1fdb5a3afac88e64489086defb6.png" width="640" height="360" class="img_ev3q"></p>
<p>RoboCon 2023 online opening session with our host Joe Colantonio, René Rohner and Miikka Solmela in Gather.town captured from Youtube stream.</p>
<p>The talks were really good and besides the pre-recorded talks, we had a few live sessions as well. First an opening with the Chairperson of the board René Rohner and Executive Director Miikka Solmela of the Robot Framework <a class="" href="https://docs.robotframework.org/blog/robot-framework-foundation">Foundation</a> to discuss the Foundations and what it is and what makes it unique. The second live session was an awesome panel discussion at the end of the conference between our Lead developer Pekka Klärck, Community leader Ed Manlove and a Member of the board Many Kasiriha.</p>
<p>These sessions and all the other talks will be released on our Youtube <a href="https://www.youtube.com/watch?v=lKu-9WKtYcg&amp;list=PLSK6YK5OGX1DYqe35OX0_CqE1DEP7dI9I" target="_blank" rel="noopener noreferrer" class="">channel</a> during the summer. Check it out!</p>
<p>Overall, the online conference was a success and the community was able to get together on the Gather.town platform. We have read through all the valuable feedback. In general it was really positive and the online conference actually had a higher NPS (59.42) than the in-person (46.27). We have also taken into consideration some of the improvement ideas for next year.</p>
<p>Thank you everyone involved in the conference, you rock!</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/0_DlO-bneXnVYN-ieP-6a4b95fffb4010ed81ba9f522842f087.png" width="640" height="235" class="img_ev3q"></p>
<p>Ed at the “local” bar in Gather.town.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="robocon-2024">RoboCon 2024<a href="https://docs.robotframework.org/blog/robocon-2023-is-dead-long-live-robocon-2024#robocon-2024" class="hash-link" aria-label="Direct link to RoboCon 2024" title="Direct link to RoboCon 2024" translate="no">​</a></h2>
<p>It is on! The workgroup has already started to work towards creating an even better conference experience for 2024. So, what will it be in 2024?</p>
<p>One thing we have discussed in the workgroup is doing something a bit differently. Don’t worry, we will have enough of the same guaranteed quality but we want to add a fresh twist.</p>
<p>We will have a similar asynchronous conference first in-person in Helsinki on 6–9th of February followed by the full online conference 28 of February until 1st of March.</p>
<p>The in-person conference will start with the workshop day to learn new skills hands-on, then we will continue with the community day which is an open space for the community to learn, discuss and advance topics related to Robot Framework. After that we will have two days of excellent talks and other content at Bio Rex. And let’s not forget the dinner after the first conference day, after party and maybe some culture on Saturday!</p>
<p>Few weeks later the online conference will include streamed pre-recorded talks and live Q&amp;A as well as some live-sessions all hosted by the evergreen Joe Colanation. This time we shall have an after party! The online community day is after the conference. The whole experience will be on an interactive platform to allow people to connect and chat with one another.</p>
<p>One of the things that we want to emphasize especially at the onsite conference is the interpersonal connections and community. Another key thing is creating value for the participants and “leveling up”. We want each participant to take something away from the conference and try to find the answers to the questions people have in their job regarding the usage of Robot Framework. And let’s not forget about fun!</p>
<p>Follow us on social media or robocon.io for more information.</p>
<p>So what is the twist then? It is top secret… but let’s just say let the games begin!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="you-make-the-conference">You make the conference<a href="https://docs.robotframework.org/blog/robocon-2023-is-dead-long-live-robocon-2024#you-make-the-conference" class="hash-link" aria-label="Direct link to You make the conference" title="Direct link to You make the conference" translate="no">​</a></h2>
<p>We are a community above all. It is people in the community who make the conference. Now this is your time to make RoboCon 2024. There are several ways to contribute, you can:</p>
<ul>
<li class="">Give a talk</li>
<li class="">Give a workshop</li>
<li class="">Give a tutorial</li>
<li class="">Be a leader during the community day</li>
<li class="">Be an event partner (sponsor)</li>
<li class="">Join the organizing workgroup</li>
<li class="">Give us ideas or inspiration</li>
<li class="">Write a <a href="https://forms.gle/ejhif9MrdbXiYX3H7" target="_blank" rel="noopener noreferrer" class="">review</a> on a past conference</li>
</ul>
<p>And last but not least</p>
<ul>
<li class=""><strong>Participate</strong> in the conference!</li>
</ul>
<p>We encourage you to contact us with any questions of the above mentioned at <a href="mailto:info@robocon.io" target="_blank" rel="noopener noreferrer" class="">info@robocon.io</a>.</p>
<p>Moreover, as it happens, we have just opened the <a href="http://pretalx.com/robocon-2024/cfp" target="_blank" rel="noopener noreferrer" class="">Call for Speakers</a> so list your talk, workshop or tutorials proposal or get in touch with us to further discuss.</p>
<p>If you are in a need of inspiration. We will, among other things, discuss talk / workshop / tutorial ideas in the next <a href="https://docs.google.com/document/d/1KXEACIO1sSHrwwXsuVmY2mf4OIvMneagae8Vwjdu5zw/edit?usp=sharing" target="_blank" rel="noopener noreferrer" class="">Open Space</a>! Join the fun 30.6.2024 3 PM CET.</p>
<p>We want to highlight that at this point of time there are still many open possibilities and we are highly flexible regarding your wishes as a conference participant, partner, speaker and we want to listen with an open ear about the suggestions, ideas and dreams regarding the up-coming conference.</p>
<p>In the end RoboCon is for the community, by the community.</p>
<p>Yours truly,</p>
<p><em>Miikka Solmela</em></p>
<p>Executive Director, Robot Framework Foundation</p>]]></content:encoded>
            <category>conference</category>
            <category>robot-framework</category>
            <category>robocon</category>
            <category>automation</category>
            <category>testing</category>
        </item>
        <item>
            <title><![CDATA[RoboCon 2023: intermission]]></title>
            <link>https://docs.robotframework.org/blog/robocon-2023-intermission</link>
            <guid>https://docs.robotframework.org/blog/robocon-2023-intermission</guid>
            <pubDate>Tue, 21 Feb 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Woah, we’re half way there!]]></description>
            <content:encoded><![CDATA[<p>Woah, we’re half way there!</p>
<p>RoboCon 2023 Helsinki left us craving for more. Luckily the <a href="https://robocon.io/" target="_blank" rel="noopener noreferrer" class="">RoboCon</a> Online conference is just one week away!</p>
<!-- -->
<p>In this blog text I am going to open a bit how the Helsinki conference went and what to expect from the online conference experience.</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/0_orklCPVcbXIw-OkC-4a0e5e0e5b39e2e9484c25249701d16c.png" width="640" height="427" class="img_ev3q"></p>
<p>Conference participants at the Bio Rex venue on a break. Picture by Jani Haapala.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="onsite-in-helsinki">Onsite in Helsinki<a href="https://docs.robotframework.org/blog/robocon-2023-intermission#onsite-in-helsinki" class="hash-link" aria-label="Direct link to Onsite in Helsinki" title="Direct link to Onsite in Helsinki" translate="no">​</a></h2>
<p>The third week of January we had the RoboCon Helsinki conference. However, the week started on Tuesday with workshops. There was a possibility to learn different topics hands-on in a small group. There were many good topics such as, Browser library, Robot Framework Advanced and Robot Framework APIs, to mention a few.</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/0_9C0cY2rifIVhWi7a-30c59876b3e34ac8dd92fb99aa08c368.png" width="640" height="480" class="img_ev3q"></p>
<p>Browser workshop participants at the Gofore office. Picture by Jani Haapala.</p>
<p>The week continued with the newly branded Open space -day (old Sprints) on Wednesday. This is a day for the community to come together and discuss or advance any topics somewhat related to Robot Framework they want. The day began with some suggestions for topics of the day, after which people were split into smaller groups according to their interest. During the day some people continued the learnings from the workshops, like a discussion group on the CI/CD pipelines whilst some came up with completely new topics. After lunch we re-grouped and some people switched to different topics.</p>
<p>The actual conference was then Thursday and Friday. We had some more than 200 people onsite. Both days we had a really good breakfast, lunch and some afternoon snack as well as all day coffee. The days started at 9 am with the opening talks and ended around 6 pm. The atmosphere during the conference was extremely friendly and warm. Thank you all participants for being part of that!</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/0_cuf4D_NdNKubPVry-de37bc2ca38b611b574728237176e77b.png" width="640" height="427" class="img_ev3q"></p>
<p>RoboCon participants on stage to present their findings from the Open Space day. Picture by Jani Haapala.</p>
<p>The talks offered something for everyone depending on your skill level and knowledge. We have pre-released two talks! Check out the talk on <a href="https://youtu.be/tfwd89Am27M" target="_blank" rel="noopener noreferrer" class="">er API in theory and practice</a> and <a href="https://youtu.be/GeJiVcLUxGY" target="_blank" rel="noopener noreferrer" class="">API testing with Robot Framework</a> to get a look and feel of the conference talks. This year besides great talks, we had some extra emphasis on community time.</p>
<p>During these “Community sessions” people could meet one another, meet the event partners, check the job openings and find like minded people to talk about topics suggested by the participants in the discussion area, such as RPA, Libraries, Camunda etc.. Moreover, during the longer lunch breaks we had also some demos by sponsors and a help clinic dedicated to help people with their real life RF related issues.</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/0_YwLYskIySNtAmvWO-572e8294264a6c10c778413450671caf.png" width="640" height="427" class="img_ev3q"></p>
<p>Discussion are discussion by the participants. Picture by Jani Haapala.</p>
<p>The Vala after party concluded the conference week. However, a small group of brave people tackled the extreme challenges in the Finnish cabin still during the weekend.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="online-in-gathertown">Online in Gather.Town<a href="https://docs.robotframework.org/blog/robocon-2023-intermission#online-in-gathertown" class="hash-link" aria-label="Direct link to Online in Gather.Town" title="Direct link to Online in Gather.Town" translate="no">​</a></h2>
<p>What fun, we still have the second part of the conference ahead of us! So what to expect?</p>
<p>The RoboCon 2023 Online is on the Gather.Town platform, which is a retro video game like set-up. However, instead of a game we will actually have our conference there! So you can move around in the conference venue with your avatar, chat and have calls with the other participants, speakers and the event partners. Check out the <a href="https://www.youtube.com/watch?v=6mtIO49k074&amp;t=82s" target="_blank" rel="noopener noreferrer" class="">preview of the platform</a>!</p>
<p>What about the content?</p>
<p>First of all, we have recorded all the talks from the Helsinki conference, but we also have 9 completely fresh talks coming up! Moreover, each talk will have a live Q&amp;A where you can ask your questions. The Q&amp;A is conducted by our host Joe Colantonio who is a true professional. We will also have a live kick-off about the Robot Framework Foundation and a live panel discussion about Robot Framework tool with the host and the experts. What panel discussion you may ask? Well, a perfect transition to the Open Space day!</p>
<p>So the first two days are talks, but the third day is the Open Space day. There is a possibility to bring your own discussion topics, or you can do hands-on work on some project with a smaller group to improve the Robot Framework tool, the ecosystem and the community. The Open Space concept is mostly self-organized, but there will be a kick off talk and a few predefined topics to get started with.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="be-part-of-the-conference-experience-robocon-2023">Be part of the conference, experience RoboCon 2023.<a href="https://docs.robotframework.org/blog/robocon-2023-intermission#be-part-of-the-conference-experience-robocon-2023" class="hash-link" aria-label="Direct link to Be part of the conference, experience RoboCon 2023." title="Direct link to Be part of the conference, experience RoboCon 2023." translate="no">​</a></h2>
<p>Why should you join the conference if you were already in the Helsinki conference?</p>
<p>First of all, you can attend free of charge with your onsite tickets. Secondly, there are outstanding new talks. Moreover, this is a great opportunity to re-watch your favorite talks or some talks which maybe were a bit over your head the first time around, especially with the live Q&amp;A this is an excellent opportunity to capitalize on the learning. Besides, it is fun to catch up with old and fresh acquaintances from Helsinki and make completely new ones! There is nothing like a common topic of interest to bring people together.</p>
<p>Furthermore, the Open Space day is an awesome place to test out your new ideas and hone them with the community or just advance some topics you see important. Or just have a relaxed and fun day with the community members in the Gather.town!</p>
<p>For those who did not attend the Helsinki conference, you really have no excuse. Make a difference. Learn, be active, be out there -from the comfort of your home.</p>
<p>See you at the conference!</p>
<p>Yours truly,</p>
<p><em>Miikka Solmela</em></p>
<p>Executive Director, Robot Framework Foundation</p>
<p>P.S. If you don’t have <strong>a ticket</strong>, please use <a href="https://tickets.robotframework.org/robocon-2023/redeem?voucher=RCON-COMMUNITY-20%25&amp;subevent=3410050" target="_blank" rel="noopener noreferrer" class="">this link for a 20% discount</a>.</p>]]></content:encoded>
            <category>robot-framework</category>
            <category>conference</category>
            <category>test-automation</category>
            <category>roboticprocessautomation</category>
            <category>community</category>
        </item>
        <item>
            <title><![CDATA[Robot Framework use case: save me chatbot, the legacy system is killing me!]]></title>
            <link>https://docs.robotframework.org/blog/robot-framework-use-case-save-me-chatbot-the-legacy-system-is-killing-me</link>
            <guid>https://docs.robotframework.org/blog/robot-framework-use-case-save-me-chatbot-the-legacy-system-is-killing-me</guid>
            <pubDate>Tue, 31 Jan 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[This Blog is based on an interview with Tommi Holmgren, the VP of Solutions at Robocorp, as part of a series of interviews to shed light on different use cases of Robot Framework.]]></description>
            <content:encoded><![CDATA[<p>This Blog is based on an interview with Tommi Holmgren, the VP of Solutions at Robocorp, as part of a series of interviews to shed light on different use cases of Robot Framework.</p>
<!-- -->
<p>If you have a good use case of Robot Framework, please do <a href="mailto:executive.director@robotframework.org" target="_blank" rel="noopener noreferrer" class="">contact</a> me.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="background">Background<a href="https://docs.robotframework.org/blog/robot-framework-use-case-save-me-chatbot-the-legacy-system-is-killing-me#background" class="hash-link" aria-label="Direct link to Background" title="Direct link to Background" translate="no">​</a></h2>
<p>Robotic Process Automation (RPA) and chatbots are two technologies that are increasingly being used together to streamline business processes and improve customer experiences.</p>
<p>There are often numerous software platforms in use, different ERP- and CRM systems and legacy stuff that is either too hard, expensive or even impossible to use over API connections. At the same time, chatbots can help the users to by-pass a lot of the manual work in the riptide of the sea of software.</p>
<p>One of the <a class="" href="https://docs.robotframework.org/blog/robot-framework-foundation">Robot Framework Foundation</a> members, Robocorp has built an example that brings the open-source conversational AI platform Rasa and Robot Framework together. Robocorp is a company with strong footing in RPA and bot automation.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="chatbots-with-robot-framework">Chatbots with Robot Framework<a href="https://docs.robotframework.org/blog/robot-framework-use-case-save-me-chatbot-the-legacy-system-is-killing-me#chatbots-with-robot-framework" class="hash-link" aria-label="Direct link to Chatbots with Robot Framework" title="Direct link to Chatbots with Robot Framework" translate="no">​</a></h2>
<p>It’s easy to think of chatbots as simple pre-programmed answer machines that seldom get the job done. Unfortunately that has been the case too often, but the world is changing fast. Advances in technologies like GPT-3 will change the way we interact with natural language.</p>
<p>So how do these two technologies work together? One way that RPA and chatbots can be combined is by using chatbots to handle initial customer inquiries and then using RPA to handle the more complex tasks that require data processing or other manual work. For example, a chatbot might be able to handle simple customer service inquiries, such as answering FAQs or providing information about a product, while an RPA bot could be used to process orders, update customer records, or perform other tasks that require more in-depth knowledge or manual work. This way the robots, RPA processes, provide chatbots with new skills they would not be able to perform otherwise.</p>
<p>As the processes are code, they can be managed in the CI/CD (continuous integration, continuous delivery) pipeline like with any other software project. Moreover, the functionalities needed can be multiplied and reused with the use libraries after the initial coding. In many ways, the chatbot paired up with a software robot can replace an app UI as well as an APIas a quick and effective way to get things done all the way from the user experience (being it for internal or external user) and in between systems communication.</p>
<p>Combination of RPA and chatbots can help businesses to automate a wide range of tasks and processes, improving efficiency, reducing the need for manual work, and enhancing the customer experience. By leveraging the strengths of both technologies, businesses can take full advantage of the benefits of automation and artificial intelligence.For more information on the technical solution you may check out their <a href="https://robocorp.com/portal/robot/robocorp/example-rasa-robot" target="_blank" rel="noopener noreferrer" class="">blog</a> or <a href="https://github.com/robocorp/example-rasa-robot" target="_blank" rel="noopener noreferrer" class="">Github examples</a> with Robot Framework.</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/0_cJAQBP-ba-bsuu3H-7b663cc27ae209fd00f1586bc74713dc.png" width="640" height="360" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="rpa-use-cases-of-chatbots">RPA Use cases of chatbots<a href="https://docs.robotframework.org/blog/robot-framework-use-case-save-me-chatbot-the-legacy-system-is-killing-me#rpa-use-cases-of-chatbots" class="hash-link" aria-label="Direct link to RPA Use cases of chatbots" title="Direct link to RPA Use cases of chatbots" translate="no">​</a></h2>
<p>Naturally, there are many use cases of chatbots. The power of using them with RPA is that you can actually do smart things with it. Especially when dealing with legacy systems or user -unfriendly solutions, making an interface to use the systems without actually using the system is a win for those struggling with the User interface.</p>
<p>It can be that you are using multiple systems to get information. Let’s imagine an insurance broker who needs to fetch the customer record from one system, then based on the records the prices for the insurance from another system and then make the offer for the client. Well, instead of scrolling, clicking and waiting the chatbot could fetch data from multiple systems for the broker while they have full focus on the client.</p>
<p>Similarly, chatbots can be used to compare records in different systems, automate tasks or a sequence of actions that are done often. This liberates time for people to focus on the more meaningful tasks.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="closing-words">Closing words<a href="https://docs.robotframework.org/blog/robot-framework-use-case-save-me-chatbot-the-legacy-system-is-killing-me#closing-words" class="hash-link" aria-label="Direct link to Closing words" title="Direct link to Closing words" translate="no">​</a></h2>
<p>Chatbots are revolutionizing the digital world. The ease of use of systems through a conversational user experience to get things done can be applied to a variety of systems, processes and industries. Even this post contains segments written with AI. Can you spot them?</p>
<p>Needless to say, the heavier the process and the higher the frequency the bigger the benefit. However, as we move forward I am sure this revolution also achieves smaller and smaller processes, systems and use cases.</p>
<p>Robot Framework is a solid automation framework that helps businesses to automate a wide range of tasks and processes, improving efficiency, reducing the need for manual work, and enhancing the customer experience. . By leveraging the strengths of both automation and natural language processing technologies, businesses can take full advantage of the benefits of automation and artificial intelligence.</p>
<p>In this blog we have discussed the chatbot solution of Robocorp, but naturally you may have a different solution. Regardless, we believe that the world is in need of automation and Robot Framework is there to make it happen.</p>
<p>Yours truly,</p>
<p><em>Miikka Solmela</em></p>
<p>Executive Director, Robot Framework Foundation</p>]]></content:encoded>
            <category>rpa-tools</category>
            <category>robot-framework</category>
            <category>roboticprocessautomation</category>
            <category>chatbots</category>
        </item>
        <item>
            <title><![CDATA[Robot Framework use case: testing payments cards]]></title>
            <link>https://docs.robotframework.org/blog/robot-framework-use-case-testing-payments-cards</link>
            <guid>https://docs.robotframework.org/blog/robot-framework-use-case-testing-payments-cards</guid>
            <pubDate>Fri, 16 Dec 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[This Blog is based on an interview with Jani Kytöaho, a senior devops engineer and a Robot Framework expert, as part of a series of interviews to shed light on different use cases of Robot Framework.]]></description>
            <content:encoded><![CDATA[<p>This Blog is based on an interview with Jani Kytöaho, a senior devops engineer and a Robot Framework expert, as part of a series of interviews to shed light on different use cases of Robot Framework.</p>
<!-- -->
<p>If you have a good use case of Robot Framework, please do <a href="mailto:executive.director@robotframework.org" target="_blank" rel="noopener noreferrer" class="">contact</a> me.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="background">Background<a href="https://docs.robotframework.org/blog/robot-framework-use-case-testing-payments-cards#background" class="hash-link" aria-label="Direct link to Background" title="Direct link to Background" translate="no">​</a></h2>
<p>Have you paid recently with your payment card?</p>
<p>Then it is likely that you have used a service tested and secured by Robot Framework.</p>
<p>Nexi Group is one of the biggest players in the digital payment markets in Europe, they process billions of payment card transactions each day. It is clear that when dealing with these amounts of transactions there needs to be a secure way to know that these payments will go through.</p>
<p>This is where Robot Framework comes into the picture. The payment terminals are tested with the robot.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="use-of-robot-framework-at-nexi-group">Use of Robot Framework at Nexi Group<a href="https://docs.robotframework.org/blog/robot-framework-use-case-testing-payments-cards#use-of-robot-framework-at-nexi-group" class="hash-link" aria-label="Direct link to Use of Robot Framework at Nexi Group" title="Direct link to Use of Robot Framework at Nexi Group" translate="no">​</a></h2>
<p>At Nexi there was a need to give manual testers more time for exploratory testing and use test automation to run simple repetitive test cases. After some research, Robot Framework was chosen to be the test automation framework to do so back in 2014. The major benefit from Robot Framework for them is its general nature and the fact that the subject of the testing does not need to be defined in the set-up, but the inputs can come from the outside. Today, Robot Framework is used by over a 100 employees from three different teams.</p>
<p>Test automation is not that simple when it comes to the payment terminals. Terminal does not work on its own but requires backend servers to do authorizations and to download parameters. In most cases these servers are black box services operated by different teams and without proper APIs. This means that most of the test cases are end-to-end tests.</p>
<p>Terminal vendors provide OS and SDK and Nexi uses them to develop payment applications. Each card brand (e.g. Visa, MasterCard) have dozens of different cards terminal needs to support. There are also country and customer specific features and configurations. This means that there are hundreds of different software configurations to be tested for each release.</p>
<p>To make things more complicated hardware vendors rarely have any software to simulate actions on the terminal. In such a case a mechanical robot with an integrated camera is used to press keys and to read text from the screen. Luckily there exists 3rd party software and hardware to simulate chip and contactless cards. Mechanical card feeder is implemented to support card probes to move between multiple terminals. Both the robot and the card feeder are <a href="https://en.wikipedia.org/wiki/Numerical_control" target="_blank" rel="noopener noreferrer" class="">CNC machines</a> in nature. Multiple custom Robot Framework libraries are written to make robot usage easier and to hide technical details.</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/0_jbHQ7_MyO17fSqlr-bd0f3460fe0f32b5c94ab79fc470a31f.png" width="640" height="853" class="img_ev3q"></p>
<p><em>A CNC machine modified to operate the payment cards with a payment terminal in a testing laboratory.</em></p>
<p>The card feeder can move the cards to either use contactless payment or to insert the card to the reader. The robot is used to press the PIN code to the payment terminal if a test case requires it. A camera records the terminal screen and text is extracted from the image. This makes it possible to verify that the terminal is always in the correct state. Same test cases can be used regardless if actions are simulated or done by the robot.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="test-automation-set-up-at-nexi">Test automation set-up at Nexi<a href="https://docs.robotframework.org/blog/robot-framework-use-case-testing-payments-cards#test-automation-set-up-at-nexi" class="hash-link" aria-label="Direct link to Test automation set-up at Nexi" title="Direct link to Test automation set-up at Nexi" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/0_VhuGW2-wfW9jFTX7-173e82e43c6e92a9f1bb2349ab55dca3.png" width="640" height="408" class="img_ev3q"></p>
<p><em>Overview of the test set-up</em></p>
<p>The test automation set-up high level explanation is drawn in the picture above. On the left hand side the bottom corner shows test cases, followed by the payment layer where the type of the terminal, the environment and other factors for the tests are verified. The third layer is the library layer, where different libraries are taken into use.</p>
<p>The libraries used are:</p>
<ul>
<li class="">Optical Character Recognition (camera, image process, tesseract) which uses heavily python opencv library</li>
<li class="">libraries to control cnc machines (robot and card feeder) over serial connection</li>
<li class="">libraries to use <a href="https://www.ul.com/" target="_blank" rel="noopener noreferrer" class="">UL Solutions</a> tool for card simulation</li>
<li class="">library to control chip card multiplexer</li>
<li class="">libraries to implement usage of Nexi electronic cash register interfaces (ECR)</li>
</ul>
<p>The communication layer (tcp client, udp server, Grbl driver) takes care that the libraries and the test cases are connected and information flows as indicated by the arrows in the picture.</p>
<p>At the start of a test, there is a command line input to confirm whether the test is an integrated or standalone test and whether the physical robot or simulation is used to conduct the test.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="design-principles">Design principles<a href="https://docs.robotframework.org/blog/robot-framework-use-case-testing-payments-cards#design-principles" class="hash-link" aria-label="Direct link to Design principles" title="Direct link to Design principles" translate="no">​</a></h2>
<p>One of the design principles at Nexi is to hide low level implementation by creating higher level keywords (payment layer). This helps the less-technical people to also write tests and it reduces the amount of keywords used in the test cases.</p>
<p>The second design principle is ensuring that the same test case can be run with all terminal configurations. This is accomplished by conditional resource file import. Thirdly, if possible a data-driven approach is used in the test suites.</p>
<p>Moreover, all the changes coming to the test automation repository are reviewed with below standards.</p>
<ul>
<li class="">each library must have an owner</li>
<li class="">unit tests are implemented for pure python code as well as custom RF libraries if applicable</li>
<li class="">Robocop is used for static analysis</li>
<li class="">SonarQube is used for static analysis for python code</li>
<li class="">dryrun is used to detect keyword syntax errors</li>
<li class="">proper CI/CD pipeline is used to control the process and if issues are found a pull request can be blocked</li>
</ul>
<p>Naturally, it is also important to use proper IDE in the local development. At Nexi the recommendation is VS Code + Robocop + Robot Framework language server.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="test-environments-test-suites-and-test-runs">Test environments, test suites and test runs<a href="https://docs.robotframework.org/blog/robot-framework-use-case-testing-payments-cards#test-environments-test-suites-and-test-runs" class="hash-link" aria-label="Direct link to Test environments, test suites and test runs" title="Direct link to Test environments, test suites and test runs" translate="no">​</a></h2>
<p>There are 6 different test environments with the total max capacity of 20 terminals (3 to 4 terminals per environment). Moreover, there are 5 different test suite categories which are run on nightly basis for every terminal:</p>
<ul>
<li class="">1h smoke suite, most important test cases that can be run within 1 hour</li>
<li class="">regression suite, longer suite containing most important test cases for the coming release</li>
<li class="">feature suites, test cases focusing on a certain feature</li>
<li class="">certification suites, suites for verifying that terminal hand handle correctly all acquirer (Visa, MasterCard, Amex, Diners, JCB) cards</li>
<li class="">memory leak suite, to test possible memory leaks after 100 to 1000 transactions</li>
</ul>
<p>The test runs are executed always with the latest software for the coming release. The new software is deployed to the development environment after each merged pull request.</p>
<p>Production releases are done a few times a year. In the Suite Setup the terminal checks if there is a new version of the software available. If there is, the terminal is updated. Otherwise the current software is used.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="closing-words">Closing words<a href="https://docs.robotframework.org/blog/robot-framework-use-case-testing-payments-cards#closing-words" class="hash-link" aria-label="Direct link to Closing words" title="Direct link to Closing words" translate="no">​</a></h2>
<p>On top of the above mentioned, Robot Framework is also used at Nexi for browser testing and the browser library is in use and for mobile testing with appium.</p>
<p>Regardless of the precautions and good practices, there are sometimes flaky tests, false negatives or some other issues due to 3rd party software, changes in the backend or some other reasons. That makes the testing and debugging much more difficult. And interesting.</p>
<p>Uses of the Robot Framework are varied, and this is just one of the cases. If you have a good use case of Robot Framework, please do <a href="mailto:executive.director@robotframework.org" target="_blank" rel="noopener noreferrer" class="">contact</a> me.</p>
<p>Yours truly,</p>
<p><em>Miikka Solmela</em></p>
<p>Executive Director, Robot Framework Foundation</p>
<p>P.s. check out the upcoming Robot Framework conference at <a href="http://robocon.io/" target="_blank" rel="noopener noreferrer" class=""><strong>robocon.io</strong></a>!</p>]]></content:encoded>
            <category>testing</category>
            <category>robot-framework</category>
            <category>test-automation</category>
            <category>cnc-machine</category>
            <category>devops</category>
        </item>
        <item>
            <title><![CDATA[Robot Framework transformation journey]]></title>
            <link>https://docs.robotframework.org/blog/robot-framework-transformation-journey</link>
            <guid>https://docs.robotframework.org/blog/robot-framework-transformation-journey</guid>
            <pubDate>Fri, 18 Nov 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[In this blog text I am talking about the transformation journey of DB Schenker.]]></description>
            <content:encoded><![CDATA[<p>In this blog text I am talking about the transformation journey of <a href="https://www.dbschenker.com/global" target="_blank" rel="noopener noreferrer" class="">DB Schenker</a>.</p>
<p>What has changed since they took Robot Framework into use?</p>
<p>First some introductions, although if you are not familiar with the giant from the logistic industry, you probably are not from this planet. They operate in the air- , ocean- and land transportation logistics and warehousing with more than 76 thousand employees.</p>
<!-- -->
<p>This blog text is based on an interview with Joerg Bruewer who is responsible for the global Solutions Quality team at DB Schenker.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="background">Background<a href="https://docs.robotframework.org/blog/robot-framework-transformation-journey#background" class="hash-link" aria-label="Direct link to Background" title="Direct link to Background" translate="no">​</a></h2>
<p>During the past decade, quality and speed of delivery had become even more important in DB Schenkers’s digitalization. Hence, it was decided by the Solution Quality to upskill and empower the professional QA experts.</p>
<p>The IT QA transformation is upskilling the traditional testers to fully integrated QA experts and transforming the Test Management into an integrated Quality Assurance profession. One major pillar of this transformation has been the enablement of the experts on Test Automation.</p>
<p>Today, Robot Framework is used by roughly a hundred employees across different teams and functionalities at DB Schenker. Over 10 000 tests are run everyday across almost all continents. 90% of all automated tests have been replaced by use of the Robot Framework and the provided libraries. It can be said that starting to use Robot Framework has granted substantial benefits for the company. For example, the execution time of some test cases has dropped from 8 to 2 hours.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-robot-framework-journey-at-db-schenker">The Robot Framework journey at DB Schenker<a href="https://docs.robotframework.org/blog/robot-framework-transformation-journey#the-robot-framework-journey-at-db-schenker" class="hash-link" aria-label="Direct link to The Robot Framework journey at DB Schenker" title="Direct link to The Robot Framework journey at DB Schenker" translate="no">​</a></h2>
<p>How did it all start? Let’s go back to the year 2017. Waterfall method was mostly used in the projects, testing was usually done at the end of the project development, the testers were scattered and different paid tools were used in different projects. A reform was needed.</p>
<p>Devops, agile and continuous testing was the future.</p>
<p>Different automation tools were explored and 2018 Robot Framework was chosen to be the tool to be used in after the transformation. The immediate benefit of Robot Framework was that it is not just a tool, but a framework. A holistic approach was taken to accommodate Robot Framework to every project.</p>
<p>However, the first usage of Robot Framework was actually already in 2017. There was a need to replace a vendor owned framework by a highly flexible automation framework for a SWING application. The vendor owned test automation set was replaced in one year. Naturally, it was also a good case to practice Robot Framework with large scale enterprise applications and challenging vendor code.</p>
<p>One of the major reasons to tip the scales to choose Robot Framework for DB Schenker was the community. They were impressed. There was a discussion back in 2019 whether to use Selenium or accommodate Playwright into use. A discussion was had in the community and a solution, the <a href="https://github.com/MarketSquare/robotframework-browser" target="_blank" rel="noopener noreferrer" class="">browser library</a> was introduced only a few months later by the active community members. Effective, agile and impressive!</p>
<p>The power of the Robot Framework community was revealed. The heart of Robot Framework is its human community. It is quick, smart and effective. The best of the best are doing amazing solutions as the greatest minds from the community come together to define a new way to do things. DB Schenker is still a heavy user of the browser library.</p>
<p>Since 2019 DB Schenker has harmonized almost all projects to run on Robot Framework. The transition has been easy. Moreover, one of the benefits is that even for non technical people it is fairly easy to teach how to read the test results and more than 180 test analysts have been trained to do so.</p>
<p>Currently the next step is brewing inside the company. They are looking for ways to use AI to check the test results and weed out the usual suspects in order to save human work on the review of the results. DB Schenker is an open source advocate and believes in giving back to the community, so we can hope to have the solution open for all community members once finalized.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="closing-words">Closing words<a href="https://docs.robotframework.org/blog/robot-framework-transformation-journey#closing-words" class="hash-link" aria-label="Direct link to Closing words" title="Direct link to Closing words" translate="no">​</a></h2>
<p>DB Schenker is happy with the free Open Source solution that they have gotten with Robot Framework and they are a member of the <a href="https://robotframework.org/foundation/" target="_blank" rel="noopener noreferrer" class="">Foundation</a>. If you want to know more about Robot Framework or want to join, please <a href="mailto:executive.director@robotframework.org" target="_blank" rel="noopener noreferrer" class="">contact us</a>!</p>
<p>At DB Schenker the QA Engineers in the Technology Solution Center in Delhi, Nanjing and Warsaw support large scale business critical global applications for Air/Ocean, Domestic transportation and Contract Logistics.</p>
<p>By using Robot Framework as a common solution, they have built up a global expert community that is constantly improving the IT Solution quality, but also exchanging knowledge and experience of Robot Framework and the powerful ecosystem libraries.</p>
<p>An open mindset of sharing and growing has empowered the QA Engineers to fully support DB Schenkers’ growth and the ambitious digitalization roadmap to improve the customer experience.</p>
<p>Yours truly,</p>
<p><em>Miikka Solmela</em></p>
<p>Executive Director, Robot Framework Foundation</p>]]></content:encoded>
            <category>robot-framework</category>
            <category>community</category>
            <category>user-experience</category>
            <category>quality-assurance</category>
            <category>software-testing</category>
        </item>
        <item>
            <title><![CDATA[Robot Framework dependency management]]></title>
            <link>https://docs.robotframework.org/blog/robot-framework-dependency-management</link>
            <guid>https://docs.robotframework.org/blog/robot-framework-dependency-management</guid>
            <pubDate>Wed, 19 Oct 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[Robot Framework 6.0 is out! But wait, what does it mean for your CI pipeline?]]></description>
            <content:encoded><![CDATA[<p>Robot Framework 6.0 is out! But wait, what does it mean for your CI pipeline?</p>
<p>Do you have to manually update it or is there a better approach?</p>
<p>Eficode, one of our <a class="" href="https://docs.robotframework.org/blog/robot-framework-foundation">Robot Framework Foundation</a> members, has written a blog about managing test automation dependencies with minimum effort.</p>
<!-- -->
<p>Please find their insight below. You may check the original blog <a href="https://www.eficode.com/blog/how-the-experts-manage-test-automation-dependencies-with-minimal-effort" target="_blank" rel="noopener noreferrer" class="">here</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-experts-manage-test-automation-dependencies-with-minimal-effort">How experts manage test automation dependencies with minimal effort<a href="https://docs.robotframework.org/blog/robot-framework-dependency-management#how-experts-manage-test-automation-dependencies-with-minimal-effort" class="hash-link" aria-label="Direct link to How experts manage test automation dependencies with minimal effort" title="Direct link to How experts manage test automation dependencies with minimal effort" translate="no">​</a></h2>
<p>A familiar challenge for most test automation experts is managing their Robot Framework dependencies. Updating them constantly is at best a tedious chore; at worst, you can break your whole CI pipeline with a single update.</p>
<p>However, if you don’t update your dependencies regularly, you will miss useful features and expose your pipeline to security risks. In this post, we look at a modern way you can manage your Robot Framework dependencies: automation.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="basic-dependency-management">Basic dependency management<a href="https://docs.robotframework.org/blog/robot-framework-dependency-management#basic-dependency-management" class="hash-link" aria-label="Direct link to Basic dependency management" title="Direct link to Basic dependency management" translate="no">​</a></h2>
<p>First of all, the best way to control your Robot Framework dependencies is to have them all in a single <a href="https://pip.pypa.io/en/stable/reference/requirements-file-format/" target="_blank" rel="noopener noreferrer" class="">requirements.txt</a> file.</p>
<p><strong>robotframework==3.0.4</strong></p>
<p><strong>junitparser==1.2.2</strong></p>
<p><strong>requests==2.27.1</strong></p>
<p><strong>PyYAML==3.13</strong></p>
<p><em>An example of four dependencies with pinned version numbers (major, minor, and patch)</em></p>
<p>In <a href="https://semver.org/" target="_blank" rel="noopener noreferrer" class="">semantic versioning</a>, the first two numbers of a version number should refer to major and minor versions.</p>
<p>These versions should not be wildcards (*) in your development or main branch because the changes to them may break your CI pipeline. In other words, the versions should be pinned.</p>
<p>Using a wildcard with patch versions is usually safe, but developers often interpret semantic versioning in different ways. An update one developer thought was an inconsequential patch release might still end up breaking your pipeline.</p>
<p>On the other hand, it may be even riskier not to use a wildcard with patch versions. By not using a wildcard, you need to remember to follow the patch releases and update them manually. If (when) you eventually forget to do this, you once again expose your pipeline to security breaches.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="our-two-ways-of-versioning-dependencies">Our two ways of versioning dependencies<a href="https://docs.robotframework.org/blog/robot-framework-dependency-management#our-two-ways-of-versioning-dependencies" class="hash-link" aria-label="Direct link to Our two ways of versioning dependencies" title="Direct link to Our two ways of versioning dependencies" translate="no">​</a></h2>
<p>Here at Eficode, we use two different approaches. One is more manual and the other more automated.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="pinning-major-and-minor-versions-that-are-updated-manually">Pinning major and minor versions that are updated manually<a href="https://docs.robotframework.org/blog/robot-framework-dependency-management#pinning-major-and-minor-versions-that-are-updated-manually" class="hash-link" aria-label="Direct link to Pinning major and minor versions that are updated manually" title="Direct link to Pinning major and minor versions that are updated manually" translate="no">​</a></h2>
<p>In the first approach, you pin major and minor versions of dependencies in a <strong>requirements.txt</strong> file and manually update them periodically — typically every couple of months.</p>
<p>As a general rule of thumb, in projects where the dependencies are complex, this works really well: any updates to major or minor versions usually require some manual work with the test harness anyway.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="pinning-the-whole-version-and-automating-the-pipeline">Pinning the whole version and automating the pipeline<a href="https://docs.robotframework.org/blog/robot-framework-dependency-management#pinning-the-whole-version-and-automating-the-pipeline" class="hash-link" aria-label="Direct link to Pinning the whole version and automating the pipeline" title="Direct link to Pinning the whole version and automating the pipeline" translate="no">​</a></h2>
<p>For relatively straightforward dependencies — especially security-critical ones — we recommend pinning the whole version (major, minor, and patch) and having an automated pipeline.</p>
<p>Configure this pipeline to update the dependencies for you weekly and report if new versions are easy to update or if the update is going to break something. The pipeline can e.g., report directly to your Slack, so you don’t miss the report.</p>
<p>Although there are a million ways to make such a pipeline, here’s an example of a simple implementation:</p>
<p><img decoding="async" loading="lazy" src="https://docs.robotframework.org/assets/images/1_9Fx4xmblUSv6d6l4gpXY-Q-e7dc729e5fb38a2f6a1f7eaf873c4714.png" width="640" height="429" class="img_ev3q"></p>
<p><em>Go see the</em> <a href="https://gist.github.com/Tattoo/528eb25428ac16cb6d2e063960514cdc" target="_blank" rel="noopener noreferrer" class=""><em>post_to_slack.py</em></a> <em>script to see the rest of the example</em></p>
<p>After scheduling the job to run e.g. weekly, the team gets the following message if the job succeeds:</p>
<p><img decoding="async" loading="lazy" src="data:image/png;base64,UklGRhoiAABXRUJQVlA4WAoAAAAIAAAAfwIAOAEAVlA4IDohAACQlACdASqAAjkBPnU6mUmko6KhI1X44JAOiWlu/HA5q+tQ0P1t/vvZn/UPx9/uPo3+I/GP1n+zftF/f/ayx52k/xv7GfgP7l+5v+K9t/6N/AP3M8x/gV/Kfb18gv43/If7v/cPx29SPYma1/r/1p9gX07+W/6f/AflL6D/7N+Y/9Z+Cfyn+f/4L+5/tp/fv//+AH8a/nH+L/vv7of5f/////7P/zv+q8WH6p/p/16+AH+Vf0D/M/3D95f8r/////+Jv8F/v/8J/p/2o9nf5p/iv+h/nf9B8gn8m/qH/C/v3+i/ar5x///7fv2u/+3un/rl/9BTkeOjKp+n4sRjPj/7WQEM3YRifx+r/1f+r/1f+r/1YorK9Ns5kTc1mGbsIxP4/V/6v/V/6v/V/6vtq/i0fvu0n/tMidjej2isS7tbfQlASePhgXuprjpXbrnfgeEXLkybqMfvW0KB4RwoKvYZyW+VhRefxn0aOa3j4L6JAbI/Lo3//YoCqLjWjPfWQ7isUTiBkmW9y99Dj6jFH2OUd7eEuAObXCSf/2smm1UULuEzdhGJ/H6v/VjKbcQlEPDUD70uC+Hhk5wDgXYE7TP+zbbD2me0z2me0za6U+F8wGAVh1TGywjO6nMMJYJo4pBSH4sCx0pb5Xm7CMT+P1f+r/1f+r/1f8GrooqpXACgTXYsJjg9ZP9iAwNOmw7gKq7DWBn4ncxVm1exYZuwjE/j9X/q/9X/q/9X2vq9O/urWDduiDvbJ6xZ++BUxoPm7nDejaM/zjucdzjucdzjucdzjucZKI7AImgmEjxRF5wQiHMNiHYfVYIrlR8cLkGqCRwRSpwnfYHlsQw5fHlz7v5l/Mv5l/Mv5l/Mv5l9HFlKpceOJ+pA1mGzmT+vUmomBT3kunGYjNrtyKz9amNsPaZ7TPaZ7TPaZ7OKJn+IlFXSJfq3wI54I0hN36Bask7Pn5WB1et/GeUuwTZIWpIn8fq/9X/q/9X/q/9WGYl0aH9tA/uDPEWeX47pScAN1jr39Gp2tKpnHNaZ7TPaZ7TPaZ7TPaZ7S2j+8D1MyismDzeZd6S6Vtv0sN2me0z2me0z2me0z2mezka72Mh0/zwMvQTgx8JbJn36Z5Fj5LbhrjQJUscXgGwtY6OJs4dfrYbyaXaYzYo/9X/q/9X/q/9X/q+17TMscumvDYbioJ8N5AtWtIEQJls4rPc/p034xxzaoNWfnK40MSY34yvunxOKKRP4/V/6v/V/6v/QccT7E+1ah/C3tAkvkOGv+22+TCsDY0vkNltp2Mnlb1lfz2xZtJ4V/8gskNilZbSr5BNvq3z16igED2NL5Dhr/ttvkwrA2NL5DhrQ6nKDGm4fAdnPkv7rHhRYJ6TZly+EOwBKKYwv9B2jnIRq/9X/q/9X/q/9X/q/7I2mrXhvEd8F1kNTpbtCbd44iSQ/hZkh0mBBm/BQNvMCl5TL+ZfzL+ZfzL6SrFmDtaDqHh9QnEo8YnsmIlf7HlYmz7zFc+r+KQs1b3KcbDpRRVb4U6yjUCYjpjbD2me0z2me0z0bxn2pi9t5bcS7gpbQjP+VgX88a9w1/223yYVgbGl8hw1/yDrBYAAA/v/GiJPdoDwT5qgWsqoV1zmyHr1pU91ztylfb8mJROO8vxepVXfFoFWvztfdB+yCVYUN/Q8mdseCI9KGD6Eb9GDZAl87o4ZVGoq7rd78tQATK2I9je9pawAHM7t+aY+qVisWD3k0s6JR4cNUN3nUzsYoOEOBPOYWyjzN3IgnGjHXfpJLFkYxCyfm1Dp3HGQK+YqIHcHj1xUxmINVorAgDrlnjuUHKZ6qLbtMF5DmTfm0P5Q98XLjqcVNDd/MY0GnrJ02x3gvmnDdJ5n2JDoJ+d5dIabM7oFGjwQWunl2RsQ+/fpFj7aMnqLE+CwAzJNEZ7PpFfV0LTeAAWhWCAEsP46ZzUk3f7n/UkrMEOzxfg0sPO4N9RYfF+7tgUPzKIkbqzaSq3hsVQFBjWmUYyLr/h8CXAfSHONMQ2FDN2LfQdKQNapMzPLqoWi2QezEjgtmkROnF8IL5uabqimA/aMJuJoBvmsTFQvTIBrLhO4UXWa3D2BnqX/TmWyZXM21DoCkL2D7ix3MttD+qkbRmSXvtRfA+/xO/HMnZDSl+AxLHCpWn6iczKL/0zCysbONdv4iEabSNUPW1OckTX8JAQMrtKiHSm1jiLW9FdeoQVbn8PdIdtRW73c3FdxDKkvwn69xSr7Zh55/7eaAOdIWrn/gC0ViSN20DPWogCi4oOl4SLEClFEzz3+7fFbdRDVSbBCpDOxEZlCdTOebgcUXYZ0t6i1DbZewLjlNfnULZ7nKi48s2zcIyZPIQQvmUaZeP3mGQPFzXvfcXlb84qz/6Bp//tiUjZ7bjtQk3tbmavFPpHS/nQIMUyTW4OMdXPwTOj5uLS54zBv/dvBcdq1VOz1RcXWXiAJCwwjXQe5EQJhKlUR5MRdUwwQ2wp+r7ZaHwjlFO84P3ajryst9HtUenB5XY4GOzkn2zDqGllJsyTlmNOD2iIN/kuRB/lLzlHtfuhyQ4ARxUbv1nMrCRx4xNV6e/rm2ipvVxfWN7zyXxNoP++FSOI0z81QB7rgv4YK1TyUnm41++tVbghKlk8kY40avQ/NyxVW91F5cwcNDuY8V5sHy7F3qnJXI8Db6e+RYQVlbzkRwIi+0JxBeawyWXXvfdekrv/VgBzYd0DjsANpil57hmC6UuRw78oOz8Ftjh5J/meFlLSkSVdh4JM/cLjcPCETGpEveHpxyMVqiW8MKBLl7vwtmIvNlytdvBR09js5gse/6FmVozlG0fF7/0uE1f/olKcugxONk86BtOZZ0UPUP2ZR8NLPAHbc8eGFXvw8isw0q5pCzPIBspFZh2N5urd8UlvV8pdMPs+3ldbcyvE8A4eTSoCceLubZK17K4vtXANTUCRYtNaXLKi4Sx62SHlhJmr7KPfDY4A310rML1t8Rgw81yEkf00twWXDcAQp9PrXzDijQJKfQvLtACO0BRmKLSIO8Np5WcZ/PDRu8Jhy4ysuYyh8VAmO31okUrPWnOQQRGNbgcRc6VTkP2SG2XrhJ4RO6nykzZrMNElFAKiztUDyv6+ejr988uSarVzKUeRCv4bj/ZhA0smgVrWpVCZvgjcXC+PnRGRWXVu+81BWziuwZ+UVdx0JGhFZWdqqtuQBNfsACLjuLWaLxtk+So6r9szo8lWvqM0Ge0IiDgXnf89Y2BMC5dLlpEykuzB9IWzBubvryf9CBJdkL4blr3Q8qOoivMW/UvjTDH8dDkgsCV+YWkKXtin7UWV9iOnbYtTQPop9bkkHKooS6/qSplbzbXpYOd3o2lKmQhf34kHIy0dwEnm0xOfUToEvBtNhUldnXbniY5xoKSw+hPbiaFJcsvy0bZZxqu1S7QpC/rpaJ/H7OjUwn4rTcjefQ/GQK+0X7OgmPH1pWRHVR0fQrTBrmIY55GxLMvbS7ihPVyYTSk5ycApVbwUJlPUljw1eL1TM3lhkTLUUV1kzv468LMLS/K6WsnFg1DnWIGyDTwEOJHtJlUAwlbkBDgfP65C1wNQIusXQZLas9JCtAMHpcPrt/ImZfl3X7zYmPhiVsfXjM1A68PTf9E4JRTAyqDztqDVO2M7P600C/04AfTtqylPHlJMX6ZcqPpnPb3eC+eoyZleX1I0+T0Z16H9EcJzJWV2EVImNXy+g6uheErPHkwuJIKe3FOYceCqnXq/p4l+PVJdzak6Lym1kyiqBcUlrESEsROInuE8L8Dn2Q97Loz+7+GTIt8GPOaKeFvdAyxvNzOaKwPmvooKONF7sPadm1v+jLrvycUQxKoY9cdTLBL0nlUROQrDtStMlN6VH74dK2d7O8On6aOPBKM/2qsoiB5Ct6uV6A0n/AOvlTo6mKmnMmzmNmm1AEweCb2NJFZB1IZUQfnPEPpdxF0N+f0KdqDKWN3h04P9LT0tOjotAXj0mMvUeVXrf3MbTtGI4xW8vE3fe3vLmhBo7J+sio6Er3tj6iAFs29M/f6YGrF8uj7rbveLFJOFDC3hwZw/KZRShgy/P7LpjWJKfscoxxIWIqBBUBBhg/OoY406ER+BTZFpP2Gab8qcf5bdhrZtXjoULcwgn1MMeNVS0Rn3Tkk43IvZIwzZRAK40tmzJTfhkfJIbBg+a6BmyxF71KvAqCzUaCwY/6kgLo4C2QBc/xgG35zPa9tV6M9Gydq0xi7wf7/jTfphpJ00halZBSRluOUx/BGO7ihr6hs4rP+y54AoPxOHl77/XdTyombeCDx0ziTMXH+zx/2miQDy+nNGZEYKWK+jG4FLiszTnV0593f0EBpNAipMa8G2qVyOtDtrUdCTbzpeypI3NHSJeCDtGno23mpFj8MG2/59ZmjDbAMxBcmkSMf4Wxi520OGpzvr6Cha1IvIL8o1bWtHCj25TsBKfe3Rv86jMdLq+KqcpFczoNoxIDcgZGlSELJJmHZcNK6u/VaT/pu5RXsT9cZfSrlEGO5JpuZxDRL7zTf1yxRKzXk7mXxlHqluh5Qj/1zbrBvSOERP1lLjzkgys7HEnQt4TRZvMc/YeXWV4VWBEkU0eUrNIH2q7MYtRJc8l93I31HadVIxpRSVO+88jCYO2pDlNRl0ShhMyk4BXcKBX/BW6SeAa6C79ndMzgEhVBT0mtOEXDUSDV0tU6mPIfqT0XYq63rfZ4hSBhT6b0ft+TqFwvjLiSbjfs0+NGZCZMKiq2UmT28ahMU6b8QyD/qFYzA51k41tfvJ6U+8t7RmlsjAvJ669gKR+VHC211U+yblcgzGR5vcnA/7ZWEqGK9/W+I1P4vudTga17nBXnWH8GdTbvHhK0DYXu/yA+dNnv87zh4AIeyDw/37vcwrrdT3iTHFVjMzALS2RRgN/GI40yI+veru5VU57ZswJ0QR8zpw0pxgC5XDjKZDo5MbnGLRaI0NO5MHb9CWRONfTfLCGzcayqlMPrcljgoEIXQj7hoNeJgKh2A3v7L/82oa80Bs3c/liLPAnpWauphvC1wASt7xjnIn7f/SVM8F+n2/RjTJZPRLLN4RItCbWaiRLiIJg3RavnreIOfnoRd9B5vGGoHC08P8tGjJHLeWLRi0zTPCQeFSYdrKqwRH6/SLTjhPXfbTH1d1SpuifTXBl5rZfhZP73tTgcBTMdF0b2PCqjK1H2Z3YPB+RdplvIR64DUBtcLjoUixyBv02+rI14HwejABo4FgYY0mszadTJC3LmvZiY/ya7qJW/4Qc7haaKLJ9qrEA9E0m2Lhivh8F7880ATppVb2/K0p93Lw4OyFnpUUTYgWkeCe94aIXs+UUsYVVvT7hpx0H+7WnzdLrtYExo9E8pVHCEddw5eaSnNVqYIEgmkH4ZWQBcf8iqxwbtmFJRkZy7nVZPUBxBj2MxVjnM5UZUkx7344/+w+OKCFJCWXYNcoyrC5VMMPKJNt+NT5FGbDtRgPjxozfI1mGsk1goxAl096JBNGCkA0o/RolSsQuXKnEztSVe1v7eTVLFWHHgNk/qkCZAGEYY8vAM+/+wroQ6Yt7eScmyJFEeGWsqU2oEOhf50w2hE90jFbJk9ORpnDEeNT/Wj+HJCxJQ+9NzdtZIvaAxBLyXD/j/GOqZpVgg2FEXktg2nmscMlB+ZDEcOrsv6YooUwMEPtXUb2YSD85w6o0BWfsbtKBx3FES9CbOdmDsO0fsr3chvQSLLhm1n5cvSU8aTKwAUSUAioYYi/7X3CNEKgjiIy3jff7K9YBKlHf/1JWR4yAAT+PzWQaEhPowbUNvOCRK5NeWAmKksdah5f9dT6WVcc8tqhZT/Br/UZFd7q7JEDmxZNn7PZcPUyW1kK0YdYdR0qVzzZ05AMdIoC/zGXgOLCDko0ki1LfTTrGfnpIcjjms2iww+g4Prptj0MhRDyQVTt9DRTm6ci1j95hKjpJfq47gg6C9WRvLZH3viiDyAJHL0BqZzZHnHssKi9Jcm48ZQE20wtQarrQMgDhVfdZnwxErVYah8svYPKMC7rN56v1+D+WRb/MBWIf1FydLqDN27zCQcWzt292mfyNw8Zq6wOM3GAYyP6t5NxL3en0+pQTpgrLfKCFU3GdHQ4QoNCTZuba2vij4Bf7oV+eKfNx+yOChfx0grGW4Jfon6IQ6/Oh4R1vqTbbNmzeIa5fASyEdWrMBX8BGmD4V0fJgZXxSeoc14vxz2xz5xrLaADw1iKmsc9jkDNAABnQxW+kjd4eMrEvflW0+PTYs6Y+20ueKHxioRGbx3eQBtu0obEYMrdnzwBwkCduklgH2XRWM2VxVUN8vuD7WgF17lcTmeNBgVP0g0H0786gUDr3q5HC0M/hSQSmR5R5wD6slei0AgPQD2cyM3ria2t0ufCacBExv3KjC07s43iLA45AyQywqwoO26/2mpy/tXbKVf6ktU4C5X6O7jlu1wb1KiXWIhdbKN6A5zPgv/wPthZxBE5A2s/F0csntLt/W7OkySfP+/uq9TgXwA9bHOcelgAooO4tj/tC1MyZVSf8Nky3t48IX7B3lE6TpW8z7dJa3DmKrFrxTkAMwYEHIRho3ITFxEIhbgOn3qpXYBCTr+ZvY3FcoD1whlBSz+TXwyCpCsnHJ+RT3NZEht3gxW6OfoWA9a/Yxjb9wO+/FhuvwYB+Kkh8StXmDPABDI8ZeiIhfNYMWoCOYefPpO7BzXdU6oaTRnSRZ4OXo7DgJPR68MVB7r172juftmEZkxuvbARj24lJh5Aq9jPjNsSBO8jaRM5hPqAU2IxzdOCX53JfLM1OV+MYFpqTbh42xGRa3RbtiF96K944o6x0Zo3h7UdhG1bMdkCrvG5nxf0M/R+SoHgi7cvOkadU2+JDX86F+NNxZsODa9O5fRxZOVbVsaNlkkCFu9ZNDwJLmScLmGy91s0aExpTdxMXWAJjQ6A0W2dF8z7/4znKB1me7uZqJWs6A1ypjwutolvrKheTbd/hhrzcee31jmJofKguVg5CxH++m22xYLALZHVPGsHn3RZlJK1BpMmaJUpwruCYX7LMWdPajNTGQKwqzAcSmuyTXQAEkWlC0ykNXhxKJvjOcMNJa86pCJK2V/2isCoSWnup2AKykXBO/OLP0P3331obQeTXF1B8/y6wZM2rSOnSybPVoCywZ4kuVMTruUet0Pbkl6FYzXMn6yvXOW6mYZfEjDHLMQhaplW+Qd8Imrz1Pd867F7vtRedzgpn7tHL992Vfwlc6nrIY7yRTdlJC6VrLPgI4OFQ0DdBregRgQ/ZfO1rE0ukxAlXOXPO5XcAlx+xLnzoeC1JLpnmI6x/g3XIqoyOtCcmABKZlBQFNMeBFqWcNP/MDNvHyT2XrDXABflp7wIEZ1FwocQ8hqdyIicxoJ4uVH1lokUvFDimv1Qn21ZvrfZWeXYTBFW3NmyAcm8gCxb+pYi4TcG/qeFyY2faBYcA2q0oySz5pHARqieUxsQFYpIJAX6S/3vr4/+o1M5Ny1GcC5dbHaWjlfX0jYGg5Kl3UpCTXlqiz14H98RE+Rs1eUVSd6qi2x6i1oF0Wxd1vfX/EIP/J3qTS6gpS3fh1AV8PaBp/qe9vLCbEI+FQn/wS/TSPX+G7DeO7FxeTiQLIdUGu7v/6+J6QNBoH45Di8znpC4/ymmZbW9IdAGjKS4m78F+A/IQCI8hpmNjb/QcBMM9dLeiz3aaqTgdcLIoMOicnuzPzBNRGb4xH29ivDhrKrpni1J8BhMCq3dq4RnK7Dj1NN+92KS7qWw4bQK5YI+UKyaFubWFzdCTUGUUXJLvi5YVu/Vns+rLrb50B4ZZ0lahLLV9lYi3AcYUw7b/HwtfwiERw5qtnsrqg790PdaSGEf3cBXdlLL8NnakD2R5wFsVSA6TuywxXgNrdl3sRinlF16zn33N7+JYvP+8ma5VoY6I4bRfxsPBgzXx4b3o7TfJYbLSVu5jTuxPJgswYod0GCXI/V3rmy5f6jhY/rNFzYHYo+gtVWRZbktqPA01/gHJNOtzERmjYz3gufasD4Se5rBpIUcVkFh+Lv4AGQ/3Ax4GRZtyy8io1jg8+jTHT2Xk1UVfJjyU8zonHaGS8Cfrhnpc7bg+o/ZCGuhul/cfdG4m7cmeDfQX0iKMlSbxBAobPi+Bh1oVoryzRbTRSVHHdWxSebJflsdE/pARTdL5BSbz13prkr5Y0PVmmul+kr/1yJ1Rj2zRYK6r26DHsRO7vEt+BwJR0b2EC3FMZj5vsCsj2Vs8oLeTsdgz16/Fk+/I3QENckaFet4eigb5ltiAdmoqIADhHjtPV/Jr6SorPN2Nl4/bDVQiYhwiasP1t7LHFdH/nJ2F/SYww3oHpJmHP6tW5QP/q/WIEh8L+JYieRGZhbCBNK5bZJLTPysAAN+xBn0zwgZXz7nvbvIAuizsRAQOlgsWkOALqfle9PGrrjSlRKvyfAseXPVezHQ2AdLvwQaxwhS3+akNwACVIgEwIAFbVb4sjkxs6IaOUfPee1osj0XyCelPHHG/o0rv5rSi7poZTsASuaG1lx6/67q8Zqav3DVaalfSib56brFfd7PnyFsZ99bXBbI/nQxUJjVLC3ua6pyFxecVfONhYbbKi/3pUGRqCBuJGB3dzZmuXe0yZ9VbgPdLB0vs22vy9GeFjPVUIkwthtzntZQj/6oAjIF5fBYOB/LBPRf7LA1s2aF9gUMXGTKEPKsVTG81S01Mc89Ety2ZLXM04gsjWKbvF239pDfcGMKTxnT6KNbaWIBBfaiXGes2eAukF0Z7TttVk+2KwYU7TXxiarb6iGc3K7SZV/SY4C/5NHCcOr4uAH5uYP3BRR3x6oaa9xeiO926jzpFA009B5Gfz82+CBQnj+41pRIgISYZAFWXrHVztyLzOtO8swQKa2gIref65j6hYc+NcVeFpPZi25/7CG3CSgzKj2tQfKquo0AAreyk+gncS1DF5ae4gzslPppVp4Tv4jzHw6IbpJ0deWk/A2USMbp43aQ3RJGgj5pf/85d3zdql8q10Lwze1tU5o11mwwcEp9N3Dn1fsGadPGU9ILJA9jSuQ4rfWuQNEfdOxVtJvhKYoekzR/h8nDZ2FsZLA2i1DxU3PJuJhPizQ7MOo0dbFFEWLyIj4xIX7pPXThVQ0YvA9+bHtRGStTNyj5s5x9lRuPdn9Tgbz6xKim/JLdeBy23oFGBraeAVe4RcJAdHLwyCMSvTJs/ZpfJ9WynoOjNwFWhJzQG5Tx/DaKcmYPpfrSyE5tstViDH41NfOp+vssWpWeA147iP+hxGUOc6iBirp5MgF4C9GA3Spxzz//CvMbg5svLQnJhWCNZrsF7hWKAx9fTqXCQSWUb4CxPeTgqeB74baZU4whBNzpugSjbOetf8a6zeGlqmLIORPqPgNwg40P91emcRj4SifOEJoEak566JQZ5JfC03lKazEUXpEfY/LNb2cNGZb8b2xxt+CfsCi5eojkbWj7fyVSRFURxNMAAjhAeVduBnnV+SPuMFSr+MUWwdCRWsqn8sU8BofDvUy6yvoXG+ef1i4hsEFvVR1YWyrYSbmQ8IZzwgDI/0D17rQXbom0vefh+6tWdRrwxZG3N4YGq/A/1Zch72+8nyo0KMISw1EoV1SFGBZe5niiYNVfP524SJ/aiokdQUrIaS5RZHikzvRGVbX4plPjLMXsnJm1yUi57e0yynC1lSKJbHUcfj8S7TKsxqzzrn65URPVa4u6lIlYq4BI2SSz3vIFusYcL9YF1bZuEM5Nxn7EU/0OEnc2z4UVBU6nDpyfnxG0/S4VQ0Hq5to8doY7r3e5VNcnUCx+5AUWo7l6aBBB19lFqY5jxwZFhVtdjIQ1+h0P8ZCYVZUbzOGV0DFx+9/k9SZ9be4FUAE8OaNmRD8AImbNCkevc2lamMwvF16Dpkzg54okCr5uLi3gZWvIPX4tXXC7a92e0qgM7SMGxdzQgXU9l2XaUSnsUt7uk9iS7YpiqqJ9M4aHn2o+zrVkFxyN+eWEwCwP8R9Tv0esWvqGtNmxMeZwM5d58JjL0Mdl4WXCcqhe4zYgssD9cYiqomxI9/6ygU1WdjpNgtReIDpv6K31PX2Q7DABNnNk3rZGoFxI72SdZl+AXWyVC6V1oaZWfgdIiFO42m+kVKaaFy8+mSP4qCT7QjZnnGf6bKlXTZBg8/QOYdEFh0VIClUF0qW3oLUsTSK+hwIi1EVn6JR4deatrTE+XXSf/Ew7GfZCRJRjL1JvyOjdJA29khte0F+FztfEACWKaGLUiA+MpBM4Kzhlt92+HiHd7MVGF8/GASdYpAtPFDr3bymFGwO9GTxTcdEJXkpt6JpMPjP3l7JG3Sj4e0CjviqudCWqty+tFJukGyMBUfP9pLb4yQ+PYzxa/25d/g7Lwm5mKYyBDJ+RrKihrgnAozs7iof+92/DnL+0yjgd4L1Dm0Ak+w6wxwHh0vLCpxK+SEjtYXAw1hunIO6U4uxrQQ4iYHNOVoEP1LwfJMoWFAhdVzadZbuMqBvH0pkP9Yn+Lk02nX9WVL1uxxAepOPlVJoo4vPYYF3ZMBOzrxml1SFaMfcozgIEktVLAWIuXCeAEmrIFGxvbCEQJkJ2lWST3aA8mAATs8umpw0pgPLSvFoNUyujq638xqviQq7eHxhGUFIGJfbOB0dH7LSYv2h6lgZRncxdW7OROWVutSkEWFzS/wZpOHZLzvDi3PQh7bLr0JhvNB2l3taIpHwaS+Dkytl91YrvTfjtWzrbCsmpuO24PmEtSlZ/bdvZb1ZExtlTUTwu+g2kRhnWRc5SqyZZbwu8b5Q0CE4/2uGUaoSqyGUWav97Oc4htErC5EIBH+fdh7m6PR69SGwexQuvgTItWlvGgBPWuoCYxCqVn/XsUOs9wjsEjE3Xd++BaMZyh9vZ9m7yaeyNu9N4IZQ8kHBvLT/qdviJXETd8cs4Bq1iDoGl59ewu2/0b5iDRtgLqaXekR1A7QhZgOv9/SwK0d80MQLK/XgisFHuw4D0yWwd8ZCiZ6Y9dEXKpw3D0yEF0n+7QkM59ItEwzLHnJIBFPAz/vVuwZFSDZNl/ZFqltC9qcf6/LXHa0+PAdDYVgSGrCAp/Q8gxAfjJIT5EBZ+f/95JS2VIyPqHYBo+nLs2FIbHtxH1RDIWphdy9vc2q87q6IQkYC56k/gZKJtjiXi1IPkiOdiByyPu3yurR+ym0J21bxWesKtTSmn4F2hcNpYhfrCrqEcM0+PYjfC5N+E0tuCUukcAabmwE6PAFRs1v00fMz2vFlC33A35FjgsgDuaJmd/17GLS2DtgUjHYxt3X/WFQ483bGp2bICYz1cAVB0j+AAAARVhJRroAAABFeGlmAABJSSoACAAAAAYAEgEDAAEAAAABAAAAGgEFAAEAAABWAAAAGwEFAAEAAABeAAAAKAEDAAEAAAACAAAAEwIDAAEAAAABAAAAaYcEAAEAAABmAAAAAAAAAEgAAAABAAAASAAAAAEAAAAGAACQBwAEAAAAMDIxMAGRBwAEAAAAAQIDAACgBwAEAAAAMDEwMAGgAwABAAAA//8AAAKgBAABAAAAgAIAAAOgBAABAAAAOQEAAAAAAAA=" width="640" height="313" class="img_ev3q"></p>
<p>The team can then update the dependencies manually.</p>
<p>Of course, you could make the pipeline even more elaborate by making it automatically open a merge request with new versions for pinned dependencies. With our example, we just want to demonstrate that even a relatively simple solution can make updating the dependencies a breeze.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="to-sum-up-lagom-is-best">To sum up: “lagom” is best<a href="https://docs.robotframework.org/blog/robot-framework-dependency-management#to-sum-up-lagom-is-best" class="hash-link" aria-label="Direct link to To sum up: “lagom” is best" title="Direct link to To sum up: “lagom” is best" translate="no">​</a></h2>
<p>In the end, to maintain your test automation effectively, you also need to maintain the dependencies it uses. Don’t let the constant updating of dependencies interrupt your actual, valuable work and break your pipeline. But you do need to update them with some regularity to at least keep your pipeline secure.</p>
<p>As with many things in life, the Swedish concept of <a href="https://en.wikipedia.org/wiki/Lagom" target="_blank" rel="noopener noreferrer" class="">lagom</a> proves useful (thank you, Swedish colleagues). There is no direct English equivalent term, but it roughly translates to “the right amount is the best.”</p>
<p>The original authors of the text are Tatu Kairi and Eero Laine.</p>
<p>The intro text and hard work of copy-pasting has been done by</p>
<p>yours truly,</p>
<p><em>Miikka Solmela</em></p>
<p>Executive Director, Robot Framework Foundation</p>]]></content:encoded>
            <category>robot-framework</category>
            <category>ci-cd-pipeline</category>
            <category>devops</category>
        </item>
    </channel>
</rss>