Menü

Testkarten nach Kartennetzwerk: Visa, Mastercard und mehr

Testkarten nach Kartennetzwerk brauchen das richtige Präfix, die richtige Länge und die richtige Codestellenlänge. Hier stehen die veröffentlichten Bereiche und eine brauchbare Testmatrix.

Veröffentlicht am

  • Testdaten
  • Zahlungen
  • Kartennetzwerke

Testkarten nach Kartennetzwerk auszuwählen ist mehr als eine Zuordnung von Marke zu Ziffernfolge. Jedes Netzwerk hat einen eigenen Nummerierungsplan mit eigenen Präfixbereichen, eigenen Längen und einer eigenen Entscheidung darüber, wie viele Stellen der Sicherheitscode hat. Wer diese Unterschiede kennt, kann Testfälle entwerfen, die tatsächlich verschiedene Codepfade erreichen; wer sie ignoriert, testet dieselbe Erkennungslogik mehrfach und glaubt, vier Fälle abgedeckt zu haben.

Dieser Beitrag stellt die veröffentlichten Bereiche zusammen, erklärt, wie man daraus eine Testmatrix mit echten Unterschieden baut, und benennt die Grenzen dieser Zuordnung.

Jedes Netzwerk hat seinen eigenen Nummerierungsplan

Ein Nummerierungsplan ist die Gesamtheit der Regeln, die festlegen, welche Zeichenfolgen als Karte eines bestimmten Netzwerks gelten dürfen. Er umfasst Präfixbereiche, zulässige Längen sowie Zusatzregeln, die für einzelne Produktgruppen gelten. Die Pläne sind öffentlich dokumentiert, weil sie von Geräten und Kassensystemen ausgewertet werden müssen, und sie werden von den internationalen Normungsgremien gepflegt.

Die Pläne überschneiden sich im Prinzip nicht; in der Praxis muss die Prüfung trotzdem sorgfältig arbeiten, weil einige Bereiche ineinander liegen. Das bekannteste Beispiel ist die Spanne, die Mastercard für neuere Nummern verwendet und die mit anderen Bereichen überlappt, sodass die Reihenfolge, in der Bereiche geprüft werden, das Ergebnis verändern kann. Ein weiteres Beispiel sind Bereiche, die in unterschiedlichen Längen registriert sind und deren Zuordnung erst nach vollständiger Eingabe eindeutig ist.

Der praktische Hinweis lautet daher, Bereiche nie nach Gefühl zu prüfen, sondern die längsten, spezifischsten Präfixe zuerst zu prüfen und breite Bereiche danach. Die Implementierungsdetails dieser Reihenfolge beschreibt der Beitrag Kreditkartennummer prüfen.

Wie wählt man ein Präfix für einen Testfall?

Die Auswahl folgt nicht der Tabelle, sondern dem Verhalten, das geprüft werden soll. Drei Fragen helfen dabei.

Erstens: Soll das Formular eine unbekannte Marke erkennen oder die richtige Marke erkennen? Bei einer unbekannten Marke wird der Testfall so konstruiert, dass die Prüfung unmöglich richtig liegen kann, denn er kennt die Marke nicht. Dann existiert ein Zweig, der für Nutzer mit einem sehr neuen oder sehr seltenen Produkt erreichbar ist.

Zweitens: Übt der Testfall die Längenprüfung aus? Ein Testfall innerhalb des Standardbereichs eines Netzwerks übt die Längenprüfung zwangsläufig aus, weil dort die erwartete Länge feststeht. Ein Testfall am Rand des Zweigs, in dem unbekannte Marken landen, übt sie gerade nicht aus, weil keine erwartete Länge existiert.

Drittens: Soll der Sicherheitscode in die Prüfung einfließen? Bei American Express mit vier Stellen ist das der einzige Weg, die abweichende Längenbehandlung zu testen.

Wer alle drei Fragen beantwortet, hat bereits eine Matrix und keine Liste.

Die veröffentlichten Bereiche auf einen Blick

Die folgende Übersicht fasst die wichtigsten Netzwerke mit ihren dokumentierten Bereichen zusammen. Alle Angaben beziehen sich auf die öffentlich dokumentierten Nummerierungspläne, und Bereiche werden gelegentlich erweitert.

Netzwerk Veröffentlichte Präfixbereiche Typische Länge Sicherheitscode
Visa beginnt mit 4 sechzehn Stellen, längere Formen ebenfalls registriert drei Stellen, Rückseite
Mastercard 51 bis 55 sowie 2221 bis 2720 sechzehn Stellen drei Stellen, Rückseite
American Express 34 bis 37 fünfzehn Stellen vier Stellen, Vorderseite
Discover 6011, 65, 644 bis 649 sowie 622126 bis 622925 sechzehn Stellen, längere Formen registriert drei Stellen, Rückseite
JCB 3528 bis 3589 sechzehn Stellen, längere Formen registriert drei Stellen, Rückseite
Diners Club 300 bis 305, 36 sowie 38 bis 39 vierzehn Stellen, sechzehn ebenfalls verwendet drei Stellen, Rückseite
UnionPay 62 sechzehn Stellen, längere Formen registriert drei Stellen, Rückseite
Maestro 50 sowie 56 bis 69 variabel innerhalb der Standardgrenze drei Stellen, Rückseite

Zwei Beobachtungen fallen sofort ins Auge. Erstens sind die Längen unterschiedlich, und zwar so deutlich, dass eine Prüfung auf eine feste Länge mehrere Netzwerke ausschließt. Zweitens sind manche Bereiche sehr breit, etwa die Spanne, die Maestro abdeckt, und andere sehr eng. Ein Testfall mit einem sehr breiten Präfix prüft etwas völlig anderes als einer mit einem eng definierten.

