Testmanagement für Varianten – (k)eine Herausforderung
Viele Entwicklungsprojekte stehen heute vor einer wachsenden Herausforderung: dem Umgang mit Variabilität. Denken Sie zum Beispiel an Unternehmenssoftware, die auf verschiedenen mobilen und stationären Endgeräten ablaufen soll, oder an Anwendungen, die mit verschiedenen Oberflächensystemen funktionieren sollen. Der Begriff der Variabilität – wie wir ihn hier verwenden – stammt ursprünglich aus der Software Produktlinien Entwicklung. Variabilität ist die zentrale Eigenschaft einer Software Produktlinie. Sie versetzt die Entwickler in die Lage, ein Softwareprodukt durch die Verwendung vordefinierter, variabler Komponenten zu individualisieren. Aber selbst wenn Sie in Ihren Projekten nicht im engeren Sinne Produktlinien Entwicklung betreiben, ist es sinnvoll mit Variabilität bewusst umzugehen.
In objectiF RPM haben wir das Konzept der Variabilität konsequent umgesetzt. Welchen Nutzen Sie speziell beim Testmanagement daraus ziehen können, erfahren Sie hier. Zuvor brauchen wir jedoch noch ein paar Begriffe.
Variationspunkt und Variation
Wenn Sie variable Komponenten entwickeln wollen, sollten Sie die benötigte Variabilität bereits auf dem Niveau von Anforderungen definieren. Das heißt, Sie sollten sich schon zu Beginn der Anforderungsanalyse darüber klar werden, welche Variabilitätseigenschaften Ihre Lösung besitzen soll. Dazu müssen Sie drei Fragen beantworten:
- Was variiert?
In der realen Welt nennt man das, was variieren kann, ein Variabilitätssubjekt. Ein Beispiel: Farbe kann variieren. - Warum variiert etwas?
Weil die Stakeholder unterschiedliche Wünsche haben. So hat zum Beispiel jeder Stakeholder eine Lieblingsfarbe. - Wie variiert etwas?
Die Antwort darauf beschreiben die sogenannten Variabilitätsobjekte. Ein Variabilitätssubjekt verhält sich zu Variabilitäts¬objekten wie eine Klasse zu ihren Instanzen. Variabilitätsobjekte zum Variabilitätssubjekt Farbe sind z.B. Rot, Grün, Blau.
In einer Produktlinie wird ein Variabilitätssubjekt der realen Welt als ein sogenannter Variationspunkt abgebildet. Die einzelnen Werte, die zu einem Variationspunkt gehören, werden als Variationen bezeichnet. Den Variationsobjekten in der realen Welt entsprechen in der Produktlinie also die Variationen.
Wenn Sie definiert haben, was variieren soll (zum Beispiel die technische Plattform für Ihre Lösung), bilden Sie die Variationspunkte und die zugehörigen Variationen mit objectiF RPM ab. Das sieht zum Beispiel so aus:
Anforderungen und Testfällen Variationen zuordnen
Mit der Definition von Variationspunkten und Variationen haben Sie die Grundlagen für den Umgang mit Variabilität geschaffen. Bei der Entwicklung von Anforderungen müssen Sie nun die folgenden Fragen beantworten:
- Bezieht sich eine Anforderung auf eine oder mehrere Variationen?
Wenn das der Fall ist, dann ordnen Sie der Anforderung die jeweiligen Variationen zu, wie Sie es im nachfolgenden Bild sehen. - Bezieht sich eine Anforderung nicht auf eine Variation, wird sie also allgemeingültig realisiert? Muss ihre Realisierung aber für verschiedene Variationen getestet werden?
In diesem Fall ordnen Sie nicht der Anforderung, sondern den zugehörigen Testfällen die entsprechenden Variationen zu. - Oder treten beide Fälle kombiniert auf?
Dann ordnen Sie sowohl der Anforderung als auch ihren Testfällen jeweils Variationen verschiedener Variationspunkte zu.
Was haben Sie durch diese Zuordnungen für das Testmanagement gewonnen?
Variabilität beim Testmanagement nutzen
Wenn Sie Anforderungen bzw. Testfällen Variationen zugewiesen haben, wird das Testmanagement für funktionale oder technologische Varianten einfacher. Machen wir uns das grundlegende Prinzip anhand des folgenden Falls deutlich:
Nehmen wir an, zahlreiche Anforderungen an eine neue Lösung müssen betriebssystem¬abhängig implementiert werden. Deshalb wurde ein Variationspunkt Betriebssystem mit den Variationen iOS, Android und Windows definiert. Für jede Anforderung wurde durch Zuordnung der entsprechenden Variation kenntlich gemacht, auf welches der drei Betriebssysteme sie sich bezieht. Nehmen wir weiter an, dass für jede betriebssystemabhängige Variante der Software zusätzlich nachgewiesen werden muss, dass sie unter verschiedenen Browsern korrekt abläuft. Da jeder Browser seine technischen „Eigenheiten“ hat, wurden zu jeder Anforderung mehrere Testfälle definiert. Ein Testfall bezieht sich jeweils auf eine Variation des Variationspunktes Browser, nämlich auf Chrome, Edge, Safari oder Firefox.
Wie finden Sie alle Testfälle, um beispielsweise die iOS-Lösung mit Chrome zu überprüfen?
Dazu gehen Sie so vor: Sie erzeugen für eine Menge von Tests, die zu einem bestimmten Termin durchgeführt werden sollen, eine sogenannte Test Set Ausführung. Bei anforderungsgetriebenem Vorgehen bedeutet Testen, nachzuweisen, dass die entwickelte Lösung die Anforderungen der Stakeholder erfüllt. Wenn Sie eine Test Set Ausführung anlegen, lautet die Frage also nicht: „Welche Testfälle sollen zu einem Test Set zusammengefasst werden?“, sondern „Welche Anforderungen sollen gemeinsam getestet werden?“. Wenn Sie bestimmt haben, welche Menge von Anforderungen getestet werden soll, müssen die zugehörigen Anforderungen ermittelt und ihre Testfälle „zusammengesucht“ werden. Die Tests der gefundenen Testfälle bilden dann die Test Set Ausführung. Das „Zusammensuchen“ der Testfälle überlassen Sie am besten dem Tool.
Was bedeutet das bezogen auf unser Beispiel? Die Test Set Ausführung soll sich in diesem speziellen Fall nur auf Anforderungen beziehen, die für die iOS-Variante der Software gelten. Dabei sollen diejenigen Testfälle für die Test Set Ausführung ausgewählt werden, die speziell für den Einsatz mit Chrome definiert wurden. Um die Test Set Ausführung in dieser Weise einzuschränken, treffen Sie für sie eine Variationsauswahl. Nachfolgendes Bild zeigt, wie das funktioniert: Das Tool bietet Ihnen die Variationen der vorhandenen Variationspunkte an. Wenn Sie die gewünschten Variationen ausgewählt haben, müssen für die Definition einer Test Set Ausführung nur noch die Quellen bestimmen, in denen nach verfügbaren Anforderungen gesucht werden soll. Eine Quelle kann zum Beispiel das aktuelle Release-Backlog sein.
Bild 4: Einschränken einer Test Set Ausführung durch eine Variationsauswahl. Das Tool bietet Ihnen die Variation der vorhandenen Variationspunkte zur Auswahl an.
Die Variationsauswahl der Test Set Ausführung hat folgende Wirkung:
- Das Tool ermittelt in den angegebenen Quellen alle Anforderungen, die mindestens eine der Variationen besitzen, die in der Variationsauswahl vorkommen. Aus den zugehörigen Testfällen werden, sofern sie selbst keine Variation besitzen, Tests in der Test Set Ausführung erzeugt.
- Außerdem werden zu allen Anforderungen in den definierten Quellen die Testfälle gesucht, die mindestens eine Variation besitzen, die in der Variations¬auswahl der Test Set Ausführung festgelegt sind. Auch für sie werden Tests in der Test Set Ausführung angelegt.
Auf diese Weise werden nicht nur die notwendigen Tests zu den zu überprüfenden Anforderungen zusammengestellt. Die Tests werden gleichzeitig auch auf diejenigen beschränkt, die sich auf die getroffene Variationsauswahl beziehen.
Test Set Ausführungen sind übrigens zustandsabhängige und persistierte Artefakte, die der Versionskontrolle unterliegen und eine Historie besitzen. Das Testen bleibt damit jederzeit nachvollziehbar.
Der Einsatz von Variationspunkten, Variationen und Variationsauswahl beim Testmanagement ist nur ein Beispiel dafür, wie Sie diese Konzepte für die Steuerung der Entwicklung mit objectiF RPM nutzen können.
Schauen Sie doch einmal in objectiF RPM hinein. Nutzen Sie dazu die Möglichkeit des kostenlosen Tests in der Cloud.
Diskutieren Sie mit.