Lernzettel Qualitätssicherung (Testen) zur GAP2 für Fachinformatiker Anwendungsentwicklung

Dieser Lernzettel richtet sich nach den möglichen Themen von Teil 2 der gestreckten Abschlussprüfung (GAP) für Fachinformatiker Anwendungsentwicklung vom IT-Berufe-Podcast.

Klassifizierung von Testverfahren

Arten von Testverfahren

  • Statischer Test: Überprüfung des Codes, ohne ihn auszuführen.
  • Dynamischer Test: Testen durch Ausführen des Codes.
  • Funktionaler Test: Testet spezielle Funktionen der Software.

Wer testet?

Mensch (manuell) vs. Maschine (automatisch)

  • Manuell: Tester führen Testfälle manuell aus.
    • Vorteil: Flexibilität
    • Nachteil: Zeitaufwendig
  • Automatisch: Testfälle werden durch Software ausgeführt.
    • Vorteil: Schnelligkeit und Wiederholbarkeit
    • Nachteil: Muss zunächst aufwändig programmiert/erstellt werden

Entwickler vs. Benutzer

  • Entwickler: Erstellt die Unit-Tests und Integrationstests.
  • Benutzer: Führt oft Abnahme- und Usability-Tests durch.

Was wird getestet?

Komponente (Unit-Test/Funktionstest/Klassentest) vs. Integration vs. System (End-to-End)

  • Komponente: Einzelne Funktionen oder Methoden werden isoliert getestet.
    • Beispiel: Ein Unit-Test für eine sum-Funktion.
  • Integration: Interaktion zwischen Komponenten wird getestet.
    • Beispiel: Ein Integrationstest, der überprüft, ob eine Datenbank und ein Webserver korrekt interagieren.
  • System (End-to-End): Gesamter Ablauf einer Anwendung wird getestet.
    • Beispiel: Ein E2E-Test, der eine Benutzeranmeldung von Anfang bis Ende simuliert.

Testpyramide

  • Unit-Tests: Basis der Pyramide, höchste Anzahl an Tests.
  • Integrationstests: Mittlere Ebene, weniger aber komplexere Tests.
  • Systemtests: Spitze der Pyramide, geringste Anzahl, sehr komplex.

Wie wird getestet?

Bottom-Up vs. Top-Down

  • Bottom-Up: Beginnt mit den untersten Komponenten (z.B. Methoden, Funktionen).
  • Top-Down: Beginnt bei der höchsten Abstraktionsebene (z.B. gesamte Anwendung).

Statisch (Kompilierzeit) vs. Dynamisch (Laufzeit)

  • Statischer Test: Überprüfung des Codes, ohne ihn auszuführen.
  • Dynamischer Test: Testen durch Ausführen des Codes.

Ohne Kenntnis des Codes (Blackbox) vs. mit Kenntnis des Codes (Whitebox)

  • Blackbox: Testen nur anhand der Eingabe- und Ausgabewerte, ohne interne Logik zu kennen.
  • Whitebox: Tester kennen die interne Struktur des Programms und können spezifische Tests dafür entwerfen.

Explorativ

  • Definition: Tester folgen keinem vordefinierten Testplan, sondern erkunden die Software explorativ.

Schreibtischtest/Review

  • Manuelle Überprüfung des Codes oder Designs, unter Sichtung des Codes.

Wann wird getestet?

Vor vs. nach der Entwicklung

  • Vor der Entwicklung: Z.B. durch TDD (Test Driven Development).
  • Nach der Entwicklung: Traditionelle Methode, Tests werden nach der Entwicklung geschrieben.

Abnahmetest

  • Endgültige Überprüfung vor dem Go-Live, oft durch den Kunden.

Warum wird getestet?

Regressionstest

  • Überprüfung, ob durch neue Änderungen keine bestehenden Funktionen kaputt gegangen sind.

Lasttest/Belastungstest

  • Überprüfung der Systemperformance unter Lastbedingungen.

Smoketest

  • Einfache Tests, schnelle und Oberflächliche Tests, die sicherstellen, dass die grundlegenden Funktionen einer Anwendung funktionieren.

Methoden zur Ermittlung von Testfällen

Anweisungsüberdeckung vs. Zweig-/Pfadüberdeckung

  • Anweisungsüberdeckung: Jede Anweisung im Code wird mindestens einmal durchlaufen.
  • Beispiel: Ein einfacher Unit-Test, der sicherstellt, dass jede Methode aufgerufen wird.
  • Zweigüberdeckung: Jeder Zweig im Code wird mindestens einmal durchlaufen.
  • Beispiel: Bei if und else wird jeder Zweig getestet.
  • Zweig-/Pfadüberdeckung: Alle möglichen Pfade durch den Code werden getestet.
  • Beispiel: Testen von allen möglichen Wegen durch Schleifen.

