Union54

Africa’s First Card-Issuing API1

volledig getest en gepolijst voor een kritieke demo door QAwerk
Girl Image Boy Image Clip Icon Blue Clip Icon Red
×
Waar wilt u dat wij onze Union54 case study naartoe sturen?
Voer uw zakelijke e-mailadres in

Union54 is een fintech startup die kaartuitgiftediensten levert aan bedrijven in Afrika. De RESTful API stelt fintechbedrijven in staat om zelf programmeerbare virtuele en fysieke debetkaarten uit te geven, zonder tussenkomst van een bank of derde partij.

Alle klanten

Web app testen

Met onze professionele ondersteuning kunnen bedrijven erop vertrouwen dat hun weboplossingen, waaronder web-API’s, zich gedragen zoals verwacht. We hebben Union54 geholpen hun RESTful API grondig te testen om ervoor te zorgen dat deze de gewenste output retourneert, correcte authenticatie- en toegangscontroles heeft en goed presteert.

Meer weten

Geautomatiseerd testen

We hebben Union54 geholpen bij het bouwen en automatiseren van een uitgebreide regressietestsuite die stabiel, schaalbaar en gemakkelijk te onderhouden is. Onze QA-ingenieurs hebben 90% van de API-endpoints gedekt met testautomatisering en blijven nieuwe scenario’s voor database triggers en front-end functionaliteit automatiseren.

Meer weten

Introductie

Union54 is een spin-off van Zazu, Africa’s challenger bank die Mastercard Principal Membership heeft ontvangen. Zazu’s oprichters, na getuige te zijn geweest van de onwelwillendheid en verouderde processen van Afrikaanse banken, kwamen met een oplossing die andere fintechs helpt het kaartuitgifteproces te versnellen. Met Union54 duurt kaartproductie en -uitgifte drie tot negen dagen.

De Union54 API’s stellen bedrijven in staat om fysieke en virtuele debetkaarten uit te geven, kaarten in elke valuta te financieren, ze naar eigen voorkeur te programmeren, een kaartbeheerplatform te gebruiken voor diverse digitale bankactiviteiten, naast andere functies.

Uitdaging

Samenwerken met Union54 is niets anders dan een plezier geweest: we waren al bekend met hun team, workflows en kwaliteitsnormen door het Zazu-project.

Hier zijn enkele van de belangrijkste aspecten waarmee we moesten voldoen:

  • Tijdsdruk. Aangezien Union54 deelnam aan de Y Combinator zomerbatch, hadden ze ongeveer twee maanden de tijd om een volledig functionele MVP te leveren voordat deze op de demo day werd gepresenteerd aan een geselecteerd publiek van investeerders en pers. Vanuit ons perspectief waren wij verantwoordelijk voor het tijdig testen van API-endpoints naarmate ze werden gebouwd.
  • Stabiliteit van Testautomatisering. Fintechprojecten zoals Union54 kunnen niet zonder testautomatisering. Dergelijke oplossingen vereisen een dubbele hoeveelheid testinspanning, en handmatig testen alleen biedt geen 100% testscenario-dekking. Onze taak was om een stabiele testautomatiseringssuite te ontwikkelen die zowel uitgebreid als gemakkelijk te onderhouden en schalen is.
  • Ontbrekende UI. Onze klant zocht naar zeer technische QA-ingenieurs die API-endpoints konden testen zonder gebruikersinterface. Deze eis was geen uitdaging voor ons, aangezien we een team van experts hebben die bedreven zijn in API-testen.

Fintechoplossingen zoals Union54 tolereren geen enkele nalatigheid, dus we deelden vanaf dag één de verantwoordelijkheid voor het succes van het project.

Oplossing

Om vanaf de vroege ontwikkelingsfasen voldoende testdekking te garanderen en de deadlines te halen, hebben we besloten testautomatisering te combineren met handmatige test QA. Deze toewijzing van middelen stelde ons in staat om ongeveer 90% van de testscenario’s met betrekking tot endpoints en de meest essentiële database triggers te automatiseren.

