Union54

Afrikas erste kartenausgebende API

vollständig getestet und optimiert vor einer kritischen Demo durch QAwerk

Union54 ist ein Fintech-Startup, das Kartenausgabedienste für Unternehmen in Afrika anbietet. Ihre RESTful-API ermöglicht es Fintech-Unternehmen, programmierbare virtuelle und physische Debitkarten selbst auszugeben, ohne eine Bank oder einen Drittanbieter-Prozessor.

Alle Kunden

Testen von Web-Apps

Mit unserer professionellen Unterstützung können Unternehmen sicher sein, dass sich ihre Web-Lösungen, einschließlich Web-APIs, wie vorgesehen verhalten. Wir haben Union54 dabei geholfen, ihre RESTful-API gründlich zu testen, um sicherzustellen, dass sie die gewünschten Ergebnisse liefert, über eine angemessene Authentifizierung und Zugangskontrolle verfügt und eine gute Leistung erbringt.

Mehr erfahren

Automatisierte Tests

Wir haben Union54 dabei unterstützt, eine umfassende Regressionssuite zu entwickeln und zu automatisieren, die stabil, skalierbar und einfach zu warten ist. Unsere QA-Ingenieure haben 90% der API-Endpunkte mit Testautomatisierung abgedeckt und automatisieren weiterhin neue Datenbank-Trigger-Szenarien und Front-End-Funktionen.

Mehr erfahren

Einleitung

Union54 ist ein Spin-off von Zazu, Afrikas Challenger-Bank, die als Mastercard Principal Membership ausgezeichnet wurde. Nachdem die Gründer von Zazu die Unkooperativität der afrikanischen Banken und die veralteten Prozesse beobachtet hatten, entwickelten sie eine Lösung, die anderen Fintechs hilft, den Prozess der Kartenausgabe zu beschleunigen. Bei Union54 dauert die Herstellung und Ausgabe von Karten drei bis neun Tage.

Die Union54-APIs ermöglichen es Unternehmen, unter anderem physische und virtuelle Debitkarten auszugeben, Karten in jeder beliebigen Währung zu erwerben, sie nach eigenen Wünschen zu programmieren und eine Kartenverwaltungsplattform für verschiedene digitale Bankaktivitäten zu nutzen.

Herausforderung

Die Zusammenarbeit mit Union54 war ein reines Vergnügen: Wir kannten ihr Team, ihre Arbeitsabläufe und Qualitätsstandards bereits aus dem Zazu-Projekt.

Im Folgenden sind einige der wichtigsten Aspekte aufgeführt, die wir zu beachten hatten:

  • Zeitbeschränkungen. Da Union54 am Sommerprogramm von Y Combinator teilnahm, hatten sie etwa zwei Monate Zeit, um ein voll funktionsfähiges MVP zu entwickeln, bevor sie es am Demo-Tag einem ausgewählten Publikum von Investoren und der Presse vorstellten. Unsererseits waren wir für das rechtzeitige Testen der API-Endpunkte verantwortlich, während sie erstellt wurden.
  • Stabilität der Testautomatisierung. Fintech-Projekte wie Union54 kommen ohne Testautomatisierung nicht aus. Solche Lösungen erfordern einen doppelten Testaufwand, da manuelle Tests allein keine hundertprozentige Abdeckung der Testszenarien gewährleisten. Unsere Aufgabe war es, eine stabile Testautomatisierungssuite zu entwickeln, die sowohl umfassend als auch einfach zu warten und zu skalieren ist.
  • Fehlende UI. Unser Kunde war auf der Suche nach technisch versierten QA-Ingenieuren, die in der Lage sind, API-Endpunkte ohne Benutzeroberfläche zu testen. Diese Anforderung war für uns keine Herausforderung, da wir über ein Team von Experten verfügen, die sich mit API-Tests auskennen.

Fintech-Lösungen wie Union54 dulden keine Versäumnisse, daher waren wir vom ersten Tag an mitverantwortlich für den Erfolg des Projekts.

