Zum Inhalt springen

KI im technischen Arbeitsalltag – Programmierassistenz mit Tests absichern

Aus MOOCsWiki Staging
aiMOOC-Siegel aiMOOC

KI im technischen Arbeitsalltag – Programmierassistenz mit Tests absichern

QR-Code


KI im technischen Arbeitsalltag – Programmierassistenz mit Tests absichern

Kurzbeschreibung: Du lernst, KI-generierten Programmcode zu verstehen, kritisch zu prüfen und mit automatisierten Tests abzusichern. Im Mittelpunkt steht nicht das schnelle Übernehmen eines Vorschlags, sondern die eigenständige Qualitätsprüfung.

Zielgruppe: Ausbildung in IT-, Elektro-, Automatisierungs- und technischen Berufen mit ersten Programmiererfahrungen.

Sicherheitsrahmen: Alle Übungen laufen ausschließlich lokal oder in ausdrücklich autorisierten Testumgebungen mit fiktiven Daten. Es werden keine fremden Netze, Produktivanlagen, Zugangsdaten oder Kundendaten verwendet oder ungefragt an KI-Dienste übertragen.


Einleitung

KI-Programmierassistenz kann Code erklären, Vorschläge erzeugen und Testideen liefern. Sie kann aber weder fachliche Anforderungen noch die Verantwortung für eine Freigabe übernehmen.

Für den Arbeitsalltag gilt deshalb eine einfache Regel:

Verstehen → Prüfen → Testen → Freigeben.

Du arbeitest in diesem Kurs mit einem kleinen Python-Beispiel und pytest. Der Fall ist vollständig fiktiv und benötigt keinen Netzwerkzugriff.

Das Video des verifizierten GitHub-Kanals zeigt Test-Driven Development mit GitHub Copilot. Nutze es als Demonstration, nicht als Beweis dafür, dass KI-generierter Code automatisch korrekt ist.


Lernziele

Nach dem Kurs kannst Du:

Kompetenz Du kannst ...
Codeverständnis einen KI-Vorschlag Zeile für Zeile mit einer Anforderung vergleichen.
Unit-Test normale Fälle, Grenzwerte und ungültige Eingaben prüfen.
Testautomatisierung lokale Tests mit pytest ausführen und Ergebnisse nachvollziehen.
Code-Review begründen, warum ein Vorschlag freigegeben, geändert oder verworfen wird.
Quellenkritik Herstellerdokumentation, Behördenempfehlungen und Community-Leitfäden unterscheiden.


Sicherheitsrahmen für alle Übungen

  1. Testumgebung: Verwende nur Deinen lokalen Übungsordner, eine schulische Sandbox oder eine ausdrücklich autorisierte Laborumgebung.
  2. Testdaten: Verwende ausschließlich fiktive Werte wie Bestellsummen, Artikelnummern oder Beispieltexte.
  3. Datenschutz: Kopiere keine Kundendaten, Zugangsdaten, internen Schlüssel, vertraulichen Quellcode oder Produktionsprotokolle in eine KI.
  4. Netzwerksicherheit: Führe keine Scans, Exploits oder Tests gegen fremde Netze, Geräte, Dienste oder Produktivanlagen aus.
  5. Verantwortung: Übernimm KI-Code erst, wenn Du ihn selbst verstanden, geprüft und getestet hast.


Kurze Lerneinheiten


Lerneinheit 1: KI-Vorschlag ist kein Qualitätsnachweis

Ein Programmierassistent erzeugt wahrscheinliche Lösungen. Ein plausibel aussehender Vorschlag kann trotzdem einen Grenzwert falsch behandeln, eine Ausnahme vergessen oder eine unsichere Abhängigkeit vorschlagen.

Die GitHub-Dokumentation weist ausdrücklich darauf hin, dass generierte Vorschläge überprüft und getestet werden sollen. BSI und ANSSI empfehlen ebenfalls, generierten Quellcode durch Entwicklerinnen und Entwickler zu prüfen und nachzuvollziehen.

