Union54

Africa’s First Card-Issuing API

fully tested and polished before a critical demo by QAwerk
Girl Image Boy Image Clip Icon Blue Clip Icon Red
×
Where do you want us to send our Union54 case study?
Please enter your business email

Union54 is a fintech startup providing card issuing services for businesses in Africa. Its RESTful API allows fintech companies to issue programmable virtual and physical debit cards on their own, without a bank or third-party processor.

All Customers

Web App Testing

With our professional support, businesses can rest assured their web solutions, including web APIs, behave as intended. We helped Union54 thoroughly test their RESTful API to ensure it returns the desired output, has proper authentication and access controls, and performs well.

Learn more

Automated Testing

We helped Union54 build and automate a comprehensive regression suite that is stable, scalable, and easy to maintain. Our QA engineers covered 90% of API endpoints with test automation and continue automating new database trigger scenarios and front-end functionality.

Learn more

Introduction

Union54 is a spinoff from Zazu, Africa’s challenger bank awarded Mastercard Principal Membership. Having witnessed African banks’ uncooperativeness and legacy processes, Zazu’s founders came up with a solution helping other fintechs speed up the card issuing process. With Union54, card production and issuance take three to nine days.

The Union54 APIs allow businesses to issue physical and virtual debit cards, fund cards in any currency, program them as per one’s preferences, use a card management platform for various digital banking activities, among other features.

Challenge

Cooperating with Union54 has been nothing but a pleasure: we were already familiar with their team, workflows, and quality standards through the Zazu project.

Here are some of the most important aspects we were required to comply with:

  • Time Constraints. Since Union54 participated in the Y Combinator summer batch, they had about two months to deliver a fully functioning MVP before presenting it to a selected audience of investors and press on the demo day. From our end, we were responsible for timely testing of API endpoints as they were being built.
  • Test Automation Stability. Fintech projects like Union54 cannot do without test automation. Such solutions require a twofold amount of testing effort, and manual testing alone won’t provide 100% test scenario coverage. Our task was to develop a stable test automation suite that is both comprehensive and easy to maintain and scale.
  • Missing UI. Our client was looking for highly technical QA engineers capable of testing API endpoints without a user interface. This requirement was not a challenge for us as we have a team of experts skilled in API testing.

Fintech solutions like Union54 do not tolerate any oversights, so we shared the accountability for the project’s success from day one.

Solution

To ensure sufficient test coverage from early development stages and meet the deadlines, we decided to combine test automation with manual testing QA. Such an allocation of resources allowed us to automate about 90% of test scenarios concerning endpoints and most essential database triggers.

The manual tester, on the other hand, writes positive and negative test scenarios, which are further reviewed by the test automation engineer, and takes care of the rest of the functionality not yet automated or with no automation potential. The mission-critical test scenarios were checked both by a test automation engineer and a manual tester to achieve the utmost software quality.

Another aspect that lays the foundation for a successful test automation strategy is the right choice of testing frameworks. For manual testing, we relied on Postman as this tool is specifically designed for API testing and makes it easy to test apps with missing frontend – precisely what we were dealing with. Test automation scripts were written with Cypress, which is suitable for continuously growing test automation projects like Union54.

We tested API endpoints as they were being built, so our test plan included testing new features, integration, and regression testing.

Test Automation

Test automation stability is the primary challenge for any QA automation engineer. Why is it so important? Validating what tests failed because of bugs or changes to the code and what tests are the result of an unstable environment is the daily practice of a QA automation engineer. If automated tests are unstable, the number of false positives will continue to rise as the project grows. As a result, an enormous amount of time is wasted on filtering false positives from truly failed tests.

Before we started any work on the project, the Union54 team had already written a couple of tests with the Mocha framework, so we decided to give it a try. As new test scenarios became more elaborate and the test suites increased in size, we noticed significant stability issues and communicated our concerns to our client. To resolve this issue, we switched to a different framework, rewrote all the existing tests in Cypress, and placed them into a separate repository.

We agreed on Cypress because of the numerous benefits it offers. Cypress allows you to automatically retry failed tests and set a custom number of retry attempts, either for all tests or just for a specific one. This feature is super handy for reducing test flakiness and CI build failures caused by the temporary unavailability of third-party services or random network errors. Other Cypress advantages are logical and straightforward patterns, high readability of test scenarios, and scalable code; the already written patterns can be reused in future tests. Cypress is also a good match for running complex, multi-step test scenarios.

CI for the automated tests is implemented with the help of Bitbucket Pipeline. Every night at 2 a.m., the latest commits from the develop branch are pulled into the CI pipeline. Therefore, our tests cover all changes to the codebase even if developers work late into the night. Thanks to the Bitbucket integration with Slack, we are instantly notified of all commits, pull requests, and pipeline statuses, both successful and failed.

A complete test run including 1500 test scenarios in the CI pipeline takes about 1.5 hours, which is quite decent, considering the test scenario complexity and number. Having achieved the stability of automated tests, we see a clear picture every morning, spending minimum time on troubleshooting.

As new capabilities are being added to the Union54 website, we also cover the front-end part with automated functional tests.

Bugs Found

All the critical bugs we found never reached the production environment thanks to a comprehensive test automation suite backed by manual testing. The majority of issues we encountered concerned unhandled or incorrectly handled exceptions, incorrect authorization of various types of users, incorrect contents of the response object, and absence of some attributes in the database.

Bug

Actual result: Data in response: “balance”: 0, “status”: “issued”, Actual data in DB: “balance”: 100, “status”: “stopped”, (since balance and status of the card have been changed)

Expected result: Data in response equals to actual (as it works if only ‘card’ query parameter is provided).

Bug

Actual result: Response code 1 Approved , new TRANSACTION_CARD is written to DB table with float amount 15.577777.

Expected result: Response code -19 (invalid amount), no new TRANSACTION_CARD entry written to DB table. Only integer amounts should be allowed.

Bug

Actual result: Response 400 Validation Error, message “message”: “card has been stopped”NOTE: I noticed, that if you manually remove “stopReason” property from DB card record, response returns 200 Success (as expected).

Expected result: Response 200 OK, card’s status changed to ‘issued”.

Result

With our continuous support from early development, the Union54 team thoroughly tested and polished its product before the life-changing demo day. In about two months, we helped Union54 discover critical bugs and developed a robust automated regression suite to spot similar issues before they travel to prod. The result of our fruitful cooperation is spectacular: Union54 received $3 mln in seed funding soon after graduating from Y Combinator. Fast forward six months, and Union54 raised $12 mln in a seed extension round.

The Union54 API is currently explored by over 50 African fintech companies and keeps raising interest among investors worldwide. With confidence in the quality of its product, Union54 issued over half a million virtual debit cards and saw monthly revenues steadily growing at 50%. Our QAwerk team will continue working with the same zeal and commitment to witness Union54 achieve the next milestones and gain traction across Africa and abroad.

In Press

Zambian card-issuing fintech Union54 has raised $12 million in a seed extension round led by Tiger Global. The company also claims to have processed volumes now reaching double digits in millions of dollars.

American online newspaper featuring startups, VC funding, and high tech businesses.

Zambian fintech startup, Union54, whose APIs facilitate the issuance of debit cards in Africa, has finalized a $3 million seed funding round which was led by Tiger Global.

American financial and business news portal.
I worked with QAWerk’s team during the build out of Union54's card issuing API product, where they supplied manual and automated test engineers. The team were diligent, skilled and enthusiastic about the project, always willing to go the extra mile. The product quality was excellent as a result of the team, with 99% of bugs or missed requirements caught well before they hit the production system. And this, despite the ongoing issues faced by Ukraine where the resources were based. Would thoroughly recommend the team and wouldn’t hesitate to use them again.
Jon Wade
Jon Wade, CTO at Union54

Looking to speed up development with test automation?

Talk to experts

Tools

TypeScriptTypeScript
MochaMocha
CypressCypress
JiraJira
DynamoDBDynamoDB
SwaggerSwagger
PostmanPostman
1500+test scenarios automated
50+fintechs using solution
90%end points tested automatically
190+bugs reported
2months given to test MVP

QAwerk Team Comments

Aliaksei

Aliaksei
QA automation engineer

The Union54 project has challenged me in several aspects. I needed to master a new tech stack to write autotests, first with Typescript + Mocha and then with Cypress, and also gained invaluable experience with a range of AWS tools.

To better understand the product’s architecture, I was engaged in performing some manual QA tasks. It helped me get under the hood of the product, and despite its complexity, I really enjoyed exploring its structure.

Even though the project team is distributed across different countries and continents, communication has been at an excellent level – thanks to the high professionalism of all teammates and their result-focused attitude.

Valentyn

Valentyn
QA engineer

Primarily, the high complexity of the system and whole architecture itself make Union54 one of the most interesting projects to participate in within development & testing cycles. Their API allows issuing virtual/physical cards linked to customers’ accounts, giving them access to their funds at any ATM or online payment gateway.

Media
Media
Media

Related in Blog

Web and Mobile App Testing Automation: How to Choose the Most Suitable Open Source Tools?

Web and Mobile App Testing Automation: How to Choose the Most Suitable Open Source Tools?

[table_content] The first factor. What kind of functional testing has to be automated. The second factor. What kind of applications has to be automated. The third factor. What a language will be used for the tests. The fourth factor. What additional tools will be used or what...

Read More
QA in Software Development: Role and Importance

QA in Software Development: Role and Importance

High quality. These are the ultimate “holy grail” words in any business niche, project life-cycle, service implementation, etc. It’s easy to save on a “small” thing or two - the long-standing results of such “cost-effectiveness”, however, are truly nasty in 9 out of...

Read More

Impressed?

Hire us

Other Case Studies

Evolv

Evolv

United States

Helped increase regression testing speed by 50% and ensure the platform runs 24/7

Keystone

Keystone

Norway

Helped Norway #1 study portal improve 8 content-heavy websites used by 110 mln students annually

Zazu

Zazu

Zambia

Helped #1 finance management app in Africa eliminate bugs and become Mastercard Principal Member