Flutter Senior Developer
Worldwide
# Project: Flutter Automated Testing Framework for QA and Production Releases ## Overview We are looking for a Flutter developer to design and implement a reliable automated testing framework for our mobile app. The goal is to ensure that the most important user flows are automatically tested every time we create a QA build and before releasing to production. This project should help reduce regressions, improve release confidence, and ensure that core app features remain stable across iOS and Android. ## Main Objective Set up automated tests for the Flutter app covering the most important user journeys, including authentication, purchases, media playback, course navigation, and core app interactions. The developer will also review and improve the existing unit tests and widget tests to make sure they are reliable, useful, and easy to maintain. ## Scope of Work ### 1. Automated End-to-End Testing Create automated tests that simulate real user behavior in the app. The tests should cover: * Login through Auth0 using different test users. * User flows for free users, paid users, and users with different access levels. * Course navigation from start to finish. * Opening lessons. * Moving to the next lesson. * Using buttons that take the user to the next lesson or next step. * Playing videos. * Playing audios. * Verifying that video and audio playback starts correctly. * Checking that key screens load without errors. * Validating that the main course flow works as expected. ### 2. Purchase Flow Testing Set up automated testing for purchase-related flows. The app currently uses Chargebee and App Store purchases. Testing should simulate purchase flows as much as possible using the correct sandbox or test environment. The tests should verify: * A user can start a purchase flow. * The app correctly handles successful purchases. * The app correctly updates user access after a purchase. * The app correctly recognizes active subscriptions. * The app handles failed, cancelled, or incomplete purchase flows when possible. * Chargebee and App Store purchase states are reflected correctly in the app. ### 3. Video and Audio Testing Create automated checks for media playback. The tests should verify: * Videos can be opened. * Videos start playing. * Audios can be opened. * Audios start playing. * Playback controls are visible and functional where applicable. * The app does not crash when moving between lessons with media. * The app handles transitions between video, audio, and lesson content correctly. ### 4. Course Flow Testing Automate the main course experience. The tests should cover: * Entering a course. * Opening a lesson. * Completing or moving through a lesson. * Clicking next lesson buttons. * Moving between lessons in the correct order. * Checking that progress-related behavior works correctly when applicable. * Confirming that the user can continue the course without blocking issues. ### 5. Unit Tests and Widget Tests Review the existing unit tests and widget tests. The developer should: * Check which tests currently exist. * Fix failing tests. * Improve unreliable or outdated tests. * Add missing unit tests for important business logic. * Add or improve widget tests for important UI components. * Make sure tests can run consistently in CI/CD. * Document how to run the tests locally. ### 6. CI/CD Integration The automated test suite should be integrated into the release process. Tests should be triggered: * Every time a QA build is created. * Before a production release. * Ideally also on pull requests or merges into important branches, where practical. The goal is to prevent unstable builds from moving forward when core features are broken. The developer should help define which tests run at each stage, for example: * Fast unit and widget tests on pull requests. * Integration or end-to-end tests on QA releases. * Critical smoke tests before production releases. ## Expected Deliverables The developer should deliver: * A working automated testing setup for the Flutter app. * Automated tests for login, purchases, course flow, video playback, audio playback, and lesson navigation. * Improved unit tests and widget tests. * CI/CD configuration so tests run automatically during QA and production release workflows. * Documentation explaining: * How to run tests locally. * How to add new tests. * How test users are configured. * How purchase testing works. * What tests run during QA and production releases. * Recommendations for future testing improvements. ## Technical Areas Involved The developer should be comfortable with: * Flutter and Dart. * Flutter unit tests. * Flutter widget tests. * Flutter integration tests. * End-to-end mobile testing. * Auth0 login testing. * In-app purchase testing. * App Store sandbox testing. * Chargebee subscription flows. * Media playback testing. * CI/CD pipelines. * iOS and Android release workflows. * TestFlight and Android internal testing environments. ## Success Criteria The project will be considered successful when: * The main user flows can be automatically tested. * QA releases trigger the appropriate automated tests. * Production releases are protected by critical smoke tests. * Login, purchase, course navigation, video playback, and audio playback flows are covered. * Existing unit and widget tests are passing and useful. * The team has clear documentation to maintain and extend the test suite. * The release process becomes more stable and less dependent on manual testing only. ## Notes for the Developer We do not expect every possible app scenario to be automated immediately. The first priority is to cover the critical flows that would create the biggest problems if they broke: * Login. * Purchase and subscription access. * Course access. * Lesson navigation. * Video playback. * Audio playback. * Next lesson buttons and course progression. After this foundation is stable, test coverage can continue expanding over time.
$1,200.00
Fixed-price- ExpertExperience Level
- Remote Job
- Ongoing projectProject Type
Skills and Expertise
Activity on this job
- Proposals:20 to 50
- Last viewed by client:3 days ago
- Interviewing:0
- Invites sent:0
- Unanswered invites:0
About the client
- ArgentinaBuenos Aires12:58 AM
- $4.8K total spent45 hires, 2 active
- 40 hours
Explore similar jobs on Upwork
How it works
Create your free profileHighlight your skills and experience, show your portfolio, and set your ideal pay rate.
Work the way you wantApply for jobs, create easy-to-by projects, or access exclusive opportunities that come to you.
Get paid securelyFrom contract to payment, we help you work safely and get paid securely.
About Upwork
- 4.9/5(Average rating of clients by professionals)
- G2 2021#1 freelance platform
- 49,000+Signed contract every week
- $2.3BFreelancers earned on Upwork in 2020
Find the best freelance jobs
Growing your career is as easy as creating a free profile and finding work like this that fits your skills.
Trusted by