Merksatz: Ein KI-Vorschlag ist ein Arbeitsentwurf, kein Freigabenachweis.


Lerneinheit 2: Ausbildungsfall „Versandkosten“

Du arbeitest an einer fiktiven Ersatzteilverwaltung für eine Ausbildungswerkstatt.

Anforderung:

Eingabe Erwartetes Ergebnis
Bestellwert kleiner als 0 Euro Fehler auslösen
Bestellwert von 0 bis unter 100 Euro 5,90 Euro Versandkosten
Bestellwert ab 100 Euro 0,00 Euro Versandkosten

Eine KI schlägt folgenden Code vor:

def versandkosten(bestellwert):
    if bestellwert < 0:
        raise ValueError("Bestellwert darf nicht negativ sein")
    if bestellwert > 100:
        return 0.0
    return 5.90

Der Code sieht plausibel aus. Trotzdem enthält er einen Fehler.

Prüffrage: Welche Eingabe trennt den korrekten vom fehlerhaften Fall?


Gestufte Hilfe 1

Vergleiche die Wörter ab 100 Euro mit dem Vergleichsoperator im Code.


Gestufte Hilfe 2

Prüfe gezielt die drei Werte 99,99 Euro, 100,00 Euro und 100,01 Euro.


Gestufte Hilfe 3

Für genau 100,00 Euro muss die Funktion 0,00 zurückgeben. Der Ausdruck bestellwert > 100 erfüllt diese Anforderung nicht.

Korrektur:

def versandkosten(bestellwert):
    if bestellwert < 0:
        raise ValueError("Bestellwert darf nicht negativ sein")
    if bestellwert >= 100:
        return 0.0
    return 5.90


Lerneinheit 3: Mit pytest lokal absichern

Die Testpyramide erinnert daran, viele schnelle Tests auf Komponentenebene mit weniger aufwendigen Integrations- und Ende-zu-Ende-Tests zu kombinieren.

Für unseren kleinen Ausbildungsfall reichen lokale Unit-Tests.

import pytest
from versand import versandkosten

@pytest.mark.parametrize(
    "bestellwert, erwartet",
    [
        (0, 5.90),
        (99.99, 5.90),
        (100, 0.0),
        (150, 0.0),
    ],
)
def test_versandkosten(bestellwert, erwartet):
    assert versandkosten(bestellwert) == erwartet

def test_negativer_bestellwert():
    with pytest.raises(ValueError):
        versandkosten(-1)

Ausführung im lokalen Projektordner:

python -m pytest -q

Die offizielle pytest-Dokumentation beschreibt unter anderem Parametrisierung, Fixtures und die gezielte Ausführung einzelner Tests.

Diese Microsoft-Learn-Demonstration von 2026 zeigt den Einsatz von GitHub Copilot bei Unit-Tests. Entscheidend bleibt: Du prüfst selbst, ob die Tests die fachliche Anforderung wirklich abdecken.


Lerneinheit 4: Warum von KI erzeugte Tests allein nicht reichen

Angenommen, die KI erzeugt nur diese beiden Tests:

def test_kleine_bestellung():
    assert versandkosten(50) == 5.90

def test_grosse_bestellung():
    assert versandkosten(150) == 0.0

Beide Tests können bestehen, obwohl der Fehler bei genau 100 Euro weiterhin vorhanden ist.

Das zeigt ein zentrales Qualitätsproblem: Wenn dieselbe KI sowohl Implementierung als auch Tests erzeugt, kann derselbe Denkfehler in beiden Teilen vorkommen.

OWASP empfiehlt deshalb unter anderem unabhängige Negativ- und Grenzfalltests sowie eine menschliche Prüfung von KI-generierten Teständerungen.

Das GitHub-Video zeigt Möglichkeiten, fehlende Unit-Tests zu erzeugen. Für die Ausbildung gilt zusätzlich: Übernimm Testfälle nie ungeprüft.


Lerneinheit 5: Review, Regression und Freigabe

