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.

Architectural Decision · Web Automation

Web Feasibility
Analysis

Should we migrate qa-core-web-automation into the SDK Web repositories?

6 separate repositories today (polyrepo)
sdk-web
sdk-web-card
sdk-web-core
sdk-3ds
sdk-webview
sdk-event-log
Monorepo under evaluation
Python + Selenium → Python + Playwright
01

Cross-cutting by nature

A single card payment exercises 4–5 repos simultaneously. There is no natural “owner” repo for the test.

02

6× infrastructure

6 Playwright configs, 6 CI pipelines, 6 fixture sets. Maintenance cost multiplied, consistency lost.

03

Silent breakage

A change in sdk-web-core can break sdk-web-card — but those tests won’t run.

If polyrepo remains →
Keep tests in a single repo
A dedicated test repository remains a perfectly valid long-term architecture with unified test suite, one CI pipeline, and full cross-repo coverage.
If monorepo is built →
Integrate tests into the monorepo
All SDK packages coexist, so cross-cutting tests are natural. Tools like Nx provide affected-test detection — one config, one pipeline, full visibility.

Single test repo + migrate to Playwright

Keep a single dedicated test repository and progressively migrate from Python + Selenium to Python + Playwright. This modernizes the test stack while preserving the existing team expertise.

  • If the monorepo lands — move the entire test suite into its e2e/ directory. Everything transfers verbatim, zero rework.
  • If the monorepo doesn’t happen — the dedicated repo remains a perfectly valid long-term architecture with unified test suite and CI integration.

Build once, migrate if the opportunity arrives

Modernize to Python + Playwright in a single repo now. If a monorepo is built, the tests move in seamlessly. If not, the architecture already works. Either way, zero throwaway work.

Process Proposal · Quality Automation

Quality-First Development Cycle

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

PM
Task Owner
Software Engineer
Available Skill
Future Skill
01
Task Created
PM
Creates the ticket with requirements and acceptance criteria.
/yuno:factory
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
Future Skill
03
Develop
Software Engineer
Implements the feature or fix following tech & quality analysis.
04
Create Automation Subtask Mandatory
Software Engineer
Create a Jira subtask to track the automation decision and execution. Every ticket must have this subtask before moving forward.
Can it be
automated?
Future Skill
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.
Future Skill
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.
Future Skill
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 Skill
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.

Process Metrics · Quality Automation

Measuring the
Quality Cycle

Data-driven quality improvement — the metrics that prove the process works, and the skills that will collect them automatically.

01

📋 Quality Analysis Compliance

Percentage of tickets that enter development with a test plan defined during Technical & Quality Analysis. Measures whether the team is actually using the new status before writing code.

  • Target: 100% of tickets must have a test plan before development starts.
  • Source: Jira status transitions — tickets moving from Quality Analysis to In Progress.
  • Future Skill: QA Compliance Tracker — auto-monitors Jira transitions and flags tickets that skip Quality Analysis or lack a test plan.
Future Skill
02

📦 Automation Subtask Rate

Percentage of tickets that have the mandatory automation subtask created before moving to testing. Tracks adoption of the new process step introduced in the Quality-First Cycle.

  • Target: 100% of tickets must have the automation subtask created.
  • Source: Jira subtask existence — checking for the automation subtask on every ticket.
  • Future Skill: Subtask Compliance Monitor — scans in-progress tickets and alerts when the automation subtask is missing.
Future Skill
03

🐛 Bug Escape Rate

Number of production bugs that the quality process should have caught — bugs found in areas that had test plans defined or existing automation coverage.

  • Target: fewer than 5 escaped bugs per quarter.
  • Source: production incident tickets cross-referenced with test plans and automation coverage.
  • Future Skill: Bug Escape Radar — cross-references production bugs with test plans and automation coverage to identify process gaps.
Future Skill

From intuition to evidence

Without metrics, the Quality-First Development Cycle is a set of good intentions. With metrics, it becomes a measurable, accountable process that the organization can track, improve, and trust.

Each metric maps directly to a step in the cycle. When the future skills are built, they will collect these metrics automatically — turning manual audits into real-time dashboards and proactive alerts.

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