Schlussprüfung — Fachinformatiker Anwendungsentwicklung

Wissens-Check zum gesamten Kurs 'Fachinformatiker Anwendungsentwicklung': 64 Multiple-Choice-Fragen aus 16 Modulen — Antworten und Erklärungen direkt einkl

64 Fragen 16 Module Empfohlene Bearbeitungszeit: 96 min

FI-AE 01 Berufsbild und Arbeitsweise 4 Fragen

Was ist das Hauptmerkmal agiler Entwicklungsmodelle im Vergleich zum Wasserfallmodell?
  • A) Lange Planungsphasen vor der eigentlichen Entwicklung
  • B) Iterative und inkrementelle Vorgehensweise mit kurzen Feedbackschleifen
  • C) Keine Berücksichtigung von Änderungen während der Entwicklung
  • D) Strikte Trennung zwischen Entwicklung und Betrieb

Richtige Antwort: B. Agile Methoden zeichnen sich durch kurze Entwicklungszyklen und kontinuierliche Anpassung an sich ändernde Anforderungen aus, während das Wasserfallmodell sequenziell und weniger flexibel ist.

Welche Aufgabe fällt NICHT in den typischen Verantwortungsbereich eines Fachinformatikers für Anwendungsentwicklung?
  • A) Konzeption und Programmierung von Softwarelösungen
  • B) Systemadministration und Netzwerkbetrieb
  • C) Qualitätssicherung der entwickelten Anwendungen
  • D) Anforderungsanalyse und Erstellung von User Stories

Richtige Antwort: B. Während Fachinformatiker für Anwendungsentwicklung Software entwickeln, ist die Systemadministration typischerweise Aufgabe von Fachinformatikern für Systemintegration oder IT-Administratoren.

Was ist das Hauptziel von DevOps in der Anwendungsentwicklung?
  • A) Maximale Trennung zwischen Entwicklung und Betrieb
  • B) Reduzierung der Anzahl der Bereitstellungen pro Jahr
  • C) Vereinheitlichung von Softwareentwicklung und IT-Betrieb durch Automatisierung
  • D) Erhöhung der Dokumentationspflichten im Entwicklungsprozess

Richtige Antwort: C. DevOps zielt darauf ab, Entwicklung und Betrieb durch Automatisierung und kontinuierliche Prozesse zu integrieren, um die Zusammenarbeit zu verbessern und die Bereitstellung zu beschleunigen.

Welches Element ist entscheidend für das Schnittstellenmanagement in der Anwendungsentwicklung?
  • A) Maximale Komplexität der Schnittstellen
  • B) Unklare Datenformate zur Flexibilität
  • C) Vernachlässigung von Sicherheitsaspekten
  • D) Klare Definition von Protokollen und Datenformaten

Richtige Antwort: D. Effektives Schnittstellenmanagement erfordert klare Spezifikationen von Protokollen, Datenformaten und Sicherheitsstandards, um eine reibungslose Kommunikation zwischen Systemen zu gewährleisten.

FI-AE 02 Projektmanagement-Grundlagen 4 Fragen

Was ist ein Hauptmerkmal des Wasserfallmodells im Vergleich zu agilen Methoden?
  • A) Iterative Entwicklung mit kurzen Zyklen
  • B) Lineare, sequenzielle Vorgehensweise mit klar abgegrenzten Phasen
  • C) Flexible Anpassung der Anforderungen während des Projekts
  • D) Visualisierung des Workflows

Richtige Antwort: B. Das Wasserfallmodell ist durch seine lineare, sequenzielle Vorgehensweise mit klar abgegrenzten Phasen gekennzeichnet, während agile Methoden iterativ und flexibel sind.

Welches Element ist kein offizielles Artefakt im Scrum-Framework?
  • A) Product Backlog
  • B) Sprint Backlog
  • C) Projektplan
  • D) Product Increment

Richtige Antwort: C. Der Projektplan ist kein offizielles Scrum-Artefakt. Stattdessen werden Product Backlog, Sprint Backlog und Product Increment als Artefakte verwendet.

Was ist ein grundlegendes Prinzip des Kanban-Systems?
  • A) Feste Sprint-Längen von 2-4 Wochen
  • B) Limitierung der Arbeit in Progress
  • C) Pflicht zur täglichen Standup-Besprechung
  • D) Vordefinierte Rollen wie Product Owner

Richtige Antwort: B. Die Limitierung der Arbeit in Progress (WIP) ist ein Kernprinzip von Kanban, während feste Sprint-Längen und tägliche Standups typisch für Scrum sind.

Was ist der Hauptunterschied zwischen agilen Methoden und dem traditionellen Projektansatz?
  • A) Agile Methoden setzen auf detaillierte Vorplanung, agile auf flexible Anpassung
  • B) Agile Methoden sind nur für große Projekte geeignet
  • C) Agile Methoden verzichten komplett auf Dokumentation
  • D) Agile Methoden basieren auf der Annahme, dass Anforderungen sich nicht ändern

Richtige Antwort: A. Der Hauptunterschied liegt in der Herangehensweise: Traditionelle Methoden setzen auf detaillierte Vorplanung, während agile Methoden flexible Anpassung während des Projekts ermöglichen.

FI-AE 03 Anforderungsanalyse und Lastenheft 4 Fragen