Ein Code-Review ergänzt automatisierte Tests. Dabei wird geprüft, ob der Code verständlich, wartbar, fachlich korrekt und sicher ist.

Nach einer Korrektur helfen Regressionstests, bereits geprüfte Eigenschaften bei späteren Änderungen erneut zu kontrollieren.

In größeren Projekten werden solche Tests häufig automatisiert in einen Continuous-Integration-Ablauf eingebunden. Für diesen Kurs genügt die lokale Ausführung.


Das Drei-Tore-Modell für KI-Code

Tor Frage Freigabe nur wenn ...
1 Verstehen Kannst Du erklären, was jede relevante Codezeile tut? Du die Logik ohne KI nacherzählen kannst.
2 Testen Sind Normalfälle, Grenzwerte und Fehlerfälle geprüft? die erwarteten Ergebnisse aus der Anforderung abgeleitet sind.
3 Freigeben Gibt es offene Sicherheits-, Daten- oder Wartbarkeitsrisiken? Du die Entscheidung fachlich begründen kannst.

Prüfregel: Ein grüner Testlauf ersetzt Tor 1 und Tor 3 nicht.


Kompetenzaufgaben mit Feedback


Basisaufgabe

Aufgabe: Erkläre, warum zwei erfolgreiche Tests für die Werte 50 und 150 Euro den Versandkosten-Code noch nicht ausreichend absichern.

Begründetes Feedback: Eine gute Antwort nennt den fehlenden Grenzwert 100 Euro. Tests zeigen nur Verhalten für geprüfte Fälle. Nicht geprüfte Eingaben bleiben offen.


Anwendungsaufgabe

Aufgabe: Ergänze einen Test für 100 Euro und einen Negativtest für -1 Euro. Führe beide lokal aus.

Begründetes Feedback: Der Test für 100 Euro prüft die Grenze zwischen kostenpflichtigem und kostenfreiem Versand. Der Negativtest prüft, ob die Funktion ungültige Eingaben kontrolliert ablehnt.


Transferaufgabe

Aufgabe: Übertrage das Vorgehen auf eine fiktive Funktion temperatur_status(wert), die unter 0 „Frost“, von 0 bis 30 „Normal“ und über 30 „Warnung“ liefert. Leite mindestens fünf Testfälle zuerst aus der Anforderung ab und schreibe danach erst den Code.

Begründetes Feedback: Besonders aussagekräftig sind die Grenzwerte -1, 0, 30 und 31 sowie ein normaler Wert aus der Mitte. Wer die Testfälle zuerst aus der Spezifikation ableitet, reduziert das Risiko, lediglich den vorhandenen Code nachzutesten.


Aktuelle Quellen kritisch vergleichen

Stand der Prüfung: 9. Oktober 2026.

Quelle Wofür geeignet? Kritische Einordnung
pytest-Dokumentation Syntax, Testausführung, Parametrisierung, Fixtures Primärquelle für das Werkzeug; beantwortet nicht die organisatorischen Risiken von KI-Nutzung.
GitHub Docs – Responsible Use Produktbezogene Grenzen und Hinweise zu KI-Code Aktuelle Herstellerquelle mit direktem Produktwissen; Herstellerperspektive sollte durch unabhängige Quellen ergänzt werden.
BSI und ANSSI – AI Coding Assistants Sicherheit, Organisation, Qualitätsprüfung Behördenempfehlung mit Sicherheitsfokus; Stand September 2024, deshalb mit neueren Quellen ergänzen.
OWASP – Secure Coding with AI Cheat Sheet Praktische Risiken agentischer und KI-gestützter Entwicklung Sehr aktuell und praxisnah; Community-Leitfaden, kein formaler Standard.
NIST AI Risk Management Framework Übergeordnetes Risikomanagement und Vertrauenswürdigkeit Breiter freiwilliger Rahmen; AI RMF 1.0 wird 2026 überarbeitet und ist nicht speziell auf Unit-Tests zugeschnitten.
NIST TEVV-Athlon Test, Evaluation, Verification und Validation von KI-Systemen 2026 als Initial Public Draft veröffentlicht; aktuell, aber als Entwurf nicht mit einer endgültigen Norm verwechseln.

