Was ist Konfigurationstest? Beispieltestfälle

⚡ Intelligente Zusammenfassung

Bei Konfigurationstests wird eine Anwendung auf verschiedenen Kombinationen von Software und Hardware ausgeführt, sodass ein Team bestätigen kann, dass die funktionalen Anforderungen überall noch erfüllt sind und die optimale Konfiguration für die Veröffentlichung ermitteln kann.

  • 🧩 Umfang: OperaSystemkonfigurationen, Browser, Datenbankversionen, Treiber, Arbeitsspeicher und Peripheriegeräte zählen alle dazu.
  • 📐 Zwei Arten: Die Softwarekonfigurationsprüfung umfasst Plattformen und Updates; die Hardwarekonfigurationsprüfung umfasst angeschlossene Geräte.
  • 🗂️ Matrix zuerst: Erstellen Sie eine Kombinationsmatrix und priorisieren Sie diese anschließend, da eine vollständige Abdeckung nicht bezahlbar ist.
  • Virtuelle Maschinen: Snapshots ersetzen wiederholte Installations- und Deinstallationszyklen auf physischen Testmaschinen.
  • 🏦 Ausgearbeitetes Beispiel: Eine Banking-Anwendung und ihre Modelle von Banknotenzählmaschinen veranschaulichen Hardware-Testfälle.
  • 🚨 Vorsätzliches Versagen: Das absichtliche Entfernen einer Voraussetzung legt Mängel offen, die in einem vollständig ausgestatteten Labor verborgen bleiben.

Konfigurationstests über verschiedene Software- und Hardwarekombinationen hinweg

Konfigurationstests

Konfigurationstests ist eine Softwaretesttechnik, bei der die Anwendung mit verschiedenen Kombinationen von Software und Hardware getestet wird, um die funktionalen Anforderungen zu bewerten und die optimalen Konfigurationen zu finden, unter denen die Anwendung fehlerfrei funktioniert.

Eine Konfiguration ist jede Kombination, die das Produkt unterstützen muss: eine Betriebssystemversion, ein Browser, eine Datenbankversion, ein Treiber, eine Speichergröße oder ein angeschlossenes Peripheriegerät. Es ist sinnvoll, dies zu trennen von KompatibilitätstestsDie Prüfung untersucht, ob das Produkt mit anderer Software und Plattformen kompatibel ist. Konfigurationstests stellen eine spezifischere Frage: Funktioniert derselbe Build noch korrekt, wenn sich die unterstützte Konfiguration ändert?

Beispiel für einen Konfigurationstest

Betrachten wir eine Desktop-Anwendung als praktisches Beispiel.

Desktop-Anwendungen werden üblicherweise in 2- oder 3-Tier-Architektur aufgebaut. Nehmen wir beispielsweise eine 3-Tier-Desktop-Anwendung, die in … entwickelt wurde. ASP.Netto, bestehend aus einem Client, einem Business Logic Server und einem Datenbankserver, wobei jede Komponente die unten aufgeführten Plattformen unterstützt.

  • Kundenplattform – Windows XP Windows 7, Windows 8 und so weiter
  • Serverplattform – Windows Server 2008, Windows Server 2008 R2, Windows Server 2012 R2
  • Datenbank - SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 usw.

Der Tester muss Client, Server und Datenbank gemeinsam über alle Plattformen und Datenbankversionen hinweg testen, um zu bestätigen, dass die Anwendung korrekt funktioniert und bei keiner unterstützten Kombination fehlschlägt.

Konfigurationstests beschränken sich nicht auf Software. Sie gelten auch für Hardware, weshalb der Hardware-Teil als Hardware-Konfigurationstest bezeichnet wird: Drucker, Scanner, Webcams und ähnliche Geräte, die die zu testende Anwendung unterstützen muss. Die folgende Matrix zeigt, wie diese Kombinationen vor Testbeginn angeordnet sind.

Konfigurationstestmatrix für Client-, Server- und Datenbankkombinationen

Voraussetzungen für Konfigurationstests

Bevor der Konfigurationstest für ein Projekt beginnen kann, müssen drei Voraussetzungen erfüllt sein.

  • Erstellung einer Matrix, die die verschiedenen Kombinationen von Software- und Hardwarekonfigurationen auflistet
  • Diese Konfigurationen sollten priorisiert werden, da es unrealistisch ist, jede einzelne zu testen.
  • Testen jeder Konfiguration in der durch diese Priorisierung festgelegten Reihenfolge

Ziele des Konfigurationstests