Was ist der Hauptunterschied zwischen einem Lastenheft und einem Pflichtenheft?
  • A) Das Lastenheft ist detaillierter als das Pflichtenheft
  • B) Das Lastenheft wird vom Auftraggeber erstellt, das Pflichtenheft vom Auftragnehmer
  • C) Das Pflichtenheft enthält nur nicht-funktionale Anforderungen
  • D) Das Lastenheft dient der internen Planung, das Pflichtenheft der Kundenkommunikation

Richtige Antwort: B. Das Lastenheft beschreibt Anforderungen aus Kundensicht und wird vom Auftraggeber erstellt, während das Pflichtenheft die technische Umsetzung durch den Auftragnehmer darstellt. Option A ist falsch, da das Pflichtenheft detaillierter ist. Option C ist falsch, da beide auch funktionale Anforderungen enthalten. Option D ist falsch, da das Lastenheft für die Kundenkommunikation dient.

Welche Kategorie der MoSCoW-Priorisierung beschreibt Anforderungen, die für die grundlegende Funktionalität unerlässlich sind?
  • A) Should-have
  • B) Could-have
  • C) Won't-have
  • D) Must-have

Richtige Antwort: D. Must-have-Anforderungen sind für die grundlegende Funktionalität unbedingt erforderlich. Should-have-Anforderungen sind wichtig, aber nicht kritisch. Could-have-Anforderungen sind nützlich, aber verzichtbar. Won't-have-Anforderungen werden für diese Version nicht umgesetzt.

Welche Aussage beschreibt eine funktionale Anforderung korrekt?
  • A) Die Benutzeroberfläche muss intuitiv gestaltet sein
  • B) Das System muss Benutzern die Authentifizierung per E-Mail und Passwort ermöglichen
  • C) Die Antwortzeit des Systems darf maximal 2 Sekunden betragen
  • D) Das System muss mit gängigen Browsern kompatibel sein

Richtige Antwort: B. Funktionale Anforderungen beschreiben, was das System tun soll und sind direkt testbar. Die anderen Optionen beschreiben nicht-funktionale Anforderungen (Usability, Leistung, Kompatibilität).

Warum ist die systematische Erhebung von Anforderungen in der Anforderungsanalyse wichtig?
  • A) Um den Entwicklungsprozess zu verlangsamen und mehr Zeit für die Planung zu haben
  • B) Um sicherzustellen, dass alle Stakeholder-Erwartungen erfasst und dokumentiert werden
  • C) Um den Code komplexer zu gestalten und so mehr Arbeitszeit zu generieren
  • D) Um die Dokumentation zu minimieren und sich auf die Programmierung zu konzentrieren

Richtige Antwort: B. Die systematische Erhebung stellt sicher, dass alle Anforderungen und Erwartungen der Stakeholder erfasst werden, was die Grundlage für erfolgreiche Projekte bildet. Die anderen Optionen widersprechen den Zielen der Anforderungsanalyse.

FI-AE 04 UML — Klassen- und Sequenzdiagramme 4 Fragen

Was ist die Hauptfunktion von Klassen in UML?
  • A) Darstellung von Datenflüssen zwischen Systemen
  • B) Kapselung von Daten und Funktionalität in objektorientierten Modellen
  • C) Modellierung von zeitlichen Abläufen und Workflows
  • D) Visualisierung von Datenbankstrukturen

Richtige Antwort: B. Klassen kapseln Daten (Attribute) und Funktionalität (Methoden), während Datenflüsse in Aktivitätsdiagrammen und zeitliche Abläufe in Sequenzdiagrammen dargestellt werden.

Welche Beziehung zwischen Klassen würde am ehesten eine "hat-ein"-Beziehung in der realen Welt darstellen?
  • A) Vererbung
  • B) Komposition
  • C) Generalisierung
  • D) Realisierung

Richtige Antwort: B. Komposition stellt eine starke "hat-ein"-Beziehung dar, bei der das existierende Teil nicht ohne das Ganze existieren kann, während Vererbung und Generalisierung "ist-ein"-Beziehungen sind.

Was ist der Hauptunterschied zwischen Sequenz- und Aktivitätsdiagrammen in UML?
  • A) Sequenzdiagramme zeigen statische Strukturen, Aktivitätsdiagramme zeigen dynamische Abläufe
  • B) Sequenzdiagramme fokussieren auf zeitliche Abfolge von Nachrichten, Aktivitätsdiagramme auf Prozessflüsse
  • C) Sequenzdiagramme werden nur für technische Systeme verwendet, Aktivitätsdiagramme für Geschäftsprozesse
  • D) Sequenzdiagramme können nur einfache Abläufe darstellen, Aktivitätsdiagramme komplexe Workflows

Richtige Antwort: B. Sequenzdiagramm konzentrieren sich auf die zeitliche Abfolge von Nachrichten zwischen Objekten, während Aktivitätsdiagramme den Fluss von Aktivitäten und Prozessen darstellen.

Welcher der folgenden Aussagen zu Klassen in UML ist korrekt?
  • A) Eine Klasse kann nur Attribute oder nur Methoden, aber nicht beides enthalten
  • B) Die Darstellung von Klassen in UML ist standardisiert und besteht aus drei Abschnitten
  • C) Klassen in UML können nur primitive Datentypen als Attribute enthalten
  • D) Die Namen von Klassen in UML müssen immer mit einem Großbuchstaben beginnen

Richtige Antwort: B. Eine standardisierte UML-Klasse besteht aus drei Abschnitten: Klassenname, Attribute und Methoden. Andere Aussagen sind nicht korrekt, da Klassen beides enthalten können, auch komplexe Datentypen, und die Benennung konventionell ist, aber nicht zwingend mit Großbuchstaben beginnen muss.

FI-AE 05 Datenbankdesign und Normalformen 4 Fragen

Was ist die Hauptaufgabe der Normalformen im Datenbankdesign?
  • A) Die Geschwindigkeit von Datenbankabfragen zu maximieren
  • B) Redundanzen in der Datenbank zu reduzieren und Datenintegrität zu gewährleisten
  • C) Die Speicherplatzanforderungen einer Datenbank zu minimieren
  • D) Die Komplexität von SQL-Abfragen zu reduzieren

Richtige Antwort: B. Normalformen reduzieren Redundanzen und gewährleisten Datenintegrität, nicht primär Geschwindigkeit oder Speicherplatz.

Welche der folgenden Aussagen beschreibt einen Fremdschlüssel korrekt?
  • A) Ein Attribut, das einen Datensatz eindeutig identifiziert
  • B) Ein Attribut, das auf den Primärschlüssel einer anderen Tabelle verweist
  • C) Ein Attribut, das nicht-null sein muss und einzigartig ist
  • D) Ein Attribut, das zur Verbesserung der Abfragegeschwindigkeit dient

Richtige Antwort: B. Ein Fremdschlüssel verweist auf den Primärschlüssel einer anderen Tabelle und dient zur Herstellung von Beziehungen.

Was ist ein Hauptmerkmal der ersten Normalform (1NF)?
  • A) Alle Attribute müssen von allen anderen Attributen abhängig sein
  • B) Alle Attribute müssen atomar sein und keine wiederholten Gruppen enthalten
  • C) Alle Nicht-Schlüsselattribute müssen vom gesamten Primärschlüssel abhängig sein
  • D) Es dürfen keine transitiven Abhängigkeiten vorhanden sein

Richtige Antwort: B. Die 1NF verlangt atomare Attribute und das Fehlen wiederholter Gruppen in den Tabellen.

Wann ist eine bewusste Denormalisierung in einem Datenbankdesign sinnvoll?
  • A) Wenn die Datenbank vollständig normalisiert ist und keine Redundanzen mehr vorhanden sind
  • B) Wenn die Performance von Abfragen durch zu viele JOINs beeinträchtigt wird
  • C) Wenn die Datenbank nicht die dritte Normalform erreicht hat
  • D) Wenn die Datenbank keine Fremdschlüssel enthält

Richtige Antwort: B. Denormalisierung kann sinnvoll sein, wenn die Performance durch zu viele JOINs leidet, obwohl sie Redundanzen einführt.

FI-AE 06 SQL — DDL, DML, Joins und Aggregate 4 Fragen

Welcher SQL-Befehl gehört zur DDL (Data Definition Language) und wird verwendet, um eine neue Tabelle in einer Datenbank zu erstellen?
  • A) INSERT INTO
  • B) CREATE TABLE
  • C) SELECT * FROM
  • D) UPDATE table SET

Richtige Antwort: B. CREATE TABLE ist ein DDL-Befehl zum Erstellen von Tabellenstrukturen. INSERT INTO, SELECT und UPDATE sind DML-Befehle zur Datenmanipulation.

Welche JOIN-Typ würde alle Zeilen aus der linken Tabelle und die übereinstimmenden Zeilen aus der rechten Tabelle zurückgeben?
  • A) INNER JOIN
  • B) RIGHT JOIN
  • C) LEFT JOIN
  • D) FULL OUTER JOIN

Richtige Antwort: C. LEFT JOIN gibt alle Zeilen aus der linken Tabelle und übereinstimmende Zeilen aus der rechten Tabelle zurück. INNER JOIN gibt nur übereinstimmende Zeilen, RIGHT JOIN ist das Gegenteil von LEFT JOIN, und FULL OUTER JOIN gibt alle Zeilen aus beiden Tabellen zurück.

Welche SQL-Funktion würde die Anzahl der Zeilen in einer Tabelle zählen, ohne NULL-Werte zu berücksichtigen?
  • A) SUM()
  • B) AVG()
  • C) COUNT(*)
  • D) COUNT(column)

Richtige Antwort: D. COUNT(column) zählt nur die Zeilen, in denen die angegebene Spalte nicht NULL ist. COUNT(*) zählt alle Zeilen, unabhängig von NULL-Werten, SUM() addiert Werte, und AVG() berechnet den Durchschnitt.

Was ist der Hauptzweck von Datenbanktransaktionen?
  • A) Die Performance von Abfragen zu verbessern
  • B) Sicherzustellen, dass eine Gruppe von Operationen als atomare Einheit behandelt wird
  • C) Speicherplatz in der Datenbank zu reduzieren
  • D) Die Sicherheit von Benutzerdaten zu erhöhen

Richtige Antwort: B. Transaktionen stellen sicher, dass eine Gruppe von Operationen als atomare Einheit behandelt wird (ACID-Eigenschaften). Sie verbessern nicht direkt die Performance, reduzieren nicht zwangsläufig Speicherplatz und erhöhen nicht primär die Sicherheit.