Quellenregel für die Ausbildung: Nutze für Werkzeugfunktionen möglichst die offizielle Dokumentation. Ergänze Herstellerangaben bei Sicherheitsfragen durch unabhängige Behörden- oder Fachquellen. Prüfe immer Datum, Geltungsbereich und Status einer Quelle.


Medienrechte und Mediencheck

Die eingebundenen Wikimedia-Commons-Dateien wurden vor der Verwendung auf Dateiname und Lizenzangaben geprüft.

Medium Rechtehinweis
Test-driven development.svg Wikimedia Commons; CC BY-SA 3.0 und GFDL gemäß Dateiseite.
Testing Pyramid.svg Wikimedia Commons; CC BY-SA 4.0 gemäß Dateiseite.
Wikimedia Code Review Meeting.jpg Wikimedia Commons; CC BY-SA 3.0 gemäß Dateiseite.
Continuous Integration.jpg Wikimedia Commons; CC BY-SA 4.0 gemäß Dateiseite.

Die YouTube-Videos stammen aus offiziellen beziehungsweise verifizierten GitHub- und Microsoft-Learn-Kanälen. Sie werden nur über den YouTube-Player eingebettet. Eine freie Nachnutzungs- oder OER-Lizenz der Videos wird hier nicht behauptet. Es werden keine Sofatutor-Medien verwendet.


Interaktive Aufgaben


Quiz: Teste Dein Wissen

Was ist der wichtigste erste Schritt vor der Übernahme von KI-generiertem Code? (Den Code selbst verstehen und prüfen) (!Den Code sofort produktiv einsetzen) (!Nur die Formatierung kontrollieren) (!Alle vorhandenen Tests löschen)




Was beweist ein erfolgreicher automatisierter Test? (Dass der geprüfte Fall das erwartete Ergebnis geliefert hat) (!Dass das gesamte Programm fehlerfrei ist) (!Dass keine Sicherheitslücke existiert) (!Dass die KI die Anforderung vollständig verstanden hat)




Welcher Wert deckt den Grenzfehler im Versandkostenbeispiel direkt auf? (100 Euro) (!50 Euro) (!150 Euro) (!75 Euro)




Welche Umgebung ist für die Übungen dieses Kurses vorgesehen? (Eine lokale oder ausdrücklich autorisierte Testumgebung mit fiktiven Daten) (!Ein fremdes Firmennetz) (!Eine laufende Produktivanlage) (!Ein Kundenserver ohne Freigabe)




Welche Information gehört nicht ungeprüft in eine KI-Anfrage? (Zugangsdaten) (!Eine fiktive Bestellsumme) (!Ein selbst erfundener Funktionsname) (!Ein allgemeiner Testfall)




Was prüft ein Unit-Test typischerweise? (Eine einzelne abgrenzbare Programmeinheit) (!Die gesamte Lieferkette eines Unternehmens) (!Jede mögliche Eingabe eines komplexen Systems) (!Die Lizenz aller Betriebssysteme)




Warum sollten KI-generierte Tests unabhängig geprüft werden? (Weil Implementierung und Tests denselben Denkfehler enthalten können) (!Weil automatisierte Tests grundsätzlich verboten sind) (!Weil Unit-Tests nur manuell ausgeführt werden dürfen) (!Weil KI keine Programmiersprache lesen kann)




Wozu dient ein Regressionstest? (Er erkennt unerwünschte Auswirkungen späterer Änderungen) (!Er ersetzt die Anforderungsanalyse) (!Er überträgt Kundendaten an Testsysteme) (!Er garantiert vollständige Fehlerfreiheit)




Welche Reihenfolge passt zur testgetriebenen Entwicklung? (Zuerst Test formulieren dann Implementierung anpassen und refaktorieren) (!Zuerst Produktivsystem ändern dann Anforderungen suchen) (!Zuerst Tests löschen dann Code kopieren) (!Zuerst Freigeben dann prüfen)




