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!

,

Management Y

Ich war gerade bei einer Buchvorstellung im Rahmen der Regionalgruppe Schleswig-Holstein der Gesellschaft für Informatik. Co-Autor Holger Koschek stellte das im September veröffentlichte Buch Management Y vor.

Koschek ist ein sympathischer Informatiker, der anschaulich und redegewandt die Inhalte des Buches näher bringen konnte. Optisch wurde ich irgendwie an Martin Freeman erinnert, aber ohne Hobbit-Füße :-)

Das Buch macht wirklich Appetit auf Kaufen. Die Kernthemen gehen darum, dass Firmen umdenken müssen, und zwar in den folgenden Punkten

  • Kunden wirklich verstehen
  • Liefern, was gebraucht wird
  • Organisation gemeinsam beleben
  • Menschen ehrlich begeistern

Der zweite Teil des Buches beschreibt 24 „Helferlein“ – Spiele, Konzepte, Prakiken –, die helfen sollen, ein Unternehmen Schritt für Schritt in die richtige Richtung zu bringen.

Koscheks erstes Flipchart sprach von“partizipativer Arbeitswelt“ und ich musste schmunzeln, da meine Frau sich gerade mit Partizipation in Kindertagesstätten beschäftigt. Die Parallelen sind allerdings beeindruckend.

Partizipative Pädagogik beteiligt Kinder und lässt sie Entscheidungen treffen wie Erwachsene. Es gibt einen Kinderrat, der etwa entscheidet, wie die Gestaltung des Außengeländes ausfallen soll – schließlich sind die Kinder die Experten in der Benutzung von Spielgeräten.

Das Buch beschäftigt sich mit dem Menschen in der Firma und damit, dass Führung bedeutet, Macht abzugeben. Kinder akzeptieren Macht aufgrund der strukturellen Selbstverständlichkeit, formuliert die Pädagogik. Und genau das ist das Prinzip in klassischen Firmenstrukturen der Generation X. Agile Vorgehensweisen erfordern, dass Führungskräfte Macht abgeben und einen Rahmen schaffen, dass sich Teams frei entfalten können, also Partizipation leben. Die Mitarbeiter sind die Experten.

,

Das Generic Goal 2 in CMMI ist auf deutsch mit Geführte Prozesse institutionalisieren übersetzt. Es geht also um Praktiken, die etabliert sein müssen, um von einem eingeführten, gelebtem Prozess zu reden. Ich habe das mal mit Bildchen visualisiert.

Insbesondere prüft das Management die Umsetzung (2.10) gegen die zuvor definierten Leitlinien (2.1), daher stehen die beiden nebeneinander. Ferner werden Arbeitsabläufe überwacht und gesteuert (2.8) gegen einen Plan (2.2). Die Überwachung der Prozesseinhaltung erfolgt mit GP 2.9. Der Hut in 2.4 steht für den Hut den man als eine bestimmte Rolle auf hat, mit der bestimmte Rechte und Pflichten verbunden sind.

CMMI GG2

 

GP 2.1 – Organisationsweite Leilinien etablieren

GP 2.2 – Arbeitsabläufe planen

GP 2.3 – Ressourcen bereitstellen

GP 2.4 – Rechte und Pflichten zuweisen

GP 2.5 – Aus- und weiterbilden

GP 2.6 – Arbeitsergebnisse verwalten

GP 2.7 – Relevante Stakeholder identifizieren und einbeziehen

GP 2.8 – Arbeitsabläufe überwachen und steuern

GP 2.9 – Prozesseinhaltung objektiv bewerten

GP 2.10 – Umsetzung mit dem höheren Management prüfen

 

 

,