FI-AE 07 Objektorientierte Programmierung 4 Fragen

Was ist der Hauptzweck der Kapselung in der objektorientierten Programmierung?
  • A) Maximale Wiederverwendbarkeit von Code durch Vererbung
  • B) Verbergen interner Implementierungsdetails und Schutz von Daten
  • C) Erleichterung der Kommunikation zwischen verschiedenen Objekten
  • D) Reduzierung der Anzahl von Klassen in einem System

Richtige Antwort: B. Kapselung verbirgt interne Zustände und macht nur über definierte Schnittstellen zugänglich, während A und C eher andere OOP-Konzepte betreffen und D nicht das Hauptziel ist.

Welches SOLID-Prinzip besagt, dass eine Klasse nur einen Grund zur Änderung haben sollte?
  • A) Open/Closed Principle
  • B) Interface Segregation Principle
  • C) Single Responsibility Principle
  • D) Liskov Substitution Principle

Richtige Antwort: C. Das Single Responsibility Principle besagt, dass eine Klasse nur eine einzige Verantwortung haben sollte, während A sich auf Erweiterbarkeit, B auf spezifische Schnittstellen und D auf Austauschbarkeit von Objekten bezieht.

Was bedeutet Polymorphie im Kontext der objektorientierten Programmierung?
  • A) Die Fähigkeit einer Klasse, von einer anderen Klasse zu erben
  • B) Die Fähigkeit von Objekten, sich während der Laufzeit zu ändern
  • C) Die Fähigkeit, Methoden mit demselben Namen aber unterschiedlicher Implementierung zu haben
  • D) Die Fähigkeit, Daten und Methoden in einer Klasse zu bündeln

Richtige Antwort: C. Polymorphie ermöglicht es, Methoden mit gleichem Namen aber unterschiedlicher Implementierung zu haben, die je nach Objekttyp aufgerufen werden, während A Vererbung, B nicht möglich und D Kapselung beschreibt.

Welcher Vorteil ergibt sich aus der Anwendung des Open/Closed-Prinzips?
  • A) Reduzierung der Anzahl von Klassen im System
  • B) Einfachere Implementierung von Vererbungshierarchien
  • C) Erweiterbarkeit von Systemen ohne Änderung bestehender Komponenten
  • D) Vereinfachung der Benutzeroberfläche

Richtige Antwort: C. Das Open/Closed-Prinzip ermöglicht die Erweiterung von Systemen ohne Änderung bestehender Komponenten, während A, B und D keine direkten Ergebnisse dieses Prinzips sind.

FI-AE 08 Algorithmen und Komplexität 4 Fragen

Was beschreibt die Big-O-Notation in der Algorithmusanalyse?
  • A) Die exakte Zeit in Millisekunden, die ein Algorithmus benötigt
  • B) Die obere Schranke für das Wachstum des Ressourcenbedarfs in Abhängigkeit von der Eingabegröße
  • C) Die minimale Speichergröße, die ein Algorithmus benötigt
  • D) Die durchschnittliche Anzahl der CPU-Zyklen pro Eingabeelement

Richtige Antwort: B. Die Big-O-Notation beschreibt das asymptotische Verhalten und gibt eine obere Schranke für den Ressourcenbedarf an, nicht exakte Werte oder minimale Anforderungen.

Welcher Sortieralgorithmus hat im Worst-Case eine Zeitkomplexität von O(n²)?
  • A) Merge Sort
  • B) Quick Sort
  • C) Insertion Sort
  • D) Heap Sort

Richtige Antwort: C. Insertion Sort hat eine Worst-Case-Komplexität von O(n²), während Merge Sort und Heap Sort O(n log n) aufweisen und Quick Sort im Worst-Case O(n²), aber im Durchschnitt O(n log n).

Welche Datenstruktur ermöglicht eine logarithmische Zeitkomplexität für Suchoperationen?
  • A) Einfach verknüpfte Liste
  • B) Array
  • C) Binärer Suchbaum
  • D) Hash-Tabelle

Richtige Antwort: C. Ein binärer Suchbaum ermöglicht Suchoperationen mit O(log n) Zeitkomplexität, während Arrays und Listen O(n) benötigen und Hash-Tabellen im Durchschnitt O(1), aber im Worst-Case O(n) aufweisen.

Welcher Algorithmus hat die beste Worst-Case-Zeitkomplexität für die Sortierung von n Elementen?
  • A) Bubble Sort
  • B) Insertion Sort
  • C) Selection Sort
  • D) Merge Sort

Richtige Antwort: D. Merge Sort hat eine Worst-Case-Zeitkomplexität von O(n log n), während Bubble Sort, Insertion Sort und Selection Sort alle eine Worst-Case-Komplexität von O(n²) aufweisen.

FI-AE 09 Versionsverwaltung mit Git 4 Fragen

1. Welches Branching-Modell bevorzugt kurze Lebenszyklen für Feature-Branches und häufige Merges in den Hauptzweig?
  • A) Git Flow
  • B) Trunk-Based Development
  • C) Feature Branching
  • D) Release Branching

Richtige Antwort: B. Trunk-Based Development setzt auf kurze Lebenszyklen und häufige Merges, während Git Flow längere Lebenszyklen mit spezialisierten Branch-Typen vorsieht.

