Feature-Test

Feature-Testing ist der Softwareentwicklungsprozess, bei dem mehrere Variationen einer Funktion getestet werden, um das beste Benutzererlebnis zu ermitteln.

Was sind Feature-Tests?

Feature-Testing ist der Softwareentwicklungsprozess, bei dem mehrere Variationen einer Funktion getestet werden, um das beste Benutzererlebnis zu ermitteln.

Mit Feature-Tests und Produktexperimenten können Sie prüfen, ob eine neue Funktion für eine Webseite oder App geeignet ist. Gleichzeitig können Sie auch ermitteln, welche Variation der Funktion am erfolgreichsten sein wird. Wenn der Feature-Test erfolgreich abgeschlossen wird, können Sie die Funktion anschließend mit der Konfiguration der Gewinnervariation des Feature-Tests als Feature-Rollout ausrollen.

Wie Feature-Tests funktionieren

Feature-Tests ähneln A/B/n-Tests, mit denen Sie für jede Variation steuern können, ob die zugehörige Funktion über Feature Flags (auch bekannt als Feature-Toggles) ein- oder ausgeschaltet ist. Außerdem können Sie die Feature-Variablenwerte für die verschiedenen Variablen der Funktion steuern.

Wenn Besucher mit Ihrer Website oder Anwendung interagieren, sammelt der Feature-Test Metriken zu deren Interaktion mit der Funktion. Sie können dann im Analytics-Dashboard Statistiken abrufen, um festzustellen, ob die Funktion zu positivem oder negativem Verhalten führt. Gleichzeitig können Sie auch ermitteln, welche Konfiguration der Funktion erfolgreicher ist.

Die Vorteile von Feature-Tests

Es gibt eine Reihe von Anwendungsfällen für Feature-Testing:

Feature-Eignung validieren

Feature-Tests ermöglichen es Ihnen, Metriken zu sammeln und zu überprüfen, ob eine Funktion gut geeignet ist und Ihre Geschäftsanforderungen erfüllt.

Durch das Einrichten eines Feature-Tests können Sie die Funktion für einen bestimmten Teil des Traffics aktivieren und für den Rest deaktivieren. Auf diese Weise können Sie messen, wie Ihre Metriken abschneiden, wenn die Funktion aktiviert ist, und es mit dem Zustand vergleichen, wenn sie deaktiviert ist – und so validieren, ob die Funktion schließlich als Feature-Rollout für alle Nutzer des Produkts freigegeben werden sollte.

Die beste Feature-Konfiguration ermitteln

Zusätzlich zur Aktivierung/Deaktivierung Ihrer Funktion auf Variationsebene kann auch ein Feature-Test durchgeführt werden, um verschiedene Konfigurationen und Testszenarien für die Funktion zu experimentieren. Auf diese Weise lässt sich die beste Feature-Erfahrung ermitteln.

Fehler entdecken

Zusätzlich zu standardmäßigen Softwaretestverfahren wie Unit-Tests und Funktionstests kann Feature-Testing eine gute Möglichkeit sein, Fehler und Probleme zu entdecken, die möglicherweise nur in Randfällen Ihrer Produktionsumgebung auftreten. Durch das Einbetten neuer Funktionen in Feature Flags können Sie Fehler schnell zurückrollen, ohne einen Code-Deploy durchführen zu müssen.

Iterativ zur Perfektion

Für langfristige Funktionen können Sie Feature-Tests immer wieder durchführen und die beste Konfiguration für sie über ihre Lebensdauer hinweg ermitteln, was zum bestmöglichen Erlebnis führt.

Feature-Tests und Continuous Delivery

Die Einführung von Feature-Tests in Ihren Feature-Delivery-Prozess ermöglicht es Ihnen, Ideen schnell zu validieren, Metriken zu betrachten und festzustellen, ob die Funktion bereit ist, für alle ausgerollt zu werden – alles ohne eine weitere Code-Deployment. Sie können auch verschiedene Aspekte der Funktion anpassen, indem Sie mit verschiedenen Konfigurationen experimentieren.

Sobald Sie die Metriken gesammelt haben und mit den Ergebnissen zufrieden sind, können Sie die Funktion schrittweise für alle ausrollen – erneut ohne die Notwendigkeit, Code zu deployen.

Optimizely und Feature-Tests

Mit den serverseitigen Feature-Management-Fähigkeiten von Optimizely können Produkt- und Entwicklungsteams Feature Flags instrumentieren und Feature-Tests darauf durchführen. Dies ermöglicht es ihnen, ihre Hypothesen schnell zu validieren, die Auswirkungen der Funktion zu messen und sie dann schrittweise auszurollen. All dies kann durch einmaliges Instrumentieren des Feature Flags erreicht werden und anschließend durch die Nutzung von Feature Experimentation zum Experimentieren und Ausrollen.

In Feature Experimentation wird beim Auswerten einer Funktion zunächst der zugehörige Feature-Test ausgewertet, um festzustellen, ob dem Benutzer durch den Test Zugang zur Funktion gewährt werden kann. Falls nicht, wird der zugehörige Feature-Rollout ausgewertet, um den Feature-Zugang zu bestimmen.

Dies eignet sich hervorragend für Produktentwicklungsteams, da Risiken frühzeitig durch das Durchführen von Feature-Tests gemindert werden können, bevor viel Aufwand in den Aufbau und die Wartung der Funktion fließt. Es passt auch gut zu Best Practices der Continuous Integration und Continuous Delivery, da in Optimizely Feature-Tests und Feature-Rollouts eng miteinander verbunden sind und sobald der Test die gewünschten Ergebnisse erzielt, die Funktion ohne Code-Änderungen und erneutes Deployment ausgerollt werden kann.

Optimizely bietet derzeit kostenlose Feature Flags über Optimizely Free Feature Flagging an, eine vollständig kostenlose Lösung für kontrollierte Feature-Releases in Ihrem Produkt oder Ihrer App. Rollouts bietet eine Reihe von SDKs auf GitHub für einige der beliebtesten Programmiersprachen und Frameworks, darunter Android, C#, Go, Java, JavaScript, PHP, Python, React, Ruby und Swift.

Feature-Tests sind derzeit als Teil von Optimizely Feature Experimentation verfügbar. Und ein schneller Tipp: Sie können immer mit dem kostenlosen Optimizely Rollouts beginnen und Ihr Abonnement upgraden, um das vollständige Feature-Paket zu erhalten.