<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Test Driven Development on Sagatowski GmbH</title>
    <link>https://www.sagatowski.com/tags/test-driven-development/</link>
    <description>Recent content in Test Driven Development on Sagatowski GmbH</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Thu, 14 Dec 2017 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://www.sagatowski.com/tags/test-driven-development/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Test driven development in TwinCAT – Part 7 (of 7)</title>
      <link>https://www.sagatowski.com/posts/test_driven_development_in_twincat_part_7/</link>
      <pubDate>Thu, 14 Dec 2017 00:00:00 +0000</pubDate>
      <guid>https://www.sagatowski.com/posts/test_driven_development_in_twincat_part_7/</guid>
      <description>&lt;p&gt;We&amp;rsquo;re finally at the last post of this series!&#xA;Patiently we&amp;rsquo;ve written all our tests and done all our code that implements the required functionality and made sure that our code passes all the tests.&#xA;But in the end of the day, despite all the theory and coding we want our code to run on a real physical device.&#xA;Now it&amp;rsquo;s time for the favorite part of every PLC programmer, which is getting down to the hardware and micro controllers!&#xA;Let&amp;rsquo;s get to the grand finale, and test our code on a real PLC, IO-Link master and IO-Link slave.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Test driven development in TwinCAT – Part 6 (of 7)</title>
      <link>https://www.sagatowski.com/posts/test_driven_development_in_twincat_part_6/</link>
      <pubDate>Thu, 07 Dec 2017 00:00:00 +0000</pubDate>
      <guid>https://www.sagatowski.com/posts/test_driven_development_in_twincat_part_6/</guid>
      <description>&lt;p&gt;In &lt;a href=&#34;https://www.sagatowski.com/posts/test_driven_development_in_twincat_part_5/&#34; &gt;part five&lt;/a&gt; of these series we started the implementation of the function blocks that we previously have done unit tests for.&#xA;As we have our tests, we could verify that our newly implemented code did what it is supposed to do, and thus we made our code pass the tests.&#xA;What we&amp;rsquo;ve got left is to do the implementation for three of the remaining function blocks.&#xA;Once this is done, we have implemented all the required functionality that we&amp;rsquo;ve declared that our unit tests require us to.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Test driven development in TwinCAT – Part 5 (of 7)</title>
      <link>https://www.sagatowski.com/posts/test_driven_development_in_twincat_part_5/</link>
      <pubDate>Thu, 30 Nov 2017 00:00:00 +0000</pubDate>
      <guid>https://www.sagatowski.com/posts/test_driven_development_in_twincat_part_5/</guid>
      <description>&lt;p&gt;In the last post of the series of unit testing in TwinCAT we finalized our unit tests, thus creating the acceptance criteria for the expected functionality for our function blocks.&#xA;Now it&amp;rsquo;s time to do the actual implementation of the function blocks that we described in part 2 of these series.&#xA;As we have our unit tests finished, we can anytime during our development run them and check whether the implemented code passes the tests.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Test driven development in TwinCAT – Part 4 (of 7)</title>
      <link>https://www.sagatowski.com/posts/test_driven_development_in_twincat_part_4/</link>
      <pubDate>Thu, 23 Nov 2017 00:00:00 +0000</pubDate>
      <guid>https://www.sagatowski.com/posts/test_driven_development_in_twincat_part_4/</guid>
      <description>&lt;p&gt;In the &lt;a href=&#34;https://www.sagatowski.com/posts/test_driven_development_in_twincat_part_3/&#34; &gt;previous post&lt;/a&gt; we defined the general layout of our unit tests, and also did the implementation of the tests for two of the five function block that we&amp;rsquo;re going to use to verify the functionality of parsing IO-Link events.&#xA;What we&amp;rsquo;ve got left is to create test cases for the parsing of the text identity and the timestamp of the diagnostic event.&#xA;Then we also want to have a few tests that closes the loop and verifies the parsing of a complete diagnosis history message.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Test driven development in TwinCAT – Part 3 (of 7)</title>
      <link>https://www.sagatowski.com/posts/test_driven_development_in_twincat_part_3/</link>
      <pubDate>Thu, 16 Nov 2017 00:00:00 +0000</pubDate>
      <guid>https://www.sagatowski.com/posts/test_driven_development_in_twincat_part_3/</guid>
      <description>&lt;p&gt;In the &lt;a href=&#34;https://www.sagatowski.com/posts/test_driven_development_in_twincat_part_2/&#34; &gt;last post&lt;/a&gt; of this series we were looking at a use case for a certain set of functionality, more specifically creating parser function blocks for the handling of IO-Link events.&#xA;The result was a series of function blocks with defined input and output.&#xA;In this post we&amp;rsquo;ll create the unit tests that will use the function blocks that we&amp;rsquo;ve started doing.&#xA;Naturally, when defining the tests they will all fail as we don&amp;rsquo;t have the implementation code ready yet.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Test driven development in TwinCAT – Part 2 (of 7)</title>
      <link>https://www.sagatowski.com/posts/test_driven_development_in_twincat_part_2/</link>
      <pubDate>Thu, 09 Nov 2017 00:00:00 +0000</pubDate>
      <guid>https://www.sagatowski.com/posts/test_driven_development_in_twincat_part_2/</guid>
      <description>&lt;p&gt;In my &lt;a href=&#34;https://www.sagatowski.com/posts/test_driven_development_in_twincat_part_1/&#34; &gt;previous post&lt;/a&gt; I explained some of the benefits of using test driven development (TDD) while developing PLC software.&#xA;This post is the second part of a series of seven, where we will look at a real use case scenario of writing test cases prior to doing the actual implementation.&#xA;The scenario which I thought would be good for this is by creating a parser for IO-Link events.&#xA;Shortly, IO-Link is a standardized point-to-point serial communication protocol used to communicate with sensors and/or actuators.&#xA;It is not a fieldbus, but only takes care of the communication to the end device.&#xA;As it&amp;rsquo;s a fully digital protocol that on top of process data also supports services such as events and parameterization, it&amp;rsquo;s standing well prepared for the Industry 4.0 thinking.&#xA;One of the functionalities of IO-Link devices is that they can fire off events to the IO-Link master to notify that something has happened, for instance an alarm that something is wrong.&#xA;To integrate these IO-link devices (slaves) into your EtherCAT network you need an IO-Link master, which usually allows you to connect 4 or 8 IO-Link slaves.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Test driven development in TwinCAT – Part 1 (of 7)</title>
      <link>https://www.sagatowski.com/posts/test_driven_development_in_twincat_part_1/</link>
      <pubDate>Thu, 02 Nov 2017 00:00:00 +0000</pubDate>
      <guid>https://www.sagatowski.com/posts/test_driven_development_in_twincat_part_1/</guid>
      <description>&lt;p&gt;Test driven development (TDD) doesn&amp;rsquo;t seem to be all too common among TwinCAT-developers, which is a shame.&#xA;From my experience, TDD has a strong foothold everywhere among developers, but TwinCAT?&#xA;Not so much.&#xA;And I don&amp;rsquo;t blame them.&#xA;There are TDD frameworks for C++, C#, Ada, Python and basically any other language and/or development environment.&#xA;Do a Google search on the web on any programming language/IDE and TDD and you get thousands of results.&#xA;Do the same for TwinCAT and you&amp;rsquo;re on your own.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