2. Was ist der Hauptvorteil von Rebase gegenüber Merge bei der Integration von Branches?
  • A) Rebase behält den vollständigen Verlauf aller Commits bei
  • B) Rebase erzeugt einen linearen Verlauf ohne Merge-Commits
  • C) Rebase löst automatisch alle Merge-Konflikte
  • D) Rebase funktioniert nur mit lokalen Repositories

Richtige Antwort: B. Rebase schreibt Commits neu und erzeugt einen linearen Verlauf, während Merge Commits beider Branches beibehält und Merge-Commits erzeugt.

3. In welchem Branching-Modell wird ein Hotfix-Zweig typischerweise vom Hauptzweig (main/master) abgeleitet?
  • A) Trunk-Based Development
  • B) Git Flow
  • C) Forking Workflow
  • D) Branch-per-Feature

Richtige Antwort: B. Git Flow spezifiziert, dass Hotfixes direkt vom Hauptzweig abgeleitet werden, während andere Modelle dies nicht vorschreiben.

4. Was ist der primäre Zweck von Pull Requests in Git?
  • A) Automatisches Testen von Codeänderungen
  • B) Mechanismus zur Code-Review und Integration
  • C) Lösung von Merge-Konflikten
  • D) Erstellung von neuen Branches

Richtige Antwort: B. Pull Requests dienen primär der Code-Review und der kontrollierten Integration von Änderungen, während andere Funktionen separate Werkzeuge oder Git-Befehle erfordern.

FI-AE 10 Software-Architektur und Design Patterns 4 Fragen

Was ist ein Hauptmerkmal der Schichtenarchitektur?
  • A) Jede Schicht kann mit jeder anderen Schicht kommunizieren
  • B) Die Anwendung wird in horizontale Schichten mit definierten Schnittstellen unterteilt
  • C) Es gibt nur drei Schichten: Frontend, Backend und Datenbank
  • D) Schichten können dynamisch zur Laufzeit hinzugefügt werden

Richtige Antwort: B. Die Schichtenarchitektur unterteilt die Anwendung in horizontale Schichten mit definierten Schnittstellen, während die anderen Optionen falsche oder unvollständige Beschreibungen enthalten.

Was ist der Hauptunterschied zwischen MVC und MVVM?
  • A) MVC hat vier Komponenten, MVVM nur drei
  • B) MVVM enthält ein ViewModel, das die Daten für die View aufbereitet
  • C)</strong) MVC wird nur für Webanwendungen, MVVM nur für Desktop-Anwendungen verwendet</li>
  • D) In MVC kommuniziert die View direkt mit dem Model, in MVVM nicht

Richtige Antwort: B. MVVM erweitert MVC durch ein ViewModel, das die Daten für die View aufbereitet und die Kommunikation zwischen Model und View entkoppelt, während die anderen Aussagen unzutreffend sind.

Was ist ein zentrales Prinzip der hexagonalen Architektur?
  • A) Die Anwendung besteht aus sechs gleichwertigen Modulen
  • B) Die Kernanwendung ist von technischen Details isoliert
  • C)</strong) Die Kommunikation erfolgt ausschließlich über XML-Dateien</li>
  • D) Die Architektur erfordert zwingend sechs verschiedene Datenbanken

Richtige Antwort: B. Die hexagonale Architektur isoliert die Kernanwendung von technischen Details wie Datenbanken oder Benutzeroberflächen, während die anderen Optionen falsche Annahmen enthalten.

Was ist der Hauptvorteil der Verwendung von Design Patterns?
  • A)</strong) Sie garantieren immer die beste Performance</li>
  • B) Sie stellen bewährte Lösungsansätze für wiederkehrende Probleme dar
  • C) Sie ermöglichen es, ohne jegliche Dokumentation auszukommen
  • D) Sie reduzieren die Entwicklungskosten immer um mindestens 50%

Richtige Antwort: B. Design Patterns sind bewährte Lösungsansätze für wiederkehrende Probleme, die die Kommunikation zwischen Entwicklern erleichtern und die Codequalität verbessern, während die anderen Aussagen übertrieben oder unzutreffend sind.

FI-AE 11 Testing — Unit, Integration, E2E 4 Fragen

Welches Prinzip beschreibt die Testpyramide korrekt?
  • A) Je höher in der Pyramide, desto mehr Tests sollten durchgeführt werden.
  • B) Die Basis der Pyramide besteht aus vielen schnellen Unit-Tests, während die Spitze wenige langsame E2E-Tests enthält.
  • C) Alle Tests sollten gleichmäßig über alle Ebenen der Pyramide verteilt sein.
  • D) Die Testpyramide besagt, dass Integrationstests wichtiger sind als Unit-Tests.

Richtige Antwort: B. Die Testpyramide modelliert, dass viele schnelle, isolierte Unit-Tests die Basis bilden, während wenige umfassende E2E-Tests die Spitze bilden. Option A ist falsch, da mehr Tests in der Basis benötigt werden. Option C ignoriert die unterschiedliche Geschwindigkeit und Reichweite der Testarten. Option D ist falsch, da beide Testarten wichtig sind, aber unterschiedliche Zwecke erfüllen.

