Testing

Hallo Siri, teste meine Alexa! Testautomatisierung von Sprachassistenten mit Java und Cucumber

Haben Sie sich schon mal gefragt, wie das Testen von Sprachassistenten aussehen könnte? Die erste Möglichkeit ist wohl, auf eine Reihe von Testpersonen zurückzugreifen und verschiedenste Spracheingaben mit den Ausgaben zu vergleichen, manuell versteht sich. In diesem Artikel möchte ich jedoch einen Weg zum Testen von Sprachassistenten mit Hilfe von Java und Cucumber aufzeigen.

HiveMQ vorgestellt: Automatisiertes Testen von MQTT-Applikationen

In einem Großteil der IoT-Anwendungsfälle wird die Kommunikation zwischen Geräten mit dem MQTT-Protokoll realisiert. Typische Anwendungen sind beispielsweise Steuergeräte, Gateways, mobile Geräte, Backend-Systeme und eine Vielzahl weiterer Microservices. In Einsatzgebieten mit großen IoT-Netzwerken sind die Anforderungen an die Softwarequalität der MQTT-Applikationen besonders hoch, da sich hier Fehler katastrophal auswirken können. Automatisierte Softwaretests sind ein fundamentaler Teil davon, diese hohe Qualität zu garantieren, da Fehler in der Implementierung schnell erkannt und behoben werden können. Die HiveMQ-Testcontainer-Bibliothek wurde geschaffen, um MQTT-Anwendungen in einer isolierten Umgebung testen zu können.

DevOps im Test: Verbesserter ROI dank DevOps Testing

DevOps galt lange Zeit als ein großer Hype. Nun gehen Unternehmen das Thema strategischer an und suchen nach Einsatzgebieten, in denen sich mit dem Ansatz die größte Rendite erzielen lässt. Dieser Artikel zeigt, wie sich mit DevOps-Methoden ein effizienteres Testing und damit ein besserer Return on Investment (ROI) realisieren lässt.

Exploiting in Java: Deserialisierungs- schwachstellen im Java-Programmcode

Der Stack Overflow ist das am meisten anzutreffende Sicherheitsproblem in der Softwareentwicklung. Bei einem solchen kann ein Angreifer mittels einer zu langen Eingabe einen Programmspeicher zum Überlaufen bringen, sprich über die Grenzen eines Arrays hinausschreiben und so Programme zum Absturz bringen, interne Daten verfälschen und den Programmfluss ändern. In Java gibt es zwar keinen klassischen Stack Overflow, aber ähnliche Deserialisierungsschwachstellen.

Java Magazin 11.20 erschienen: Testing im Java-Labor

Als Marie Curie Ende des 19. Jahrhunderts das Radium erforschte und sich mit allerlei radioaktiven Substanzen vergiftete, wusste man um die Gefährlichkeit der Strahlung noch nicht so richtig Bescheid. Es gab zwar durchaus Anzeichen dafür, dass ein gewisser Zusammenhang zwischen schlimmen Erkrankungen und radioaktivem Material bestehen könnte, Madame Curie allerdings entschied sich dafür, dem keine besondere Beachtung zu schenken.

Mit automatisierten Tests optimal entwickeln

Dauerhaft kann geschäftskritische Software nur betrieben werden, wenn automatisierte Tests an der Tagesordnung sind. Unternehmen legen damit die Basis für die Veränderbarkeit der Lösung und stellen sicher, dass sie langfristig verfügbar ist und zielführend genutzt werden kann. Die häufig verbreitete falsche Annahme, die Implementierung automatisierter Tests wäre aufwendig und zu teuer, bezieht den Fakt nicht mit ein, dass gerade dann unnötige und enorme Kosten entstehen, wenn Unternehmen nicht getestete Software verwenden. Zumal bei Berücksichtigung einiger Grundprinzipien Softwaretests effektiv und zugleich kostensparend gelingen.

Die Anbindung an externe HTTP Services richtig testen