De handmatige tester schrijft daarentegen positieve en negatieve testscenario’s, die vervolgens worden beoordeeld door de testautomatiseringsingenieur, en zorgt voor de rest van de functionaliteit die nog niet is geautomatiseerd of geen automatiseringspotentieel heeft. De missiekritieke testscenario’s werden zowel door een testautomatiseringsingenieur als een handmatige tester gecontroleerd om de uiterste softwarekwaliteit te bereiken.

Een ander aspect dat de basis legt voor een succesvolle testautomatiseringsstrategie, is de juiste keuze van testframeworks. Voor handmatige testen vertrouwden we op Postman, aangezien deze tool specifiek is ontworpen voor API-testen en het gemakkelijk maakt om apps te testen met een ontbrekende frontend – precies waarmee we te maken hadden. Testautomatiseringsscripts werden geschreven met Cypress, wat geschikt is voor continu groeiende testautomatiseringsprojecten zoals Union54.

We testten API-endpoints naarmate ze werden gebouwd, dus ons testplan omvatte het testen van nieuwe functies, integratie en regressietesten.

Testautomatisering

De stabiliteit van testautomatisering is de belangrijkste uitdaging voor elke QA-automatiseringsengineer. Waarom is het zo belangrijk? Het valideren van wat tests mislukt zijn vanwege bugs of wijzigingen in de code, en welke tests het resultaat zijn van een onstabiele omgeving, is de dagelijkse praktijk van een QA-automatiseringsengineer. Als geautomatiseerde tests instabiel zijn, zal het aantal false positives blijven stijgen naarmate het project groeit. Hierdoor gaat er enorm veel tijd verloren aan het filteren van false positives uit werkelijk mislukte tests.

Voordat we met enige werkzaamheden aan het project begonnen, had het Union54-team al enkele tests geschreven met het Mocha-framework, dus besloten we het een kans te geven. Naarmate nieuwe testscenario’s uitgebreider werden en de testsuites groter, merkten we aanzienlijke stabiliteitsproblemen en deelden we onze zorgen met onze klant. Om dit probleem op te lossen, stapten we over op een ander framework, herschreven we alle bestaande tests in Cypress en plaatsten we ze in een aparte repository.

We kozen voor Cypress vanwege de vele voordelen die het biedt. Cypress stelt u in staat om mislukte tests automatisch opnieuw uit te voeren en een aangepast aantal opnieuw uitvoerpogingen in te stellen, hetzij voor alle tests, hetzij voor een specifieke test. Deze functie is zeer handig voor het verminderen van testflakiness en CI-buildfouten die worden veroorzaakt door de tijdelijke onbeschikbaarheid van externe services of willekeurige netwerkfouten. Andere voordelen van Cypress zijn logische en duidelijke patronen, hoge leesbaarheid van testscenario’s en schaalbare code; de reeds geschreven patronen kunnen worden hergebruikt in toekomstige tests. Cypress is ook zeer geschikt voor het uitvoeren van complexe, meerstaps testscenario’s.

CI voor de geautomatiseerde tests wordt geïmplementeerd met behulp van Bitbucket Pipeline. Elke nacht om 2 uur ‘s nachts worden de laatste commits van de develop-branch naar de CI-pipeline gehaald. Daarom dekken onze tests alle wijzigingen in de codebase, zelfs als ontwikkelaars tot laat in de nacht werken. Dankzij de Bitbucket-integratie met Slack worden we direct op de hoogte gesteld van alle commits, pull requests en pipeline-statussen, zowel succesvol als mislukt.

Een volledige testrun met 1500 testscenario’s in de CI-pipeline duurt ongeveer 1,5 uur, wat behoorlijk redelijk is, gezien de complexiteit en het aantal testscenario’s. Nu we de stabiliteit van geautomatiseerde tests hebben bereikt, hebben we elke ochtend een duidelijk beeld en besteden we minimale tijd aan probleemoplossing.