Welche Quelle ist für die genaue pytest-Syntax am geeignetsten? (Die offizielle pytest-Dokumentation) (!Ein anonymer Kommentar ohne Datum) (!Eine Werbeanzeige ohne Quellen) (!Ein ungeprüfter KI-Text ohne Verweise)





Memory

Unit-Test Prüfung einer einzelnen Programmeinheit
Grenzwert Eingabe direkt an einer fachlichen Grenze
Regressionstest Kontrolle gegen unerwünschte Nebenwirkungen späterer Änderungen
Testorakel Festgelegtes erwartetes Ergebnis eines Tests
Review Menschliche fachliche und technische Prüfung
Fixture Definierter wiederverwendbarer Testkontext
Sandbox Abgeschirmte Testumgebung
Parametrisierung Ein Test wird mit mehreren Datensätzen ausgeführt





Drag and Drop

Ordne die richtigen Begriffe zu. Thema
Code verstehen Verantwortung vor der Übernahme
Grenzwerte testen Fehler an fachlichen Schwellen finden
Negativtests schreiben Ungültige Eingaben kontrolliert prüfen
Regressionstests ausführen Auswirkungen späterer Änderungen erkennen
Quellen vergleichen Verlässlichkeit und Perspektive einschätzen





Kreuzworträtsel

Review Wie heißt die menschliche Prüfung von Codeänderungen?
Grenzwert Wie heißt eine Eingabe direkt an einer fachlichen Schwelle?
Fixture Wie nennt pytest einen definierten wiederverwendbaren Testkontext?
Sandbox Wie heißt eine abgeschirmte Testumgebung?
Regression Welcher Begriff bezeichnet die erneute Prüfung gegen alte Fehler?
Testorakel Wie heißt das festgelegte erwartete Ergebnis eines Tests?





LearningApps


Lückentext

Vervollständige den Text.
KI-generierter Code ist zunächst ein

und kein Qualitätsnachweis.
Vor der Freigabe musst Du den Code selbst

.
Ein Test direkt an einer fachlichen Grenze heißt

.
Ein Test mit ungültigen Eingaben wird häufig als

bezeichnet.
Automatisierte Tests können mit einem Framework wie

ausgeführt werden.
Ein erneuter Test nach Änderungen kann als

dienen.
Vertrauliche Informationen wie Zugangsdaten gehören nicht in einen

.
Eine abgeschirmte Übungsumgebung wird häufig als

bezeichnet.




Offene Aufgaben


Leicht

  1. Codeverständnis: Markiere im Versandkostenbeispiel jede Codezeile und beschreibe in einem Satz, was sie bewirkt.
  2. Grenzwertanalyse: Erstelle eine kleine Tabelle mit den Eingaben 99,99 Euro, 100 Euro und 100,01 Euro sowie den erwarteten Ergebnissen.
  3. Unit-Test: Formuliere einen zusätzlichen Test für den Bestellwert 0 Euro und begründe, warum dieser Fall sinnvoll ist.
  4. Datenschutz: Erstelle eine Liste aus fünf Informationen, die nicht ungeprüft an einen externen KI-Dienst übertragen werden sollten.


Standard

  1. Testfall: Entwickle sechs Testfälle für eine fiktive Rabattfunktion mit zwei Grenzwerten und dokumentiere Erwartungswerte.
  2. Testgetriebene Entwicklung: Schreibe zuerst Tests für eine kleine lokale Funktion und implementiere anschließend nur so viel Code, dass die Tests bestehen.
  3. Code-Review: Tausche Deinen lokalen Beispielcode mit einer Lernpartnerin oder einem Lernpartner und erstellt gegenseitig drei begründete Review-Kommentare.
  4. Testautomatisierung: Nutze pytest-Parametrisierung, um mindestens fünf Eingabewerte mit einem gemeinsamen Test zu prüfen.


