Overview
Skills
Job Details
Key Responsibilities:
- Design, implement, and maintain iOS automation using XCUITest/XCTest; build reusable test utilities and page-object/style abstractions in Swift.
- Establish test strategy, coverage goals, and quality metrics; create and maintain test plans (.xctestplan) and risk assessments.
- Integrate tests into CI/CD (e.g., Azure Devops, GitHub Actions) using xcodebuild, fastlane, and parallel simulator execution; manage test result bundles and reporting.
- Reduce flakiness via robust synchronization (expectations, predicates), stable Accessibility Identifiers, controlled app state (launch arguments/env vars), and reliable network stubbing.
- Implement and maintain integration, and end-to-end tests across the stack (ViewModels/Presenters, networking, persistence); promote testability through architecture and DI.
- Triage failures, debug with Xcode, Console.app, device logs/crash reports, Instruments (Leaks, Allocations, Time Profiler), and simctl.
- Participate in code reviews, advocate for testability (protocols, dependency injection, modularization), and contribute to release quality gates.
- Document frameworks, patterns, and runbooks; mentor engineers on testing best practices.
- Communicate clearly with cross-functional teams and be a proactive, dependable team player.
Qualifications:
- 3 6+ years in iOS test automation/SDET roles with strong Swift and iOS SDK fundamentals.
- Hands-on expertise with XCTest and XCUITest; experience testing SwiftUI and UIKit apps.
- Proficient in building test frameworks/utilities, using Xcode test plans, schemes, and build configurations.
- Driving conversation, keeping the team accountable to DOR and DOD.
- Experience with device farms (Sauce Labs, Perfecto AWS Device Farm, BrowserStack) and real-device testing at scale.
- Experience with CI/CD for iOS (xcodebuild, fastlane, code signing, parallel testing on simulators/devices).
- API contract testing, MockWebServer usage, Pact for Mobile.
- Strong understanding of iOS app architecture (MVC/MVVM/MVI), async/await, Combine, and dependency injection for testability.
- Strong debugging skills with Instruments, logs, and crash analysis; proven ability to deflake tests systematically.
- Excellent written and verbal communication; proven collaboration and team-first approach.