Warum unterscheidet sich auch die Länge des Sicherheitscodes?

Die unterschiedliche Länge des Sicherheitscodes folgt aus der Kartengestaltung und nicht aus einem Sicherheitskonzept. Ein vierstelliger Code bietet keine höhere Entropie als ein dreistelliger, weil der Wert nicht geraten, sondern abgelesen wird. Die Länge ergibt sich daraus, wie viel Platz auf der jeweiligen Kartenseite zur Verfügung stand, als das Produkt entworfen wurde.

In der Software ist die Länge dennoch die wirksamste Prüfung des gesamten Feldes. Ein Formular, das einen festen Maximalwert von drei Zeichen setzt, schneidet jeden vierstelligen Code ab und erzeugt eine Ablehnung, die keine sichtbare Fehlermeldung hat. Ein Testfall mit einer American-Express-Karte deckt diesen Fehler auf, ein Testfall mit einer Visa-Karte niemals.

Achten Sie außerdem darauf, dass auch die Position des Codes sich unterscheidet. Dieser Umstand betrifft nicht die Prüflogik, sondern die Hilfetexte und die Beratungstexte in der Dokumentation für den Nutzer.

Bedeutet ein passendes Präfix, dass die Nummer echt ist?

Nein, und dieser Punkt ist wichtiger als die Tabelle selbst. Ein passendes Präfix bedeutet lediglich, dass die Zeichenfolge innerhalb eines veröffentlichten Bereichs liegt. Das Präfix ist ein Namensraum, kein Register. Jede Ziffernfolge innerhalb des Bereichs sieht für eine Prüfung wie eine Karte des entsprechenden Netzwerks aus, unabhängig davon, ob sie jemals vergeben wurde.

Das hat zwei praktische Folgen. Einerseits lassen sich für jedes Netzwerk beliebig viele synthetische Werte erzeugen, die alle Formatregeln einhalten, was die Grundlage für reproduzierbare Tests ist. Andererseits ergibt die Frage, ob eine bestimmte Nummer echt ist, aus Sicht der Anwendung keinen Sinn; sie lässt sich nur durch eine Autorisierung beim Herausgeber beantworten, und genau die soll in einer Testumgebung nicht stattfinden.

Die Grenzen der Datenerzeugung und die Frage, warum synthetische Werte gegenüber maskierten echten Werten zu bevorzugen sind, behandelt der Beitrag zu den Anforderungen an Testdaten.

Für Entwickler: eine Netzwerk-Testmatrix aufbauen

Eine brauchbare Matrix hat vier Spalten: das Netzwerk, den verwendeten Präfixbereich, das erwartete Erkennungsergebnis und das erwartete Verhalten des Formulars. Die vierte Spalte ist die entscheidende, denn sie macht aus einer Datensammlung eine Spezifikation.

Drei Regeln haben sich bewährt. Erstens: ein Testfall je unterschiedlichem Verhalten und nicht je Marke. Zwei Netzwerke mit identischer Länge und identischer Codestellenlänge üben dieselben Codepfade aus. Zweitens: Die erwartete Länge gehört in die Erwartung, damit ein Testfall sich verständlich ändert, wenn ein Netzwerk seine Pläne anpasst. Drittens: Mindestens ein Fall mit einem Präfix, das keinem Netzwerk entspricht, um den Zweig für unbekannte Marken abzudecken.

Ein weiterer Punkt betrifft die Reihenfolge der Prüfungen. Die Spanne, die mit 62 beginnt, liegt vollständig innerhalb einer breiteren Spanne, die ebenfalls mit 6 beginnt. Wird der breite Bereich zuerst geprüft, erreicht der spezifische Zweig nie einen Testfall. Diese Art von Fehler bleibt in einer Matrix unsichtbar, solange die Spalte mit dem erwarteten Erkennungsergebnis fehlt.

Eine Karte pro Netzwerk erzeugen

Die Matrix von Hand zusammenzustellen ist mühsam, weil Präfixbereiche und Längen zusammenpassen müssen. Der Kartennummern-Generator erzeugt für jedes unterstützte Netzwerk Werte mit passendem Präfix, passender Länge und passender Gruppierung und gibt die Zuordnung mit aus. Damit lässt sich die Matrix unmittelbar befüllen.

Für die Zeile mit dem absichtlich unbekannten Präfix ist das Werkzeug bewusst nicht zuständig, denn es erzeugt nur gültige Werte. Diesen Testfall schreiben Sie von Hand, und Sie sollten ihn als solchen kennzeichnen, damit niemand ihn später für ein Beispieldatum hält. Wenn Sie zusätzlich das Verhalten des Anbieters testen möchten, ergänzen Sie die Werte aus der Dokumentation, wie im Beitrag zu den Anbieter-Testkarten beschrieben.

Nächste Schritte

Bauen Sie die Matrix mit fünf Zeilen: eine für ein sechzehnstelliges Netzwerk mit dreistelligem Code, eine für ein fünfzehnstelliges mit vierstelligem Code, eine für ein vierzehnstelliges, eine für ein Netzwerk mit variablem Bereich und eine für ein unbekanntes Präfix. Fünf Zeilen decken mehr Verhalten ab als eine Liste mit zwanzig Marken, und jede Zeile hat eine überprüfbare Erwartung.

Weiterlesen

Artikel zu Synthetischer Kreditkartennummern-Generator (Testkarten)