Schwerpunktthema

Testen

Fachartikel, Podcasts, Vorträge und mehr zum Thema Testen.
Blog-Post

Verschachtelte Tests mit Minitest

Über das Schreiben von Tests in Ruby in Rails-Anwendungen wurde in den letzten Jahrzehnten wohl alles geschrieben, was man sich ausdenken kann. Es wurden alle erdenklichen Frameworks entwickelt, mit denen das Schreiben von Tests „Spaß” machen soll. Mit RSpec/Cucumber sollten Tests sogar optimalerweise von der Fachabteilung verfasst oder wenigstens gelesen werden können. So jedenfalls das Heilversprechen. Der Autor dieses Posts war nie bekannt für seine Rigorosität, was Testabdeckung seiner Anwendungen betrifft. Software soll ausgeliefert werden und tun, was sie soll. Ein formaler Korrektheitsbeweis im Kopf sowie händisches Testen des Restes wird meist/oft/manchmal auch ausreichen, außerdem steht da noch die Feststellung im Raum, dass 100% Testabdeckung ohnehin nicht erreichbar sind. Manchmal wird man im Alter aber doch weiser (und fauler).

Podcast

Die Reise der Zalando Reliability Organisation

Zu Gast: Heinrich Hartmann, 
Principal SRE
, Zalando

Blog-Post

GitLab CI/CD Pipelines testen

Artikel

Container für Tests und die lokale Entwicklung mit Spring Boot 3.1

Im Mai ist mit Spring Boot 3.1.0 das nächste Minor Release von Spring Boot 3 erschienen. In diesem Artikel wollen wir uns anschauen, wie die neue Unterstützung von Testcontainers und Docker Compose uns bei Tests und der lokalen Entwicklung unterstützen kann.

Artikel

Testen in Spring Boot-Anwendungen

Normalerweise schreiben wir neben Produktionscode auch Tests, um mögliche Fehler so früh wie möglich im Entwicklungsprozess zu finden und zu beheben. Häufig schreiben wir sogar für eine neue Funktionalität mehr Test- als Produktionscode. Gleichzeitig sollen die Tests möglichst schnell sein, damit diese häufig ausgeführt werden können, ohne große Wartezeiten zu produzieren. In diesem Artikel betrachten wir, wie das in Spring Boot basierten Anwendungen umgesetzt werden kann.

Artikel

An Introduction to TLA+ and Its Use in Parties

You’ll get your pizza eventually

Artikel

Eigenschaftsbasiertes Testen mit „fast-check“

Dass man als Entwicklerin oder Entwickler nicht nur Code, sondern auch Tests zu schreiben hat, ist ein alter Hut. Trotzdem ist es für viele eine lästige und monotone Arbeit. Außerdem ist es noch lange nicht garantiert, dass Unittests auch wirklich alle Grenz- und Nicht-Grenz-Fälle abdecken. Ein moderner Ansatz ist eigenschaftsbasiertes Testen, bei dem eine abstrakte Bedingung spezifiziert und dann vom Testframework automatisch überprüft wird.

Artikel

Diverse Themen und Bibliotheken für Tests in und mit Java

In diesem Artikel betrachten wir bunt gemischt diverse Themen und Bibliotheken rund um Tests für und mit Java. Dabei folgen wir keinem roten Faden, sondern lassen uns durch das übergreifende Thema treiben.

Blog-Post

Test organization and naming

Blog-Post

Test Strategy

In our previous posts, we focused on why and how we write tests. In most of our projects, there will be many of those tests. In the last post about tests granularity, we additionally stated that there usually will be different kinds of tests, on different levels of granularity. That leads to our next topic: which kinds of tests do we need and what is the ideal mix of them?

Blog-Post

Tests Granularity

In two previous posts we discussed the benefits of automated tests and the properties of a good test. So far we were trying to avoid differentiating the tests in any way. This time we want to address one way how tests can be classified: tests granularity.

Blog-Post

Anatomy of a Good Test

Blog-Post

Why you should write automated tests

This blog post gives an overview of the most common benefits gained by writing automated tests. It starts in a place where most of the projects we’ve seen so far are: tests are written as a last step of the development process. Then it shows additional benefits that could be gained if we all gave the tests a bit more focus and care.

Blog-Post

Cross-platform testing of TypeScript code with Jasmine and Karma

I like TypeScript. Writing code that already underwent basic checks (i.e. typechecking) before it can even touch an execution engine is a big win in my book. In particular, TypeScript is nice because it integrates well into the broader JavaScript ecosystem and comes with batteries (i.e. types) included. Unfortunately, most test runners require extra setup to work with tests written in TypeScript. Some even require staggering amounts of configuration.

