Agile rocks Business – Test Driven Development in der Praxis

Agile rocks Business.

Flexibel auf geänderte (Business-)Anforderungen reagieren können, die Forderung nach raschen time-to-market erfüllen können, trotzdem im Umgang mit Menschen respektvoll sein und Spaß an den Erfolgen des Teams haben können! So oder so ähnlich kann man agile Entwicklung zusammenfassen. Wichtig bei all dem ist die Identifikation des gesamten Teams mit der geteilten Aufgabe der Qualitätssicherung („collective quality ownership“). Eine der mittlerweile immer interessanter werdenden Standard Methoden die hierbei zum Einsatz kommen ist Test Driven Development, kurz TDD. Hierbei geht es um  das entwicklungsnahe Testen bzw. das testnahe Entwickeln. Bei dieser testgetriebenen Entwicklung erstellt der Programmierer die Tests bevor er die jeweiligen dazu gehörige Business Logik erstellt.

TDD in der Praxis – „Red, Green, Refactor“

Test Driven Development wird oft zu Unrecht als „unnötiger zusätzlicher Aufwand“, sowohl bei Entwicklern als auch im Management, eingeschätzt. TDD zwingt den Entwickler vor der eigentlichen Umsetzung der Business Logik die zugehörigen Unit Tests zu schreiben – „Es darf keine Business Logik implementiert werden ohne zugehörigen, fehlschlagenden Unit Test“. Zusätzlich ist eine fixe Verbesserungsphase, so genanntes „Refactoring“ eingeplant, die für qualitativ hochwertige Ergebnisse sorgen soll. Diese drei Phasen der Entwicklung – Unit Test schreiben, Business Logik umsetzen, Code verbessern – werden iterativ bis zur fertigen Lösung fortgesetzt.

Das führt im ersten Blick zu mehr Aufwand, aber auch nur aus dem Grund, dass Unit Tests im Allgemeinen viel zu wenig Aufmerksamkeit in der Vergangenheit bekommen haben. Aber TDD geht noch viel weiter als einfach nur die Testfälle vor der Business Logik zu schreiben: TDD ist eine Methode, die den Fokus auf qualitativ hochwertige Ergebnisse legt! Naming, Duplication und ein gutes Design sind nur einige wichtige Punkte, die in TDD groß geschrieben werden.

Die Vorteile von TDD

Ein Vorteil liegt auf der Hand: Durch den Einsatz von TDD erreicht man eine theoretische Code Coverage der Business Logik von 100%. Oben drauf bekommt man mit dem Fokus auf Naming und Design einen auf Lange Sicht wartbaren Code. Die Entwickler können durch das dicht gewebte Sicherheitsnetz der Unit Tests ohne Gefahr große Teile der Business Logik bei Bedarf neu erstellen, denn: Die Anforderungen an die Business Logik sind in den Unit Tests persistiert und die korrekte Umsetzung kann laufend sichergestellt werden.

Ein weiterer und nicht unwesentlicher Vorteil wird durch TDD erreicht: die Entwickler sollen wieder zufrieden und stolz auf deren Machwerk blicken können. Software Craftsmanship wird groß geschrieben, weg von Programmiermaschinen. Und zufriedene Arbeiter leisten doch zu meist auch gute Arbeit.

Advertisements

Tool Review: PAMIE

Tool Review: PAMIE

PAMIE Logo

Overview:

PAMIE (Python Automation Module for I. E.) is a library, which enables Python to interact with Internet Explorer. PAMIE automates the browser by manipulating the Document Object Model (DOM) via the COM interface. PAMIE is used to create web tests written in Python using Microsoft Internet Explorer.

The review is focused on PAMIE 3.0.

Technique: Star2Star2Star2

PAMIE manipulates the DOM using Internet Explorers COM interface. Furthermore JavaScript methods can be directly called in order to start their execution. This method is similar to WatiN and shares more or less the same advantages/disadvantages.

  • Neither the browser nor the displayed web site/web application gets changed to enable interaction.
  • The native interaction enables PAMIE to read many details of the current state of the browser. For example PAMIE is able to synchronize the test with the browser. Mehr von diesem Beitrag lesen

Tool Review: T-Plan Robot

Tool Review: T-Plan Robot (Open Source Edition)

T-Plan Robot

Overview:

T-Plan Robot (formerly known as VNCRobot) is an automation tool, based on VNC (virtual client computing, RFB protocol). Using this almost unique approach, T-Plan Robot is able to automate every application running under every platform which supports a VNC Server. Every popular operating system (Windows, Linux, OSX) is supported and even testing of mobile applications running under iOS or Android (although some special customization is needed) is possible at the moment.
Mehr von diesem Beitrag lesen

Tool Review: WatiN

Tool Review: WatiN

WatiN Logo

Overview:

WatiN (pronounced as What-in) enables .Net to interact with Internet Explorer 6, 7, 8 as well as FireFox 2 and 3. Inspired by WatiR, Jeroen van Menen started at the end of 2005 the development of WatiN to replace the commercial test application of his company. 2007 Edward Wilde joined the project and enabled WatiN to support FireFox. Furthermore he created WaX, a small framework that allows to create WatiN tests using Microsoft Excel.

The following review will focus on WatiN using C#.

Technique: Star2Star2Star2

WatiN interacts with the Internet Explorer using its COM interface. The FireFox interaction is done using the JSSh (JavaScript Shell Server) extension for Mozilla FireFox. Although the interaction technique for both of the browsers is different, the API of WatiN is not (in most cases). So, actually WatiN tries to hide the type of the automated browser to create browser independent tests. The disadvantage of this technique is, that this special bridge between WatiN and the automated browser has to be developed for every different browser and eventually must be changed when a new browser version gets launched.

Using a more or less native method to interact with the browser and the html controls has some advantages:

  • Neither the browser nor the displayed web site/web application gets changed to enable interaction. So testing with WatiN does not have any side affects.
  • The native interaction enables WatiN to read many details of the current state of the browser so for example WatiN is able to synchronize the test with the browser.

Mehr von diesem Beitrag lesen

Tool Review: Selenium

Tool Review: Selenium

Selenium Logo

Overview:

The Selenium homepage says „Selenium is a suite of tools specifically for testing web applications.“. This „suite of tools“ is seperated into several parts where Selenium IDE and Selenium RC are the most important ones and the review will focus on those two parts.

Technique: Star2

Selenium (every tool of the Selenium suite) interacts with the ui elements of a web site/application using JavaScript injection. Therefore a custom proxy server is used to inject the JavaScript code into the html source. When using the Selenium IDE this magic is done automatically. If not, Selenium RC is used to manipulate the html source to be automate-able. This method has some disadvantages:

  • Injecting Code into the html source of the web site/application to test could lead to unpredictable behaviour (even though this never occurred during our tests)
  • When injecting JavaScript only one base-URL is possible (for example http://selenium.org/) because of The Same Origin Policy. Testing different base-URLs requires different test cases.

Mehr von diesem Beitrag lesen

%d Bloggern gefällt das: