Pic Schulungen Wuerfel

Modul- und UI-Tests in Java

Vor nicht allzu langer Zeit stand die Software-Industrie teilweise noch in dem Ruf, „Bananen-  Software“ zu liefern, die erst beim Kunden reift. Die Verkürzung der Release-Zyklen in den letzten Jahren hat es nicht einfacher gemacht, qualitativ ausgereifte Software zu veröffentlichen. Nur wenige Unternehmen waren in der Lage, ihre Kunden in kurzen Abständen mit neuen Features oder Bugfixes zu versorgen. Doch was unterschied diese Unternehmen von den anderen, denen das nicht gelang ?  Ein maßgeblicher Punkt war, dass diese Unternehmen frühzeitig damit begonnen haben, ihre  Software komplett automatisiert zu testen. Dadurch waren sie in der Lage, jederzeit  komplette Regressionstests auszuführen und konnten dadurch die Qualität ihrer Software auch nach umfangreichen Änderungen noch garantieren. Zudem führt der weitgehende Verzicht auf manuelle Tests langfristig zu einer erheblichen Kostenreduzierung, und vor allem  ist damit auch die Basis für Continuous Delivery gelegt. In dieser Schulung lernen Sie die Grundlagen und Tools für automatisierte Softwaretests mit  Java kennen.

JUnit
Als eines der ersten Frameworks für die Testautomatisierung ist JUnit heute das am weitesten verbreitete. Wie der Name schon sagt, dient es hauptsächlich dazu, einzelne Klassen und deren Methoden auf Herz und Nieren durchzutesten. Es lässt sich aber auch für Integrationstests wie beispielsweise das Zusammenspiel  von Programmcode und Datenbank verwenden. Im Rahmen dieser Schulung erfahren Sie, wie Sie mit JUnit automatisierte Tests für Ihre Anwendungen erstellen können. Dies umfasst neben der selbstverständlichen Einführung in das Framework auch die  Vermittlung von Best Practices bei der Testerstellung.

Testgetriebene Softwareentwicklung
Lose Kopplung, klare Aufgabentrennung, Entwicklung mit Interfaces – die Prinzipien guten Anwendungsdesigns sind allen Entwicklern bewusst, dennoch sind sie in der Praxis oft schwer einzuhalten. Mit der Testgetriebenen Entwicklung werden wir Ihnen eine Technik  vorstellen, die nicht nur zu einem saubereren Anwendungsdesign führt, sondern die gleichzeitig auch noch eine hohe Testabdeckung des Codes sicherstellt. Erfahrungsgemäß erschließen sich die Vorteile, die mit der Einführung dieser Technik einhergehen, vielen Entwicklern nicht sofort. Daher werden wir uns die  Zeit nehmen, die Testgetriebene Entwicklung ausführlich vorzustellen und auszuprobieren.

EasyMock
Ein zentrales Prinzip von Unit-Tests ist, in einem Test immer nur genau eine Klasse zu testen. Nun haben die meisten Klassen Abhängigkeiten zu anderen Klassen, die nicht verschwinden, weil gerade ein Test und nicht die ganze Anwendung ausgeführt wird. Für diese  Abhängigkeiten muss ein Mock-Objekt erstellt werden,  das die eigentliche Implementierung im Rahmen der Tests ersetzt. Die manuelle Erstellung und vor allem Pflege solcher Mock-Objekte ist recht zeitaufwendig, aber sie sind nun einmal unentbehrlich. Zur Lösung  dieses Dilemmas sind mehrere Frameworks entstanden, die dynamische Mock-Objekte erzeugen können, die deutlich robuster gegenüber Änderungen sind. Ein  Vertreter dieser Gattung ist EasyMock, das wir Ihnen vorstellen werden.

Frontend-Tests
Bei einer ausreichenden Abdeckung des Quellcodes  decken Unit-Tests viele Bugs in einer Anwendung bereits frühzeitig auf. Naturgemäß lassen sich aus Unit-Tests aber keine Aussagen darüber treffen, ob die einzelnen Klassen auch so zusammenspielen, wie die Entwickler dies vorgesehen haben. Für solche Integrationstests ist daher eine andere Herangehensweise mit anderen Tools erforderlich. Bei Web-Anwendungen bietet es sich natürlich an, diese Tests direkt auf dem Frontend durchzuführen, da sich hier parallel die technische Funktionsfähigkeit und die fachliche Korrektheit  testen lassen. Auch für Oberflächentests existiert eine Vielzahl von Tools, die sich anhand ihrer Vorgehensweise bei der Testerstellung in zwei Kategorien unterteilen lassen: Erstens in die Capture-and-Replay-Tools, die die Aktionen eines Anwenders auf der Web-Oberfläche aufzeichnen und diese dann automatisch beliebig oft  abspielen können. Zweitens in die Tools, bei denen die  einzelnen Testfälle mit einer echten Programmiersprache codiert werden. Beide Vorgehensweisen haben ihre  Vor- und Nachteile. Daher werden wir Ihnen mit Sitewalker und Canoo Webtest jeweils einen Vertreter jeder Art vorstellen und daran exemplarisch die Besonderheiten erläutern.

∆ nach oben       zurück
Was Sie lernen werden
  • Grundlagen von Software-Tests
  • Erstellung von Tests mit JUnit 4
  • Testgetriebene Entwicklung
  • Einführung in EasyMock
  • Erstellung von Oberflächentests mit Canoo Webtest
Vorraussetzungen

Programmiererfahrung in Java

Dauer

2 Tage

Kontakt

Victoria Luppold

+49 69 904 73 61 0
trainings@it-frankfurt.com