Lösung

Um eine ausreichende Testabdeckung bereits in frühen Entwicklungsphasen zu gewährleisten und die Fristen einzuhalten, haben wir uns für eine Kombination aus automatisierten und manuellen Tests entschieden. Durch eine solche Ressourcenzuweisung konnten wir etwa 90% der Testszenarien für die Endpunkte und die wichtigsten Datenbank-Trigger automatisieren.

Der manuelle Tester hingegen schreibt positive und negative Testszenarien, die dann vom Testautomatisierer überprüft werden, und kümmert sich um die übrigen Funktionen, die noch nicht automatisiert sind oder kein Automatisierungspotenzial haben. Die geschäftskritischen Testszenarien wurden sowohl von einem Testautomatisierungsingenieur als auch von einem manuellen Tester geprüft, um ein Höchstmaß an Softwarequalität zu gewährleisten.

Ein weiterer Aspekt, der als Grundlage für eine erfolgreiche Testautomatisierungsstrategie dient, ist die richtige Wahl der Test-Frameworks. Für manuelle Tests haben wir uns auf Postman verlassen, da dieses Tool speziell für API-Tests entwickelt wurde und das Testen von Apps mit fehlendem Frontend erleichtert – genau das, womit wir es zu tun hatten. Die Testautomatisierungsskripte wurden mit Cypress geschrieben, das sich für kontinuierlich wachsende Testautomatisierungsprojekte wie Union54 eignet.

Wir testeten die API-Endpunkte, während sie entwickelt wurden, so dass unser Testplan das Testen neuer Funktionen, Integration und Regressionstests umfasste.

Testautomatisierung

Die Stabilität der Testautomatisierung ist die größte Herausforderung für jeden QA-Automatisierungsingenieur. Warum ist das so wichtig? Die Überprüfung, welche Tests aufgrund von Fehlern oder Codeänderungen fehlgeschlagen sind und welche Tests auf eine instabile Umgebung zurückzuführen sind, gehört zur täglichen Praxis eines QA-Automatisierungsingenieurs. Wenn die automatisierten Tests instabil sind, wird die Zahl der Falschmeldungen mit dem Wachstum des Projekts weiter ansteigen. Infolgedessen wird viel Zeit damit vergeudet, Falschmeldungen aus wirklich fehlgeschlagenen Tests herauszufiltern.

Bevor wir mit der Arbeit an dem Projekt begannen, hatte das Union54-Team bereits einige Tests mit dem Mocha-Framework geschrieben, so dass wir beschlossen, es auszuprobieren. Als neue Testszenarien immer aufwändiger wurden und die Testsuiten an Umfang zunahmen, stellten wir erhebliche Stabilitätsprobleme fest und teilten dem Kunden unsere Bedenken mit. Um dieses Problem zu lösen, wechselten wir zu einem anderen Framework, schrieben alle bestehenden Tests in Cypress neu und legten sie in einem separaten Repository ab.

Wir haben uns für Cypress entschieden, weil es zahlreiche Vorteile bietet. Cypress ermöglicht es Ihnen, fehlgeschlagene Tests automatisch zu wiederholen und eine benutzerdefinierte Anzahl von Wiederholungsversuchen festzulegen, entweder für alle Tests oder nur für einen bestimmten Test. Diese Funktion ist sehr nützlich, um die Fehleranfälligkeit von Tests und die Fehler bei der CI-Entwicklung zu verringern, die durch die vorübergehende Nichtverfügbarkeit von Diensten Dritter oder zufällige Netzwerkfehler verursacht werden. Weitere Vorteile von Cypress sind logische und einfache Muster, hohe Lesbarkeit der Testszenarien und skalierbarer Code; die bereits geschriebenen Muster können in zukünftigen Tests weiterverwendet werden. Cypress eignet sich auch gut zur Durchführung komplexer, mehrstufiger Testszenarien.

