<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Blog of Max Horvath</title>
    <link rel="alternate" type="text/html" href="http://www.maxhorvath.com/" />
    <link rel="self" type="application/atom+xml" href="http://www.maxhorvath.com/atom.xml" />
    <id>tag:www.maxhorvath.com,2008-03-19://1</id>
    <updated>2008-10-31T18:44:01Z</updated>
    <subtitle>For more quality in software products ...</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Open Source 4.1</generator>

<entry>
    <title>Slide for IPC session on Making Selenium Test Writing easier using a DSL online</title>
    <link rel="alternate" type="text/html" href="http://www.maxhorvath.com/2008/10/slide-for-ipc-session-on-making-selenium-test-writing-easier-using-a-dsl-online.html" />
    <id>tag:www.maxhorvath.com,2008://1.25</id>

    <published>2008-10-31T18:42:20Z</published>
    <updated>2008-10-31T18:44:01Z</updated>

    <summary>At IPC 2008 I presented a 60 minutes Session on Making Selenium Test Writing easier using a DSL. Here is the slide of this session.</summary>
    <author>
        <name>Max Horvath</name>
        <uri>http://www.maxhorvath.com</uri>
    </author>
    
        <category term="Conferences" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="PHPUnit" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Testing" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="conferences" label="Conferences" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="internationalphpconference" label="International PHP Conference" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ipc" label="IPC" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="slides" label="Slides" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.maxhorvath.com/">
        <![CDATA[<p>
At <a href="http://it-republik.de/php/phpconference/" onClick="javascript: pageTracker._trackPageview ('/outgoing/it-republik.de');">IPC 2008</a> I presented a 60 minutes Session on <em>Making Selenium Test Writing easier using a DSL</em>.
</p>

<p>
Here the short description:
</p>

<p>
<code>
Implementing automated tests by using Seleniums API methods has several drawbacks. Selenium is great for what it does, providing a generic framework for testing a generic application. Using the Testing_SeleniumDSL framework, I will show you how to create your own <a href="http://en.wikipedia.org/wiki/Domain-specific_programming_language" onClick="javascript: pageTracker._trackPageview ('/outgoing/wikipedia.org');">Domain Specific Language</a> (DSL), which would allow you to write tests in the language of your business rather than in Seleniums language.
</code>
</p>

<p>
Here is the slide of this session:
</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.maxhorvath.com/documents/ipc2008_slide_making_selenium_1/ipc2008_slide_making_selenium_test_writing_easier_using_a_dsl.pdf" onClick="javascript: pageTracker._trackPageview('/downloads/ipc2008_slide_making_selenium_test_writing_easier_using_a_dsl');"><img alt="ipc2008_slide_making_selenium_test_writing_easier_using_a_dsl.png" src="http://www.maxhorvath.com/images/ipc2008_slide_making_selenium/ipc2008_slide_making_selenium_test_writing_easier_using_a_dsl-thumb-400x282.png" width="400" height="282" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span>]]>
        
    </content>
</entry>

<entry>
    <title>Slide for IPC full day workshop on QA-In-Depth Best-Practises online</title>
    <link rel="alternate" type="text/html" href="http://www.maxhorvath.com/2008/10/slide-for-ipc-full-day-worksho.html" />
    <id>tag:www.maxhorvath.com,2008://1.24</id>

    <published>2008-10-31T15:47:52Z</published>
    <updated>2008-10-31T17:31:40Z</updated>

    <summary>At IPC 2008 I presented a full day workshop on Quality Assurance in PHP Projects - In-Depth Best-Practises together with my colleague Wojciech Duda. Here is the slide of this full day workshop.</summary>
    <author>
        <name>Max Horvath</name>
        <uri>http://www.maxhorvath.com</uri>
    </author>
    
        <category term="Conferences" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Testing" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="conferences" label="Conferences" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="internationalphpconference" label="International PHP Conference" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ipc" label="IPC" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="slides" label="Slides" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.maxhorvath.com/">
        <![CDATA[<p>
At <a href="http://it-republik.de/php/phpconference/" onClick="javascript: pageTracker._trackPageview ('/outgoing/it-republik.de');">IPC 2008</a> I presented a full day workshop on <em>Quality Assurance in PHP Projects - In-Depth Best-Practises</em> together with my colleague Wojciech Duda.
</p>

<p>
Here the short description:
</p>

<p>
<code>
So you know <a href="http://www.phpunit.de/" onClick="javascript: pageTracker._trackPageview ('/outgoing/phpunit.de');">PHPUnit</a>, <a href="http://www.openqa.org/" onClick="javascript: pageTracker._trackPageview ('/outgoing/openqa.org');">Selenium</a>, <a href="http://www.phpundercontrol.org/" onClick="javascript: pageTracker._trackPageview ('/outgoing/phpundercontrol.org');">phpUnderControl</a> or <a href="http://cruisecontrol.sourceforge.net/" onClick="javascript: pageTracker._trackPageview ('/outgoing/cruisecontrol.sourceforge.net');">CruiseControl</a> and other tools to support testing efforts during your development process. But how does the puzzle of all those tools actually fit in your development process? During this Power Workshop Max Horvath and <a href="https://www.xing.com/profile/Wojciech_Duda2" onClick="javascript: pageTracker._trackPageview ('/outgoing/xing.com');">Wojciech Duda</a> of <a href="http://www.studivz.net/">studiVZ Ltd.</a> will tell you about the everyday life at the Quality Assurance Business Unit. You will learn about best practices, which actually work and fit into an extremely fast moving iteration cycle at one of the biggest and fastest growing Social Networks in Europe. Talking about PHPUnit and Selenium, including tips on how to optimize using those tools, we will also show show you how you should integrate the testing process into your main development process, to be as lightweight and efficient as possible.
</code>
</p>

<p>
Here is the slide of this full day workshop:
</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.maxhorvath.com/documents/slide_for_ipc_full_day_worksho_1/ipc2008_slide_qa_in_depth_best_practises.pdf" onClick="javascript: pageTracker._trackPageview('/downloads/ipc2008_slide_qa_in_depth_best_practises');"><img alt="slide_for_ipc_full_day_workshop_on_qa_in_depth_best_practises_online.png" src="http://www.maxhorvath.com/images/slide_for_ipc_full_day_worksho/slide_for_ipc_full_day_workshop_on_qa_in_depth_best_practises_online-thumb-400x281.png" width="400" height="281" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span>]]>
        
    </content>
</entry>

<entry>
    <title>Unit testing on the iPhone</title>
    <link rel="alternate" type="text/html" href="http://www.maxhorvath.com/2008/10/unit-testing-on-the-iphone.html" />
    <id>tag:www.maxhorvath.com,2008://1.21</id>

    <published>2008-10-06T15:57:04Z</published>
    <updated>2008-10-31T17:45:03Z</updated>

    <summary>Having worked with Objective C to write Cocoa-based applications for Mac OS X, I was already familiar with Unit Tests for Objective C using OCUnit. Those of you who need a introduction to test driven development in Objective C shall take a look at Apple&apos;s documentation for OCUnit. When it comes to writing Unit Tests for iPhone applications I was wondering about its support in XCode, the iPhone Simulator and unit testing on the iPhone itself.</summary>
    <author>
        <name>Max Horvath</name>
        <uri>http://www.maxhorvath.com</uri>
    </author>
    
        <category term="Testing" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="iPhone SDK" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="coverstory" label="CoverStory" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="googletoolboxformac" label="Google Toolbox For Mac" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="iphonesdk" label="iPhone SDK" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="objectivec" label="Objective C" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ocunit" label="OCUnit" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="unittests" label="Unit Tests" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="xcode" label="XCode" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.maxhorvath.com/">
        <![CDATA[<p>
Having worked with <a href="http://en.wikipedia.org/wiki/Objective-C" onClick="javascript: pageTracker._trackPageview ('/outgoing/wikipedia.org');">Objective C</a> to write <a href="http://developer.apple.com/cocoa/" onClick="javascript: pageTracker._trackPageview ('/outgoing/apple.com');">Cocoa</a>-based applications for <a href="http://www.apple.com/macosx/" onClick="javascript: pageTracker._trackPageview ('/outgoing/apple.com');">Mac OS X</a>, I was already familiar with Unit Tests for Objective C using <a href="http://www.sente.ch/software/ocunit/" onClick="javascript: pageTracker._trackPageview ('/outgoing/sente.ch');">OCUnit</a>. Those of you who need a introduction to test driven development in Objective C shall take a look at <a href="http://developer.apple.com/tools/unittest.html" onClick="javascript: pageTracker._trackPageview ('/outgoing/apple.com');">Apple's documentation for OCUnit</a>. When it comes to writing Unit Tests for <a href="http://www.apple.com/iphone/" onClick="javascript: pageTracker._trackPageview ('/outgoing/apple.com');">iPhone</a> applications I was wondering about its support in <a href="http://developer.apple.com/tools/xcode/" onClick="javascript: pageTracker._trackPageview ('/outgoing/apple.com');">XCode</a>, the iPhone Simulator and unit testing on the iPhone itself.
</p>

<h3><strong><big>Check out the Google Toolbox For Mac</big></strong></h3>

<p>
iPhone SDK projects are not setup to be compatible with OCUnit out of the box. Somehow OCUnit does not play nicely with the Cocoa Touch framework. Luckily the Mac Unit of Google took some time and extended the <em>SenTestingKit</em> Framework of OCUnit not only to provide more functionality, but also to be compatible with the iPhone SDK.
</p>

<p>
To write unit tests you first need the <a href="http://code.google.com/p/google-toolbox-for-mac/" onClick="javascript: pageTracker._trackPageview ('/outgoing/google.com');">Google Toolbox For Mac</a>. Then setting up your project just involves just a few steps:
</p>

<ol>
  <li>Create a new iPhone Target.</li>
  <li>Add several files of the Google Toolbox For Mac.</li>
  <li>Add a new build phase as the last step of your target.</li>
  <li>Edit the Run Script Build Phase and finally run the Unit Tests.</li>
</ol>

<p>
The cool thing is, that the Google Toolbox For Mac has several enhancement to the standard SenTestingKit allowing you to do UI unit testing, automated binding unit testing, log tracking, and unit testing on the iPhone, as well as tools for doing static and dynamic testing of your code.
</p>

<p>
It supports all of the features described above in the Simulator. In Device mode Google Toolbox For Mac does not support binding unit testing on the iPhone as NSBinding is not supported on the iPhone. To have your tests executed on the phone, make sure your iPhone application's delegate is <em>GTMIPhoneUnitTestDelegate</em>, or calls <em>[GTMIPhoneUnitTestDelegate runTests]</em> when you want your tests to execute. All of your tests should execute as you would expect.
</p>

<p>
Google Toolbox For Mac has code coverage targets that build with full <em>gcov</em> settings on. You can then use <a href="http://code.google.com/p/coverstory/" onClick="javascript: pageTracker._trackPageview ('/outgoing/google.com');">CoverStory</a> to look at the code coverage. CoverStory allows you to easily view the code coverage of your unit tests. The tool has also been created by Google.
</p>

<h3><strong><big>Conclusion</big></strong></h3>

<p>
I'm happy that it's possible to do TDD when creating an iPhone application. Sad to see that Apple doesn't support OCUnit out of the box for Cocoa Touch - but at least Google provided a very nice extension to OCUnit that allows you to do TDD.
</p>]]>
        
    </content>
</entry>

<entry>
    <title>I will be speaking at IPC 2008</title>
    <link rel="alternate" type="text/html" href="http://www.maxhorvath.com/2008/08/i-will-be-speaking-at-ipc-2008.html" />
    <id>tag:www.maxhorvath.com,2008://1.12</id>

    <published>2008-08-11T15:35:30Z</published>
    <updated>2008-10-31T18:02:09Z</updated>

    <summary>Aside from being a member of the advisory board of this years International PHP Conference, I will present one Full Day Workshop and one session at this year&apos;s edition of the International PHP Conference.</summary>
    <author>
        <name>Max Horvath</name>
        <uri>http://www.maxhorvath.com</uri>
    </author>
    
        <category term="Conferences" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="PHPUnit" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Testing" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="conferences" label="Conferences" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="internationalphpconference" label="International PHP Conference" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ipc" label="IPC" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.maxhorvath.com/">
        <![CDATA[<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="ipc_2008.png" src="http://www.maxhorvath.com/images/i_will_be_speaking_at_ipc_2008/ipc_2008-thumb-400x91.png" width="400" height="91" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span>

<p>
Aside from being a member of the advisory board of this years <a href="http://it-republik.de/php/phpconference/" onClick="javascript: pageTracker._trackPageview ('/outgoing/it-republik.de');">International PHP Conference</a>, I will present one Full Day Workshop and one session at this year's edition of the International PHP Conference:
</p>

<h3><strong><big>Quality Assurance in PHP Projects - In-Depth Best-Practises</big></strong></h3>

<p>
<em>Full Day Workshop</em>
</p>

<p>
So you know <a href="http://www.phpunit.de/" onClick="javascript: pageTracker._trackPageview ('/outgoing/phpunit.de');">PHPUnit</a>, <a href="http://www.openqa.org/" onClick="javascript: pageTracker._trackPageview ('/outgoing/openqa.org');">Selenium</a>, <a href="http://www.phpundercontrol.org/" onClick="javascript: pageTracker._trackPageview ('/outgoing/phpundercontrol.org');">phpUnderControl</a> or <a href="http://cruisecontrol.sourceforge.net/" onClick="javascript: pageTracker._trackPageview ('/outgoing/cruisecontrol.sourceforge.net');">CruiseControl</a> and other tools to support testing efforts during your development process. But how does the puzzle of all those tools actually fit in your development process? During this Power Workshop Max Horvath and Wojciech Duda of <a href="http://www.studivz.net/" onClick="javascript: pageTracker._trackPageview ('/outgoing/studivz.net');">studiVZ Ltd.</a> will tell you about the everyday life at the Quality Assurance Business Unit. You will learn about best practices, which actually work and fit into an extremely fast moving iteration cycle at one of the biggest and fastest growing Social Networks in Europe. Talking about PHPUnit and Selenium, including tips on how to optimize using those tools, we will also show show you how you should integrate the testing process into your main development process, to be as lightweight and efficient as possible.
</p>

<p>
I will present this session together with my colleague <a href="https://www.xing.com/profile/Wojciech_Duda2" onClick="javascript: pageTracker._trackPageview ('/outgoing/xing.com');">Wojciech Duda</a>.
</p>

<h3><strong><big>Making Selenium Test Writing easier using a DSL</big></strong></h3>

<p>
<em>60 minutes Session</em>
</p>

<p>
Implementing automated tests by using Seleniums API methods has several drawbacks. Selenium is great for what it does, providing a generic framework for testing a generic application. Using the Testing_SeleniumDSL framework, I will show you how to create your own <a href="http://en.wikipedia.org/wiki/Domain-specific_programming_language" onClick="javascript: pageTracker._trackPageview ('/outgoing/wikipedia.org');">Domain Specific Language</a> (DSL), which would allow you to write tests in the language of your business rather than in Seleniums language.
</p>

<p>
I hope to see you in Mainz, Germany in late October!
</p>]]>
        
    </content>
</entry>

<entry>
    <title>Accessing private properties in Unit Tests</title>
    <link rel="alternate" type="text/html" href="http://www.maxhorvath.com/2008/03/accessing-private-properties-in-unit-tests.html" />
    <id>tag:www.maxhorvath.com,2008://1.5</id>

    <published>2008-03-06T16:24:18Z</published>
    <updated>2008-10-31T18:18:01Z</updated>

    <summary>While it&apos;s absolutly correct that direct access to private properties is strictly forbidden in PHP, it&apos;s quite disturbing that even reflection cannot do it when you&apos;re writing Unit Tests. Sometimes you just want to test whether a private property contains the correct data. With the normal visibility rules you cannot access those from your Unit Tests.

I&apos;ll show you how to access private properties in both PHP 5.2.5 and PHP 5.3.</summary>
    <author>
        <name>Max Horvath</name>
        <uri>http://www.maxhorvath.com</uri>
    </author>
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="PHPUnit" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Testing" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="php" label="PHP" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="phpunit" label="PHPUnit" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="privateproperties" label="Private Properties" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="relectionapi" label="Relection API" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.maxhorvath.com/">
        <![CDATA[<p>
While it's absolutly correct that direct access to private properties is strictly forbidden in PHP, it's quite disturbing that even reflection cannot do it when you're writing Unit Tests. Sometimes you just want to test whether a private property contains the correct data. With the normal visibility rules you cannot access those from your Unit Tests.
</p>

<p>
Luckily, as I just read at <a href="http://schlitt.info/applications/blog/index.php?/archives/581-Reflecting-private-properties.html" onClick="javascript: pageTracker._trackPageview ('/outgoing/schlitt.info');">Tobias Schlitt's Blog</a>, <a href="http://derickrethans.nl/" onClick="javascript: pageTracker._trackPageview ('/outgoing/derickrethans.nl');">Derick Rethans</a> committed a patch to the PHP 5.3 repository, which allows you to get things done quite easily. You still need to explicitly state that you want to access the value of a protected/private property through reflection by the new method setAccessible(). It's a good thing to avoid people doing stupid things accidentally, but you finally get the access to it.
</p>

<p>
PHP 5.3 you'll be able to access private properties like this:
</p>

<textarea name="code" class="php:nogutter:nocontrols" cols="60" rows="10">
<?php

class Foo
{
    private $bar;
}

$obj = new Foo();
$refObj = new ReflectionObject($obj);
$refProp = $refObj->getProperty('bar');

$refProp->setAccessible(true);

echo $refProp->getValue($obj);

?>
</textarea>

<p>
But until we'll see a stable PHP 5.3, there we're many working "hacks", which worked for <em>some</em> versions of PHP 5.x - <strong>the most current one</strong> would be this:
</p>

<textarea name="code" class="php:nogutter:nocontrols" cols="60" rows="10">
function expose($obj, $prop)
{
    $reflection = new ReflectionClass($obj);
    $prop = $reflection->getProperty($prop);

    return $prop->getValue($obj);
}
</textarea>

<p>
This should get you up and running for <em>PHP 5.2.5</em> ("older hacks" won't work).
</p>

<p>
So how could you use it?
</p>

<textarea name="code" class="php:nogutter:nocontrols" cols="60" rows="10">
<?php

class Foo
{
    private $bar;
}

$obj = new Foo();

echo expose($obj, 'bar');

?>
</textarea>

<p>
I hope those lines of code will help you until PHP 5.3 arrives, as it helps our developers.
</p>

<h3><strong><big>Update</big></strong></h3>

<p>
As Sebastian points out in his comment to this post, PHPUnit has had support for testing private and protected attributes for quite a while. It can be used via:
</p>

<textarea name="code" class="php:nogutter:nocontrols" cols="60" rows="10">
readAttribute($classOrObject, $attributeName);
</textarea>

<p>
I should be reading the documentation much more thoroughly next time (even though I must admit, that none of our developers has known this method, too).
</p>]]>
        
    </content>
</entry>

<entry>
    <title>Motivation for Testing</title>
    <link rel="alternate" type="text/html" href="http://www.maxhorvath.com/2008/03/motivation-for-testing.html" />
    <id>tag:www.maxhorvath.com,2008://1.4</id>

    <published>2008-03-05T23:04:10Z</published>
    <updated>2008-03-05T23:07:10Z</updated>

    <summary>Sometimes it seems writing tests with a good coverage is easier to be done than keeping your folks doing them, actually. Truth be told, during the last four months our software developers had a rather easy life when it came...</summary>
    <author>
        <name>Max Horvath</name>
        <uri>http://www.maxhorvath.com</uri>
    </author>
    
        <category term="Testing" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="mayflower" label="Mayflower" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="meinvz" label="meinVZ" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="motivation" label="Motivation" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="schuelervz" label="schuelerVZ" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="sebastianbergmann" label="Sebastian Bergmann" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="studivz" label="studiVZ" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="testing" label="Testing" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.maxhorvath.com/">
        <![CDATA[<p>Sometimes it seems writing tests with a good coverage is easier to be done than keeping your folks doing them, actually.</p>

<p>Truth be told, during the last four months our software developers had a rather easy life when it came to writing tests. We've been engineering our two platforms (with about 12 billion PI in January 2008) <a href="http://www.studivz.net/">studiVZ</a> and <a href="http://www.schuelervz.net/">schuelerVZ</a> from the ground up. We've also created our third platform, <a href="http://www.meinvz.net/">meinVZ</a>.</p>

<p>With really tight timelines it's extremely hard to do extensive testing. Nonetheless we've been really succesful in (re)launching the platforms. But now it's time time to remind our engineers that we will extent our testing efforts again.</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.maxhorvath.com/images/motivationfortesting/testing-motivation-01.html" onclick="window.open('http://www.maxhorvath.com/images/motivationfortesting/testing-motivation-01.html','popup','width=424,height=600,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.maxhorvath.com/images/motivationfortesting/testing-motivation-01-thumb-80x113.jpg" width="80" height="113" alt="testing-motivation-01.jpg" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;" /></a></span>A few days ago <a href="http://www.sebastian-bergmann.de/">Sebstian Bergmann</a> contacted me via <span class="caps">ICQ </span>about a now very popular photo over at <a href="http://www.mayflower.de">Mayflower GmbH</a>.</p>

<p>After I saw this photo, I thought: "what a perfect match"! It's just a funny way to motivate our engineers even more. Just a few moments later the first copy was printed and attached to our QA walls.</p>

<p>Just a few days later Sebastian <a href="http://www.flickr.com/photos/sebastian_bergmann/sets/72157603983743793/">released another two motivating pictures</a> that made their way onto our walls.</p>

<p>Sebastian: <b>Thank you very much</b>!</p>

<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.maxhorvath.com/images/motivationfortesting/testing-motivation-02.html" onclick="window.open('http://www.maxhorvath.com/images/motivationfortesting/testing-motivation-02.html','popup','width=750,height=600,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.maxhorvath.com/images/motivationfortesting/testing-motivation-02-thumb-240x192.jpg" width="240" height="192" alt="testing-motivation-02.jpg" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a></span><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.maxhorvath.com/images/motivationfortesting/testing-motivation-03.html" onclick="window.open('http://www.maxhorvath.com/images/motivationfortesting/testing-motivation-03.html','popup','width=750,height=600,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.maxhorvath.com/images/motivationfortesting/testing-motivation-03-thumb-240x192.jpg" width="240" height="192" alt="testing-motivation-03.jpg" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;" /></a></span></p>]]>
        
    </content>
</entry>

</feed> 