
- Client
- AmericanDream11
- Industry
- Gaming · Daily fantasy sports
- Engagement
- 2025 · 3 months
- QA team
- 2 mobile app QA testers
- Platforms
- Android App · iOS App · API
- Manual Testing
- Integration Testing
- UI/UX Testing
- Cross-platform Testing
- Usability Testing
- Performance Testing
Java & Kotlin
Node.js
MongoDB
Linear
Postman
JMeter
BrowserStack
Zelle
About the project
AmericanDream11 is an operational daily fantasy sports and private contest platform active in parts of North America. Players build teams from real fixtures in sports such as cricket and soccer, join public or private contests with an entry fee, and win based on how their chosen players perform in the live match.
Real money raises the stakes on every screen. Team selection has to respect credit and role rules, contests must lock at the scheduled start, live points have to match the scorecard, and deposits and winnings — including Zelle payouts — must reconcile to the cent. It all runs on native Android (Kotlin and Java) and iOS apps backed by Node.js APIs and MongoDB.
QAonTOP provided two mobile app QA testers for a focused three-month engagement in 2025, working from Linear alongside the development team.
What made this hard
Fantasy sports apps are judged in the few minutes before a match starts. That is when traffic peaks, contests lock and any bug costs a player real money.
- CHALLENGE 01
Rules players will test for you
Credit caps, player-role limits, captain and vice-captain multipliers and per-team player limits. Any gap in validation is found — and exploited — by players first.
- CHALLENGE 02
Deadline lock and live scoring
Contests must close exactly at match start, and fantasy points must update in step with the live game and settle correctly when it ends.
- CHALLENGE 03
Money in, money out
Entry fees, wallet balances, refunds for cancelled matches and Zelle payouts all had to reconcile, with no double charges or missing winnings.
- CHALLENGE 04
Two native apps, one experience
Separate Android and iOS codebases had to behave identically across screen sizes, OS versions and network conditions.
How QAonTOP tested AmericanDream11
- 01
Map the contest lifecycle
Broke the product into its core journeys — onboarding, team creation, contest join, live match, settlement and withdrawal — and wrote risk-ranked test cases for each in Linear.
Tools Linear
- 02
Break the team-builder rules
Boundary and negative testing of credit limits, role counts, captain choices, edits after lock, private-contest invite codes and entry limits — including direct API calls that try to bypass app-side validation.
Tools Postman
- 03
Verify the APIs and data
Postman collections for contest, team, scoring and wallet endpoints, with MongoDB queries confirming that balances, entries and point totals match what the apps display.
Tools Postman · MongoDB · Node.js
- 04
Payments and payouts
End-to-end checks of deposits, entry fees, refunds for abandoned matches and Zelle withdrawal requests, reconciling every wallet transaction.
Tools Zelle · MongoDB
- 05
Devices and match-day load
BrowserStack real-device runs across Android and iOS versions, and JMeter load tests simulating the pre-deadline rush on contest join and live scoring.
Tools BrowserStack · JMeter
The engagement in numbers
Focused engagement in 2025
Mobile app QA testers
Test cases across the contest lifecycle
Defects found and verified before release
Real Android and iOS device and OS combinations
Concurrent players simulated in pre-deadline load tests
Before and after the engagement
| Area | Before QAonTOP | With QAonTOP |
|---|---|---|
| Team-builder rules | Validated only in the app UI, with edge cases untested. | Boundary, negative and API-bypass tests for every credit, role and captain rule. |
| Contest lock & scoring | Lock timing and point updates checked by hand on the odd live match. | Scripted checks of deadline lock, live point updates and final settlement against official scorecards. |
| Wallet & payouts | Deposits and withdrawals tested only on the happy path. | Deposits, entry fees, refunds and Zelle payouts reconciled transaction by transaction in MongoDB. |
| Device coverage | A handful of in-house phones. | BrowserStack coverage across Android and iOS versions and screen sizes. |
| Match-day performance | Unknown behaviour when players join in the final minutes. | JMeter baselines for contest join and scoring under pre-deadline peaks. |
| Release readiness | No shared view of open issues by severity. | A severity-ranked defect board in Linear with a clear go / no-go before each store release. |
What we covered
Manual Testing
Exploratory and scripted testing of onboarding, team creation, contests, live matches and withdrawals.
Integration Testing
Checks across the apps, Node.js APIs, MongoDB, scoring updates and Zelle payouts.
UI/UX Testing
Screen-by-screen checks of the team builder, leaderboards and wallet against design.
Cross-platform Testing
Parity testing of the native Android and iOS apps on BrowserStack real devices.
Usability Testing
Walkthroughs of first-time team creation and contest joining to reduce drop-off and confusion.
Performance Testing
JMeter load tests on contest join, live scoring and leaderboards at match-day peaks.
