SWAT-Intensivübung - Cheatsheet.pdf

SWAT-Intensivübung - Cheatsheet
SWAT-Intensivübung - Cheatsheet Testmethodologien und Testautomatisierung Definition: Testmethodologien bestimmen das Vorgehen im Testprozess, während Testautomatisierung sich auf die automatische Durchführung von Tests fokussiert. Details: Möglichkeit der Wiederholbarkeit und Effizienzsteigerung Reduktion menschlicher Fehler Verwendung von Frameworks wie JUnit und Selenium Unterscheidung zwischen...

© StudySmarter 2024, all rights reserved.

SWAT-Intensivübung - Cheatsheet

Testmethodologien und Testautomatisierung

Definition:

Testmethodologien bestimmen das Vorgehen im Testprozess, während Testautomatisierung sich auf die automatische Durchführung von Tests fokussiert.

Details:

  • Möglichkeit der Wiederholbarkeit und Effizienzsteigerung
  • Reduktion menschlicher Fehler
  • Verwendung von Frameworks wie JUnit und Selenium
  • Unterscheidung zwischen Black-Box- und White-Box-Tests
  • Continuous Integration (CI) zur kontinuierlichen Überprüfung von Änderungen

Software-Design-Muster und Architektur

Definition:

Verwendung bewährter Lösungen zur Gestaltung und Strukturierung von Software; Ziel: Wiederverwendung und Wartbarkeit.

Details:

  • Design-Muster:
    • Erzeugung: Singleton, Factory, Builder
    • Struktur: Adapter, Decorator, Composite
    • Verhalten: Observer, Strategy, Command
  • Architekturansätze:
    • Schichtenarchitektur (Layered Architecture)
    • Mikroservices
    • Ereignisgesteuerte Architektur
  • UML zur Visualisierung
  • \textit{SOLID}-Prinzipien:
    • Single Responsibility Principle (SRP)
    • Open/Closed Principle (OCP)
    • Liskov Substitution Principle (LSP)
    • Interface Segregation Principle (ISP)
    • Dependency Inversion Principle (DIP)

Versionskontrolle und Einsatz von Git

Definition:

Versionskontrolle: Verwaltung von Änderungen an Softwarecode. Git: verteiltes Versionskontrollsystem.

Details:

  • Git Befehle: git init, git clone, git add, git commit, git push, git pull
  • Branching: parallele Entwicklungszweige (z.B. git branch, git checkout, git merge)
  • Remote Repositories: gemeinsam genutzte Code-Repositories (z.B. GitHub, Bitbucket)
  • Konfliktlösung: Konflikte bei Merges manuell oder mit Tools lösen
  • Best Practices: häufige Commits, aussagekräftige Commit-Nachrichten, Nutzung von Branches für neue Features

Effektive Kommunikation und Meeting-Strategien

Definition:

Techniken zur Verbesserung der Kommunikation und Effizienz in Meetings.

Details:

  • Klare Agenda erstellen und verteilen
  • Zeitmanagement: Pünktlich beginnen und enden
  • Aktives Zuhören und klare Kommunikation
  • Vermeiden von Ablenkungen (z. B. Smartphones)
  • Klare Aufgabenverteilung und Follow-ups (z. B. Protokoll)
  • Visualisierungen nutzen (z. B. Präsentationen, Whiteboards)

Grundlagen von Scrum und Kanban

Definition:

Grundlagen agiler Methoden zur Softwareentwicklung, Fokus auf Flexibilität und Effizienz.

Details:

  • Scrum: Iterative Entwicklungsmethode, basiert auf festen Zeiträumen (Sprints).
  • Rollen: Product Owner, Scrum Master, Entwicklungsteam.
  • Artefakte: Product Backlog, Sprint Backlog, Increment.
  • Events: Sprint Planning, Daily Scrum, Sprint Review, Sprint Retrospective.
  • Kanban: Visualisierung der Arbeit, Fokus auf kontinuierlichen Fluss.
  • Prinzipien: Visualisiere den Workflow, WIP-Limits, explizite Prozessregeln, kontinuierliche Verbesserung.
  • Beide Methoden unterstützen selbstorganisierende Teams und inkrementelle Verbesserungen.

Continuous Integration und Continuous Deployment (CI/CD)

Definition:

Automatisierte Prozesse zur kontinuierlichen Integration und Auslieferung von Software.

Details:

  • Continuous Integration (CI): Automatisierte Tests und Builds, um Code-Integration in einem gemeinsamen Repository zu gewährleisten.
  • Continuous Deployment (CD): Automatisierte Bereitstellung von Anwendungen in Produktionsumgebungen nach erfolgreichem Durchlaufen der CI-Pipeline.
  • Tools: Jenkins, Travis CI, GitLab CI/CD.
  • Ziele: Schnellere Bereitstellung, Frühzeitige Fehlermeldung, Erhöhte Softwarequalität.
  • Wichtige Konzepte: Pipelines, Webhooks, Docker-Container, Versionierung.

Projektplanung und Anforderungsanalyse

Definition:

Planung des Projektablaufs und Sammlung, Analyse sowie Spezifikation der Anforderungen.

Details:

  • Projektziele festlegen
  • Aufgaben und Meilensteine definieren
  • Ressourcenplanung (Zeit, Personal, Budget)
  • Anforderungserhebung durch Interviews, Workshops, etc.
  • Anforderungsdokumentation und -spezifikation
  • Priorisierung und Bewertung der Anforderungen
  • Risikoanalyse
  • Erstellung des Projektplans

Datenstrukturen und Algorithmen

Definition:

Strukturen zur Organisation von Daten und Methoden zur Lösung von IT-Problemen.

Details:

  • Komplexität: Zeit- und Speicherbedarf, Asymptotische Notation: \(O(n)\), \(\Theta(n)\), \(\Omega(n)\)
  • Grundlegende Datenstrukturen: Arrays, Linked Lists, Stacks, Queues, Bäume, Graphen
  • Algorithmen: Sortieralgorithmen (z.B. Quicksort, Mergesort), Suchalgorithmen (z.B. Binäre Suche), Graphalgorithmen (z.B. Dijkstra, DFS, BFS)
  • Hashing: Hashfunktionen, Kollisionen, offene Adressierung, Verkettung
  • Dynamische Programmierung: Teilprobleme lösen, Memoisierung
Sign Up

Melde dich kostenlos an, um Zugriff auf das vollständige Dokument zu erhalten

Mit unserer kostenlosen Lernplattform erhältst du Zugang zu Millionen von Dokumenten, Karteikarten und Unterlagen.

Kostenloses Konto erstellen

Du hast bereits ein Konto? Anmelden