KI im technischen Arbeitsalltag – Programmierassistenz mit Tests absichern
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
- Testumgebung: Verwende nur Deinen lokalen Übungsordner, eine schulische Sandbox oder eine ausdrücklich autorisierte Laborumgebung.
- Testdaten: Verwende ausschließlich fiktive Werte wie Bestellsummen, Artikelnummern oder Beispieltexte.
- Datenschutz: Kopiere keine Kundendaten, Zugangsdaten, internen Schlüssel, vertraulichen Quellcode oder Produktionsprotokolle in eine KI.
- Netzwerksicherheit: Führe keine Scans, Exploits oder Tests gegen fremde Netze, Geräte, Dienste oder Produktivanlagen aus.
- 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.90Der 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 -qDie 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.0Beide 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
Offene Aufgaben
Leicht
- Codeverständnis: Markiere im Versandkostenbeispiel jede Codezeile und beschreibe in einem Satz, was sie bewirkt.
- Grenzwertanalyse: Erstelle eine kleine Tabelle mit den Eingaben 99,99 Euro, 100 Euro und 100,01 Euro sowie den erwarteten Ergebnissen.
- Unit-Test: Formuliere einen zusätzlichen Test für den Bestellwert 0 Euro und begründe, warum dieser Fall sinnvoll ist.
- Datenschutz: Erstelle eine Liste aus fünf Informationen, die nicht ungeprüft an einen externen KI-Dienst übertragen werden sollten.
Standard
- Testfall: Entwickle sechs Testfälle für eine fiktive Rabattfunktion mit zwei Grenzwerten und dokumentiere Erwartungswerte.
- Testgetriebene Entwicklung: Schreibe zuerst Tests für eine kleine lokale Funktion und implementiere anschließend nur so viel Code, dass die Tests bestehen.
- Code-Review: Tausche Deinen lokalen Beispielcode mit einer Lernpartnerin oder einem Lernpartner und erstellt gegenseitig drei begründete Review-Kommentare.
- Testautomatisierung: Nutze pytest-Parametrisierung, um mindestens fünf Eingabewerte mit einem gemeinsamen Test zu prüfen.
Schwer
- Softwarequalität: Entwirf für einen KI-generierten Funktionsvorschlag ein Qualitätsraster mit Kriterien für Korrektheit, Verständlichkeit, Testbarkeit und Sicherheit.
- Regressionstest: Baue absichtlich einen harmlosen Grenzfehler in einen lokalen Übungscode ein und zeige, welcher Test ihn zuverlässig erkennt.
- Quellenkritik: Vergleiche GitHub-Dokumentation, OWASP und BSI oder ANSSI zu KI-Programmierassistenz und ordne Gemeinsamkeiten sowie unterschiedliche Perspektiven ein.
- Versionsverwaltung: Dokumentiere einen lokalen Mini-Workflow aus Anforderung, KI-Vorschlag, eigener Prüfung, Test, Korrektur und Commit-Nachricht ohne vertrauliche Daten.


Lernkontrolle
- 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.
- 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.
- 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.
- Quellenbewertung: Eine Herstellerdokumentation und ein unabhängiger Sicherheitsleitfaden widersprechen sich scheinbar. Beschreibe ein Vorgehen, mit dem Du Aktualität, Geltungsbereich und Interessenlage prüfst.
- Datensicherheit: Entwickle einen sicheren Ablauf, mit dem ein KI-Assistent bei einer Programmieraufgabe helfen darf, ohne reale Kunden- oder Zugangsdaten zu erhalten.
- 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.
- Anforderung: Du leitest Testfälle nachvollziehbar aus einer fachlichen Beschreibung ab.
- Codeverständnis: Du erklärst die Logik eines KI-generierten Vorschlags mit eigenen Worten.
- Testdesign: Du verwendest Normalfälle, Grenzwerte und mindestens einen Fehlerfall.
- Testdurchführung: Du führst die Tests lokal oder in einer ausdrücklich autorisierten Testumgebung aus.
- Fehlerbehebung: Du korrigierst einen gefundenen Fehler und belegst die Korrektur durch einen Regressionstest.
- Code-Review: Du dokumentierst eine begründete Freigabe- oder Ablehnungsentscheidung.
- Datensicherheit: Du nutzt nur fiktive beziehungsweise freigegebene Daten und keine realen Zugangsdaten.
- 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-HauptseiteMediathek
Mediathek wird aus dem Wiki geladen ...
Keine passenden Inhalte gefunden. Bitte ändere Suche oder Filter.
NEWSLernweltNOAH fragenInhalt melden · Hinweise zu Fehlern, Quellen, Medienrechten oder Dubletten