Unzuverlässige Tests sind ein Problem
Ich bin durchaus ein Freund von Tests in der Softwareentwicklung, auch wenn ich sie ehrlicherweise zu selten nutze. Für mich persönlich ist wichtig wie und wofür man Tests einsetzt, denn einige Arten sind meiner Meinung nach nicht unbedingt das Gelbe vom Ei. Doch über das generelle für und wieder von verschiedenen Testarten möchte ich an dieser Stelle nicht sprechen, denn dafür bräuchte man eine komplette News-Sammlungen und würde vermutlich trotzdem die Hälfte nicht ausreichend betrachten.
Heute möchte ich auf einen Punkt eingehen der alle Arten von Tests mitunter extrem weniger relevant machen kann. Das Thema ist die Unzuverlässigkeit von Testergebnissen. Also Tests die manchmal funktionieren und dann doch wieder nicht und insofern bei der Auswertung unklare Ergebnisse generieren. Diese False Positives und False Negatives sorgen im Laufe der Zeit dafür, dass die Ergebnisse immer weniger ernst genommen werden und somit das Risiko besteht valide Probleme nicht zu erkennen.
Das Risiko derartiger Probleme ist sehr unterschiedlich und stark abhängig von der Art der Tests. Bei Unit Tests dürften solche Probleme eher selten auftreten, da man hier ja in sich geschlossene und lokale Funktionen testen soll. So umfangreicher der Test Flow, so problematischer wird das Ganze allerdings. Auch die Menge an externen Tools und involvierter Software und Hardware beeinflusst die Häufigkeit dieser Problematik maßgeblich. Wenn also Unit Tests eher selten Probleme in diesem Bereich haben, sind End to End Tests oder UI Tests eher anfällig für selbige.
Checklisten in der IT - Mein Fazit nach einem Jahr
Vor einiger Zeit beschrieb ich meinen relativ simplen, aber durchaus praktischen Umgang mit Checklisten. Diese Listen nutze ich nun seit mehr als einem Jahr für die Releases meiner Libraries im Android und Flutter Bereich und auch für App Releases.
Während ich einige meiner Libraries fast monatlich aktualisiere und somit “im Flow bin”, sind vor allem App Releases seltener. Insbesondere hier helfen mir die Checklisten nichts zu vergessen und sie machen mich sogar schneller, da ich einem roten Faden folgen kann. Zuletzt habe ich das beim Release der aktuellen Version der Tessa App gemerkt.
Generell ist es meiner Meinung nach hier egal welches Tooling man nutzt, wichtig ist etwas zu finden was sich schnell und einfach in die eigenen Flows integriert und dadurch eine Hilfestellung zu Abläufen und dem Fortschritt bietet. Denn dann ist eine Checkliste keine zusätzliche Arbeit, obwohl man sie ja pflegen muss, sondern eine nützliche Hilfestellung.
Falls ihr wiederkehrende komplexere Aufgaben habt, kann ich euch nur empfehlen mal einen Blick auf das Thema Checklisten zu werfen. Egal ob Softwareentwicklung, Server-Wartung oder Backups, ein roter Faden hat noch keinem geschadet und ein paar Haken sind wirklich schnell gesetzt. Solltet ihr bereits Checklisten einsetzen, würde mich euer Tooling und eure Herangehensweise sehr interessieren und über Kommentare würde ich mich sehr freuen.
Tessa App Version 2.2 veröffentlicht
Vor wenigen Stunden gab es mal wieder ein geplantes Update für die Tessa App. Ich versuche aktuell meinen „ein mal pro Quartal„ Release-Zyklus einzuhalten und bis dato funktioniert dies meist ganz gut.
Update 2.2.0 bringt ein überarbeitetes User Interface im Kontaktbereich und einen dedizierten Eintrag für die Statistik in der Hauptnavigation. Zuvor war der Statistik-Bereich nur indirekt erreichbar, was meiner Meinung nach eher unpraktisch war. Damit einher geht eine Änderung in der Kalenderansicht, welche die Anzeige der primären Aktivitätskategorie des jeweiligen Monats besser hervorhebt und dem Nutzer die Möglichkeit gibt schnell die dazugehörigen Aktivitäten zu überfliegen. Ebenfalls neu ist die Möglichkeit lokale Backups zu erstellen. Zuvor war es möglich seine Backups z.B. an Google Drive zu senden, was weiterhin eine Option ist, nun kann allerdings auch ein lokaler Geräteordner gewählt werden.
Bugfix Update für Boehrsi.de
Heute gibt es mal wieder ein kleines Update für meinen Blog, denn es hatte sich ein Fehler bei den Empfehlungen eingeschlichen. Das Resultat von selbigem war die fehlerhafte Anzeige der Übersicht aller Empfehlungen. Das Problem ist behoben, verschiedene weitere kleine Updates im Hintergrund wurden vorgenommen und alles sollte wieder ordnungsgemäß funktionieren. Sofern ihr Fehler findet, Anregungen habt oder einfach Feedback geben wollt, meldet euch gerne in den Kommentaren.
Patchday - OnUpgrade - Version 1.1.6 Maintenance Update
Vor wenigen Tagen wurden bereits meine Device Marketing Names Libraries aktualisiert und heute folgt nun meine OnUpgrade Library. Es gab neben kleinere Aktualisierungen der Abhängigkeiten, Aufräumarbeiten in der Beispiel-App, kleinere Fehlerbehebungen in der Readme und Aktualisierungen des Build-Systems. Dieser Release ist ein reiner Wartungs-Release und sollte nichts an der eigentlichen Funktionalität ändern. Falls ihr Fragen oder Anregungen zur Library habt meldet euch gerne in den Kommentaren.
Patchday - Device Marketing Names aktualisiert
Gestern gab es wieder einmal einen kleinen Patchday für meine aktuellen Projekte. Die Flutter und Android Versionen meiner Device Marketing Names Library wurden dabei mit neuen Daten ausgestattet, welche von meinem kleinen Dart Tool Device Identifiers geliefert werden.
Die aktuelle Flutter Library Version der lautet damit 0.6.2 open_in_new und bei Android haben wir Version 0.4.2 open_in_new erreicht. Letztere erhielt darüber hinaus ein paar Aktualisierungen der Abhängigkeiten. Funktional gab es keine Änderungen. Alle weiteren Informationen gibt es wie gewohnt in den Related Links und falls es Fragen gibt, meldet euch gerne in den Kommentaren.
Devlog #1 - Project Space - Mein Einstieg in die Spieleentwicklung
Nachdem ich es bereits vielfach angesprochen habe, gibt es heute nun Devlog #1 zu meinem aktuell in der Entwicklung befindlichen Spiel. Eigentlich wollte ich vor dem ersten Artikel noch ein paar weitere Eckpunkte fertig planen, doch wenn ich jetzt nicht anfange zu schreiben, verliere ich selber den Faden. Damit bin ich auch schon bei meinem ersten generellen Learning in diesem Themenbereich: Spieleentwicklung ist selbst für erfahrene Softwareentwickler eine völlig neue Ebene an Themenbereichen in denen man sich verlieren kann.
Als Softwareentwickler bin ich sicherlich nicht der Erste, der sich denkt ein Spiel zu programmieren wäre super. Entsprechend habe ich diesen Plan schon sehr lange, allerdings fehlte mir die Zeit und Motivation mich in diesem Bereich einzuarbeiten. Um das Zeitproblem zu lösen habe ich im letzten Jahr meine bis dato aktiven Projekte in einen Zustand gebracht, der mir eine schnelle und einfache Maintenance inklusive Deployment erlaubt. Mit der dadurch freigewordenen Zeit stieg auch die Motivation und die ersten Game-Dev Gehversuche starteten in 2022. Doch fangen wir erst einmal mit meinem groben Plan und der eigentlichen Idee an.
Godot 4.0 veröffentlicht
Nach mehreren Betas und Release Candidates ist es soweit, Godot 4.0 ist erscheinen. In einem umfangreichen Youtube Video, welches ich im unteren Teil der News eingebunden habe, gibt es einen schnellen Überblick zu neuen Features, Änderungen und der verbesserten Performance. Insgesamt hat sich extrem viel bei der Open Source Game Engine getan und ich freue mich sehr darauf Godot 4.0 auszuprobieren.
Zapp! - Dart & Flutter Anwendungen im Browser entwickeln
In der Software Entwicklung ist es extrem hilfreich schnell und einfach Dinge ausprobieren zu können. Genau dies und noch wesentlich mehr ist möglich mit Zapp!, einem Dart & Flutter Tool, welches euch erlaubt Anwendungen direkt im Browser zu entwickeln. Dabei bekommt man eine Web-IDE basierend auf VSCode, kann pub.dev open_in_new Abhängigkeiten einbinden, die eigenen Ergebnisse teilen und sogar in Webseiten einbinden. Zusätzlich kann das Ganze mit GitHub verbunden werden, sodass man dort vorhandene Repositories mit wenigen Klicks in Zapp! laden kann. Das Tool wird von der bekannten Firma Invertase open_in_new entwickelt, als Open Source Projekt.
Ich persönlich bin für meine eigentliche Entwicklung gerne auf meinem lokalen System unterwegs, doch derartige Technik ermöglicht diverse hilfreiche Einsatzzwecke. Egal ob es um die gemeinsame Entwicklung, Tutorial Sessions oder aber die schnelle Vorführung einer Library geht, bei all diesen Dingen und noch wesentlich mehr kann Zapp! helfen. So ist es zum Beispiel möglich mit nur einem Klick auf folgenden Link open_in_new die Example App meiner Device Marketing Names - Dart / Flutter Library zu starten. Bei Interesse kann man sie sogar anpassen und Dinge ausprobieren. Derartige Abläufe sind extrem hilfreich, wenn man auf der Suche nach der richtigen Library ist und spezifische Funktionen schnell und unkompliziert testen möchte.
Ich werde Zapp! auf jeden Fall im Auge behalten und Links zu den jeweiligen Example Apps meiner Libraries in die dazugehörigen GitHub Readme Dateien legen. So können Entwickler unkompliziert testen, ob meine Software ihnen helfen kann.
Flutter Forward - Die Sessions sind online
Falls ihr Interesse an Flutter habt, könnten die Sessions der Flutter Forward Konferenz, welche vor kurzem stattfand, interessant für euch sein. Auf der Webseite open_in_new, wie auch auf Youtube open_in_new findet ihr alle Informationen zum Event und natürlich auch alle Sessions als Videos.
Im Binge Watching Kontext kann ich die Youtube Playlist empfehlen, falls ihr allerdings mehr Informationen vor dem ansehen wollt, nutzt lieber die offizielle Webseite. Ich werde in den nächsten Tagen mal die Liste der über 30 Videos durchgehen und mir eine eigene kleine Watch List zusammenstellen.