Was ist der Hauptvorteil von Mocking im Softwaretesting?
  • A) Es beschleunigt die Ausführung von Tests, indem echte Abhängigkeiten ersetzt werden.
  • B) Es ermöglicht das Testen von Komponenten, die von externen Ressourcen abhängen, ohne diese tatsächlich aufrufen zu müssen.
  • C) Es erhöht die Code-Coverage automatisch.
  • D) Es eliminiert die Notwendigkeit von Integrationstests vollständig.

Richtige Antwort: B. Mocking ermöglicht isolierte Tests von Komponenten, die auf externe Ressourcen angewiesen sind, ohne diese tatsächlich aufrufen zu müssen. Option A ist teilweise richtig, aber nicht der Hauptvorteil. Option C ist falsch, da Mocking selbst die Coverage nicht erhöht. Option D ist falsch, da Mocking Integrationstests nicht überflüssig macht.

Was ist der grundlegende Zyklus von TDD (Test-Driven Development)?
  • A) Schreiben des Codes, dann Schreiben des Tests, dann Refactoring.
  • B) Schreiben des Tests, dann Implementierung des minimalen Codes, um den Test zu bestehen, dann Refactoring.
  • C) Schreiben der Anforderungen, dann Schreiben des Codes, dann Schreiben des Tests.
  • D) Schreiben des Tests, dann Implementierung aller Funktionen, dann Ausführung des Tests.

Richtige Antwort: B. TDD beginnt mit dem Schreiben eines Tests für eine noch nicht existierende Funktion, gefolgt von der Implementierung des minimalen Codes, der den Test bestehen lässt, und endet mit Refactoring. Option A ist falsch, da der Test vor dem Code geschrieben wird. Option C ignoriert den testgetriebenen Ansatz. Option D ist falsch, da nicht alle Funktionen implementiert werden, sondern nur die minimal notwendige.

Warum ist die Integration von Tests in CI-Pipelines wichtig?
  • A) Um die Ausführungszeit von Tests zu minimieren.
  • B) Um sicherzustellen, dass Tests bei jedem Code-Commit automatisch ausgeführt werden und Regressionen früh erkannt werden.
  • C) Um die Anzahl der benötigten Tests zu reduzieren.
  • D) Um die manuelle Testdauer zu verkürzen.

Richtige Antwort: B. Die CI-Integration stellt sicher, dass Tests automatisch bei jedem Code-Commit ausgeführt werden, sodass Regressionen früh erkannt werden. Option A ist falsch, da CI-Pipelines nicht primär auf Geschwindigkeit abzielen. Option C ist falsch, da die Anzahl der Tests nicht reduziert wird. Option D ist falsch, da CI-Pipelines automatisiert sind und nicht manuelle Tests ersetzen.

FI-AE 12 Webentwicklung — HTTP, REST, OAuth 4 Fragen

Welches der folgenden Prinzipien ist kein Kernprinzip des REST-Architekturstils?
  • A) Stateless
  • B) Cacheable
  • C) Stateful
  • D) Uniform Interface

Richtige Antwort: C. Stateful (zustandsbehaftet) ist im Gegensatz zu Stateless ein Prinzip, das REST bewusst vermeidet, um die Skalierbarkeit zu erhöhen.

Was ist der Hauptunterschied zwischen OAuth 2.0 und OpenID Connect?
  • A) OAuth 2.0 ist für die Authentifizierung, OpenID Connect für die Autorisierung
  • B) OpenID Connect baut auf OAuth 2.0 auf und fügt eine Identitätsschicht hinzu
  • C) OAuth 2.0 erfordert immer JWTs, OpenID Connect nicht
  • D) OpenID Connect ist nur für mobile Anwendungen geeignet

Richtige Antwort: B. OpenID Connect ist eine Erweiterung von OAuth 2.0, die speziell zur Authentifizierung von Benutzern entwickelt wurde, während OAuth 2.0 primär für die Autorisierung dient.

Welcher HTTP-Statuscode signalisiert erfolgreich, dass eine Anfrage entgegengenommen und verarbeitet wurde, aber keine Informationen zurückgegeben hat?
  • A) 200 OK
  • B) 201 Created
  • C) 204 No Content
  • D) 304 Not Modified

Richtige Antwort: C. Der Statuscode 204 No Content wird verwendet, wenn die Anfrage erfolgreich war, aber der Server keine Daten zurücksendet, z.B. nach einer DELETE-Anfrage.

Welcher OAuth 2.0 Flow ist am besten für Single-Page-Anwendungen geeignet, die keine Server-seitige Komponente haben?
  • A) Authorization Code Flow
  • B) Implicit Flow
  • C) Resource Owner Password Credentials Flow
  • D) Client Credentials Flow

Richtige Antwort: B. Der Implicit Flow ist für Single-Page-Anwendungen optimiert, da er direkt ein Token zurückgibt, ohne einen Server-seitigen Code Exchange zu benötigen.

FI-AE 13 Frontend-Grundlagen — HTML, CSS, JavaScript 4 Fragen

Welches der folgenden HTML-Tags ist semantisch korrekt, um eine Navigationselemente in einem Webdokument zu gruppieren?
  • A) <div>
  • B) <nav>
  • C) <menu>
  • D) <navbar>

Richtige Antwort: B. Das <nav>-Tag ist speziell für Navigationselemente vorgesehen, während <div> generisch ist, <menu> veraltet ist und <navbar> kein gültiges HTML-Tag ist.

