Architectural Decision · Quality Automation

Why keep
qa-core-mobile-automation

Analysis of the arguments against migrating E2E tests to the platform engineering repos.

5 key arguments
Android + iOS covered today
1 unvalidated assumption in the plan
Executive summary: The only real benefit of the plan is that Android developers could write tests in Kotlin. That assumption was never validated with the team. qa-core-mobile-automation solves today what the plan promises to solve in the future, with lower cost, lower risk, and without breaking the iOS coverage that already exists.
01

The plan is based on an unvalidated assumption

The only real benefit the plan offers over the status quo is: "Android engineers can write tests in Kotlin".

  • The gap is not about language — it is about quality domain knowledge. Writing an E2E test requires knowledge of Appium, Cucumber-JVM, Guice, LambdaTest, and the framework patterns. That does not disappear by switching to Kotlin.

If the goal is for software engineers to contribute, a good README and an onboarding session on qa-core-mobile-automation has a lower cost than rewriting the entire framework.

02

The migration consumes time without solving the real problem

Migrating Android from Python to Kotlin takes an estimated 4 weeks. Then comes the iOS plan, with no defined date. During that time the Quality team is split between maintaining what already works and building what does not work yet.

That is time not invested in coverage, new flows, or stability.

03

Bitrise execution costs double unnecessarily

Today the Android and iOS jobs run from a single managed pipeline. With the plan, each platform would have its own independent pipeline:

9h
Android daily
6 jobs × 1.5h
15h
iOS daily
6 jobs × 2.5h
24h
Total daily
every day

With separate repos you lose the ability to orchestrate, prioritize, or reduce executions from a single control point. Any pipeline optimization must be implemented twice, with the risk that pipelines evolve out of sync.

04

Cross-platform coverage starts to diverge

With a single repo, the question "Where do I maintain this test? Is this test automated on both Android and iOS?" is answered by checking one repo, one pipeline, one execution.

With separate repos per platform, coverage starts living in silos and divergence becomes inevitable. If the tests for each platform are built by different people, each engineer will naturally build different tests with different assertions, different validation criteria, and different edge-case coverage. Over time, what is tested on Android and what is tested on iOS will drift apart — and the real cross-platform coverage will erode without anyone noticing until a production incident exposes the gap.

05

Flaky tests and pipeline times do not improve with the migration

Moving the tests to another repo does not reduce LambdaTest execution time or eliminate flakiness — those are infrastructure and test stability problems, not a matter of where the code lives.

The migration does not solve those problems; it transfers them to a new framework with the additional risk of introducing regressions during the transition.

The status quo is the right decision

qa-core-mobile-automation solves today what the plan promises to solve in the future, with lower cost, lower risk, and without breaking the iOS coverage that already exists. The plan trades an architecture that works for a promise of developer enablement that has not been validated.

Furthermore, the goal of having software engineers contribute to automation can be achieved without migrating the framework. An Automation Adoption strategy can define a mandatory task in every User Story whose deliverable is a PR with execution evidence — regardless of the language or repo where the tests live.

This solves the cultural and process problem, which is the real problem, without touching the architecture that already works.

Process Proposal · Quality Automation

Quality-First Development Cycle

Embedding quality into every stage — a new status, two mandatory tasks, and a regression gate before every release.

PM
Task Owner
Software Engineer
01
Task Created
PM
Creates the ticket with requirements and acceptance criteria.
02
Technical & Quality Analysis New Status
Task Owner
Evaluates the technical approach, identifies dependencies and effort, and defines the test plan before development — covering all test cases and validating the module won't break.
ScenarioTypeNotes
Valid paymentHappy PathConfirm screen + status
Expired cardNegativeProper error message
Amount = 0Edge CaseMin amount enforced
Existing flowRegressionE2E suite for module
03
Develop
Software Engineer
Implements the feature or fix following tech & quality analysis.
Can it be
automated?
NO YES
Already
automated?
YES NO
NO — Cannot Automate
Functional Execution
Run the test plan from the analysis step by step.
Attach Evidence
Add screenshots, logs, or video to the ticket.
YES — Existing
Select Automation Test
Pick the relevant existing automated test.
Run Locally
Execute the test on local environment.
Attach Evidence
Add execution results to the ticket.
NO — New Test
Write Automated Test
Implement a new automated test for the development.
Execute
Run the newly written automated test.
Attach Evidence
Add execution results to the ticket.
GATE
🛡 Regression Gate — TestKube
Software Engineer
Run the full regression suite in TestKube before publishing a new version. No release without a green run.
Future Vision · Quality Tooling

Skills we can build
to move faster

A set of internal skills — AI-assisted tools that accelerate the quality cycle, reduce manual effort, and let software engineers ship with confidence.

01

🧪 Test Case Generator

Given a User Story, acceptance criteria, or a Figma link, the skill produces a complete test plan: happy paths, negative cases, edge cases, and regression scope — ready to attach to the ticket during Technical & Quality Analysis.

  • Input: ticket description, acceptance criteria, or design link.
  • Output: structured test plan with scenario type and priority.
  • Impact: removes the blank-page problem and standardizes coverage across teams.
02

🤖 Automated Test Scaffolder

Transforms a test case into a ready-to-run automated test following the qa-core-mobile-automation framework conventions — page objects, step definitions, and feature files included.

  • Input: test case in natural language.
  • Output: Cucumber feature + step definitions + page-object stubs.
  • Impact: lowers the entry barrier for software engineers contributing automation.
03

🔍 Flaky Test Triage

Analyzes recent pipeline runs, clusters failures by root cause (timing, selector, environment, real bug), and proposes a fix or quarantine action — turning noisy pipelines into actionable signals.

  • Input: pipeline logs + test history.
  • Output: ranked list of flaky suspects with suggested remediation.
  • Impact: higher pipeline trust, less time firefighting.
04

📊 Coverage Cartographer

Maps existing automated tests against product modules and platforms, surfacing Android vs iOS divergence and uncovered flows. Answers "Is this already automated on both platforms?" in seconds.

  • Input: test repo + module taxonomy.
  • Output: coverage matrix with gaps highlighted.
  • Impact: prevents silent erosion of cross-platform parity.
05

📝 Evidence Packager

Collects execution artifacts — screenshots, videos, logs, device info — and attaches a clean, auditable evidence bundle to the ticket automatically after a local or CI run.

  • Input: test run identifier.
  • Output: attached evidence package with structured summary.
  • Impact: closes tickets faster, standardizes evidence quality.

From process to platform

These skills turn the Quality-First Development Cycle from a process everyone follows manually into a platform the whole engineering organization leverages. The work does not get skipped — it gets accelerated.

Starting with the Test Case Generator gives us the fastest payoff: it plugs directly into the new Technical & Quality Analysis status and removes the hardest part of adoption — knowing what to test.

01 Why keep qa-core-mobile-automation
to navigate