Whiteboxtest-Übungsaufgabe „Rabatt“
Übungsaufgabe zur Whitebox-Testfall-Erstellung und Berechnung der Codeüberdeckung am Beispiel einer „Rabatt“-Funktion.
Übungsaufgabe zur Whitebox-Testfall-Erstellung und Berechnung der Codeüberdeckung am Beispiel einer „Rabatt“-Funktion.
Leitfragen zum Überprüfen Deines Verständnisses der Blackbox-Testfallerstellung: was Blackbox-Tests ausmacht, welche Systematiken es gibt und was Äquivalenzklassenbildung und Grenzwertanalyse bedeuten.
Leitfragen zum Überprüfen Deines Verständnisses von testgetriebener Entwicklung (englisch test-driven development, TDD): Phasen Red, Green und Refactor, Herkunft, Blackbox-Sicht und Abgrenzung zur Codeüberdeckung.
Kleine Übungsaufgabe zur Erstellung von Testfällen nach Blackbox-Systematik für eine Methode, die Punkte in einem String zählt.
Übungsaufgabe zur Erstellung von Testfällen nach Blackbox-Systematik für eine Funktion, die eine Division mit Rest vornimmt (wie in der Grundschule).
Übungsaufgabe zur Erstellung von Blackbox-Testfällen für eine Funktion, die Guthaben und Überziehungen eines Girokontos verzinst. Du bildest Äquivalenzklassen und Grenzwerte für zwei Parameter und suchst Lücken in der Spezifikation.
Kleine Übungsaufgabe zur Erstellung von Testfällen nach Blackbox-Systematik für eine Methode, die die Anzahl der einzurichtenden Klassen berechnen soll.
Übungsaufgaben zur Erstellung von Testfällen nach Blackbox-Systematik für eine Funktion, die aus den Einzelergebnissen die Abschlussnote nach den Bestehensregeln der Ausbildungsverordnung berechnet. Du bestimmst systematisch Äquivalenzklassen und Grenzwerte und formulierst abschließend den Algorithmus in Pseudocode.
Zu einer gegebenen Funktion (Versandkostenrechner) soll ein Kontrollflussgraph erstellt werden, die McCabe-Zahl berechnet werden (beides optional), die Überdeckungsmetriken für einen bestehenden Test berechnet werden, weitere Tests aus Whitebox-Sicht ergänzt werden und alles mit einem Code-Coverage-Tool implementiert werden.
Wenn Linux-Clients in Windows-Netzwerke integriert werden sollen, muss die Authentifizierung und das Freigabemanagement von Linux aus angesprochen werden. Dieser Artikel ist mehr ein Erfahrungsbericht als eine Schritt für Schritt Anleitung, wie ein Linux-Client (Debian-basisiert) in ein Active-Directory eingebunden werden kann: Anpassung der SSSD-Konfigurationsdateien zur Authentifizierung, Anpassung der PAM-Konfigurationsdatein zum Einbinden der Windows-Freigaben und Home-Verzeichnisse.
Leitfragen und Übungsaufgaben zu Clean Code: Der Artikel enthält eine Reihe von Leitfragen zum Verständnis der Prinzipien (SLA, SRP, SoC, Source Code Conventions) und Praktiken (Issue Tracking, Integrationstest, Lesen, Reviews), die im orangen Grad des Clean-Code-Developers zusammengefasst sind.
Leitfragen und Übungsaufgaben zu Clean Code: Der Artikel enthält eine Reihe von Leitfragen zum Verständnis der Prinzipien (DRY, KISS, BoPO, FCoI, IOSP) und Praktiken (Boy Scout, Root Cause, VCS, Refactoring, Reflection), die im roten Grad des Clean-Code-Developers zusammengefasst sind. Am Ende findet sich eine praktische Übungsaufgabe, bei der Clean-Code-Prinzipien angewendet werden sollen.
Aufgaben zu den Grundlagen von ReST: Zunächst ein paar allgemeine Leitfragen zu Begriffen und Konzepten, dann zwei Fallbeispiele (API einer smarten Heizung und eines Industrieroboters), anhand derer das Grundlagenverständnis für ReST-Schnittstellen abgeprüft werden kann.
Liegen die Anforderungen der Kundschaft für ein Microcontroller-Projekt vor, so müssen diese nach dem Wasserfall-Modell als nächstes analysiert, mit Realisierungsoptionen versehen und als Pflichtenheft dokumentiert werden. Der Artikel zeigt außerdem, wer das Pflichtenheft schreibt und freigibt, welche Inhalte typisch sind, welche Rolle es für Vertrag, Tests, Änderungen und Abnahme spielt und wie es sich vom Lastenheft unterscheidet.
Wird ein Microcontroller-Projekt nach dem Wasserfall-Modell entwickelt, dann müssen zunächst die Anforderungen aus Auftraggebersicht definiert und in einem Lastenheft dokumentiert werden. Welche Aspekte sollten hierbei erfasst werden? Der Artikel klärt außerdem, wer das Lastenheft schreibt und abstimmt, wofür es im Projekt verwendet wird, welche Inhalte typisch sind und wie es sich vom Pflichtenheft unterscheidet.
Was ist wirklich wichtig? Gute Informatiker*innen denken über Systemgrenzen hinaus – und sorgen sich entsprechend um eine nachhaltige Lebensweise. Der berufliche Alltag fängt mit unserem Weg ins Büro an: Wer ohne Auto ins Büro fährt, kann bis zu einer Tonne CO2 pro Jahr einsparen. Wäre es nicht an der Zeit, das nicht nur zu wissen, sondern endlich damit anzufangen?
Für die Zustandsübergänge (Transitionen) unseres Command-Line-Interface-Programms müssen noch Effekte (Aktionen) erstellt werden. Dabei müssen wir eine ganze Menge umbauen, um für Typsicherheit zu sorgen.
Am Beispiel eines Command-Line-Interfaces wird das State-Pattern beispielhaft in Java implementiert – nachdem die Grundstruktur und die Zustands-ENUMS in den vorigen Teilen erstellt wurden, geht es jetzt um die objektorientierte Realisierung der Transitionen und Menüstruktur.
Am Beispiel eines Command-Line-Interfaces wird das State-Pattern beispielhaft in Java implementiert. In diesem Teil geht es um das Instanzenmanagement der einzelnen Zustandsklassen mit Hilfe von Singletons/Enums.
Am Beispiel eines Programms mit Kommandozeilenmenü wird das State-Pattern beispielhaft in Java implementiert: Eine Fingerübung, um das Pattern, Transitionen und die Elemente des UML-Zustandsdiagramms zu verinnerlichen. Im ersten Teil geht es zunächst um den Aufbau des Patterns selbst und die Grundstruktur.
Viele Auszubildende nutzen in ihren Projektdokumentationen das „Wasserfallmodell“ auf Basis einer Grafik, die Winston W. Royce als Beschreibung einer unbefriedigenden Ausgangslage herangezogen hat. Dass er daraufhin fünf wesentliche Schritte formuliert hat, die diesem Modell hinzugefügt werden müssen, um Risiken zu minimieren, ist über die Zeit scheinbar verloren gegangen. Wir nähern uns diesen fünf Schritten über das Originaldokument und Leitfragen.
Es soll ein Webcrawler programmiert werden, der den eigenen Internetauftritt nach dort veröffentlichten E-Mail-Adressen durchsucht. Für die betroffenen Besitzer der E-Mail-Konten sollen so Awareness-Trainings gegen Social-Engineering-Angriffe angeboten werden.
Gute Software braucht gute Dokumentation – ohne unnötigen Aufwand. Eine erste Anlaufstelle ist häufig die `Readme.md`-Datei in git-Repositorys. Aber: für wen schreibe ich die eigentlich? Was sollte, was muss da rein? Wie formatiere ich die Readme-Datei mit Markdown?
Mobilitätsdatenbank erstellen: Übungsaufgabe/Gruppenklassenarbeit, um in Kleingruppen in kürzester Zeit eine Datenbank anhand der Anforderungsbeschreibung zu Modellieren (ERD, RM, SQL-DDL)
Server-Datenbank erstellen: Übungsaufgabe/Gruppenklassenarbeit um in Kleingruppen in kürzester Zeit eine Datenbank anhand der Anforderungsbeschreibung zu Modellieren (ERD, RM, SQL-DDL)
Reguläre Ausdrücke gelten als nicht wartbar. Zu kryptisch ist ihr Aufbau. Trotzdem kann man mit etwas Übung einen Blick dafür entwickeln, warum Zeichenketten durch Muster gefunden werden oder nicht gefunden werden. Hier sind ein paar Übungsaufgaben, um den Blick zu schärfen!
Die Mustererkennung Regulärer Ausdrücke (RegEx) ermöglicht Automatisierungen an Stellen, wo Handarbeit mühsam und langwierig ist. Telefonnummern in unterschiedlichen Formaten gespeichert? In einer CSV-Datei alle Spalten in verkehrter Reihenfolge? Wo stecken im Fließtext Geldbeträge mit Nachkommastellen? Derlei Aufgaben lassen sich mit RegEx lösen – besser, man kennt sie!
DELETE-Statements löschen selektierte Datensätze. Sie gehören zur DML-Sprachfamilie, lassen also die Datenstruktur (z. B. auch den Zähler für automatisch vergebene Schlüssel) unangetastet. Der Artikel zeigt das Löschen mit Unterabfragen, die Wirkung von Fremdschlüsseln, das Archivieren in einer Transaktion und den Unterschied zu TRUNCATE und DROP.
UPDATE-Statements ändern den Inhalt von selektierten Datensätzen. Die Werte können aus Literalen, Subqueries oder Formeln stammen. Der Artikel zeigt prozentuale Änderungen, Bedingungen über andere Tabellen, Fallunterscheidungen mit CASE, den Umgang mit NULL und typische Fehler.
INSERT-Statements sind zuständig dafür, neue Datensätze in die Tabellen einzufügen. Als Datenquelle können Literale oder SELECT-Statements dienen. Der Artikel zeigt, welche Werte nicht genannte Spalten erhalten, wie man mehrere Zeilen auf einmal oder Abfrageergebnisse (z. B. für ein Archiv) einfügt und woran ein INSERT scheitern kann.