Ein Checkout Adressformular ist der Ort, an dem jedes Adressproblem endlich etwas kostet. Ein Feld, das eine legitime Eingabe zurückweist, ein Länderwechsel, der still verwirft, was getippt wurde, eine Prüfung, die feuert, während der Nutzer noch schreibt — jede dieser Sachen wird zu einer abgebrochenen Bestellung, und keine davon ist in einem Unit-Test sichtbar, der nur prüft, ob eine Zeichenkette parsebar ist.
Die folgenden Testfälle sind gegen das Verhalten des Formulars als Ganzes geschrieben und nicht gegen eine Prüffunktion. Sie decken die Übergänge ab: das Land wechseln, zu einer gespeicherten Adresse zurückkehren, einfügen und auf dem Telefon abschließen. Die zugrunde liegenden Datenregeln beschreibt Adressvalidierung und Normalisierung.
Die Formulare sind die, auf die Nutzer tatsächlich stoßen
Vor der Liste eine Bemerkung dazu, warum genau diese Fälle. Die schweren Fehler in Checkout-Formularen betreffen selten eine einzelne ungültige Zeichenkette. Sie entstehen aus Zustand: das Feld, das für ein Land befüllt und für das nächste nicht geleert wurde, die Beschriftung, die nach dem Länderwechsel noch Postleitzahl sagt, die Fehlermeldung, die auf dem Bildschirm bleibt, nachdem der Wert korrigiert wurde.
Schreiben Sie Fälle, die das Formular so durchlaufen, wie ein Mensch es durchläuft, und sichern Sie zu, was der Nutzer sehen kann: ob die Bestellung abgeschlossen werden kann, was die Feldbeschriftungen sagen, ob der Fehler am richtigen Feld hängt.
Testfälle für Pflicht- und Wahlfelder
Beginnen Sie mit der Form des Formulars selbst. In den meisten Ländern ist die Postleitzahl erforderlich; in einigen existiert sie nicht und muss optional sein. Ein Feld für Bezirk oder Region ist in manchen Märkten unverzichtbar und in anderen bedeutungslos. Ein Formular, das jedes Feld als erforderlich markiert, ist in den Ländern unbenutzbar, die sie nicht haben, und ein Formular, das keines als erforderlich markiert, akzeptiert eine leere Adresse.
Fälle, die sich lohnen: nur die Pflichtfelder befüllt; jedes Feld befüllt; die Wahlfelder absichtlich leer gelassen; die Wahlfelder nur mit Leerzeichen befüllt; und ein Feld, das im Schema existiert, für das gewählte Land aber verborgen ist. Der letzte Fall fängt den klassischen Defekt, bei dem ein verborgenes Feld weiterhin geprüft wird, sodass das Formular das Absenden verweigert und keinen erreichbaren Fehler anzeigt.
Prüfen Sie außerdem das Land ohne Postleitzahl vollständig von Anfang bis Ende. Es muss möglich sein, die Bestellung abzuschließen, und die Bestätigung darf keine leere Postleitzahlzeile anzeigen.
Was geschieht, wenn das Land wechselt?
Das ist der wertvollste Test auf der Liste, denn die Länderauswahl verändert die Bedeutung jedes anderen Feldes. Führen Sie ihn in beide Richtungen aus: von einem Land mit Postleitzahl zu einem ohne und wieder zurück.
Sichern Sie zu, dass die unter dem ersten Land eingegebene Postleitzahl unter dem zweiten nicht still weiterlebt, dass die Feldbeschriftung auf den lokalen Begriff wechselt und dass ein bestehender Prüffehler geleert oder neu berechnet wird, statt an einem Feld zu hängen, dessen Regeln sich geändert haben. Sichern Sie ebenso zu, dass die Liste der Verwaltungseinheiten ersetzt und nicht gefiltert wird, denn eine gefilterte Liste kann eine Auswahl stehen lassen, die im neuen Land nicht existiert.
Ein verwandter Fall: das Land zuletzt wählen. Manche Menschen füllen die Adresse zuerst und setzen das Land danach. Läuft die Prüfung bei jedem Tastendruck, sehen sie Fehler für ein Format, das für ein noch nicht gewähltes Land korrekt war.
| Situation | Was der Test zusichern sollte |
|---|---|
| Land gewechselt und zurückgewechselt | Die unter dem ersten Land eingegebene Postleitzahl lebt unter dem zweiten nicht still weiter |
| Feldbeschriftung | Die Beschriftung wechselt auf den lokalen Begriff des neu gewählten Landes |
| Bestehender Prüffehler | Er wird geleert oder neu berechnet, statt an einem Feld mit geänderten Regeln zu hängen |
| Liste der Verwaltungseinheiten | Sie wird ersetzt und nicht gefiltert, sodass keine veraltete Auswahl überlebt |
Funktionieren Einfügen und Autofill noch?
Nutzer fügen ein. Sie fügen einen ganzen Adressblock in die erste Zeile ein, sie fügen eine aus einem anderen Tab kopierte Postleitzahl ein, sie fügen eine Telefonnummer mit Zeichensetzung und internationalem Präfix ein. Sie übernehmen außerdem, was der Browser zum automatischen Ausfüllen anbietet.
Prüfen Sie beides. Das Einfügen einer vollständigen Adresse in die Straßenzeile sollte entweder sauber behandelt werden oder das Feld bearbeitbar und unversehrt lassen; es darf keinen Prüffehler auslösen, der das Absenden ohne sichtbare Erklärung blockiert. Das Einfügen einer Postleitzahl mit umgebenden Leerzeichen sollte nach dem Trimmen akzeptiert werden. Autofill sollte die erwarteten Felder befüllen und ein bereits gewähltes Land oder eine Verwaltungseinheit nicht überschreiben.
Prüfen Sie dann das Einfügen, das langsam und Zeichen für Zeichen eintrifft, wie es manche Hilfsmittel tun. Eine Prüfung, die beim ersten Tastendruck feuert und ungültige Postleitzahl meldet, während der Wert noch unvollständig ist, ist ein echter Defekt und kein Randfall.
Testen auf dem Telefon und mit langsamer Verbindung
Telefonansichten verändern, was der Nutzer erreichen kann. Fälle, die sich in schmaler Breite lohnen: Die Länderauswahl öffnet sich und lässt sich schließen; die Tastatur verdeckt weder das Feld, in das getippt wird, noch die Absendeschaltfläche; die Liste der Verwaltungseinheiten ist durchsuchbar oder scrollbar, wenn sie lang ist; und die Fehlermeldung ist sichtbar, ohne vom Feld wegzuscrollen.
Ergänzen Sie eine langsame oder unterbrochene Verbindung. Senden Sie die Bestellung ab, unterbrechen Sie die Antwort, senden Sie erneut. Das Formular darf nicht zwei Bestellungen anlegen, weil die Schaltfläche aktiv blieb, und es darf die eingegebene Adresse nicht verlieren, wenn die Anfrage scheitert. Auch die gespeicherte Adresse verdient dieselbe Behandlung: eine gespeicherte Adresse bearbeiten, die Bearbeitung abbrechen und bestätigen, dass das Original unversehrt ist.
Für Entwickler: worauf zugesichert und was vorbefüllt wird
Sichern Sie Ergebnisse zu, die der Nutzer beobachten kann — das Absenden gelingt, die richtige Beschriftung wird angezeigt, der Fehler hängt an dem Feld, das ihn verursacht hat — und nicht interne Prüfaufrufe. Das hält die Tests aussagekräftig, wenn die Prüfbibliothek wechselt.
Befüllen Sie das Formular aus einem Fixture-Satz, der eine saubere Adresse je bedientem Markt und die absichtlichen Unstimmigkeiten enthält, die in Adressdaten in Testfixtures beschrieben sind. Halten Sie die Startdaten deterministisch, damit ein fehlschlagender Fall exakt reproduzierbar ist, und erzeugen Sie die sauberen Beispiele, statt sie von Hand zu tippen, so wie es der Adressgenerator tut. Diese Werte sind synthetisch: Sie prüfen das Formular und weisen niemanden aus und keine Zustellroute nach.
Markieren Sie die Testbestellungen schließlich in der Umgebung selbst als Testbestellungen. Eine Testbestellung, die einer echten gleicht, wird irgendwann ausgeführt, und eine zu Testzwecken erzeugte Adresse ist keine zustellbare Adresse.
Nächste Schritte
Wählen Sie zuerst den Länderwechsel — er prüft den meisten gemeinsamen Code mit dem geringsten Aufwand — und ergänzen Sie den Pfad ohne Postleitzahl in derselben Sitzung. Führen Sie dann die ganze Liste einmal in Telefonbreite mit gedrosseltem Netzwerk aus, denn diese Kombination findet mehr Checkout-Defekte als jede zusätzliche Eingabeprüfung. Für die Feldregeln hinter diesen Fällen beginnen Sie mit der US-Adressstruktur.