CI für die automatisierten Tests wird mit Hilfe der Bitbucket Pipeline implementiert. Jede Nacht um 2 Uhr morgens werden die neuesten Commits aus dem Entwicklungszweig in die CI-Pipeline gezogen. Daher decken unsere Tests alle Änderungen an der Codebasis ab, auch wenn die Entwickler bis spät in die Nacht arbeiten. Dank der Bitbucket-Integration mit Slack werden wir sofort über alle Commits, Pull-Requests und den Status der Pipeline benachrichtigt, sowohl über erfolgreiche als auch gescheiterte.

Ein kompletter Testlauf mit 1500 Testszenarien in der CI-Pipeline dauert etwa 1,5 Stunden, was angesichts der Komplexität und Anzahl der Testszenarien recht gut ist. Nachdem wir die Stabilität der automatisierten Tests erreicht haben, sehen wir jeden Morgen ein klares Bild und verbringen nur noch wenig Zeit mit der Fehlersuche.

Da der Union54-Website neue Funktionen hinzugefügt werden, decken wir auch den Front-End-Teil mit automatisierten Funktionstests ab.

Fehlermeldungen

Alle kritischen Fehler, die wir fanden, gelangten dank einer umfassenden Testautomatisierungssuite, die durch manuelle Tests ergänzt wurde, nie in die Produktionsumgebung. Die meisten Probleme, auf die wir stießen, betrafen unbehandelte oder falsch behandelte Ausnahmen, falsche Autorisierung verschiedener Benutzertypen, falsche Inhalte des Response-Objekts und das Fehlen einiger Attribute in der Datenbank.

Bug

Tatsächliches Ergebnis: Daten in der Antwort: “balance”: 0, “status”: “issued”, Tatsächliche Daten in der DB: “balance”: 100, “status”: “stopped”, (da Guthaben und Status der Karte geändert wurden)

Erwartetes Ergebnis: Die Daten in der Antwort entsprechen den tatsächlichen Daten (funktioniert so, wenn nur der Abfrageparameter „card“ (Karte) angegeben wird).

Bug

Tatsächliches Ergebnis: Antwortcode 1 Genehmigt, neue TRANSACTION_CARD wird in die DB-Tabelle mit dem Float-Wert 15,577777 geschrieben.

Erwartetes Ergebnis: Antwortcode -19 (ungültiger Betrag), kein neuer TRANSACTION_CARD-Eintrag sollte in die DB-Tabelle geschrieben werden. Nur ganzzahlige Beträge sollten erlaubt sein.

Bug

Tatsächliches Ergebnis: Antwort 400 Validierungsfehler, Meldung “message”: “card has been stopped” (Karte wurde gestoppt) HINWEIS: Ich habe festgestellt, dass die Antwort 200 Erfolg (wie erwartet) liefert, wenn man die Eigenschaft „stopReason“ manuell aus dem DB-Kartensatz entfernt.

Erwartetes Ergebnis: Antwort 200 OK, der Status der Karte wurde auf „issued“ (ausgestellt) geändert.

Ergebnis

Mit unserer kontinuierlichen Unterstützung von der frühen Entwicklungsphase an hat das Union54-Team sein Produkt vor dem entscheidenden Demo-Tag gründlich getestet und ausgefeilt. In etwa zwei Monaten haben wir Union54 dabei geholfen, kritische Fehler zu entdecken und eine robuste automatisierte Regressionssuite zu entwickeln, um ähnliche Probleme zu erkennen, bevor sie in die Produktentwicklung gelangen. Das Ergebnis unserer erfolgreichen Zusammenarbeit ist spektakulär: Union54 erhielt kurz nach seinem Abschluss bei Y Combinator eine Startfinanzierung in Höhe von 3 Mio. US-Dollar.

In der Presse

Das sambische Fintech-Startup Union54, dessen APIs die Ausgabe von Debitkarten in Afrika erleichtern, hat eine Startkapitalrunde in Höhe von 3 Millionen US-Dollar abgeschlossen, die von Tiger Global geleitet wurde.