Die Konfigurationstests zielen darauf ab, Folgendes zu erreichen.

  • Überprüfen Sie die Anwendung anhand ihrer Konfigurierbarkeitsanforderungen.
  • Man kann absichtlich Fehler verursachen, um Mängel aufzudecken, die bei herkömmlichen Tests übersehen werden, beispielsweise durch Ändern regionaler Einstellungen wie Zeitzone, Sprache oder Datumsformat.
  • Ermitteln Sie die optimale Konfiguration der zu testenden Anwendung.
  • Analysieren Sie die Systemleistung bei Änderungen der Hardware-Ressourcen, z. B. beim Hinzufügen von Load Balancern, beim Erhöhen oder Verringern des Arbeitsspeichers oder beim Anschluss verschiedener Druckermodelle.
  • Analysieren Sie die Systemeffizienz im Hinblick auf die Priorisierung und beurteilen Sie, wie gut die Tests die verfügbaren Ressourcen genutzt haben, um diese optimale Konfiguration zu erreichen.
  • Überprüfen Sie das System in einer geografisch verteilten Umgebung, beispielsweise mit dem Server an einem Standort und den Clients an einem anderen, wobei das System unabhängig von den lokalen Systemeinstellungen funktionieren sollte.
  • Überprüfen Sie, wie leicht sich Fehler reproduzieren lassen, wenn sich die Konfiguration ändert.
  • Bestätigen Sie, dass die Antragselemente erhalten bleiben tracdurch ordnungsgemäße Dokumentation und klar identifizierbare Versionsaufzeichnungen möglich.
  • Stellen Sie sicher, dass die Anwendungselemente während des gesamten Prozesses handhabbar bleiben. Lebenszyklus der Softwareentwicklung

So führen Sie Konfigurationstests durch

Die Strategie hängt davon ab, welcher der beiden Konfigurationstesttypen in den Anwendungsbereich fällt.

  • Testen der Softwarekonfiguration
  • Testen der Hardwarekonfiguration

Testen der Softwarekonfiguration

Bei Softwarekonfigurationstests wird die zu testende Anwendung auf verschiedenen Betriebssystemen, Softwareupdates und Abhängigkeitsversionen ausgeführt. Dies ist zeitaufwändig, da in jedem Testdurchlauf die betreffende Software installiert und deinstalliert werden muss.

Eine gängige Methode, diese Kosten zu senken, besteht darin, Tests durchzuführen. virtuelle MaschinenEine virtuelle Maschine ist eine softwarebasierte Umgebung, die sich wie physische Hardware verhält. Der Tester arbeitet also wie auf einem realen Rechner, während die Konfiguration selbst veränderbar ist. Virtuelle Maschinen simulieren reale Konfigurationen ausreichend genau für die meisten Funktionsprüfungen.

Anstatt die Anwendung auf mehreren physischen Maschinen zu installieren und zu deinstallieren, wird sie auf einer virtuellen Maschine installiert und die Tests werden von dort aus fortgesetzt. Der parallele Betrieb mehrerer virtueller Maschinen, die jeweils aus einem Snapshot wiederhergestellt werden, vereinfacht die Arbeit erheblich.

Das Testen der Softwarekonfiguration kann normalerweise beginnen, wenn

  • Die zu testenden Konfigurierbarkeitsanforderungen sind spezifiziert
  • Das Test Umgebung ist bereit
  • Das Testteam ist in Konfigurationstests geschult.
  • Die veröffentlichte Version hat die Unit- und Integrationstests bestanden.

Das typische Teststrategie Eine Strategie besteht darin, die funktionale Testsuite für jede Softwarekonfiguration auszuführen und zu überprüfen, ob die Anwendung wie vorgesehen und fehlerfrei funktioniert. Eine zweite Strategie ist, Testfälle absichtlich fehlschlagen zu lassen und zu prüfen, wie effizient das System damit umgeht.

Ejemplo:

Nehmen wir eine Banking-Anwendung, die in verschiedenen Browsern getestet werden muss. In einer Umgebung, in der alle Voraussetzungen erfüllt sind, kann sie die Unit-Tests und Tests problemlos bestehen. Integrationstests im Testlabor.

Wird dieselbe Anwendung beim Kunden installiert, kann sie fehlschlagen, weil auf den Rechnern Software-Updates oder die Versionen der Abhängigkeiten fehlen, von denen die Anwendung direkt oder indirekt abhängt. Indem man die Tests absichtlich fehlschlagen lässt, indem man bestimmte Konfigurationsanforderungen entfernt und anschließend erneut testet, lässt sich diese Art von Fehler aufdecken, bevor der Kunde ihn bemerkt. Der folgende Screenshot zeigt, wie ein solcher konfigurationsabhängiger Fehler in einer kontrollierten Umgebung reproduziert wird.

Banking-Anwendung schlägt auf Client-Rechner aufgrund fehlender Voraussetzungen fehl.

Testen der Hardwarekonfiguration

Hardwarekonfigurationstests werden im Allgemeinen in einem Labor durchgeführt, in dem sich physische Maschinen mit unterschiedlicher Hardware befinden.