Schwer

  1. Softwarequalität: Entwirf für einen KI-generierten Funktionsvorschlag ein Qualitätsraster mit Kriterien für Korrektheit, Verständlichkeit, Testbarkeit und Sicherheit.
  2. Regressionstest: Baue absichtlich einen harmlosen Grenzfehler in einen lokalen Übungscode ein und zeige, welcher Test ihn zuverlässig erkennt.
  3. Quellenkritik: Vergleiche GitHub-Dokumentation, OWASP und BSI oder ANSSI zu KI-Programmierassistenz und ordne Gemeinsamkeiten sowie unterschiedliche Perspektiven ein.
  4. Versionsverwaltung: Dokumentiere einen lokalen Mini-Workflow aus Anforderung, KI-Vorschlag, eigener Prüfung, Test, Korrektur und Commit-Nachricht ohne vertrauliche Daten.




Text bearbeiten Bild einfügen Video einbetten Interaktive Aufgaben erstellen



Lernkontrolle

  1. Fehleranalyse: Ein KI-Assistent liefert Code und passende Tests, alle Tests bestehen. Begründe anhand eines selbst gewählten Beispiels, warum trotzdem ein Fehler vorhanden sein kann, und entwickle einen zusätzlichen unabhängigen Test.
  2. Grenzwertanalyse: Für eine Funktion mit den Bereichen unter 10, 10 bis 20 und über 20 legst Du eine möglichst kleine, aber aussagekräftige Testmenge fest. Begründe jede Eingabe.
  3. Teststrategie: Entscheide für einen fiktiven Ausbildungsbetrieb, welche Prüfungen lokal als Unit-Tests laufen sollen und welche erst in einer autorisierten Integrationsumgebung sinnvoll sind.
  4. Quellenbewertung: Eine Herstellerdokumentation und ein unabhängiger Sicherheitsleitfaden widersprechen sich scheinbar. Beschreibe ein Vorgehen, mit dem Du Aktualität, Geltungsbereich und Interessenlage prüfst.
  5. Datensicherheit: Entwickle einen sicheren Ablauf, mit dem ein KI-Assistent bei einer Programmieraufgabe helfen darf, ohne reale Kunden- oder Zugangsdaten zu erhalten.
  6. Freigabeentscheidung: Ein KI-Vorschlag ist verständlich und alle Tests bestehen, verwendet aber eine neue externe Bibliothek. Beschreibe zusätzliche Prüfungen, die vor einer Freigabe nötig sind.




Lernnachweis

Für einen Lernnachweis solltest Du zeigen, dass Du nicht nur Tests ausführen, sondern deren Aussagekraft begründen kannst.

  1. Anforderung: Du leitest Testfälle nachvollziehbar aus einer fachlichen Beschreibung ab.
  2. Codeverständnis: Du erklärst die Logik eines KI-generierten Vorschlags mit eigenen Worten.
  3. Testdesign: Du verwendest Normalfälle, Grenzwerte und mindestens einen Fehlerfall.
  4. Testdurchführung: Du führst die Tests lokal oder in einer ausdrücklich autorisierten Testumgebung aus.
  5. Fehlerbehebung: Du korrigierst einen gefundenen Fehler und belegst die Korrektur durch einen Regressionstest.
  6. Code-Review: Du dokumentierst eine begründete Freigabe- oder Ablehnungsentscheidung.
  7. Datensicherheit: Du nutzt nur fiktive beziehungsweise freigegebene Daten und keine realen Zugangsdaten.
  8. Quellenkritik: Du kannst mindestens zwei fachliche Quellen nach Aktualität, Zuständigkeit und Perspektive einordnen.




OERs zum Thema



Verknüpfte Lernbereiche


aiMOOC-Projekte



Schulfach+




aiMOOCs



aiMOOC Projekte









MOOCwiki · Deutsch

Nach dem Lernen ist vor dem Lernen

Entdecke direkt den nächsten Lernkurs. Weitere Inhalte erscheinen, wenn Du weiter nach unten scrollst.

Zur MOOCwiki-Hauptseite

Mediathek

Inhalte werden geladen ...

Mediathek wird aus dem Wiki geladen ...