Äquivalenzklassen

  • Einteilung der Eingabedaten in Bereiche, die sich ähnlich verhalten.
  • Beispiel: Wenn eine Methode nur positive Ganzzahlen akzeptiert, bilden negative Zahlen, die Zahl 0 und positive Zahlen drei Äquivalenzklassen.

Grenzwertanalyse/Extremwertetest

  • Testet die Randwerte der Äquivalenzklassen.
  • Beispiel: Wenn eine Funktion Zahlen zwischen 1 und 100 akzeptiert, testet man 0, 1, 100 und 101.

Modultests erstellen und durchführen

Test-Doubles: Stubs vs. Mocks

  • Stubs: Simulieren das Verhalten einer Komponente, geben aber vordefinierte Antworten zurück.
  • Mocks: Überprüfen ob die erwarteten Interaktionen tatsächlich aufgetreten sind.

Eigenschaften guter Unit-Tests

  • Korrekt: Der Test muss das tun, was er soll.
  • Isoliert: Sollte keine Abhängigkeiten zu anderen Tests haben.
  • Schnell: Muss schnell laufen, um die Entwicklung nicht zu behindern.
  • Aussagekräftig: Sollte klare und nützliche Informationen liefern.
  • Wartbar: Sollte einfach zu aktualisieren sein, wenn sich der Code ändert.
  • Einfach durchführbar: Sollte leicht wiederholbar sein.

Testkonzepte erstellen und Tests durchführen sowie Testergebnisse bewerten und dokumentieren

Definition der Inhalte eines Tests

  • Testkonzepte: Übergeordnete Strategien und Ziele für den Test.
  • Testdaten: Eingabewerte für den Test.
  • Testszenario: Die konkreten Schritte, die im Test durchgeführt werden.

Beschreiben des Testumfangs

  • Grenzbelastung: Maximal erwartete Systemlast.
  • Stabilität: Dauer und Zuverlässigkeit des Systems unter Last.

Testdatengeneratoren

  • Werkzeuge oder Skripte, die automatisch Testdaten erzeugen.
  • Beispiel: Ein Skript, das automatisch eine CSV-Datei mit Testdaten erzeugt.

Daten und Sachverhalte aus Tests multimedial aufbereiten

  • Visualisierung: Nutzung von Grafiken, Charts oder Dashboards, um Testergebnisse darzustellen.
  • Präsentationen: Erstellung von Präsentationen, um die Testergebnisse und -strategien im Team oder gegenüber Stakeholdern zu erläutern.
  • Berichterstattung: Erstellung von detaillierten schriftlichen Berichten, um den Testprozess und die Ergebnisse zu dokumentieren.

Testprozess

Auswahl des Testverfahrens

  • Unit-Tests für Einzelkomponenten
  • Integrationstests für Interaktion zwischen Komponenten
  • Systemtests für Gesamtverhalten

Kriterien für Testergebnisse

  • Festlegung von Erfolgskriterien
  • Metriken (z.B. Anzahl der gefundenen Fehler, Durchlaufzeit)

Testdaten generieren und auswählen

  • Repräsentative Datensätze
  • Manuell erstellte oder automatisch generierte Daten
  • Randomisierte Daten

Testprotokoll und Auswertung

  • Dokumentation der Testergebnisse
  • Analyse basierend auf verschiedenen Kriterien
  • Fehlerbehebungs- und Verbesserungsstrategien

Auswerten von Testergebnissen, z.B. Soll-Ist-Vergleich

  • Direkter Vergleich der erwarteten Ausgaben mit den tatsächlichen Ausgaben des Tests.

Testprotokolle

  • Detaillierte Dokumentation jedes Tests, einschließlich verwendeter Testdaten, durchgeführter Schritte und erzielter Ergebnisse.

Kontrollverfahren

Hardwaretest

  • Wareneingangskontrolle: Überprüfung der angelieferten Hardware auf Mängel.
  • Warenausgangskontrolle: Überprüfung der Hardware vor dem Versand an den Kunden.
  • Abnahmeprotokoll: Dokumentation der Überprüfung und Annahme der Hardware.

Software-Test

  • Testverfahren: Auswahl der geeigneten Methoden und Werkzeuge für den Software-Test.
  • Abnahmeprotokoll: Dokumentation der Software-Tests und -Ergebnisse als Nachweis für die Erfüllung der Anforderungen.

Weiteres Lernmaterial

Die mit Sternchen (*) gekennzeichneten Links sind sogenannte Affiliate-Links. Wenn du auf so einen Affiliate-Link klickst und über diesen Link einkaufst, bekomme ich von dem betreffenden Online-Shop oder Anbieter eine Provision. Für dich verändert sich der Preis nicht.

Prüfungsvorbereitung aktuell Teil 2 der gestreckten Abschlussprüfung: Fachinformatiker Anwendungsentwicklung*

IT-Handbuch

IT-Handbuch für Fachinformatiker*innen: Der Ausbildungsbegleiter für Anwendungsentwicklung und Systemintegration. Inkl. Prüfungsfragen und Übungen*

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen