QA Automation Engineer · API · Mobile · AI-assisted QA

I build test automation that makes releases faster to verify.

Hands-on notes on API and mobile test automation with Kotlin, Spring Boot, and Python—plus practical uses of AI in test design, debugging, CI, and regression.

Ruslan IusupovBackend · API · Mobile Automation
01

API automation with Kotlin, Spring Boot, and Python.

02

iOS and Android testing—from traffic analysis to UI regression.

03

AI-assisted test design, failure analysis, and CI workflows.

February 2025 — August 2026

The archive

15 field notes

API, mobile, AI-assisted testing, and test architecture.

Claude-assisted iOS UI testing

Using Claude-Assisted iOS Test Scenarios for Faster Regression Feedback

What worked in practice: Claude-assisted scenario design, synthetic state preparation, and evidence review for stable regression flows—while end-to-end checks stayed separate.

Claude-assisted iOS UI testing

Building a Claude-Assisted iOS UI Testing Workflow

How I combined Claude, plain-language scenarios, synthetic fixtures, and CI quality gates into a reusable iOS testing workflow.

AI-assisted QA workflow

Running an AI-Assisted API Testing Workflow in CI

How I connected AI-supported test design and triage to selective GitLab runs, Allure traceability, scheduled coverage, and human release decisions.

AI-assisted QA workflow

Building an AI-Assisted API Automation Core from QA Knowledge

How I used a curated QA knowledge base to design a modular Kotlin/Spring Boot test platform, with AI extracting reusable contracts and humans owning architecture, security, and business assertions.

Choosing an Android UI Automation Stack: Espresso, UI Automator, Kaspresso, Appium, or Maestro

A risk-based decision guide for Espresso, Compose testing, UI Automator, Kaspresso, Appium, and Maestro across native, system, and cross-platform flows.

Why I Use Proxyman as My Default Proxy for Mobile QA

How Proxyman streamlines iOS traffic inspection, response stubbing, and network-failure testing—and when Charles remains the better team choice.

Building Maintainable iOS UI Automation with XCTest and XCUIAutomation

How to organize XCTest and XCUIAutomation around stable accessibility contracts, screen objects, deterministic state, and clear visual-testing boundaries.

OpenAPI and Pact Answer Different Contract Questions

Schema validation and consumer-driven contracts overlap, but neither is a substitute for the other—or for a small number of real integration tests.

Stateful WireMock Tests: Verify the Conversation, Not Only the Response

A practical way to model changing dependency behavior, inspect outgoing requests, and keep service-level tests deterministic.

Async API Tests Need Bounded Concurrency, Not Just gather()

Concurrent checks can expose coordination defects and reduce wall time, but only when client reuse, pool limits, timeouts, and failure handling are explicit.

Rollback Isolation for Database Tests With SQLAlchemy

Fast database tests are useful only when commits, identity maps, and shared state cannot make one scenario influence the next.

Strict Where It Matters: API Contract Checks With Pydantic

Pydantic can turn response validation into readable Python, but only when coercion, extra fields, and business rules are deliberate choices.

Build an API Test Matrix From HTTP Semantics, Not Endpoint Counts

An API suite becomes more valuable when it verifies protocol meaning, representation contracts, and failure behavior—not just that every route returns something.

Parametrization Without the Cartesian-Product Trap

A strong parameter matrix exposes risk and boundaries. A weak one creates dozens of nearly identical failures with no explanation of what each row protects.

Pytest Fixtures That Prevent State Leakage, Not Just Boilerplate

A fixture is most valuable when it makes ownership, lifetime, and cleanup explicit—and proves that every test starts from a state it can trust.