Dunkelmodus testen, andere Sprachen, andere Bildschirme: ein Test für alle Varianten

Dunkelmodus testen, ohne den Test zu kopieren: Behalten Sie einen Test, der im hellen und dunklen Modus, in jeder Sprache und auf jedem Bildschirm besteht.

Von Ait Nohaila, Business Development Representative 10 Min. Lesezeit

Um Dunkelmodus, andere Sprachen und andere Bildschirme zu testen, ohne den Test zu kopieren, behalten Sie einen einzigen Test, dessen Prüfungen eine Version pro Variante haben.Ein Lauf wählt die Variante, und die Schritte bleiben dieselben.

Es ist eines der häufigsten Probleme der Testautomatisierung.Ein Test besteht im hellen Modus an Ihrem Platz und scheitert dann im Dunkelmodus, auf Französisch oder auf dem Laptop eines Kollegen, obwohl nichts kaputt ist.

Warum scheitert ein Test im Dunkelmodus, obwohl nichts kaputt ist?

Definition

Ein Test macht zwei Dinge: Er tut, was ein Benutzer tut, und er prüft, was der Bildschirm zeigt.

  • Das Tun ist in jeder Variante gleich.

Das Prüfen nicht, denn ein korrekter Bildschirm sieht im Dunkelmodus, in einer anderen Sprache oder auf einem anderen Bildschirm anders aus, und eine Prüfung, die nur ein Aussehen erwartet, lässt die anderen scheitern.

In GUI Test Studio ist das, was eine Prüfung erwartet, das visuelle Ziel einer Bild-Assertion, der erwartete Text einer Text-Assertion, das Format einer Dynamischen Text-Assertion oder die Anordnung einer Layout-Assertion.Die Aufzeichnung gibt jeder Prüfung ihr erstes erwartetes Aussehen, den sogenannten Standard.

Dunkelmodus, andere Sprache, anderer Bildschirm: was sich auf einem korrekten Bildschirm ändert

Derselbe Bildschirm kann zu Recht anders aussehen.Die App ist nicht kaputt, sie wird in einer anderen Variante gezeigt, und eine Prüfung mit nur einer Version kann den Unterschied nicht erkennen.

VarianteWas sich auf einem korrekten Bildschirm ändert
Dunkelmodus und hoher KontrastJeder Hintergrund, jede Textfarbe und jedes Symbol ändert sich, also weicht jedes Bild vom hellen Aussehen ab.
Eine andere SpracheWörter werden länger oder kürzer, Schaltflächen wachsen, Zeilen brechen um, und eine Sprache, die von rechts nach links geschrieben wird, spiegelt das Layout.
Ein anderer BildschirmEin Laptop mit 150 % Skalierung und ein 4K-Monitor mit 100 % zeichnen dieselbe Schaltfläche mit anderen Pixeln.
Eine andere Windows-VersionSchriften, Ecken, Schatten und Bildlaufleisten unterscheiden sich zwischen Windows 10 und Windows 11.
Eine andere Edition Ihrer AppDie Farben und das Logo eines White-Label-Kunden oder eine Funktion, die nur manche Tarife zeigen.

Warum eine Kopie des Tests pro Variante nicht lange hält

Wenn ein korrekter Bildschirm in einer Variante immer wieder scheitert, greifen Teams meist zu einer von drei Abkürzungen.

Eine Kopie pro Variante

Checkout-Test · Hell
Checkout-Test · Dunkelmodus
Checkout-Test · Französisch
Checkout-Test · 150 % Skalierung

Eine Änderung des Ablaufs wird viermal gemacht.

Ein Test

Checkout-Test

HellDunkelmodusFranzösisch150 % Skalierung

Eine Änderung des Ablaufs wird einmal gemacht.

Die Schritte eines Tests sind in jeder Variante dieselben. Nur was die Prüfungen erwarten und was manche Schritte tippen oder öffnen, ist verschieden.
Die AbkürzungWas sie kostet
Eine Kopie des Tests pro VarianteJede Änderung am Ablauf wird zwei-, drei- oder fünfmal gemacht, und die Kopien laufen auseinander.
Eine lockerere PrüfungEine Prüfung, die locker genug ist, um das dunkle Aussehen zu akzeptieren, akzeptiert auch ein fehlendes Symbol oder eine falsche Farbe im hellen.
Keine visuelle Prüfung in dieser VarianteDer Test klickt sich weiter durch, aber schwarzer Text auf dunklem Hintergrund wird unbemerkt ausgeliefert.
Eine lockerere Prüfung kann ein beabsichtigtes neues Aussehen nicht von einem Fehler unterscheiden.Das kann nur ein erwartetes Aussehen für diese Variante.