Welche CSS-Eigenschaft muss in einem Flexbox-Container gesetzt werden, um Elemente vertikal auszurichten?
  • A) align-items
  • B) justify-content
  • C) flex-direction
  • D) flex-wrap

Richtige Antwort: A. align-controls die vertikale Ausrichtung von Flex-Items, während justify-content die horizontale Ausrichtung steuert, flex-direction die Ausrichtung der Achsen bestimmt und flex-wrap den Umbruch von Elementen regelt.

Was ist der Hauptzweck des DOM-Manipulation in JavaScript?
  • A) Datenbankverbindungen herstellen
  • B) Die Struktur und Inhalte einer Webseite dynamisch ändern
  • C)</strong) CSS-Stile vordefinieren</li>
  • D)</strong) Serverseitige Operationen durchführen</li>

Richtige Antwort: B. DOM-Manipulation ermöglicht die dynamische Änderung von Inhalten und Struktur einer Webseite, während die anderen Optionen andere Aufgabenbereiche abdecken.

Wie wird eine asynchrone Funktion mit Promises korrekt abgeschlossen, wenn ein Fehler auftritt?
  • A) .catch()
  • B) .then()
  • C) .finally()
  • D) .error()

Richtige Antwort: A. .catch() wird verwendet, um Fehler in einer Promise-Kette zu behandeln, während .then() für erfolgreiche Auflösungen dient, .finally() immer ausgeführt wird und .error() keine gültige Methode ist.

FI-AE 14 Backend-Architekturen — Monolith vs. Microservices 4 Fragen

Was ist ein Hauptunterschied zwischen monolithischer und Microservices-Architektur?
  • A) Monolithe verwenden immer SQL-Datenbanken, Microservices verwenden NoSQL
  • B) In einer Microservices-Architektur sind Dienste eigenständig deploybar und skalierbar
  • C) Monolithe sind immer langsamer als Microservices
  • D) Microservices erfordern immer mehr Entwickler als Monolithe

Richtige Antwort: B. Die Unabhängigkeit der Dienste ist ein Kernmerkmal von Microservices. A ist falsch, da beide Architekturen verschiedene Datenbanktypen verwenden können. C ist falsch, da die Performance von der Implementierung abhängt. D ist falsch, da die Teamgröße nicht direkt von der Architektur abhängt.

Welche Funktion erfüllt ein API-Gateway in einer Microservices-Architektur?
  • A) Es speichert die Daten aller Microservices zentral
  • B) Es verwaltet die Berechtigungen für jeden Microservice einzeln
  • C) Es ist ein zentraler Einstiegspunkt für Client-Anfragen und leitet diese weiter
  • D) Es optimiert die Datenbankabfragen aller Microservices

Richtige Antwort: C. Das API-Gateway fungiert als Single Entry Point und verwaltet Anfragen. A ist falsch, da es keine Daten speichert. B ist falsch, da es Berechtigungen zentral verwaltet. D ist falsch, da es keine Datenbankabfragen optimiert.

Was ist der Zweck von Service-Discovery in einer Microservices-Architektur?
  • A) Es überwacht die Systemleistung und alarmiert bei Problemen
  • B) Es ermöglicht Microservices, die Adressen anderer Dienste dynamisch zu ermitteln
  • C) Es sichert die Kommunikation zwischen Diensten durch Verschlüsselung
  • D) Es verteilt die Last gleichmäßig auf alle verfügbaren Dienste

Richtige Antwort: B. Service-Discovery ermöglicht die dynamische Ermittlung von Dienstadressen. A beschreibt eher ein Monitoring-System. C ist Aufgabe der Sicherheitsmechanismen. D ist Aufgabe eines Load Balancers.

Welches ist ein Vorteil der asynchronen Kommunikation in Microservices-Architekturen?
  • A) Sie reduziert die Komplexität des Systems
  • B) Sie ermöglicht eine schnellere Antwortzeit für den Client
  • C) Sie erhöht die Fehlertoleranz des Systems
  • D) Sie eliminiert die Notwendigkeit von API-Gateways

Richtige Antwort: C. Asynchrone Kommunikation macht das System fehlertoleranter, da Dienste auch bei Ausfällen anderer Dienste funktionieren können. A ist falsch, da asynchrone Kommunikation die Komplexität erhöhen kann. B ist falsch, da die Antwortzeit für den Client möglicherweise länger wird. D ist falsch, da API-Gateways weiterhin benötigt werden.

FI-AE 15 DevOps — CI/CD-Pipelines und Container 4 Fragen

Was ist der Hauptvorteil einer CI/CD-Pipeline in der Softwareentwicklung?
  • A) Reduzierung der Anzahl der Entwickler im Team
  • B) Automatisierung von Build-, Test- und Deploy-Prozessen
  • C) Erhöhung der Komplexität des Codes
  • D) Verringerung der Dokumentationspflicht

Richtige Antwort: B. CI/CD-Pipelines automatisieren Build-, Test- und Deploy-Prozesse, was die Entwicklung beschleunigt und stabilisiert. Option A ist falsch, da die Anzahl der Entwickler nicht reduziert wird. Option C ist falsch, da die Komplexität des Codes nicht erhöht wird. Option D ist falsch, da die Dokumentationspflicht nicht verringert wird.

