I/BInformatik in der Bildung
I/El'Informatique dans l'Éducation
Sie befinden sich hier: SV!A - SS!E - SS!I » Informatik in der Bildung » Kompetenzenkatalog für gymnasiale Informatik » P8 Testing: Softwaretest

P8 Testing: Softwaretest

Autor: Urs Battaglia

Motivation

Wo gearbeitet wird, da werden auch Fehler gemacht. Dies gilt insbesondere für die Softwareentwicklung. Daher muss man immer davon ausgehen, dass ein eben erstellter Programmteil grundsätzlich Fehler enthält. Um sich davon zu überzeugen, dass dem nicht so ist, oder um die Fehler zu lokalisieren, müssen die Codeteile immer wieder überprüft werden.

Haltung

  1. Grundsätzlich muss man seinem Ergebnis immer misstrauen, daher muss jede Softwarekomponente nach jeder Änderung getestet werden.
  2. Die Test sollten mit automatisierten Testklassen durchgeführt werden, so dass diese in jeder Mittagspause oder über Nacht laufen können.
  3. Modultests können vom Softwareentwickler selbst, oder auch von einer unabhängigen Person erstellt werden. Beide Varianten bieten Vor- und Nachteile.
  4. Je genauer eine Modul und dessen Schnittstellen spezifiziert wurden, umso besser können Modultest definiert und erzeugt werden.
  5. Modultest prüfen immer nur einen sehr kleinen und autarken Teil eines Software-Systems, wie beispielsweise eine einzelne Funktion oder Klassenmethode.
  6. Die Verwendung von Modultest führt dazu, dass der Entwickler Funktionen und Methoden möglichst einfach hält und Objektstrukturen sauber entwirft, um entsprechend einfache Tests dazu implementieren zu können.
  7. In der Regel werden die Teststufen bzw. Testphasen an das V-Modell mit den vier Stufen Komponententest, Integrationstest, Systemtest und Abnahmetest angelehnt. Dabei wird eine Entwicklungsstufe gegen die dazugehörige Spezifikation getestet.

Fertigkeiten / Kenntnisse

  1. Ich kenne die grundlegenden Schritte, die bei einem Modultest durchlaufen werden müssen und kann aufzeigen, welchen Beitrag diese zu einem qualitativ guten Ergebnis leisten.
  2. Ich kann zu einer Klasse Testfälle und Grenzwerte festlegen und diese in einer Testklasse implementieren.
  3. Ich kenne die wichtigsten Verfahren (z.B. Äquivalenzklassenbildung), die bei der Definition von Testfällen und Testdaten angewendet werden können und kann aufzeigen, inwieweit damit eine vollständige und korrekte Verarbeitung der Informationen in einem Programm nachgewiesen werden kann.
  4. Ich kenne die Bedeutung von Grenzwerten beim Testen und kann an Beispielen aufzeigen, wie damit die Korrektheit von Bedingungen in Programmen nachgewiesen werden kann.
  5. Ich kenne die Elemente eines Testfalls (zu testende Funktion oder Verarbeitung, Eingabedaten, erwartete Ergebnisse) und kann aufzeigen, welche Bedeutung die Definition dieser Elemente für den Nachweis der korrekten Verarbeitung von Informationen in einem Programm hat.
  6. Ich kenne verschiedene Testmethoden (White Box Test, Black Box Test, …) sowie deren Vor- und Nachteile und kann diese anhand eines Beispiels erläutern.
  7. Ich kenne den Aufbau eines Testprotokolls und kann an Beispielen aufzeigen, welche Ziele mit dem Testprotokoll verfolgt werden (Was, wann, von wem, wie intensiv und mit welchem Ergebnis getestet).
  8. Ich kann auf Grund der Use Cases Testfälle bestimmen und ausarbeiten.

Anwendungsbeispiele

  • Modultest zu vorher erstellten Funktionen oder Klassen
  • Ein OOD (P5 OO: Objektorientierung) wird vorgegeben. EinTeil der SchülerInnen erstellt die Module, ein anderer Teil die Tests dazu.

Verwandte Kompetenzen

Referenzen

  • FIXME

Diskussion

  • NOTE Wichtig, dass dies nicht als separate Tätigkeit gelehrt wird, sondern schon a priori geplant und vorbereitet. — Paul Miotti 2008/06/24
 
informatik/kompetenzen/p8_testing.txt · Zuletzt geändert: 2011/05/30 23:02 (Externe Bearbeitung)