Warum ein bestandener Test trotzdem übersehen kann, was Nutzer sehen, behandelt der Artikel visuelle Fehler, die automatisierte Tests übersehen.Warum eine Prüfung, die grundlos fehlschlägt, schlechter ist als gar keine Prüfung, steht in Flaky Tests und False Positives.

Was es in einem programmierten Test-Framework braucht

In einem programmierten Framework wie Playwright, Selenium oder Cypress bauen und pflegen Sie die Varianten selbst im Code.

Was Sie pflegenIn einem programmierten FrameworkIn GUI Test Studio
Die erwarteten BilderEin Ordner mit Referenz-Screenshots für jedes Design, jede Sprache und jeden Browser, neben dem Testcode abgelegt.In der einen Testdatei, als eine Version pro Variante jeder Prüfung.
Die Variante wechselnEine Konfiguration oder Code, der nach Design oder Sprache verzweigt.Ein für den Lauf gewähltes Profil.
Die in jeder Sprache getippten WörterTestdaten pro Sprache, in den Testcode eingebunden.Eine Version des Schritts Texteingabe für diese Sprache.
Ein neues Aussehen nach einer gewollten ÄnderungEin Lauf mit einer Option wie --update-snapshots, danach eine Durchsicht der geänderten Dateien.Das neue Aussehen im Bericht mit einem Klick übernehmen, dann Speichern.

Die Idee ist dieselbe: eine Variante, ein Satz Erwartungen.Was sich unterscheidet, ist, wie viel Sie dafür schreiben und pflegen.

Ein Test für alle Varianten: Baseline-Profile

GUI Test Studio, das End-to-End-Tests unter Windows ohne Code automatisiert, hält jede Version im Test.Sie benennen Ihre Varianten als Baseline-Profile, etwa Dunkelmodus, Französisch, 4K-Monitor oder Windows 10.Jede Prüfung kann dann pro Profil eine Version dessen halten, was sie erwartet, neben ihrem Standard.

Eine Bild-Assertion

Save

Standard

wie aufgezeichnet

Save

Dunkelmodus

ein Profil, das Sie hinzufügen

Enregistrer

Französisch

ein Profil, das Sie hinzufügen

Allen Versionen gemeinsam

Wo gesucht wirdWie lange gewartet wirdWie streng geprüft wird
Eine Prüfung hält ein erwartetes Aussehen pro Variante. Nur was sie erwartet, ändert sich von einer Version zur nächsten.
BegriffBedeutung
StandardWas aufgezeichnet wurde.Er lässt sich umbenennen, aber nie entfernen, und jeder Lauf verwendet ihn, sofern Sie kein Profil wählen.
Baseline-ProfilEine benannte Variante, die Sie dem Test hinzufügen.Sie ist nur ein Name, bis ihre Prüfungen ihre Versionen haben.
VersionDas erwartete Aussehen einer Prüfung für ein Profil: ein Bild, ein Text, ein Format oder eine Anordnung.

Jede Art von Prüfung kann Versionen haben: Bild-Assertionen, Text-Assertionen, Dynamische Text-Assertionen und Layout-Assertionen.In einer Gruppen-Assertion hat jedes Mitglied seine eigenen.Jedes beteiligte Fenster finden Sie im Leitfaden zu Baselines.

Was sich von einer Variante zur nächsten ändert und was nie

Ein Profil ändert, was eine Prüfung erwartet.Es ändert nie, wie die Prüfung danach sucht.

PrüfungDie Version eines Profils enthältAllen Versionen gemeinsam
Bild-AssertionIhr visuelles Ziel, das Bild, nach dem sie sucht.Der Suchbereich, das Zeitlimit und die Verifikationsstrenge.
Text-AssertionDer erwartete Text, seine Präzision und die Groß-/Kleinschreibung.Der Suchbereich und das Zeitlimit.
Dynamische Text-AssertionDas Format des Textes, auf den sie wartet.Der Suchbereich und das Zeitlimit.
Layout-AssertionDie Elemente und ihre Anordnung.Der Suchbereich und das Zeitlimit.

Eine App in mehreren Sprachen testen: Auch die Schritte ändern sich

