Continuous Integration (CI) hat welches Hauptziel? A. Alle Änderungen sofort in den Entwicklungsstand integrieren und testen. B. Jede Änderung direkt in die Produktion überführen. C. Nur stabile Änderungen in den Code einfließen lassen. D. Keine Tests auf dem Entwicklungsstand ausführen. ANSWER: A Was beschreibt Continuous Delivery (CD)? A. Jede stabile Änderung wird sofort in die Produktion überführt. B. Der Code kann jederzeit deployed werden, muss aber nicht. C. Fehler werden immer in der Produktion entdeckt. D. Änderungen müssen nicht kontinuierlich getestet werden. ANSWER: B Was unterscheidet Continuous Deployment von Continuous Delivery? A. Continuous Deployment automatisiert den Produktiv-Deploy. B. Continuous Deployment erfordert keine Tests. C. Continuous Delivery automatisiert den Produktiv-Deploy. D. Continuous Deployment erfordert keinen stabilen Code. ANSWER: A Was ist eine Deployment Pipeline? A. Eine Sammlung manueller Tests. B. Ein Prozess zur Automatisierung von Build-, Test- und Deploy-Schritten. C. Ein Tool zur Verwaltung von Datenbanken. D. Eine Methode zur Überwachung von Servern. ANSWER: B Welche Aussage trifft auf GitFlow zu? A. Es ist für einfache Projekte mit nur einem Branch geeignet. B. Es neigt dazu, viele Branches zu erzeugen, was zu Komplexität führen kann. C. Es ist ideal für die Entwicklung ohne Versionskontrolle. D. Es verhindert die kontinuierliche Integration. ANSWER: B Was beschreibt der Begriff „Shift-Left Testing“? A. Tests werden am Ende des Entwicklungsprozesses ausgeführt. B. Tests werden so früh wie möglich im Entwicklungszyklus durchgeführt. C. Tests werden nur auf UI-Ebene durchgeführt. D. Tests werden nur in der Produktion durchgeführt. ANSWER: B Was ist ein Monorepo in Bezug auf hierarchische Pipelines? A. Ein einzelnes Repository für verschiedene Komponenten eines großen Systems. B. Eine Methode zur Vermeidung von Branches. C. Ein Tool zur Erstellung von Infrastruktur. D. Eine Sammlung von Tests für verschiedene Komponenten. ANSWER: A Welche der folgenden Aussagen beschreibt eine DAG-Pipeline am besten? A. Eine Pipeline, die für einfache Projekte ohne Abhängigkeiten geeignet ist. B. Eine Pipeline, die Abhängigkeiten zwischen Jobs effizient handhaben kann. C. Eine Pipeline, die nur manuell ausgeführt wird. D. Eine Pipeline, die immer sequentiell arbeitet. ANSWER: B Was ist das Hauptziel von Unit Tests in einer Testpyramide? A. Sie testen das gesamte System von Ende zu Ende. B. Sie testen die Benutzeroberfläche (UI) auf Fehler. C. Sie testen isolierte Komponenten oder Funktionen des Systems. D. Sie testen Interaktionen zwischen verschiedenen Komponenten. ANSWER: C Welche Aussage trifft auf Continuous Integration (CI) zu? A. Änderungen werden erst nach einer Woche integriert und getestet. B. Änderungen werden regelmäßig und so schnell wie möglich in den Hauptentwicklungszweig integriert. C. CI bedeutet, dass jede Änderung manuell getestet werden muss. D. Continuous Integration wird nur in der Produktion verwendet. ANSWER: B Was ist ein Hauptvorteil von Continuous Integration? A. Es vermeidet die Notwendigkeit von Code-Tests. B. Es ermöglicht das sofortige Finden und Beheben von Integrationsproblemen. C. Es verhindert, dass mehrere Entwickler gleichzeitig an demselben Projekt arbeiten. D. Es reduziert die Anzahl der notwendigen Code-Releases. ANSWER: B Welches Tool wird häufig für Continuous Integration verwendet? A. Docker B. Jenkins C. Kubernetes D. Terraform ANSWER: B Was ist eine typische Praxis im Rahmen von Continuous Integration (CI)? A. Jeder Entwickler arbeitet isoliert und führt seine eigenen Tests manuell aus. B. Änderungen am Code werden in den Hauptentwicklungszweig integriert und automatisch getestet. C. Alle Tests werden erst nach Abschluss des Projekts ausgeführt. D. Änderungen werden erst in die Produktion übernommen und dann getestet. ANSWER: B Welches dieser Merkmale ist KEIN Bestandteil von Continuous Integration? A. Automatisierte Tests nach jeder Code-Änderung. B. Sofortige Integration von Code-Änderungen in den Hauptentwicklungszweig. C. Regelmäßiges manuelles Testen des Codes. D. Automatisierte Build-Prozesse nach jedem Commit. ANSWER: C Was ist das Ziel von automatisierten Tests in einer Continuous Integration Pipeline? A. Manuelles Debugging zu reduzieren. B. Sicherzustellen, dass der Code jederzeit getestet und stabil ist. C. Nur in der Produktion Fehler zu finden. D. Den Code-Review-Prozess zu beschleunigen. ANSWER: B Welcher der folgenden Punkte ist eine Herausforderung bei der Einführung von Continuous Integration? A. Es erfordert, dass jeder Entwickler den neuesten Code verwendet. B. Es verringert die Anzahl der Code-Änderungen, die integriert werden können. C. Es erhöht die Zeit, die für das Testen von Änderungen benötigt wird. D. Es erfordert keine automatisierten Tests, was es schwerer macht, Probleme zu identifizieren. ANSWER: A Welche der folgenden Aussagen beschreibt Continuous Integration am besten? A. CI ermöglicht es, Code-Änderungen nur nach Abschluss der gesamten Entwicklung zu integrieren. B. CI automatisiert den Test- und Integrationsprozess, um Konflikte frühzeitig zu erkennen. C. CI ist eine manuelle Methode, bei der Entwickler Code-Änderungen kontrolliert einführen. D. CI ist eine Strategie, bei der der Code nur in regelmäßigen Abständen in die Produktion verschoben wird. ANSWER: B Was passiert in einer typischen Continuous Integration Umgebung, wenn ein Test fehlschlägt? A. Der Entwickler wird informiert, aber der Prozess läuft weiter. B. Der Build wird sofort gestoppt, und der Fehler muss behoben werden, bevor der Prozess fortgesetzt wird. C. Der Code wird trotzdem in die Produktion überführt. D. Der Fehler wird ignoriert, und der Prozess geht weiter. ANSWER: B Welches der folgenden Ereignisse löst typischerweise eine Continuous Integration Pipeline aus? A. Ein neuer Branch wird erstellt. B. Ein Code-Commit wird in das Versionskontrollsystem eingefügt. C. Der Code wird von einem Entwickler lokal getestet. D. Ein Projekt wird abgeschlossen. ANSWER: B Welches ist ein zentrales Merkmal des Gitflow-Workflows? A. Es gibt nur einen Branch für die gesamte Entwicklung. B. Es werden verschiedene Branches für Features, Releases und Hotfixes verwendet. C. Änderungen werden direkt im Master-Branch vorgenommen. D. Es gibt keine Trennung zwischen Entwicklungs- und Release-Branches. ANSWER: B Welcher Branch ist im Gitflow-Modell der Hauptzweig, von dem Releases erstellt werden? A. Development B. Feature C. Master/Main D. Hotfix ANSWER: C Was beschreibt die Verwendung eines "Feature Branches" im Gitflow-Modell? A. Änderungen werden direkt im Master-Branch implementiert. B. Ein separater Branch wird erstellt, um ein bestimmtes Feature zu entwickeln. C. Alle Entwickler arbeiten auf einem einzigen Branch für alle Features. D. Feature Branches werden nach jedem Commit gelöscht. ANSWER: B Wann wird im Gitflow-Modell ein Release Branch erstellt? A. Zu Beginn eines neuen Projekts. B. Kurz bevor der Code für die Produktion freigegeben wird. C. Sobald ein Feature fertiggestellt ist. D. Nachdem der Code in den Master-Branch gemergt wurde. ANSWER: B Was ist ein typischer Anwendungsfall für einen Hotfix Branch im Gitflow-Modell? A. Die Entwicklung neuer Features. B. Das Lösen von kritischen Fehlern in der Produktionsumgebung. C. Die Optimierung von Code vor dem nächsten Release. D. Das Schreiben von Unit Tests. ANSWER: B Was passiert typischerweise mit einem Feature Branch, nachdem die Entwicklung eines Features im Gitflow-Modell abgeschlossen ist? A. Der Branch wird in den Master-Branch gemergt. B. Der Branch wird gelöscht, ohne gemergt zu werden. C. Der Branch wird in den Development-Branch gemergt. D. Der Branch bleibt als langfristiger Branch erhalten. ANSWER: C Warum kann der Gitflow-Workflow für größere Projekte problematisch werden? A. Er führt dazu, dass es zu viele Merge-Konflikte gibt. B. Er erzeugt eine große Anzahl von Branches, die schwierig zu verwalten sind. C. Er erlaubt keine parallele Entwicklung von Features. D. Er verhindert kontinuierliche Integration. ANSWER: B Was ist der Vorteil eines Release Branches im Gitflow-Modell? A. Änderungen können direkt in die Produktion übertragen werden. B. Der Branch ermöglicht es, letzte Fehlerkorrekturen und Tests durchzuführen, bevor ein Release erfolgt. C. Alle Entwickler können daran arbeiten, ohne Konflikte zu verursachen. D. Es werden keine weiteren Branches mehr benötigt. ANSWER: B Was unterscheidet einen Hotfix Branch von einem Feature Branch im Gitflow-Modell? A. Hotfix Branches sind langfristig angelegt, Feature Branches hingegen nicht. B. Hotfix Branches werden zur Behebung kritischer Fehler in der Produktion verwendet, während Feature Branches für die Entwicklung neuer Funktionen genutzt werden. C. Feature Branches werden in den Master-Branch gemergt, Hotfix Branches nicht. D. Es gibt keinen wesentlichen Unterschied. ANSWER: B Welche Rolle spielt der Development Branch im Gitflow-Modell? A. Er dient als Produktionszweig. B. Er ist der Zweig, in dem die Hauptentwicklung und Integration von Features stattfindet. C. Er ist nur für kritische Hotfixes vorgesehen. D. Es gibt keinen Development Branch im Gitflow-Modell. ANSWER: B Was ist ein charakteristisches Merkmal des GitHub Flow? A. Es gibt mehrere dauerhafte Branches für verschiedene Entwicklungsphasen. B. Es gibt nur einen Haupt-Branch, in den regelmäßig gemergt wird. C. Änderungen werden erst gemergt, wenn alle Features fertig sind. D. Es werden keine Pull Requests verwendet. ANSWER: B Wann wird im GitHub Flow ein Feature-Branch typischerweise erstellt? A. Bei der Veröffentlichung eines neuen Releases. B. Immer wenn ein Entwickler an einem neuen Feature oder Bugfix arbeitet. C. Nur vor großen Releases. D. Bei der Bereitstellung von Hotfixes. ANSWER: B Was passiert im GitHub Flow, nachdem ein Feature-Branch fertiggestellt ist? A. Der Branch wird in den Master-Branch gemergt und anschließend gelöscht. B. Der Branch wird permanent behalten. C. Der Branch wird ohne Überprüfung in die Produktion gemergt. D. Der Branch wird in den Release-Branch gemergt. ANSWER: A Welche Rolle spielen Pull Requests im GitHub Flow? A. Pull Requests werden nur in Ausnahmefällen genutzt. B. Pull Requests werden verwendet, um Änderungen zu überprüfen und zu diskutieren, bevor sie in den Main-Branch gemergt werden. C. Pull Requests dienen der Versionsverwaltung. D. Pull Requests sind im GitHub Flow nicht vorgesehen. ANSWER: B Welcher der folgenden Anwendungsfälle ist für den GitHub Flow ungeeignet? A. Kleine, inkrementelle Änderungen in Webprojekten. B. Entwicklung mit mehreren parallel laufenden Feature-Branches. C. Komplexe Projekte mit mehreren Vorab- und Beta-Versionen. D. Regelmäßiges und häufiges Mergen von Änderungen in den Haupt-Branch. ANSWER: C Was ist der erste Schritt, wenn man im GitHub Flow an einem neuen Feature arbeitet? A. Den Master-Branch löschen. B. Einen neuen Feature-Branch erstellen. C. Den gesamten Code in den Main-Branch kopieren. D. Einen Hotfix-Branch erstellen. ANSWER: B Was sollte vor dem Mergen eines Feature-Branches in den Main-Branch geschehen? A. Der Branch sollte gelöscht werden. B. Der Branch sollte durch manuelle Tests geprüft werden. C. Der Branch sollte in einem Pull Request überprüft und freigegeben werden. D. Der Branch sollte direkt in die Produktion überführt werden. ANSWER: C Welcher der folgenden Branches ist der Haupt-Branch im GitHub Flow? A. Hotfix-Branch B. Development-Branch C. Release-Branch D. Main-Branch (oder Master-Branch) ANSWER: D Warum ist der GitHub Flow für kontinuierliche Integration gut geeignet? A. Weil alle Branches automatisch gelöscht werden. B. Weil alle Änderungen in kleinen, inkrementellen Schritten in den Main-Branch gemergt und sofort integriert werden. C. Weil keine Tests vor dem Mergen erforderlich sind. D. Weil es keine festen Regeln für das Mergen von Branches gibt. ANSWER: B Was ist ein Vorteil des GitHub Flow gegenüber GitFlow? A. Es gibt weniger Branches, wodurch die Verwaltung vereinfacht wird. B. Der GitHub Flow ist besser für komplexe Projekte geeignet. C. Der GitHub Flow benötigt keine Pull Requests. D. Der GitHub Flow vermeidet kontinuierliche Integration. ANSWER: A Was ist das Hauptmerkmal der Trunk-basierten Entwicklung? A. Entwickler arbeiten an langen, parallelen Feature-Branches. B. Alle Entwickler arbeiten direkt im Haupt-Branch (Trunk) und integrieren häufig. C. Änderungen werden erst am Ende des Projekts integriert. D. Branches werden nie gelöscht. ANSWER: B Welche der folgenden Aussagen beschreibt am besten einen Vorteil der Trunk-basierten Entwicklung? A. Es gibt weniger Merge-Konflikte, da alle Entwickler regelmäßig in den Trunk integrieren. B. Die Entwicklung wird in viele langfristige Branches aufgeteilt. C. Änderungen werden selten integriert, um Konflikte zu vermeiden. D. Jeder Entwickler arbeitet isoliert, ohne Einfluss auf andere Entwickler. ANSWER: A Wie wird typischerweise eine Veröffentlichung (Release) in der Trunk-basierten Entwicklung gehandhabt? A. Releases werden von speziellen Release-Branches aus durchgeführt. B. Der Trunk wird für jedes Release in verschiedene Branches aufgeteilt. C. Jeder Commit führt automatisch zu einem Release. D. Es gibt keine speziellen Regeln für Releases. ANSWER: A Warum fördert die Trunk-basierte Entwicklung die kontinuierliche Integration? A. Weil alle Entwickler gleichzeitig an denselben Änderungen arbeiten. B. Weil alle Änderungen regelmäßig in den Trunk integriert werden, wodurch Integrationsprobleme frühzeitig erkannt werden. C. Weil Änderungen nur am Ende eines Projekts integriert werden. D. Weil Entwickler niemals miteinander kommunizieren müssen. ANSWER: B Welche der folgenden Herausforderungen kann bei der Trunk-basierten Entwicklung auftreten? A. Entwickler müssen lange warten, bevor sie ihre Änderungen integrieren können. B. Häufige Integration kann zu kurzzeitigen Instabilitäten im Trunk führen. C. Es gibt keine Möglichkeit, Änderungen schnell in den Trunk zu integrieren. D. Entwickler können nicht an mehreren Features gleichzeitig arbeiten. ANSWER: B Was ist ein typischer Best Practice bei der Trunk-basierten Entwicklung? A. Entwickler arbeiten monatelang an einem Feature-Branch, bevor sie integrieren. B. Entwickler integrieren ihre Änderungen täglich oder sogar mehrmals täglich in den Trunk. C. Entwickler arbeiten ausschließlich auf separaten Branches und integrieren nur selten. D. Alle Änderungen werden manuell getestet, bevor sie in den Trunk integriert werden. ANSWER: B Warum ist die Trunk-basierte Entwicklung besonders für Continuous Delivery geeignet? A. Sie verzögert den Release-Prozess, um Fehler zu minimieren. B. Sie unterstützt schnelle und häufige Integrationen, die für automatisierte Tests und Bereitstellungen erforderlich sind. C. Sie verwendet viele Feature-Branches, um Fehler zu isolieren. D. Sie benötigt keine automatisierten Tests, was die Entwicklung beschleunigt. ANSWER: B Was ist ein Nachteil der Trunk-basierten Entwicklung im Vergleich zu GitFlow? A. Es gibt keine separaten Release-Branches, was die Stabilität während der Entwicklung erschweren kann. B. Entwickler müssen auf jedem Branch Tests manuell ausführen. C. Die Trunk-basierte Entwicklung unterstützt keine parallelen Feature-Branches. D. Änderungen können nur nach einem langen Review-Prozess integriert werden. ANSWER: A Welche Methode wird in der Trunk-basierten Entwicklung verwendet, um stabile Releases zu erstellen? A. Long-Term Branches werden verwendet, um stabile Versionen zu halten. B. Stabile Releases werden aus speziellen Release-Branches oder Tags erstellt. C. Jeder Commit im Trunk wird direkt als Release verwendet. D. Es gibt keine spezielle Methode zur Erstellung stabiler Releases. ANSWER: B Wie minimiert die Trunk-basierte Entwicklung Merge-Konflikte? A. Durch das parallele Arbeiten an vielen Feature-Branches. B. Durch die schnelle und häufige Integration von Änderungen in den Haupt-Branch. C. Durch die Vermeidung von Branches. D. Durch das manuelle Zusammenführen aller Änderungen am Ende des Projekts. ANSWER: B Was ist der Hauptunterschied zwischen Continuous Delivery und Continuous Deployment? A. Continuous Delivery erfordert keine automatisierten Tests. B. Bei Continuous Delivery wird der Code automatisch in Produktion deployt, bei Continuous Deployment manuell. C. Bei Continuous Delivery kann der Code jederzeit bereitgestellt werden, während bei Continuous Deployment jede stabile Änderung automatisch in Produktion geht. D. Continuous Deployment erfordert keine manuelle Freigabe von Features. ANSWER: C Welche Aussage beschreibt Continuous Delivery am besten? A. Jede Änderung wird automatisch in die Produktion überführt. B. Der Code wird regelmäßig in Produktion getestet. C. Der Code ist jederzeit bereit für ein Deployment, aber das Deployment selbst erfolgt manuell. D. Es werden nur größere Änderungen in die Produktion überführt. ANSWER: C Welche Aussage beschreibt Continuous Deployment am besten? A. Jede stabile Änderung wird automatisch in die Produktionsumgebung deployed. B. Jede Änderung wird manuell überprüft, bevor sie in die Produktion geht. C. Änderungen werden nur alle paar Wochen deployed. D. Änderungen werden nur dann deployed, wenn sie als stabil eingestuft werden. ANSWER: A Was ist ein Vorteil von Continuous Deployment gegenüber Continuous Delivery? A. Es erfordert keine Tests vor der Bereitstellung. B. Es reduziert die Zeit, die zwischen dem Commit und dem Deployment vergeht. C. Es ermöglicht eine manuelle Kontrolle vor dem Deployment. D. Es erfordert keine Automatisierung. ANSWER: B Welche Herausforderung ist spezifisch für Continuous Deployment? A. Es ist schwer, jederzeit bereit für ein Deployment zu sein. B. Es erfordert eine manuelle Freigabe jedes Features. C. Fehlerhafte Änderungen können direkt in die Produktion gelangen. D. Es verzögert den Release-Prozess. ANSWER: C Welche Aussage trifft auf Continuous Delivery zu? A. Der Code wird automatisch in die Produktion deployed. B. Der Code muss jederzeit stabil und für ein Deployment bereit sein. C. Jede Änderung wird sofort in Produktion veröffentlicht. D. Es sind keine automatisierten Tests notwendig. ANSWER: B Wie wird Qualitätssicherung im Continuous Deployment gewährleistet? A. Durch manuelle Tests vor jedem Deployment. B. Durch eine starke Testautomatisierung und Monitoring in der Produktionsumgebung. C. Durch den Verzicht auf Tests und direktes Deployment in Produktion. D. Durch seltene Releases, um Fehler zu minimieren. ANSWER: B Was ist eine wesentliche Voraussetzung für die erfolgreiche Implementierung von Continuous Deployment? A. Ein manueller Review-Prozess vor jedem Deployment. B. Ein stark automatisiertes Test- und Monitoring-System. C. Die Nutzung von Feature Branches für jedes Deployment. D. Ein langer Release-Zyklus zur Minimierung von Fehlern. ANSWER: B Was ist der Hauptvorteil von Continuous Delivery gegenüber Continuous Deployment? A. Es ermöglicht mehr Kontrolle über das, was wann in die Produktion geht. B. Es reduziert den Testaufwand vor dem Deployment. C. Es setzt alle Änderungen automatisch in die Produktion. D. Es vermeidet die Notwendigkeit von manuellen Tests. ANSWER: A Warum ist Continuous Delivery ein wichtiger Schritt hin zu Continuous Deployment? A. Es führt zu einer geringeren Testabdeckung. B. Es stellt sicher, dass der Code jederzeit bereit für die Produktion ist, auch wenn das Deployment manuell ausgelöst wird. C. Es erfordert keine Automatisierung. D. Es verzögert den Prozess der Bereitstellung. ANSWER: B Was bedeutet der Begriff "Shift-Left Testing"? A. Tests werden ausschließlich am Ende des Entwicklungszyklus (linkes Ende) durchgeführt. B. Tests werden so früh wie möglich im Entwicklungsprozess integriert. C. Tests werden direkt in der Produktionsumgebung durchgeführt. D. Tests werden von Entwicklern ignoriert (links liegen gelassen), um Zeit zu sparen. ANSWER: B Was ist ein Ziel des Shift-Left Testing? A. Fehler erst nach der Produktveröffentlichung zu entdecken. B. Den Testaufwand auf das Ende des Projekts zu verschieben. C. Fehler so früh wie möglich im Entwicklungsprozess zu finden und zu beheben. D. Manuelle Tests zu reduzieren, indem keine Tests durchgeführt werden. ANSWER: C Welche der folgenden Aussagen beschreibt einen Vorteil von Shift-Left Testing? A. Es verringert die Notwendigkeit von Tests. B. Es ermöglicht das frühzeitige Erkennen und Beheben von Fehlern im Entwicklungsprozess. C. Es verschiebt den Testaufwand auf das Release-Datum. D. Es vermeidet die Notwendigkeit von automatisierten Tests. ANSWER: B Warum ist Shift-Left Testing besonders in DevOps-Umgebungen wichtig? A. Weil es manuelle Tests reduziert und automatisierte Tests nicht erforderlich sind. B. Weil es die Anzahl der Testfälle verringert. C. Weil es sicherstellt, dass Fehler früh im Prozess erkannt werden, was den Entwicklungsfluss beschleunigt. D. Weil es die Produktionstests priorisiert. ANSWER: C Wie unterscheidet sich Shift-Left Testing von traditionellen Testansätzen? A. Tests werden am Ende des Projekts durchgeführt, um Entwicklungszeit zu sparen. B. Tests beginnen früh im Entwicklungszyklus und laufen parallel zur Entwicklung. C. Tests werden nur auf fertiggestellten Produkten ausgeführt. D. Tests sind manuell und werden nur auf Produktionssystemen ausgeführt. ANSWER: B Welches Testverfahren wird häufig im Rahmen von Shift-Left Testing eingesetzt? A. Tests werden erst nach Abschluss der Entwicklungsphase ausgeführt. B. Automatisierte Unit-Tests und kontinuierliche Integration. C. Tests werden ausschließlich von externen QA-Teams durchgeführt. D. Tests werden auf Kundenfeedback basierend angepasst. ANSWER: B Was ist eine Herausforderung bei der Implementierung von Shift-Left Testing? A. Es erfordert eine Verschiebung von Tests an das Ende des Entwicklungszyklus. B. Es erhöht den Aufwand, da Tests zu einem späteren Zeitpunkt durchgeführt werden müssen. C. Es erfordert eine enge Zusammenarbeit zwischen Entwicklern und Testern bereits in frühen Phasen. D. Es reduziert die Testabdeckung. ANSWER: C Wie kann Shift-Left Testing die Kosten in der Softwareentwicklung senken? A. Indem Tests vollständig vermieden werden. B. Indem Fehler früh im Entwicklungsprozess entdeckt werden, was die Kosten für spätere Korrekturen verringert. C. Indem nur manuelle Tests am Ende des Projekts durchgeführt werden. D. Indem die Anzahl der Entwickler im Team reduziert wird. ANSWER: B Welches dieser Tools oder Praktiken unterstützt Shift-Left Testing? A. End-to-End-Tests nach dem Release. B. Automatisierte Tests innerhalb einer Continuous Integration Pipeline. C. Manuelle Tests in der Produktionsumgebung. D. Ad-hoc-Tests nach Abschluss der Entwicklungsphase. ANSWER: B Warum ist es wichtig, Tests früh im Entwicklungsprozess durchzuführen, wie es bei Shift-Left Testing der Fall ist? A. Um sicherzustellen, dass die Produktion reibungslos läuft, ohne dass Fehler auftreten. B. Um die Testphase zu verkürzen und Entwicklungszeit zu sparen. C. Um Probleme so schnell wie möglich zu identifizieren und zu beheben, bevor sie sich auf spätere Phasen auswirken. D. Um die Zahl der Tests zu reduzieren. ANSWER: C Was ist eine GitLab Pipeline? A. Ein Werkzeug zur manuellen Überprüfung von Code. B. Ein automatisierter Prozess, der mehrere Stages (Phasen) und Jobs zum Build, Testen und Deploy von Code definiert. C. Ein Tool zur Verwaltung von Datenbanken. D. Eine Methode zur Verteilung von Branches in GitLab. ANSWER: B Welche Datei wird verwendet, um eine GitLab Pipeline zu definieren? A. .gitignore B. pipeline-config.xml C. .gitlab-ci.yml D. pipeline-config.json ANSWER: C Was beschreibt einen Job in einer GitLab Pipeline? A. Ein Job ist eine Beschreibung der Benutzeroberfläche (UI) eines Projekts. B. Ein Job ist eine einzelne Aufgabe innerhalb einer Stage, die einen bestimmten Teil des Pipelines-Prozesses ausführt. C. Ein Job ist eine manuelle Anweisung zum Zusammenführen von Branches. D. Ein Job ist eine Liste von Deployments in der Produktionsumgebung. ANSWER: B Welche der folgenden Aussagen beschreibt eine Stage in einer GitLab Pipeline? A. Eine Stage ist eine Gruppe von Branches, die manuell integriert werden. B. Eine Stage definiert eine Sammlung von Aufgaben, die parallel ausgeführt werden können, wie z.B. Build, Test oder Deploy. C. Eine Stage ist eine Datei, die die Versionshistorie eines Projekts speichert. D. Eine Stage ist eine Sicherheitsmaßnahme für GitLab-Repositorys. ANSWER: B Was passiert, wenn ein Job in einer GitLab Pipeline fehlschlägt? A. Die Pipeline wird abgebrochen, und nachfolgende Jobs werden nicht ausgeführt. B. Die Pipeline wird abgeschlossen, aber der fehlerhafte Job wird ignoriert. C. Der fehlerhafte Job wird automatisch wiederholt, bis er erfolgreich ist. D. Der Code wird trotzdem in die Produktion übertragen. ANSWER: A Wie können GitLab Pipelines automatisch gestartet werden? A. Durch manuelle Ausführung. B. Durch das Hinzufügen eines Git-Commits, durch zeitgesteuerte Trigger (z.B. nightly-builds) oder manuell. C. Pipelines können nur manuell ausgelöst werden. D. Pipelines werden automatisch bei jedem Öffnen eines Merge-Requests ausgelöst, ohne dass zusätzliche Konfiguration erforderlich ist. ANSWER: B Was ist das Ziel einer „Build“-Stage in einer GitLab Pipeline? A. Die Benutzeroberfläche des Projekts zu testen. B. Den Code zu kompilieren oder zu verpacken, um ihn bereit für das Deployment zu machen. C. Datenbanken für das Projekt zu erstellen. D. Sicherheitslücken in der Produktionsumgebung zu beheben. ANSWER: B Welche Aussage beschreibt am besten „Pipeline as Code“ in GitLab? A. Pipelines werden manuell von Entwicklern bei Bedarf geschrieben. B. Pipelines werden in Code beschrieben und als Teil des Versionskontrollsystems (z.B. in der .gitlab-ci.yml) verwaltet. C. Pipelines werden nur im Produktionssystem definiert. D. Pipelines werden automatisch aus dem Quellcode generiert, ohne dass Konfiguration erforderlich ist. ANSWER: B Wie können mehrere Jobs innerhalb derselben Stage einer GitLab Pipeline ausgeführt werden? A. Sie müssen nacheinander manuell ausgeführt werden. B. Sie können parallel ausgeführt werden, wenn ausreichende Ressourcen vorhanden sind. C. Sie müssen auf verschiedenen Branches ausgeführt werden. D. Es ist nicht möglich, mehrere Jobs in einer Stage zu haben. ANSWER: B Welche der folgenden Aussagen beschreibt „Phasenpipelines“ in GitLab? A. Sie werden nur manuell ausgeführt. B. Phasenpipelines führen Jobs parallel aus, wenn die nötigen Ressourcen verfügbar sind, und der Erfolg der Pipeline hängt vom Exit-Code des Jobs ab. C. Sie ermöglichen nur sequenzielles Arbeiten an einem Projekt. D. Sie sind ausschließlich für Produktionsumgebungen geeignet. ANSWER: B Was beschreibt eine Phasenpipeline in GitLab am besten? A. Eine Pipeline, in der alle Jobs gleichzeitig ausgeführt werden. B. Eine Pipeline, die in aufeinanderfolgenden Phasen organisiert ist, wobei jede Phase erst startet, wenn die vorherige abgeschlossen ist. C. Eine Pipeline, die keine Jobs definiert. D. Eine Pipeline, die ausschließlich in der Produktionsumgebung verwendet wird. ANSWER: B Was passiert, wenn ein Job in einer Phase einer Phasenpipeline fehlschlägt? A. Die Pipeline fährt mit der nächsten Phase fort. B. Die Pipeline wird abgebrochen, und keine weiteren Phasen werden ausgeführt. C. Der Job wird ignoriert, und die Pipeline fährt fort. D. Der Job wird automatisch neu gestartet. ANSWER: B Wie werden mehrere Jobs innerhalb einer Phase einer Phasenpipeline ausgeführt? A. Sie werden parallel ausgeführt, wenn ausreichende Ressourcen vorhanden sind. B. Sie müssen nacheinander ausgeführt werden. C. Sie werden übersprungen, wenn sie nicht manuell gestartet werden. D. Sie werden nur auf verschiedenen Servern ausgeführt. ANSWER: A Wann beginnt eine neue Phase in einer Phasenpipeline? A. Sobald die vorherige Phase vollständig abgeschlossen ist. B. Sobald der erste Job der vorherigen Phase abgeschlossen ist. C. Sobald die gesamte Pipeline manuell gestartet wird. D. Sobald die Phasenpipeline vollständig konfiguriert ist. ANSWER: A Welche Aussage trifft auf Phasenpipelines zu? A. Phasenpipelines ermöglichen es, Jobs in einer festen Reihenfolge ohne Parallelität auszuführen. B. Phasenpipelines können durch den Exit-Code eines Jobs beeinflusst werden, wobei ein Exit-Code ungleich 0 die Pipeline stoppt. C. Phasenpipelines starten alle Jobs gleichzeitig, unabhängig von der Reihenfolge. D. Phasenpipelines verhindern die Automatisierung von Jobs. ANSWER: B Welches Ereignis löst typischerweise eine Phasenpipeline in GitLab aus? A. Die Erstellung eines neuen Branches. B. Ein manuelles Deployment. C. Ein Code-Commit oder ein Merge-Request. D. Das Hinzufügen neuer Teammitglieder. ANSWER: C Was passiert, wenn alle Jobs einer Phase in einer Phasenpipeline erfolgreich sind? A. Die Pipeline wird abgeschlossen. B. Die Pipeline wartet auf manuelle Bestätigung. C. Die nächste Phase wird gestartet. D. Alle vorherigen Jobs werden gelöscht. ANSWER: C Was ist der Vorteil der Verwendung von Phasenpipelines? A. Sie ermöglichen eine parallele Ausführung von Phasen, unabhängig von ihrer Reihenfolge. B. Sie ermöglichen eine klare Trennung zwischen verschiedenen Phasen wie Build, Test und Deploy, wodurch die Ausführung besser organisiert und überwacht werden kann. C. Sie reduzieren die Anzahl der Phasen in einer Pipeline. D. Sie erfordern keinen Exit-Code, um festzustellen, ob ein Job erfolgreich war. ANSWER: B Wie wird in einer Phasenpipeline der Erfolg eines Jobs definiert? A. Durch den Abschluss der gesamten Pipeline. B. Durch den Exit-Code des Prozesses, wobei ein Exit-Code von 0 den Erfolg anzeigt. C. Durch manuelles Bestätigen des Jobs. D. Durch den Zeitpunkt des Job-Abschlusses. ANSWER: B Was passiert, wenn in einer Phasenpipeline ein Job in der ersten Phase fehlschlägt? A. Die Pipeline setzt die nächste Phase fort. B. Die Pipeline wird abgebrochen, und nachfolgende Phasen werden nicht ausgeführt. C. Die Pipeline überspringt die fehlgeschlagene Phase und fährt fort. D. Der fehlgeschlagene Job wird ignoriert, und die Pipeline wird beendet. ANSWER: B Was ist ein Exit Code in einer Pipeline? A. Ein Code, der den Erfolg oder Misserfolg eines Jobs in einer Pipeline angibt. B. Ein manuell erstellter Code, der die Pipeline startet. C. Ein Code, der angibt, wie viele Tests in der Pipeline erfolgreich waren. D. Ein Code, der die Dauer eines Pipeline-Jobs misst. ANSWER: A Welcher Exit Code zeigt typischerweise an, dass ein Job in einer Pipeline erfolgreich abgeschlossen wurde? A. 1 B. -1 C. 0 D. 255 ANSWER: C Was passiert in einer Pipeline, wenn ein Job einen Exit Code ungleich 0 liefert? A. Der Job wird erfolgreich abgeschlossen. B. Die Pipeline wird sofort gestoppt, und nachfolgende Jobs werden nicht ausgeführt. C. Die Pipeline überspringt den Job und fährt mit dem nächsten fort. D. Der Job wird automatisch neu gestartet. ANSWER: B Warum sind Exit Codes wichtig für den Ablauf von Pipelines? A. Sie definieren die Reihenfolge der Jobs. B. Sie bestimmen, ob ein Job erfolgreich abgeschlossen wurde oder fehlgeschlagen ist, was den weiteren Ablauf der Pipeline beeinflusst. C. Sie werden verwendet, um die Dauer eines Jobs zu berechnen. D. Sie bestimmen, wann die Pipeline manuell gestartet werden muss. ANSWER: B Wie können Entwickler den Exit Code eines Jobs in einer Pipeline beeinflussen? A. Indem sie die Dauer des Jobs ändern. B. Indem sie den Code des Skripts so schreiben, dass es mit einem bestimmten Exit Code endet. C. Indem sie den Branch der Pipeline ändern. D. Indem sie den Job neu starten. ANSWER: B Was bedeutet ein Exit Code von 1 in einer typischen Pipeline? A. Der Job wurde erfolgreich abgeschlossen. B. Der Job ist fehlgeschlagen und weitere Aktionen werden abgebrochen. C. Der Job wurde manuell angehalten. D. Der Job wurde erfolgreich in die Produktionsumgebung übertragen. ANSWER: B Was sollte ein Entwickler tun, wenn ein Job in einer Pipeline einen Exit Code ungleich 0 liefert? A. Den Job ignorieren und die Pipeline manuell fortsetzen. B. Den Fehler im Job beheben, da der Exit Code auf einen Fehler hinweist. C. Den Exit Code auf 0 setzen, um die Pipeline erfolgreich abzuschließen. D. Den nächsten Job in der Pipeline manuell starten. ANSWER: B Welche Bedeutung hat ein Exit Code in einer Shell, der an eine Pipeline weitergegeben wird? A. Er definiert die Zeitspanne, in der ein Job ausgeführt wird. B. Er signalisiert, ob der Shell-Prozess erfolgreich beendet wurde, und beeinflusst dadurch den Status des Jobs in der Pipeline. C. Er wird verwendet, um den Output eines Jobs zu messen. D. Er zeigt an, welche Tests in der Pipeline erfolgreich waren. ANSWER: B Wie wird der Erfolg eines Jobs in einer Pipeline üblicherweise überwacht? A. Durch manuelle Tests des Codes. B. Durch den Exit Code, der nach Abschluss des Jobs zurückgegeben wird. C. Durch die Anzahl der Branches in der Pipeline. D. Durch den Zeitpunkt, zu dem die Pipeline abgeschlossen wird. ANSWER: B Was ist die Standardbedeutung eines Exit Codes von 0? A. Fehler in der Pipeline. B. Erfolgreiche Ausführung eines Jobs oder Skripts. C. Manuelle Unterbrechung eines Jobs. D. Der Job wurde übersprungen. ANSWER: B Was bedeutet der Begriff "gerichtete Pipeline" (DAG) in GitLab? A. Eine Pipeline, die ausschließlich in der Reihenfolge der Phasen ausgeführt wird. B. Eine Pipeline, bei der die Abhängigkeiten zwischen den Jobs als gerichteter azyklischer Graph dargestellt werden, sodass Jobs parallel ausgeführt werden können, wenn keine Abhängigkeiten bestehen. C. Eine Pipeline, die nur manuell ausgeführt werden kann. D. Eine Pipeline, die ohne Rücksicht auf Abhängigkeiten alle Jobs gleichzeitig startet. ANSWER: B Was ist der Hauptvorteil von gerichteten Pipelines (DAG)? A. Sie erhöhen die Anzahl der Branches in einem Projekt. B. Sie ermöglichen es, Jobs parallel auszuführen, was die Gesamtzeit der Pipeline reduziert. C. Sie führen Jobs immer sequenziell aus, um die Fehlerquote zu verringern. D. Sie machen manuelle Tests in der Pipeline überflüssig. ANSWER: B Wann wird eine gerichtete Pipeline (DAG) bevorzugt? A. Wenn alle Jobs in strikter Reihenfolge ausgeführt werden müssen. B. Wenn es keine Abhängigkeiten zwischen den Jobs gibt und einige Jobs parallel ausgeführt werden können. C. Wenn nur ein Job in der Pipeline vorhanden ist. D. Wenn die Pipeline nur lokal ausgeführt wird. ANSWER: B Wie beeinflusst der Exit Code eines Jobs in einer gerichteten Pipeline (DAG) den weiteren Verlauf der Pipeline? A. Ein Exit Code ungleich 0 stoppt die gesamte Pipeline sofort. B. Der Exit Code hat keinen Einfluss auf die Pipeline. C. Ein Exit Code ungleich 0 erlaubt es den abhängigen Jobs, dennoch ausgeführt zu werden. D. Ein Exit Code ungleich 0 führt dazu, dass nur die abhängigen Jobs gestoppt werden, während andere parallele Jobs weiterhin ausgeführt werden. ANSWER: D Warum sind gerichtete Pipelines (DAG) besonders für komplexe Projekte geeignet? A. Weil sie alle Jobs in einer Phase gleichzeitig ausführen. B. Weil sie durch das effiziente Management von Job-Abhängigkeiten die Ausführungszeit verkürzen können. C. Weil sie nur auf einfachen Projekten ausgeführt werden können. D. Weil sie keine Automatisierung unterstützen. ANSWER: B Was beschreibt eine hierarchische Pipeline am besten? A. Eine Pipeline, bei der alle Jobs gleichzeitig ausgeführt werden. B. Eine Pipeline, die in verschiedene Stufen unterteilt ist, wobei einige Jobs abhängige Pipelines auslösen können. C. Eine Pipeline, die ausschließlich auf eine Produktionsebene beschränkt ist. D. Eine Pipeline, die nur manuell ausgeführt werden kann. ANSWER: B Wann sind hierarchische Pipelines besonders nützlich? A. Wenn viele unabhängige Komponenten in einem Monorepo gespeichert und separat gebaut werden müssen. B. Wenn nur ein kleiner Teil des Codes getestet werden muss. C. Wenn alle Jobs innerhalb der Pipeline in strikter Reihenfolge ausgeführt werden müssen. D. Wenn nur einfache Projekte ohne Abhängigkeiten gebaut werden. ANSWER: A Was ist der Hauptvorteil von hierarchischen Pipelines? A. Sie reduzieren die Notwendigkeit für Tests. B. Sie ermöglichen es, Pipelines für verschiedene Teile eines Projekts unabhängig voneinander zu verwalten und zu bauen, insbesondere in großen Monorepos. C. Sie verhindern, dass parallele Jobs innerhalb einer Pipeline ausgeführt werden. D. Sie ersetzen gerichtete Pipelines vollständig. ANSWER: B Wie funktionieren "Downstream Pipelines" in hierarchischen Pipelines? A. Sie werden automatisch gestartet, wenn die Hauptpipeline abgeschlossen ist. B. Sie werden durch die Ergebnisse von bestimmten Jobs in einer übergeordneten Pipeline ausgelöst und führen weitere spezifische Aufgaben aus. C. Sie laufen immer parallel zur Hauptpipeline, unabhängig vom Erfolg. D. Sie ersetzen die Hauptpipeline, sobald sie gestartet werden. ANSWER: B Wann sollten hierarchische Pipelines in Betracht gezogen werden? A. Bei kleinen Projekten ohne Abhängigkeiten. B. Bei Monorepos oder großen Projekten mit vielen unabhängigen Komponenten, die separate Pipelines erfordern. C. Bei Projekten, bei denen keine parallelen Prozesse notwendig sind. D. Bei Projekten, die keine Jobs in separaten Stages benötigen. ANSWER: B