Bei jeder Veröffentlichung eines Builds wird die Software auf allen diesen Maschinen installiert und die Testsuite auf jeder einzelnen ausgeführt, um zu bestätigen, dass die Anwendung mit dem angeschlossenen Gerät funktioniert.

Diese Aufgabe erfordert erheblichen Aufwand: die Installation der Software auf jedem Rechner, den Anschluss der Hardware und anschließend die manuelle Ausführung der Suite oder deren Automatisierung.

Auch die Art der zu testenden Hardware muss spezifiziert werden. Da Computerhardware und Peripheriegeräte so vielfältig sind, ist es unmöglich, alle abzudecken. Daher analysiert der Tester, auf welche Geräte die Nutzerbasis tatsächlich angewiesen ist, und testet entsprechend dieser Priorisierung.

Beispieltestfälle

Betrachten wir ein Bankszenario, das auf Hardwarekompatibilität getestet wurde. Eine Bankanwendung, die mit einer Banknotenzählmaschine verbunden ist, muss mit verschiedenen Modellen wie Rolex, Strob, Maxsell und StoK funktionieren.

Musteranfrage Testfälle Für die Banknotenzählmaschine sind folgende Teile erforderlich.

  • Überprüfen Sie die Verbindung zwischen der Anwendung und dem Rolex-Modell, wenn die Voraussetzungen NICHT installiert sind.
  • Überprüfen Sie die Verbindung zwischen der Anwendung und dem Rolex-Modell, sobald die Voraussetzungen erfüllt sind.
  • Überprüfen Sie, ob das System die Geldscheine korrekt zählt.
  • Überprüfen Sie, wie das System einen Zählfehler meldet.
  • Überprüfen Sie den Umgang mit manipulierten Banknoten.
  • Überprüfen Sie die Antwortzeiten
  • Überprüfen Sie, ob gefälschte Banknoten erkannt werden.

Diese Fälle beziehen sich jeweils auf ein einzelnes Modell. Jedes weitere auf dem Markt befindliche Modell muss in einem Testlabor eingerichtet und auf dieselbe Weise getestet werden, was intern selten praktikabel ist. Die Auslagerung der Hardware-Konfigurationstests an ein spezialisiertes Unternehmen ist daher oft die realistischere Option.

Häufig gestellte Fragen

Die Konfigurationstests variieren die vom Produkt unterstützten Einstellungen – Betriebssystem, Datenbankversion, angeschlossenes Gerät – und führen die Testsuite erneut aus. Die Kompatibilitätstests prüfen, ob das Produkt mit externer Software, Plattformen und Browsern, mit denen es zusammenarbeiten muss, kompatibel ist.

So viele, wie das Risiko rechtfertigt. Nutzungsanalysen bestimmen die Reihenfolge: Zuerst werden die Plattform-, Browser- und Gerätekombinationen abgedeckt, die die meisten Nutzer verwenden, gefolgt von den minimal unterstützten Spezifikationen.

Üblicherweise ist das QA-Team, unterstützt von Systemadministratoren, die die Testumgebungen bereitstellen, für die Bereitstellung zuständig. Bei hardwareintensiven Produkten übernimmt ein dediziertes Laborteam oder ein externer Spezialist die physische Geräteabdeckung.

Virtuelle Maschinen und Containerplattformen für Software-Setups, Gerätelabore oder Cloud-Gerätefarmen für Hardware und Browser sowie ein Testautomatisierung Framework zum Wiedergeben derselben Suite auf jeder Konfiguration.

Kombinatorische Explosionen, hohe Lizenz- und Gerätekosten, langsame Bereitstellung von Umgebungen und Fehler, die nur in einer bestimmten Konfiguration auftreten, stellen Herausforderungen dar. Priorisierung und Virtualisierung beheben die meisten dieser Probleme.

Nachdem die Unit- und Integrationstests erfolgreich abgeschlossen sind, werden sie üblicherweise parallel zu den Systemtests durchgeführt. Dieser Vorgang wird vor jeder größeren Veröffentlichung wiederholt, da eine neue Betriebssystem- oder Treiberversion frühere Ergebnisse ungültig machen kann.

Die Modelle ordnen Konfigurationskombinationen anhand realer Nutzungsdaten und historischer Fehlerdaten, sodass die Matrix auf die Zeilen mit dem höchsten Risiko reduziert wird. Außerdem gruppieren sie Fehler, um diejenigen aufzuzeigen, die auf eine gemeinsame Konfigurationsursache zurückzuführen sind.

Ja. Es erstellt parametrisierte Testgerüste, Skripte zur Umgebungsbereitstellung und CI-Jobdefinitionen, die eine Testsuite auf vielen Konfigurationen ausführen. Die Matrix selbst muss weiterhin aus der Liste der unterstützten Plattformen stammen.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: