Testen mit objektorientierten Sprachen: Konzepte, Tools und Programmierung

Testen mit objektorientierten Sprachen: Konzepte, Tools und Programmierung

SWS 4
ECTS 5
Sprache(n) Deutsch
Lehrform SU mit Praktikum
Angebot im Wechsel mit anderen Fächern der gleichen Fachgruppe
Aufwand
  • 30 Präsenzstunden Seminaristischer Unterricht
  • 30 Präsenzstunden Praktikum
  • 90 Stunden Vor- und Nachbereitung (inkl. Anfertigen der Modularbeit)
Voraussetzungen

Veranstaltungen:

  • Softwareentwicklung I (IF-I-B-104 oder IF-WI-B-05) und II (IF-I-B-204 oder IF-WI-B-06)
  • Softwareengineering I (IF-I-B-305) oder Softwareengineering II (IF-WI-B-15)

Inhaltlich dabei relevant:

  • gute bis sehr gute Programmierkenntnisse in Java
  • Grundkenntnisse Modultests und Code Coverage in Java und JUnit
  • Grundlagen des Softwareengineering: Qualitätssicherung, Testpyramide, White- und Blackbox Tests
  • Basiswissen Buildmanagement und Versionsmanagement
Ziele
  • Die Studierenden sollen in der Lage sein, Unit Tests mit Hilfe von Spracherweiterungen wie AssertJ klar und leserlich zu formulieren, um die Wartbarkeit und Verständlichkeit der Tests zu verbessern.
  • Die Studierenden sollen Test-Driven Development (TDD) und Continuous Deployment (CD) effektiv anwenden, um hochwertige Softwareprodukte zu entwickeln, die kontinuierlich und zuverlässig ausgeliefert werden können.
  • Die Studierenden sollen in der Lage sein, spezialisierte Testtechniken wie parametrisierte Tests, White-Box/Black-Box Testing, Mutation Testing sowie manuelle und automatisierte Codeüberdeckung zur Bewertung und Verbesserung der Software- und Testqualität anzuwenden.
  • Die Studierenden sollen Mocking und Stubbing effektiv nutzen können, um Unit- und Integrationstests zu entwickeln, die verschiedene Anwendungsszenarien abdecken und eine hohe Testabdeckung sicherstellen.
  • Die Studierenden sollen in der Lage sein, Werkzeuge wie Cucumber für Akzeptanztests, Selenium für UI-Tests, EqualsVerifier für Schnittstellentests sowie ArchUnit für Architekturtests einzusetzen, um alle Aspekte des Softwaretests abzudecken.
Inhalt
  • Verbessern der Lesbarkeit von Unit Tests durch Spracherweiterungen wie AssertJ
  • Lernen und Anwenden von Test-Driven Development (TDD) und Continuous Deployment (CD)
  • Spezifizieren von Testreihen mit parameterisierten Tests
  • Tipps und Tricks zum Thema White-Box und Black-Box Testing
  • Manuelle und automatisierte Codeüberdeckung in Entwicklungsumgebung und CD
  • Verbesserung der Qualität von Testfällen durch Anwendung von Mutation Testing
  • Testdubletten: Mocking und Stubbing in Unit- und Integrationstests
  • Integrations und Systemtests in Java Enterprise Anwendungen (Spring)
  • Schreiben von Akzeptanztests mit Cucumber
  • Automatisiertes Testen von Schnittstellen mit dem Abstract Test Pattern und dem EqualsVerifier
  • Sicherstellen der Architekturrichtlinien und API Stabilität mittels Architekturtests und RevApi
  • Grundlagen Performancetests
  • Basiswissen UI Tests mit Selenium
Medien und Methoden
  • Präsentationsfolien mit Beamer, Tafel, Flipchart, u.a.
  • Programmieren direkt in der Entwicklungsumgebung
  • Reviews von GitLab Merge Requests (inkl. automatisierte Bewertung)
Literatur
  • Kent Beck, Test Driven Development: By Example, 2002, Addison-Wesley
  • Michael Feathers, Working Effectively with Legacy Code, 2004, Pearson
  • Steve Freemann, Nat Pryce, Growing Object-Oriented Software, Guided by Tests, 2009, Pearson
  • Cederic Beust, Hani Suleiman, Next Generation Java Testing, 2009, Addison-Wesley
  • Matt Wynne et al., The Cucumber Book: Behaviour-Driven Development for Testers and Developers, 2017, Pragmatic Bookshelf
  • Tomek Kaczanowski, Practical Unit Testing with JUnit and Mockito, 2019. Tomasz Kaczanowski
  • Vladimir Khorikov, Unit Testing Principles, Practices, and Patterns, 2020, Manning Publications
  • Ralf Bierig et al., Essentials of Software Testing, 2021, Cambridge University Press
  • Andreas Spillner, Tilo Linz, Basiswissen Softwaretest, 2024, dpunkt.verlag GmbH
Zuordnungen Curricula
SPO Fachgruppe Code ab Semester Prüfungsleistungen

IF Version 2019

FWP

IF-I-B-F71

6

benotete Modularbeit (100%)

IB Version 2010

FWP

IF-WI-B-31-34-148

6

benotete Modularbeit (100%)

IF Version 2023

FWP

IF-I-B-F71

6

benotete Modularbeit (100%)

WD Version 2022

FWP

951-55-148

6

benotete Modularbeit (100%)

WT Version 2022

FWP

951-55-148

6

benotete Modularbeit (100%)