Nu er nieuwe functionaliteiten aan de Union54-website worden toegevoegd, dekken we ook het front-end gedeelte met geautomatiseerde functionele tests.

Bugs Gevonden

Alle kritieke bugs die we vonden, bereikten de productieomgeving nooit dankzij een uitgebreide testautomatiseringssuite, ondersteund door handmatige testen.

De meeste problemen die we tegenkwamen, hadden betrekking op niet-afgehandelde of incorrect afgehandelde uitzonderingen, onjuiste autorisatie van verschillende soorten gebruikers, incorrecte inhoud van het respons-object en het ontbreken van bepaalde attributen in de database.

Bug

Werkelijk resultaat: Gegevens in de respons: “balance”: 0, “status”: “issued”, Werkelijke gegevens in de DB: “balance”: 100, “status”: “stopped”, (aangezien het saldo en de status van de kaart zijn gewijzigd)

Verwacht resultaat: Gegevens in respons komen overeen met daadwerkelijke gegevens (zoals het werkt als alleen de ‘card’ query parameter wordt meegegeven).

Bug

Werkelijk resultaat: Respons code 1 Approved, een nieuwe TRANSACTION_CARD wordt geschreven naar de DB-tabel met een float bedrag van 15.577777.

Verwacht resultaat: Respons code -19 (ongeldig bedrag), geen nieuwe TRANSACTION_CARD entry geschreven naar de DB-tabel. Alleen gehele bedragen mogen worden toegestaan.

Bug

Werkelijk resultaat: 400 Validatiefout, bericht: "card has been stopped". Opmerking: Handmatig verwijderen van de "stopReason" property uit het DB-kaartrecord resulteert in een succesvolle 200-respons, zoals verwacht.

Verwacht resultaat: Respons 200 OK, de status van de kaart is gewijzigd naar ‘issued’.

Resultaat

Met onze continue ondersteuning vanaf de vroege ontwikkelingsfase, heeft het Union54-team hun product grondig getest en gepolijst voor de levensveranderende demo day. In ongeveer twee maanden hebben we Union54 geholpen kritieke bugs te ontdekken en een robuuste geautomatiseerde regressietestsuite ontwikkeld om vergelijkbare problemen te signaleren voordat ze in productie gaan. Het resultaat van onze vruchtbare samenwerking is spectaculair: Union54 ontving kort na het afronden van Y Combinator $3 miljoen aan seed financiering. Zes maanden later haalde Union54 $12 miljoen op in een seed-vervolgrond.

De Union54 API wordt momenteel verkend door meer dan 50 Afrikaanse fintechbedrijven en blijft wereldwijd interesse wekken bij investeerders. Met vertrouwen in de kwaliteit van haar product heeft Union54 meer dan een half miljoen virtuele debetkaarten uitgegeven en zag de maandelijkse omzet gestaag groeien met 50%. Ons QAwerk-team zal met hetzelfde enthousiasme en toewijding blijven werken om Union54 de volgende mijlpalen te zien bereiken en tractie te krijgen in Afrika en daarbuiten.

In de pers

Zambian card-issuing fintech Union54 heeft $12 miljoen opgehaald in een seed-vervolgrond geleid door Tiger Global. Het bedrijf claimt ook volumes te hebben verwerkt die nu de dubbele cijfers in miljoenen dollars bereiken.

Amerikaanse online krant met focus op startups, VC-financiering en high-tech bedrijven.

Zambian fintech startup, Union54, wiens API's de uitgifte van debetkaarten in Afrika faciliteren, heeft een seed-financieringsronde van $3 miljoen afgerond, geleid door Tiger Global.