Amerikanisches Finanz- und Wirtschaftsnachrichtenportal.

Union54 gibt an, Karten innerhalb weniger Wochen über eine API ausgeben zu können, die unter anderem BIN-Sponsoring, Programmverwaltung und Abrechnungen ermöglicht. Das Startup behauptet, Afrikas erste kartenausgebende API zu sein und ist erst dieses Jahr gestartet.

Amerikanische Online-Zeitung, die über Start-ups, VC-Finanzierung und High-Tech-Unternehmen berichtet.
Ich wollte dem QAwerk-Team nur ein großes Dankeschön aussprechen. Valentin und Aliaksei haben in den letzten Wochen großartige Arbeit geleistet – das geht über das normale Maß hinaus, wenn man bedenkt, dass Sie für QAwerk und nicht für Union54 arbeiten. Unsere Produktionsversion war bisher dank der beiden fehlerfrei, und Aliaksei baut eine robuste Regressionssuite in Cypress auf. Das Team hat großartige Teamarbeit und Engagement gezeigt, es war eine Freude, Sie an Bord zu haben.
Jon Wade
Jon Wade, CTO bei Union54

Möchten Sie Ihre Entwicklung mit Testautomatisierung beschleunigen?

Sprechen Sie mit Experten

Tools

TypeScriptTypeScript
MochaMocha
CypressCypress
JiraJira
DynamoDBDynamoDB
SwaggerSwagger
PostmanPostman
1500+automatisierte Testszenarien
50+fintechs nutzen die Lösung
90%der Endpunkte werden automatisch getestet
190+gemeldete Fehler
2monate zum Testen des MVP verfügbar

Kommentar des QAwerk-Teams

Aliaksei

Aliaksei
QA automation engineer

Das Projekt Union54 hat mich in mehrfacher Hinsicht herausgefordert. Ich musste einen neuen Tech-Stack beherrschen, um Autotests zu schreiben, zunächst mit Typescript + Mocha und dann mit Cypress, und habe außerdem unschätzbare Erfahrungen mit einer Reihe von AWS-Tools gesammelt.

Um die Architektur des Produkts besser zu verstehen, führte ich einige manuelle QA-Aufgaben durch. Es half mir, das Produkt zu verstehen, und trotz seiner Komplexität hat es mir wirklich Spaß gemacht, seine Struktur zu erkunden.

Obwohl das Projektteam über verschiedene Länder und Kontinente verteilt ist, war die Kommunikation hervorragend – dank der hohen Professionalität aller Teammitglieder und ihrer ergebnisorientierten Einstellung.

Valentyn

Valentyn
QA automation engineer

Vor allem die hohe Komplexität des Systems und der gesamten Architektur selbst machen Union54 zu einem der interessantesten Projekte, an denen man im Rahmen von Entwicklungs- und Testzyklen mitwirken kann. Ihre API ermöglicht die Ausgabe virtueller/physischer Karten, die mit den Konten der Kunden verknüpft sind, sodass diese an jedem Geldautomaten oder Online-Zahlungsgateway Zugang zu ihren Guthaben haben.

Media
Media
Media

Beeindruckt?

Engagieren Sie uns

Weitere Fallstudien

Evolv

Evolv

United States

Beschleunigung der Bereitstellung neuer Funktionen um 50 % durch Automatisierung und Aufrechterhaltung des 24/7-Betriebs der Plattform

Keystone

Keystone

Norwegen

Unterstützung des norwegischen Studienportals Nr. 1 bei der Verbesserung von 8 inhaltslastigen Websitesdie von 110 Millionen Studenten jährlich genutzt werden

Zazu

Zazu

Sambia

Unterstützung der Finanzmanagement-App Nr. 1 in Afrika bei der Beseitigung von Fehlern und der Aufnahme in die Mastercard Principal Member