Ein Test in einer anderen Sprache braucht oft mehr als andere Bilder.Er tippt andere Wörter, öffnet eine andere Adresse oder lädt eine andere Datei hoch.Deshalb kann jeder Schritt des Tests die Version eines Profils für das haben, was er tut, während seine Stelle auf dem Bildschirm und sein Zeitpunkt gemeinsam bleiben.

SchrittStandardProfil Französisch
TexteingabeHello, I need helpBonjour, j'ai besoin d'aide
TastendruckCtrl+BCtrl+G
Web-App öffnenshop.example.com/enshop.example.com/fr
Datei hochladeninvoice.pdffacture.pdf
App startenSetup.exeSetup.exe /lang=fr

Auch ein Tastenkürzel kann sich unterscheiden: In Microsoft Word auf Französisch ist Fett Ctrl+G statt Ctrl+B, deshalb hat der Schritt Tastendruck eine französische Version.

BeispielEin Supportformular auf Englisch und auf Französisch

Der Standard tippt eine englische Nachricht und erwartet die englische Bestätigung.Unter dem Profil Französisch tippt derselbe Schritt Texteingabe die französische Nachricht, und die Text-Assertion erwartet die französische Bestätigung.Ein Test, zwei Sprachen, und eine Änderung am Ablauf wird nur einmal gemacht.

Wie eine Text-Assertion einen Text liest und vergleicht, erklärt Textprüfungen.

So fügen Sie einem vorhandenen Test den Dunkelmodus hinzu, Schritt für Schritt

Am schnellsten füllen Sie ein Profil mit einem Lauf unter diesem Profil.Die Prüfungen, die anders aussehen, schlagen fehl, Sie sehen sie sich an und behalten die richtigen.

Ausführen

Unter dem Profil

Durchsehen

Jede fehlgeschlagene Prüfung

Übernehmen

Für dieses Profil

Speichern

In den Test

  1. 1

    Das Profil benennen

    Fügen Sie unter Einstellungen, Projekteinstellungen in der Karte Baseline-Profile ein Baseline-Profil namens Dunkelmodus hinzu.Ein Profil ist nur ein Name, bis seine Prüfungen ihre Versionen bekommen.

  2. 2

    Den Test unter dem Profil ausführen

    Schalten Sie Ihre App in den Dunkelmodus.Wählen Sie auf der Seite des Tests im GUI Test Runner-Recorder in der Zeile Baseline Dunkelmodus und klicken Sie dann auf Test ausführen.

    Die Zeile „Baseline“ wählt das Profil des nächsten Laufs, und die Wahl wird für diesen Test gemerkt.
  3. 3

    Jede fehlgeschlagene Prüfung durchsehen

    Die Prüfungen vergleichen noch mit dem hellen Aussehen, deshalb schlagen die fehl, die anders aussehen.Öffnen Sie jede im Konfidenzbericht und entscheiden Sie, ob das dunkle Aussehen richtig ist.

  4. 4

    Die richtigen dunklen Ansichten übernehmen

    Klicken Sie bei jeder durchgesehenen Prüfung auf Ist als Baseline für „Dunkelmodus“ übernehmen.Das helle Standardaussehen bleibt, wie es war.

    Bei einem Lauf unter einem Profil legt die Schaltfläche Übernehmen das neue Aussehen unter diesem Profil ab.
  5. 5

    Speichern und erneut ausführen

    Speichern Sie die Änderungen des Berichts in den Test und führen Sie ihn noch einmal unter Dunkelmodus aus.Jede Prüfung vergleicht jetzt mit ihrer eigenen dunklen Version.

Oder die Version in GUI Test Studio aufnehmen

Wählen Sie eine Prüfung aus, öffnen Sie ihre Registerkarte Baselines und wählen Sie das Profil.Jedes Feld des Eigenschaftenbereichs zeigt nun die Version dieses Profils, und eine Änderung dessen, was die Prüfung erwartet, geht in diese Version.Aufnehmen... startet eine Bildschirmaufnahme, in der der Bereich der Prüfung dort eingezeichnet ist, wo er stand, und Denselben Bereich aufnehmen nimmt das Bild des Profils genau an dieser Stelle auf.

Sie können Ihren KI-Assistenten auch bitten, ein Profil hinzuzufügen oder eine Version aufzunehmen, über Einen Test aus einem Prompt erstellen.

Wenn sich die App absichtlich ändert: das neue Aussehen mit einem Klick übernehmen

