As an effort to expand into the gaming world, the client, a multinational media corporation, developed a state-of-the-art, gaming streaming service. The client contracted AccelOne to perform complete quality assurance analysis for the client application to ensure that the product was performing optimally for their product launch. After a successful project initiation, the client further extended the contract, asking AccelOne to perform QA analysis for the website as well.
The video game platform is a one-of-a-kind online platform that provides instant access to over 50 video games with a monthly subscription. Upon its initial launch, it is available to audiences in Argentina and Chile, with plans to expand further in the future. The platform enables gamers to access numerous top-rated video games for only a small monthly fee. Instead of investing in a new console or computer, all that is needed is an internet connection. The platform uses only 20Mb (mega bauds per second) from the internet and does not require a big processor or a long installation process because all the game graphics are rendered in servers and delivered as a video streaming in real-time. Additionally, the wide variety of games available in the catalog continues to grow, giving each gamer access to new and diverse games.
As attention to detail was of great importance, AccelOne’s QA team formed an extensive plan for testing the platform before beginning. For the client app, the team used a lengthy checklist to test each individual game manually in Windows and Mac to ensure every bug was identified. For the website, the team performed test cases, cross-browser and mobile responsive testing.
Clear and constant communication between the customer, the developers, and our QA specialists was our priority. Thus, we used two platforms for organization and accountability purposes.
- Zendesk: A bug tractor platform—for registering bugs in the client app and notifying developers.
- JIRA: A test case management tool—for managing tasks, reporting findings, logging hours, and communicating with developers.
For the project, AccelOne formed a team consisting of a senior QA analyst and three QA testers. The senior QA analyst served as the project leader, supervising the project, managing the timeline, and communicating with the client. The three QA testers executed the checklist testing, examined test cases, registered all bugs, and notified the developers. After the team was formed, the extensive testing process began. First, each video game in the client application was tested according to the checklist below.
- Wording — titles, descriptions, and buttons
- Language — languages, translator and captions
- Executing Game — works from catalog and search box
- Loading Time — around 10 seconds, 20 seconds maximum
- Navigation — mouse, keyboard, and joystick work for all
- Audio — no interruptions and noise level works proportionally
- Fluidity — no stops and starts
- Menu Overlay — all functions work, key shows which buttons correlate to which functions, and navigation mechanism works
- Playability — no lag and easy to play
- Multiplayer — all functions work with multiple players
- Saving Game — game saves and returns to the same place
- Exiting — no problems quitting the game
- Related Content — similar game suggestions appear upon exiting the game
- Branding — the platform brand only
- + More
Once a bug was discovered, the QA tester registered it in Zendesk and notified the developers, then after the developers fixed the bug, testing was repeated. This cycle was performed countless times by our QA team to ensure the product was bug-free.
The testing process for the website was very similar. Test cases were designed and executed by the team. The evidence from each, including all bugs, was registered on JIRA and was used to fix and improve the website. The same cycle of running tests, finding bugs, fixing bugs, and repeating the tests was used for website testing.
Many bugs were identified throughout the testing process. The most frequent bugs found in the client application were problems starting the video games, saving the games, and loading time issues. With the website, the biggest problem was the integration with the payment solution. AccelOne addressed all of these issues appropriately, freeing the platform of these setbacks.
The entire time, AccelOne maintained constant communication with the customer and the developers. Every day, our QA team had a morning meeting with the developers to discuss current challenges, review the prior day’s work, and go over the current day’s plan. Additionally, AccelOne sent detailed monthly reports to the client, updating them on the progress. The reports included evidence of the findings and information about time spent on each task.
The client is a South American Cryptocurrency / Fintech company that provides customers with a secure wallet and debit card for their Bitcoins. Xapo was founded by a well-known South American entrepreneur with the goal of making buying, selling, and using Bitcoin as safe and accessible as accessing a traditional bank account.
The competition for the contract was a two-week long assessment process against other outsource software development vendors. Senior and select members of the AccelOne team attended daily meetings at the client’s offices to receive instructions and explanations of what the client needed. The AccelOne team was asked to present a recommended software architecture, software team configuration, and estimate for the number of work hours needed to build the cryptocurrency transaction platform.
Additionally, the new platform had to incorporate the client’s new business model directive. Their goal was to deliver crypto transactions to serve as the future enabler for transactions between buyers and sellers of all kinds, not exclusively for Bitcoin. They also wanted a quick and easy-to-use platform to attract consumers beyond the early adopters. In order for this to be possible, the platform would have to enable integrations to other financial services and institutions. Ultimately, the software platform would become the hub of all of the client’s future transactions, becoming the first of its kind worldwide.
A further challenge was that the prior platform was constructed largely by the client’s human operators using internal proprietary tools. The entire project presented many challenges for the AccelOne team who hoped their recommendations would impress the client’s senior engineers.
After reviewing the various vendor recommendations, the client selected AccelOne as the chosen outsource vendor to deliver their platform.
The first step was to onboard the AccelOne team and introduce us to the client’s teams and worldwide project stakeholders. AccelOne was then familiarized with the practices and tools used by the rest of the developers, operators, and administrators across the company.
Our team was integrated by a senior solution architect and two senior enterprise-level Python developers into tech stacks that the client used which included:
- Python 3.6 with the light Flask framework
- REST full API to expose process information: Flask Restful plugin
- APS Scheduler Python library used for transactions processing and as a foundation for a decoupled transaction processing engine
- React.js + Redux for the front end
The system that our team worked on was integrated with the client’s proprietary admin tool and with a group of Cryptocurrencies Exchanges through the use of their APIs.
There are three main environments which host the system:
- Development (on the developer’s workstations)
- Staging (for the client’s stakeholders evaluations)
- Production (for the final release product)
Everything runs in Amazon Web Services (AWS) infrastructure and two main services are used among others:
- S3 to store digital assets, all stored data needs to be heavily encrypted
- ECS to run the Docker containers with the app
The main challenge of the execution was to organize all the stakeholders from different areas of the client’s company and our team to avoid project blockers and to allow a smooth and accurate process integration with the rest of the customer systems.
Before beginning development, a prototype of the process was created to define the logic, rules, parameters, and to simulate possible scenarios. Once the prototype was approved, all the related framework and middleware was created. Lastly, the integrations were analyzed and we designed a data-driven model to empower a multisource architecture. The transaction processing engine was designed to be a multisource data loader, parser, and interpreter. With extensibility in mind, we integrated the client’s systems, payment networks, and exchanges in a modular way — allowing new sources with different levels of initial capabilities going from simple value range and similarity matching to more complex rules.
During the entire project duration, Scrum framework was used to assign tasks and keep track progress, milestones, deadlines, and blockers. Orchestration of the interaction with all the rest of the client’s resources was key to the success of the project, including constant communication with the client’s CTO.