Prüfung 2: Praxis

Teststufen, Testarten, Testen nach Weiterentwicklung

  1. Sie können die vier Teststufen Komponententest, Integrationstest, Systemtest und Abnahmetest voneinander abgrenzen und zu jeder Testobjekte, Testziele, Testmethoden und Verantwortlichkeiten benennen.
  2. Sie können begründen, warum trotz funktionierender Tests auf einer Stufe weitere Tests auf einer höheren Stufe nötig sind.
  3. Sie können funktionale von nicht funktionalen und anforderungsbezogene von strukturbezogenen Tests unterscheiden und Testziele der jeweiligen Testarten benennen.
  4. Sie können die Begriffe Softwarepflege und Softwarewartung definieren, voneinander abgrenzen und erklären, warum Software überhaupt gepflegt und gewartet werden muss.
  5. Sie können die Begriffe Regressionsfehler und Regressionstest sowie eine Massnahme zu deren Verhinderung erklären.

Unterlagen

Statischer Test

  1. Sie können den statischen vom dynamischen Test anhand der Aspekte Testobjekte, Testvorgehen, Testzeitpunkt und Testziele unterscheiden.
  2. Sie können die Vorteile von Reviews auf Arbeitsergebnisse und Entwicklungsprozess erklären.
  3. Sie können den Ablauf, Rollen und Arten von Reviews erklären.
  4. Sie können die Grenzen der statischen gegenüber der dynamischen Prüfung aufzeigen.

Unterlagen

Dynamischer Test

  • Sie können zwischen Blackbox- und Whitebox-Testverfahren unterscheiden, deren Unterschiede benennen und die Überdeckungsgrade der einzelnen Verfahren bestimmen.
  • Sie können den Begriff Äquivalenzklasse definieren, Äquivalenzklassen (gültiger und ungültiger Werte) für eine gegebene Problemstellung bilden, daraus systematisch (positive und negative) Testfälle herleiten und diese mithilfe einer Grenzwertanalyse sinnvoll ergänzen.
  • Sie können zustandsbasierte Testfälle anhand eines Zustandsautomaten oder einer Zustandstabelle herleiten.
  • Sie können anhand gegebener Bedingungen eine Entscheidungstabelle aufstellen und daraus positive sowie negative Testfälle herleiten.
  • Sie können Testfälle systematisch anhand des zu testenden Quellcodes und der relevanten Metrik (geforderte Anweisungs- oder Zweigüberdeckung) ermitteln.
  • Sie können den Zusammenhang und Unterschied zwischen Anweisungs- und Zweigüberdeckung mithilfe eines Flussdiagramms erklären.
  • Sie können den Nutzen und das Vorgehen der erfahrungsbasierten Testfallermittlung erklären.

Unterlagen

Test Doubles

  • Sie können mögliche Probleme erklären, die beim Testen einer Klasse mitsamt ihrer Abhängigkeiten auftreten können, und diese Probleme mithilfe von Test Doubles lösen.
  • Sie können das Konzept der Dependency Injection erklären und es auf gegebenen Programmcode (gekoppelte Klassen) anwenden.
  • Sie können verschiedene Arten von Test Doubles (Dummy, Fake, Stub, Mock, Spy) voneinander unterscheiden, die Rahmenbedingungen für ihren Einsatz bestimmen und Test Doubles für eine gegebene Problemstellung implementieren.
  • Sie können den Unterschied zwischen Aggregation und Komposition und die Konsequenz davon auf die Testbarkeit erklären.

Unterlagen

Separation of Concerns

  • Sie können das Konzept der Separation of Concerns (SoC) und die Auswirkungen davon auf die Testbarkeit von Programmcode erklären.
  • Sie können gegebenen Programmcode auf die Separation of Concerns analysieren und Verbesserungsvorschläge dafür ausdenken und umsetzen.

Unterlagen

Debugging

  • Sie können die Vor- und Nachteile bei der Arbeit mit dem Debugger benennen.
  • Sie können Debugging-Techniken und -Hilfsmittel erklären und anwenden.
  • Sie können nachvollziehen, warum ein Debugger nicht das erste sondern eher das letzte Mittel bei der Fehlerbehebung sein sollte.
  • Sie können erklären, warum ein Fehler zuerst zuverlässig nachvollziehbar gemacht werden soll, bevor man diesen behebt.

Unterlagen

Testwerkzeuge & Schnittstellentests

  • Sie können die Werkzeuge curl, jq und bash für einfache Schnittstellentests verwenden und erklären, welches Werkzeug welchen Zweck erfüllt.

Unterlagen

Performance

nur für die Klasse INA23a relevant

  • Sie können die Grundsätze der Performance-Optimierung (wann und wie) erklären und begründen.
  • Sie können erklären, welche Rolle Zeitmessungen, Profiling, Compiler-Optimierungen und Regressionstests bei der Performance-Optimierung spielen.

Unterlagen