Ein neues Aussehen wird übernommen, wenn sich die App absichtlich ändert.Übernehmen Sie nur, was Sie durchgesehen haben, und behalten Sie einen Weg zurück.

WannWas in GUI Test Studio zu tun ist
Eine Prüfung ist fehlgeschlagen, und das neue Aussehen ist richtigÜbernehmen Sie das tatsächliche Ergebnis im Konfidenzbericht.Strg+Z nimmt es zurück, bis Sie speichern.
Das Element wurde überhaupt nicht gefundenÜbernehmen Sie seinen ähnlichsten Bereich, die Stelle, die ihm am nächsten kam, als neues erwartetes Aussehen.
Ein Text hat sich absichtlich geändertBearbeiten Sie den erwarteten Text im Bericht.Unter einem Profil wird die Änderung als Version dieses Profils gespeichert.
Das neue Aussehen wird zum Hauptaussehen„Als Standard festlegen“ macht die Version eines Profils zum Standard und behält den alten Standard unter diesem Profil.
Ein Profil wird umbenannt oder entferntTun Sie es in den Projekteinstellungen: Jede Prüfung des Tests zieht mit.

Einen Test nach einer Änderung aktualisieren führt durch das Übernehmen im Bericht, und der Konfidenzbericht erklärt alles, was er zeigt.

Jede Variante in CI/CD ausführen

Dieser Lauf

Baseline: Dunkelmodus

Schaltfläche Speichern · Bild-Assertion

ihre Version für Dunkelmodus

Bestellsumme · Text-Assertion

ihre Version für Dunkelmodus

Firmenlogo · Bild-Assertion

noch keine Version für Dunkelmodus: Der Standard wird verwendet, und der Bericht sagt es

Ein Lauf verwendet ein Profil. Jede Prüfung vergleicht mit ihrer Version für dieses Profil oder mit ihrem Standard, wenn sie keine hat.

Ein Lauf verwendet ein Profil.Im GUI Test Runner-Recorder ist es die Zeile Baseline auf der Seite des Tests.Auf einem Build-Agent nimmt gtr-cli --baseline-profile gefolgt vom Namen des Profils.

Derselbe Test, einmal pro Variante
gtr-cli run tests\Checkout.GTS --junit results\default.xml
gtr-cli run tests\Checkout.GTS --baseline-profile "Dark mode" --junit results\dark.xml
gtr-cli run tests\Checkout.GTS --baseline-profile "French" --junit results\french.xml
  • Eine Prüfung ohne Version für das Profil vergleicht mit ihrem Standard, und der Bericht sagt, welches Profil der Lauf verwendet hat und wie viele Prüfungen eine Version dafür hatten.
  • Ein Profilname, den der Test nicht hat, führt den Standard aus, und gtr-cli sagt das und listet die Profile des Tests auf.
  • Die Laufhistorie merkt sich das Profil, das jeder Lauf verwendet hat.

Tests in Ihrer Pipeline ausführen listet jede Option von gtr-cli auf.

Browser und Geräte werden anders behandelt

Ein Webtest braucht kein Profil pro Browser oder Gerät: GUI Test Runner-Recorder erzeugt eine Version des aufgezeichneten Tests für Chrome, Edge, Firefox und emulierte Telefone und Tablets, mit Bildern, die aus jedem einzelnen ausgeschnitten werden.Siehe Cross-Browser-Testing aus einer einzigen Aufzeichnung.

Baseline-Profile sind für das, was das Aussehen derselben App auf derselben Art von Bildschirm ändert: ein Design, eine Sprache, eine Skalierung, eine Windows-Version oder eine Edition Ihrer App.Das funktioniert für Desktop-Apps, Web-Apps, Spiele und Telefone gleichermaßen.

Was Sie vor dem Start wissen sollten

GrenzeWas sie bedeutet
Ein Profil pro LaufZwei Varianten sind zwei Läufe.Eine Pipeline führt den Test einmal pro Profil aus.
Ein gemeinsamer SuchbereichEs gibt keinen Suchbereich pro Profil.Wenn ein Element in einer Variante weit woanders steht, vergrößern Sie den Suchbereich der Prüfung.
Keine Sätze pro Code-BranchEs gibt keine getrennten Sätze erwarteter Aussehen pro Code-Branch.Um ein neues Aussehen vor der Auslieferung vorzubereiten, füllen Sie ein Profil aus Läufen und verwenden Sie bei der Auslieferung „Als Standard festlegen“.

Das Wichtigste in Kürze

  • 1Ein Test, der nur ein Aussehen erwartet, lässt einen korrekten Bildschirm scheitern, im Dunkelmodus, in einer anderen Sprache, bei einer anderen Skalierung oder unter einer anderen Windows-Version.
  • 2Kopien und lockerere Prüfungen halten nicht: Die Kopien laufen auseinander, und eine lockerere Prüfung verbirgt echte Fehler.
  • 3GUI Test Studio hält jede Variante in einem einzigen Test, eine Version pro Baseline-Profil, für jede Prüfung und jeden Schritt.
  • 4Wo gesucht wird, wie lange gewartet wird und wie streng geprüft wird, bleibt gemeinsam, sodass keine Variante den Test nachsichtiger macht.
  • 5Ein Lauf wählt eine Variante, und ein neues Aussehen entsteht, indem Sie ein durchgesehenes Ergebnis im Konfidenzbericht übernehmen.

Fragen

Warum scheitert mein automatisierter Test im Dunkelmodus?

Weil er das helle Aussehen erwartet.Jede Prüfung, die ein Bild des Bildschirms vergleicht, sieht im Dunkelmodus andere Farben und scheitert, obwohl die App funktioniert.Die Lösung ist keine lockerere Prüfung, sondern eine dunkle Version dessen, was jede Prüfung erwartet.

Wie teste ich Dunkelmodus und hellen Modus mit demselben Test?

Behalten Sie einen Test und geben Sie ihm ein Baseline-Profil Dunkelmodus.Führen Sie ihn einmal mit dem Standard und einmal unter Dunkelmodus aus: Die Schritte sind dieselben, und jede Prüfung vergleicht mit dem Aussehen der laufenden Variante.

Wie teste ich eine App in mehreren Sprachen, ohne den Test zu kopieren?

Geben Sie dem Test ein Profil pro Sprache.Unter dem Profil Französisch erwartet eine Text-Assertion die französischen Wörter, eine Bild-Assertion das französische Bild, und ein Schritt Texteingabe tippt die französische Eingabe.Eine Änderung des Ablaufs wird dann einmal für alle Sprachen gemacht.

Warum scheitern meine Tests bei einer anderen Bildschirmauflösung oder Skalierung?

Ein Laptop mit 150 % Skalierung und ein 4K-Monitor mit 100 % zeichnen dieselbe Schaltfläche mit anderen Pixeln, also passt ein auf dem einen aufgenommenes Bild nicht genau zum anderen.Fügen Sie ein Profil für diesen Bildschirm hinzu und übernehmen Sie sein Aussehen einmal aus einem Lauf, den Sie durchgesehen haben.

Was passiert, wenn eine Prüfung keine Version für die Variante hat, die ich ausführe?

Sie vergleicht mit ihrem Standard, dem Aussehen, das aufgezeichnet wurde.Der Konfidenzbericht sagt, welches Profil der Lauf verwendet hat und wie viele Prüfungen eine Version dafür hatten, sodass ein Fehlschlag wegen einer fehlenden Version leicht zu erkennen ist.

Wie aktualisiere ich das erwartete Aussehen nach einer gewollten Änderung?

Sehen Sie sich zuerst die fehlgeschlagene Prüfung an und übernehmen Sie das neue Aussehen nur, wenn die Änderung gewollt war.In GUI Test Studio erledigt das die Schaltfläche Übernehmen des Konfidenzberichts für eine Prüfung, rückgängig machbar, und Speichern schreibt es in den Test, unter dem Profil, das der Lauf verwendet hat.

Kann ich jede Variante in einer CI/CD-Pipeline ausführen?

Ja, ein Lauf pro Profil. gtr-cli nimmt --baseline-profile gefolgt vom Namen des Profils, sodass eine Pipeline den Test einmal mit dem Standard und einmal pro Profil ausführt, jeweils mit eigenen Ergebnissen.

Sollte ich für jeden Browser ein Profil anlegen?

Nicht für einen Webtest.GUI Test Studio erzeugt eine Version eines aufgezeichneten Webtests für Chrome, Edge, Firefox und emulierte Telefone und Tablets, mit Bildern, die aus jedem einzelnen ausgeschnitten werden.Baseline-Profile sind für das, was das Aussehen derselben App ändert: ein Design, eine Sprache, ein Bildschirm oder eine Windows-Version.

Playwright, Selenium, Cypress, Microsoft Word und Windows sind Marken ihrer jeweiligen Inhaber.

Alle Artikel