Amerikaans financieel en zakelijk nieuwsportaal.
Ik heb samengewerkt met het team van QAwerk tijdens de ontwikkeling van het card issuing API-product van Union54, waarbij zij testers voor handmatige en geautomatiseerde tests leverden. Het team was ijverig, bekwaam en enthousiast over het project, altijd bereid om extra inspanningen te leveren. De productkwaliteit was uitstekend dankzij het team, waarbij 99% van de bugs of gemiste vereisten ver voordat ze het productiesysteem bereikten werden gedetecteerd. En dit, ondanks de aanhoudende problemen in Oekraïne waar de bronnen gestationeerd waren. Ik zou het team van harte aanbevelen en zou niet aarzelen om hen opnieuw in te schakelen.
star star star star star
Jon Wade

Wilt u de ontwikkeling versnellen met testautomatisering?

Praat met experts

Hulpmiddelen

TypeScriptTypeScript
MochaMocha
CypressCypress
JiraJira
DynamoDBDynamoDB
SwaggerSwagger
PostmanPostman
1500+geautomatiseerde testscenario's
50+fintechs die de oplossing gebruiken
90%automatisch geteste endpoints
190+gemelde bugs
2maanden gegeven voor het testen van MVP

QAwerk Team Commentaren

Aliaksei

Aliaksei
QA automation engineer

Het Union54-project heeft me op verschillende aspecten uitgedaagd. Ik moest een nieuwe technologiestack beheersen om autotests te schrijven, eerst met Typescript + Mocha en daarna met Cypress, en deed ook waardevolle ervaring op met een reeks AWS-tools.

Om de architectuur van het product beter te begrijpen, was ik betrokken bij het uitvoeren van enkele handmatige QA-taken. Dit hielp me de binnenkant van het product te leren kennen, en ondanks de complexiteit genoot ik ervan om de structuur ervan te verkennen.

Hoewel het projectteam verspreid is over verschillende landen en continenten, is de communicatie op een uitstekend niveau geweest – dankzij de hoge professionaliteit van alle teamleden en hun resultaatgerichte houding.

Valentyn

Valentyn
QA-ingenieur

Voornamelijk maken de hoge complexiteit van het systeem en de gehele architectuur zelf Union54 tot een van de interessantste projecten om aan deel te nemen binnen ontwikkelings- en testcycli. Hun API maakt het mogelijk om virtuele/fysieke kaarten uit te geven die gekoppeld zijn aan de rekeningen van klanten, waardoor ze toegang krijgen tot hun geld bij elke geldautomaat of online betaalpoort.

Media
Media
Media

Gerelateerd op de Blog

Web- en mobiele app-testautomatisering: hoe kiest u de meest geschikte open source tools?

Web- en mobiele app-testautomatisering: hoe kiest u de meest geschikte open source tools?

Geautomatiseerd software testen is belangrijk voor softwareproducten om kernfunctionaliteit te verifiëren, regressietests uit te voeren en veel tests in korte tijd te helpen uitvoeren....

Lees meer
Kwaliteitsborging (QA) in softwareontwikkeling: rol en belang

Kwaliteitsborging (QA) in softwareontwikkeling: rol en belang

Hoge kwaliteit. Dit zijn de ultieme «heilige graal»-woorden in elke bedrijfsniche, projectlevenscyclus, service-implementatie, enz. Het is gemakkelijk om op een of twee «kleine» dingen te besparen – de langdurige resultaten van dergelijke «kosten-effectiviteit» zijn echte...

Lees meer

Onder de indruk?

Huur ons in

Andere casestudy's

Evolv

Evolv

Verenigde Staten

Verhoogde de snelheid van regression testing van dit digitale groeiplein met 50% en zorgde ervoor dat het platform 24/7 optimaal draait

Keystone

Keystone

Noorwegen

Heeft Noorwegens #1 studeerportaal geholpen bij het verbeteren van 8 van hun content-rijke websites, die jaarlijks door 110 miljoen studenten worden gebruikt

Zazu

Zazu

Zambia

We hebben de #1 financiële beheertoepassing in Afrika geholpen hun bugs te elimineren en een Mastercard Principal Member te worden