Aufgabe - Mathe-Klasse

Besonders einfach lassen sich Tests auf mathematische Funktionen anwenden, da diese einem einfachen Eingabe-Verarbeitung-Ausgabe Schema folgen. Erstelle eine Klasse, die wichtige mathematische Funktionen bereit stellt. Dies können bspw. Funktionen sein, die den

  • Betrag einer Zahl
  • Rauminhalt und die Fläche von geometrischen Figuren
  • Zins und Zinseszins
  • Wert für verschiedene Konstanten wie Pi oder die Eulersche Zahl anhand von Näherungen
  • Lösungswert bzw. die Werte einer quadratischen Gleichung

berechnen.

Erstelle sinnvoll ausgewählte Testfälle.

Aufgabe - Terminplaner

Interessanter wird es, wenn die Tests auch abhängig vom Zustand mehrerer Objekte sind. Als Beispiel soll ein einfacher Terminplaner gemäß den folgenden Anforderungen implementiert werden.

  • Zur Vereinfachung soll dieser nur Termine für einen einzelnen Tag verwalten.
  • Ein einzelner Termin hat eine Bezeichnung, einen Start-Zeitpunkt und einen Endzeitpunkt. Es reicht aus die Zeiten als volle Stunden zu speichern.
  • Ein Terminplaner soll einen Termin hinzufügen können, falls die entsprechende Zeit noch frei ist.
  • Termine eines bestimmten Zeitraums sollen gelöscht werden können.
  • Ein Termin soll über dessen Bezeichnung gelöscht werden können.
  • Die Gesamtzahl der Termine soll zurückgegeben werden.
  1. Erstelle ein UML-Diagramm der benötigten Klassen und erzeuge den Quellcode.
  2. Implementiere die geforderte Funktionalität.
  3. Wähle geeignete Testfälle, dokumentiere diese und teste den Terminplaner.

Konstruktion von Testmengen

Aufgabe

Erweitere die definierten Tests für den Terminplaner so, dass sowohl White- als auch Black-Box Tests ausreichend berücksichtigt sind. (Was heißt "ausreichend"...?)

Aufgabe

Schreibe eine Methode, die überprüft, ob eine als Parameter übergebene Zahl eine Primzahl ist, und true oder false zurück gibt.
Teste die Methode mit Hilfe von Black- und White-Box-Tests.