Blog-Post

About unit and integration tests

Blog-Post

What Could Possibly Go Wrong

What could possibly go wrong if you put Clojure 1.10 and Scala 2.13 on the same classpath? We’re about to find out.

Artikel

JUnit5 für das Testen von Spring Boot-Anwendungen

Bei der Entwicklung von Spring und Spring Boot wurde schon immer darauf geachtet, dass hiermit entwickelte Anwendungen testbar sind. Ab und zu reichen die im Standardumfang mitgelieferten Mittel jedoch nicht vollkommen aus. In diesem Artikel wollen wir uns deshalb an drei Anwendungsfällen aus der Praxis anschauen, wie sich die vorhandenen Mittel in Kombination mit JUnit5 erweitern lassen.

Podcast

Testen von Microservices

Erfahrungen mit End-to-End Tests

Blog-Post

Testen von Microservice-Systemen

Automatisiertes Testen ist in der Softwareentwicklung mittlerweile ein Standardvorgehen. Im Kontext eines verteilten Microservice-Systems wird üblicherweise das korrekte Verhalten jedes einzelne Services mit Hilfe von Unit-, Integrations- und End-2-End Tests verifiziert. Wie aber kann das Zusammenspiel der einzelnen Services getestet und sichergestellt werden? Die Idee, End-2-End Tests des Gesamtsystems zu erstellen, ist naheliegend. Ist dies aber sinnvoll, oder gibt es andere, besser geeignete Ansätze?

Artikel

Java-Bibliotheken für den Einsatz in Tests

In den meisten Projekten entfällt ein nicht gerade kleiner Anteil des Codes auf Tests. Für diesen Testcode sollten dieselben Regeln wie für Produktivcode gelten. Neben dem Achten auf Verständlichkeit und Wartbarkeit gehört auch das Erschaffen von Abstraktionen und das Vermeiden des Not-invented-here-Syndroms durch den Einsatz von passenden Bibliotheken dazu. Dieser Artikel stellt sechs Bibliotheken vor, die sich im Einsatz als praktisch und hilfreich erwiesen haben.

Blog-Post

Testing is storytelling

Artikel

Generierung von Regressionstests für Legacy-Code

In diesem Artikel geht es um die Möglichkeit, bei Legacy-Anwendungen Regressionstests anhand des Quellcodes zu generieren, um vor einem möglichen Refactoring Tests erzeugt zu haben. Diese sollen sicherstellen, dass die Anwendung nach dem Refactoring noch genauso funktioniert wie vorher. Hier gibt es einige interessante Ansätze und auch einige Tools, die diese implementieren. Der Artikel zeigt zwei mögliche Ansätze.

Blog-Post

A Playground for Testing OpenID Connect

This post describes how you can set up a development environment in order to play around with your OpenID client implementation. When running your application in a cluster, it can be difficult to test how it will behave behind a load balancer. One factor that can be particularly difficult to test is when you are communicating with an OAuth 2.0 or OpenID Connect server which expects that a request will be redirected back to the same application instance that it came from.

Blog-Post

Spring-less testing

Artikel

Consumer-Driven Contracts – Testen von Schnittstellen innerhalb einer Microservices-Architektur

In einer Microservices-Architektur entstehen viele Services – potenziell in den verschiedensten Programmiersprachen. Um eine reibungslose Kommunikation zwischen diesen zu gewährleisten, müssen die Schnittstellen passen und auch über längere Zeit stabil bleiben. Consumer-Driven Contracts stellt hierzu einen Ansatz dar, der zudem die Schnittstellen und deren Aufrufer noch zusätzlich testet.

Artikel

Auf Nummer sicher

Neue Projekte im Geschäftsprozess-Umfeld stehen häufig vor der Herausforderung, Prozesse zu automatisieren. Dabei müssen Prozesse so formal beschrieben werden, dass ein Computer sie, wie andere Software auch, interpretieren und ausführen kann. Dieses High-Level-Programming verlangt aber auch die Qualitätssicherung, insbesondere von kritischen Prozessteilen. In diesem Artikel werden Möglichkeiten für das Testen der verschiedenen Komponenten von ausführbaren Geschäftsprozessen (Prozess, Datentransformationen) und für das Review (Prozess, Servicedefinitionen) sowie Erfahrungen aus einem Projekt vorgestellt.

Artikel

Testobjekt: Geschäftsprozess – Testen für kontinuierliche Verbesserung

Geschäftsagilität durch Tests sichern