Flutter Senior Developer

Posted 3 days ago

Worldwide

Summary

# 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
  • Expert
    Experience Level
  • Remote Job
  • Ongoing project
    Project Type

Contract-to-hire opportunity

This lets talent know that this job could become full time.
Learn more
Skills and Expertise
Mandatory skills
Flutter
iOS
Android
Dart
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
Member since Jul 14, 2015
  • Argentina
    Buenos Aires12:58 AM
  • $4.8K total spent
    45 hires, 2 active
  • 40 hours

Explore similar jobs on Upwork

How it works

  • Post a job icon
    Create your free profile
    Highlight your skills and experience, show your portfolio, and set your ideal pay rate.
  • Talent comes to you icon
    Work the way you want
    Apply for jobs, create easy-to-by projects, or access exclusive opportunities that come to you.
  • Payment simplified icon
    Get paid securely
    From contract to payment, we help you work safely and get paid securely.
Want to get started? Create a profile

About Upwork

  • Rating is 4.9 out of 5.
    4.9/5
    (Average rating of clients by professionals)
  • G2 2021
    #1 freelance platform
  • 49,000+
    Signed contract every week
  • $2.3B
    Freelancers 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

  • Microsoft Logo
  • Airbnb Logo
  • Bissell Logo
  • GoDaddy Logo