Mit der verstärkten Verbreitung von Microservices steigen auch die Abhängigkeiten zwischen den verschiedenen Anwendungen. Aufgrund der eigenen Datenhoheit müssen Services auf die ein oder andere Art Informationen miteinander austauschen, um ihr (Business-)Ziel zu erreichen. Häufig ist REST bzw. HTTP dafür das Mittel der Wahl. Egal, ob man der klassischen Testpyramide oder einem der neueren Ansätze wie der Testhonigwabe [1] folgt: Irgendwann während der Entwicklung sollte die Kommunikation mit Integrationstests geprüft werden. Das ist der Punkt, an dem WireMock [2] ins Spiel kommt.

Testing-Methoden und -Technologien im Überblick

Test-driven Development ist keine Mode, sondern professionelle Entwicklung. Anders als der Zuckerguss einer Torte ist Qualität auch kein Attribut, das nachträglich ergänzt werden kann, sondern muss von Anfang an berücksichtigt werden. Dieser Artikel soll einen Überblick über die zum Erreichen dieser Qualität nötigen Testing-Methoden und -Technologien geben.

Testdaten: Eine Falle der DSGVO?

Seit nun beinahe zwei Jahren ist die Europäische Datenschutz Grundverordnung (EU-DSGVO) in Kraft. Die meisten Unternehmen haben sich inzwischen auf die Verordnung eingestellt und fühlen sich vor möglichen Strafzahlungen geschützt. Man kann sagen, die Geschäftswelt habe sich mit der DSGVO arrangiert. Wie so häufig, steckt der Teufel vor allem im Detail und Unternehmen könnten an unerwarteter Stelle, ohne es zu wissen, gegen die EU-DSGVO verstoßen. Ich rede von der Verwendung sensibler Daten für Testzwecke.

Behavior-driven Development: Akzeptanztests in Java mit JGiven

Die meisten Entwickler wissen, was Komponententests sind, auch wenn sie selbst keine schreiben. Aber es gibt noch Hoffnung: Die Situation ändert sich, und immer mehr auf GitHub gehostete Projekte enthalten Unit-Tests. In einer Standardkonfiguration für Java-Projekte mit NetBeans, Maven und JUnit ist es nicht ganz so schwer, die ersten Zeilen Testcode zu erstellen. Neben dem Ansatz, der in Test-driven Development (TDD) verwendet wird, gibt es noch andere Technologien wie Behavior-driven Development (BDD), auch Akzeptanztests genannt, die wir in diesem Artikel vorstellen möchten.

Lessons learned: Akzeptanztests in Java mit JGiven

Die meisten Entwickler wissen, was Komponententests sind, auch wenn sie selbst keine schreiben. Aber es gibt noch Hoffnung: Die Situation ändert sich, und immer mehr auf GitHub gehostete Projekte enthalten Unit-Tests. In einer Standardkonfiguration für Java-Projekte mit NetBeans, Maven und JUnit ist es nicht ganz so schwer, die ersten Zeilen Testcode zu erstellen. Neben dem Ansatz, der in Test-driven Development (TDD) verwendet wird, gibt es noch andere Technologien wie Behavior-driven Development (BDD), auch Akzeptanztests genannt, die wir in diesem Artikel vorstellen möchten.

Smoke Testing von MQTT-Anwendungen mit MQTT CLI

Bereits heute kommunizieren Millionen von Endgeräten im Internet of Things über das MQTT-Protokoll miteinander. Die Prognosen, wie viele es in den kommenden Jahren sein werden, überschlagen sich immer wieder. Gegenüber diesem prognostizierten rasanten Wachstum erweist sich die Entwicklung neuer Geräte jedoch oft als langsam. Das kann häufig die Entwicklung weiterer Anwendungen blockieren, die die Daten der Geräte verarbeiten sollen. Um diese Engpässe zu überbrücken, kann das Tool MQTT CLI verwendet werden. Das Kommandozeilenwerkzeug simuliert schnell und einfach Endgeräte und kann so für erste Tests von MQTT-Anwendungen verwendet werden.

  • 1
  • 2