Was ist ein Pod in Kubernetes?
  • A) Ein Container-Orchestrierungssystem
  • B) Die kleinste deploybare Einheit in Kubernetes
  • C) Ein Speicherobjekt für persistente Daten
  • D) Ein Netzwerk-Plugin für Kubernetes

Richtige Antwort: B. Ein Pod ist die kleinste deploybare Einheit in Kubernetes, die eine oder mehrere Container mit gemeinsamem Netzwerk und Speicher umfasst. Option A ist falsch, da Kubernetes das Container-Orchestrierungssystem ist. Option C ist falsch, da für persistente Daten andere Objekte wie PersistentVolume verwendet werden. Option D ist falsch, da Netzwerk-Plugins durch andere Komponenten bereitgestellt werden.

Welcher Befehl erstellt ein Docker-Image aus einem Dockerfile?
  • A) docker create -t meine-app:latest
  • B) docker run -t meine-app:latest
  • C) docker build -t meine-app:latest
  • D) docker deploy -t meine-app:latest

Richtige Antwort: C. Der Befehl 'docker build -t meine-app:latest' erstellt ein Docker-Image aus einem Dockerfile. Option A ist falsch, da 'docker create' einen Container erstellt, kein Image. Option B ist falsch, da 'docker run' einen Container startet, kein Image erstellt. Option D ist falsch, da 'docker deploy' kein gültiger Docker-Befehl ist.

Was ist die Hauptaufgabe von Kubernetes?
  • A) Code-Versionierung und -Management
  • B) Containerisierung von Anwendungen
  • C) Automatisierung der Bereitstellung, Skalierung und Verwaltung containerisierter Anwendungen
  • D) Erstellung von Docker-Images

Richtige Antwort: C. Kubernetes ist ein Open-Source-System zur Automatisierung der Bereitstellung, Skalierung und Verwaltung containerisierter Anwendungen. Option A ist falsch, da Code-Versionierung und -Management durch Tools wie Git erfolgt. Option B ist falsch, da die Containerisierung durch Docker erfolgt. Option D ist falsch, da die Erstellung von Docker-Images durch Docker erfolgt.

FI-AE 16 IT-Sicherheit, OWASP Top 10 und DSGVO 4 Fragen

Was ist der Hauptunterschied zwischen Authentifizierung und Autorisierung?
  • A) Authentifizierung prüft die Berechtigungen, Autorisierung die Identität
  • B) Authentifizierung verifiziert die Identität, Autorisierung legt die Berechtigungen fest
  • C) Authentifizierung erfolgt immer vor der Autorisierung
  • D) Autorisierung ist nur für Administratoren relevant

Richtige Antwort: B. Authentifizierung stellt fest, wer der Benutzer ist, während Autorisierung festlegt, was der Benutzer tun darf. Option A verwechselt die Begriffe. Option C ist zwar oft der Fall, aber kein definierender Unterschied. Option D ist falsch, da Autorisierung für alle Benutzerrollen relevant ist.

Welches der folgenden Beispiele verstößt am ehesten gegen das Prinzip der Datenminimierung?
  • A) Speicherung von E-Mail-Adressen für die Kundenkommunikation
  • B) Erhebung von Geburtsdaten nur bei altersbeschränkten Inhalten
  • C) Sammlung von Browserverlauf für personalisierte Werbung
  • D) Protokollierung von Login-Versuchen zur Sicherheit

Richtige Antwort: C. Der Browserverlauf ist für personalisierte Werbung nicht erforderlich und übersteigt den Verarbeitungszweck. Option A und B sind für den angegebenen Zweck angemessen. Option D dient dem Sicherheitszweck und ist daher gerechtfertigt.

Welche Maßnahme ist am effektivsten zur Verhinderung von SQL-Injection-Angriffen?
  • A) Regelmäßige Passwortänderungen für Datenbankbenutzer
  • B) Verwendung von vorbereiteten Anweisungen (Prepared Statements)
  • C) Einschränkung der Datenbankbenutzerrechte
  • D) Implementierung einer Web Application Firewall

Richtige Antwort: B. Vorbereitete Anweisungen trennen SQL-Code von Daten, was SQL-Injection effektiv verhindert. Option A schützt vor Passwortdiebstahl, nicht vor Injection. Option C reduziert das Risiko, verhindert es aber nicht vollständig. Option D kann Angriffe blockieren, ist aber keine direkte Prävention im Code.

Welcher der folgenden Angriffe ist im OWASP Top 2021 als "Broken Access Control" klassifiziert?
  • A) Ein Angreifer manipuliert URLs, um auf Ressourcen zuzugreifen, für die er keine Berechtigung hat
  • B) Ein Angreifer fügt schädlichen SQL-Code in ein Suchfeld ein
  • C) Ein Angreifer überschreibt Session-Cookies, um die Identität eines anderen Benutzers zu übernehmen
  • D) Ein Angreifer nutzt Schwachstellen in einer Drittanbieter-Bibliothek

Richtige Antwort: A. Broken Access Control betrifft fehlende Zugriffsbeschränkungen, die es Benutzern ermöglichen, auf geschützte Ressourcen zuzugreifen. Option B beschreibt SQL-Injection. Option C ist ein Session-Angriff. Option D betrifft bekannte Schwachstellen (Known Vulnerabilities).