QA ENGINEERING FOR A FINANCIAL TECHNOLOGY PLATFORM
How we engineered and implemented a comprehensive, complex quality assurance solution for a platform that allows banks to trade digital assets or crypto currency between one another, using rigorous methodology and semi-automated case testing.
Written by Mario Agüero|Posted on July 15, 2020
THE QA ENGINEERING CHALLENGE
Our client is a Chicago-based financial technology company that specializes in high-frequency trading. Their digital asset exchange platform is designed to serve banks and brokers, enabling the trade of fiat (standard) currency and cryptocurrency between banks. The client contracted AccelOne to design and implement a comprehensive quality assurance review of the interbanking platform.
This was a unique challenge for two reasons:
- Without being able to refer to a precedent or guide for how a platform that enables the exchange of fiat currency and cryptocurrency should be tested, our team needed to design the QA process from the ground up.
- Trading between fiat currency and cryptocurrency can sometimes be a complex process, and our client’s platform is designed to make interbanking easier. The key to ensuring a truly seamless trade is thorough QA engineering that predicts and addresses all critical points in the trade. Our team was tasked with making smooth asset exchange possible between the fiat and cryptocurrency systems.
OUR PROJECT TEAM
This QA engineering project was taken on by AccelOne’s senior QA engineer and her team. They worked closely with our senior back end developer, senior front end developer, and UI designer to develop the appropriate processes and propose fixes. Our technical project manager coordinated team efforts to maintain timely project delivery.
THE QA ENGINEERING SOLUTION
AccelOne engineered and implemented a complex, semi-automated testing procedure to ensure an exhaustive review of the client’s trading software platform. Our software development company executed the plan in three phases:
1. Preparation: The team collaborated with the client to establish a complete understanding of the trading platform and existing documentation. They then identified the critical points that would be investigated in the testing phase.
2. Case creation: The QA engineer wrote a complete test suite that included 64 unique test cases across five user types, corresponding to five banking and trading staff roles with different application permissions. These cases, which included both happy paths and error cases, were validated with the client and internal team, and reviewed to ensure that no scenario had been left out.
Tools: Cucumber Studio was chosen to document test cases. As a user-friendly, free application for small teams, it was a cost-effective option that didn’t require extensive training or the creation of many user accounts. The ability to export cases and execution results allowed for easy sharing with the client and broader internal team.
3. Automation & testing: Test cases for the most critical functionalities of the platform were automated to perform the tests faster. Automation also made it possible to generate a transaction dataset to be used for further testing. The majority of critical case tests were automated, while other tests were performed manually. The QA engineer then worked with the front end and back end developers to define the causes of errors and propose solutions.
Tools: Selenium WebDriver was chosen as the black box testing application for front end automated testing. Simulating a real user, the application makes it possible to run the same test on multiple browsers and operating systems.
*Python was used for back end testing to directly interact with the back end API and validate application flows without going through the interface. We chose it as a user-friendly, high-level, object-oriented scripting language, and we also used it as a binding language for Selenium.
The Page Object Model design pattern was used for testing architecture. This strategy facilitated test maintenance and prevented code duplication.
By working closely with the client and bringing in a diverse and experienced team, AccelOne engineered and implemented an original, comprehensive QA solution with the rigor and precision required for the digital assets trading industry. As a result, the client was able to launch with the confidence that all platform functionalities would run smoothly for bankers and traders.
Semi-automated case testing was an important element of the solution. It allowed AccelOne to:
- Conduct tests quickly and generate QA reports
- Automatically generate test transaction datasets to be used for further testing
- Deliver the complete QA project within just two months
- Provide full documentation of the testing process and its results to the client, making it possible for the product owner to re-run tests independently following future updates to the application
By engineering an industry-specific process, programming automated tests, selecting the optimal tools, and ensuring careful project management, AccelOne was able to implement this solution in a highly cost-effective and timely manner that exceeded client expectations.
Buenos Aires, Argentina