ISTQB Foundation Level
Die Frequenz meiner Beiträge ist etwas spärlich geworden; daher hier mal wieder ein Lebenszeichen auf prozessblog.de
Ich habe diese Woche an einer Schulung zum ISTQB Foundation Level Zertifikat teilgenommen. ISTQB steht für International Software Testing Qualification Board und hat mit dem Certified Tester ein weltweit anerkanntes Programm für die Ausbildung im Bereich Software-Testen geschaffen. Die Ausbildung gliedert sich in Foundation, Advanced und Expert Level. Das ISTQB wird in Deutschland vertreten vom German Testing Board.
Die Inhalte des Foundation Levels
Der Foundation Level macht aus meiner Sicht für jeden Sinn, der irgendwie mit Software-Entwicklung oder eben –Test zu tun hat. Die Inhalte sind in dem zugehörigen Buch Basiswissen Softwaretest zu finden.
Grundlagen des Softwaretestens
Es geht zunächst um Grundlagen wie Begriffsdefinitionen (was ist ein Fehler?), Ursache von Softwarefehlern, die Rolle des Testens und die Frage, wieviel Testaufwand eigentlich notwendig ist. Dann geht es um Testziele, Testaktivitäten, die sieben allgemeinen Grundsätze des Testens, die Psychologie des Testens und die Phasen des fundamentalen Testprozesses.
Testen im Softwarelebenszyklus
Im nächsten Abschnitt geht es um das V-Modell nach Barry Boehm, das Testen neben die Entwicklung stellt und begleitende Verifikation und Validierung (daher das „V“) hervorhebt. Andere Vorgehensmodelle (RAD, Scrum usw.) werden angesprochen. Die vier Teststufen des V-Modells Komponententest, Integrationstest, Systemtest, Abnahmetest werden behandelt.
Das Testen nach Änderungen bedingt eine Auswirkungsanalyse, mit der festgestellt werden kann, welche Testfälle im Regressionstest erneut getestet werden müssen. Grundlegende Testarten wie funktionale Tests, nicht-funktionale Tests, strukturbezogene Tests werden unterschieden.
Statischer Test
Für die statischen Tests wird die Software nicht ausgeführt. Eine grundlegende Art des statischen Testens sind daher Reviews. Die Reviewarten Informelles Review, Walkthrough, Technisches Review und Inspektion (IEEE 1028) werden erläutert mit ihren Reviewphasen und Rollen.
Die Statische Analyse beinhaltet die Analyse des Source Codes durch Werkzeuge wie Compiler oder statische Analysewerzeuge, die bspw. auch die Einhaltung von Programmierrichtlinien überprüfen können. Datenflussanalysen zeigen Anomalien beim Definieren und Referenzieren von Variablen. Die zyklomatische Komplexität nach McCabe gibt Hinweise auf die Komplexität eines Algorithmus.
Dynamischer Test
Dynamische Tests erfordern die Ausführung der Software. Die Blackbox-Verfahren betrachten das Ein- und Ausgabeverhalten einer Komponente oder eines Systems und gehen somit von einer „schwarzen Kiste“ aus.
Für die Äquivalenzklassenbildung fasst man Eingabewerte in einer Klasse zusammen, für die man dieselben Ergebnisse erwartet. Es reicht dann einen Testfall mit einem Repräsentaten einer Äquivalenzklasse zu bilden. Da an den Grenzen der Äquivalenzklassen leicht Fehler entstehen können, testet die Grenzwertanalyse mit den Grenzwerten zwischen Äquivalenzklassen.
Zustandsbezogene Tests gehen von einem Zustandsmodell aus, also Beispielsweise die Betriebszustände eines Systems. Diese funktionalen Tests werden häufig im Embedded-Bereich verwendet. Anwendungsfallbezogene Tests beziehen sich auf beschriebene Use Cases oder User Stories.
Die Entscheidungstabellentechnik ist ein Verfahren, das sich besonders gut für das Testen von Geschäftsregeln eignet. Bedingungen und Aktionen werden tabellarisch aufgelistet und durch methodisches wegstreichen soweit reduziert, dass man alle Testfälle erhält, die mindestens notwendig sind, um die Kombination aller Bedingungen zu testen.
Bei den Whitebox-Verfahren wird in den Source Code geschaut. Letztendlich geht es hier darum zu messen, welche Anteil an Testfallüberdeckung ich durch die Durchführung meiner funktionalen Tests erreicht habe. Für den Überdeckungsgrad kann ich die Anweisungen zählen, die Zweige oder die Pfade, also die Kombination aller Zweige.
Neben den Blackbox- und Whitebox-Verfahren bezeichnet man die erfahrungsbasierten Verfahren als Greybox-Verfahren. Beim Error Guessing werden Testfälle aufgrund der Erfahrung des Testers erstellt. Das Explorative Testen testet ohne vorherige Definition von Testfällen, sondern nur auf Basis einer kurzen Test-Charta.
Testmanagement
Die wesentlichen Rollen sind Test Manager und Tester. Die Aufgabenverteilung wird beschrieben und erläutert. Der Test Manager schreibt das Testkonzept, wählt Testvorgehen aus, wählt zwischen vorbeugenden und reaktiven Ansätzen, zwischen analytischen und heuristischen. Er berücksicht Risiken und Kosten.
Fehlermanagement betrachtet die Protokollierung und Verfolgung von Fehlermeldungen. Konfigurationsmanagement ist wichtig, um Testobjekte eindeutig referenzieren zu können.
Testwerkzeuge
Abschließend gibt es eine Betrachtung zu möglichen Software-Tools, die beim Testen helfen, Werkzeuge für das Testmanagement, die Spezifikation von Tests, für statische und dynamische Tests, für nicht-funktionale Tests. Die Auswahl von Werkzeugen und die Einführung von Werkzeugen sollten in bestimmten Phasen ablaufen.
Die Prüfung
Für die Prüfung müssen in 60 Minuten 40 Multiple-Choice-Fragen beantwortet werden. Es gibt in der Regel vier Antworten, von denen immer nur eine richtig ist. Mindestens 65% der Fragen müssen korrekt beantwortet werden.
Mit 92,5% war ich gut dabei. Allerdings muss man sagen, dass es für Teilnehmer ohne Informatik- und Software-Entwicklungskenntnisse deutlich schwerer ist. Für manche Aufgaben muss man Pseudo-Code in einen Kontrollflussgrafen konvertieren, um bspw. die notwendige Anzahl von Testfällen für eine 100% Pfadüberdeckung zu bestimmen. Auch die allgemeine Kenntnis vom Ablauf von Entwicklungsprojekten ist hilfreich.
Die Prüfung lief am iPad. Der Zertifizierer teilt Benutzername und Passwort aus, man loggt sich ein, gibt seine persönlichen Daten ein und startet den Test. Man sieht jederzeit die Zeit und die Übersicht über die erledigten und noch offenen Aufgaben. Man kann Aufgaben mit einer Stecknadel versehen, um später per Filter darauf zurückzukommen.
Die App war an einigen Stellen noch etwas buggy. So wurde bspw. besagter Filter deaktivier, wenn ein Anhang (Bild) geöffnet wurde; man landete anschließend bei einer anderen Aufgaben.
Insgesamt aber doch gut machbar. Viel Erfolg!