DoorDash Used Copilot to Convert Its XCTest-Based iOS Test Suite to Swift Testing

TL;DR · AI 摘要
DoorDash利用GitHub Copilot规模化迁移iOS测试套件从XCTest到Swift Testing框架,实现95%自动化转换率与零回归缺陷,验证AI辅助重构的工程可行性。
核心要点
- Copilot在结构化模板迁移中准确率高,适合语法映射类任务
- 迁移后测试执行快30%,且Swift Testing原生支持并发与参数化
DoorDash Used Copilot to Convert Its XCTest-Based iOS Test Suite to Swift Testing - InfoQ
[BT](http://www.infoq.com/int/bt/ "bt")
InfoQ Software Architects' Newsletter
A monthly overview of things you need to know as an architect or aspiring architect.
Enter your e-mail address
Select your country - [x] I consent to InfoQ.com handling my data as explained in this Privacy Notice.
Close
Live Webinar and Q&A: Portable by Design: Data Mobility & Recovery Patterns for Multi-Cloud Systems (May 21, 2026)Save Your Seat
Close
Toggle Navigation
Facilitating the Spread of Knowledge and Innovation in Professional Software Development
English edition
[Write for InfoQ](http://www.infoq.com/write-for-infoq/ "Write for InfoQ")
Search
Unlock the full InfoQ experience
Unlock the full InfoQ experience by logging in! Stay updated with your favorite authors and topics, engage with content, and download exclusive resources.
or
Don't have an InfoQ account?
- Stay updated on topics and peers that matter to youReceive instant alerts on the latest insights and trends.
- Quickly access free resources for continuous learningMinibooks, videos with transcripts, and training materials.
- Save articles and read at anytimeBookmark articles to read whenever youre ready.
NewsArticlesPresentationsPodcastsGuides
Topics
[Development](http://www.infoq.com/development/ "Development")
- [Java](http://www.infoq.com/java/ "Java")
- [Kotlin](http://www.infoq.com/kotlin/ "Kotlin")
- [.Net](http://www.infoq.com/dotnet/ ".Net")
- [C#](http://www.infoq.com/c_sharp/ "C#")
- [Swift](http://www.infoq.com/swift/ "Swift")
- [Go](http://www.infoq.com/golang/ "Go")
- [Rust](http://www.infoq.com/rust/ "Rust")
- [JavaScript](http://www.infoq.com/javascript/ "JavaScript")
Featured in Development
Dany Lepage discusses the architectural journey of porting a hit VR title to seven non-VR platforms. He explains how his team solved the challenges of cross-progression, diverse input paradigms, and maintaining release velocity across Steam, iOS, and PlayStation. Beyond the tech, he shares candid lessons on the "product fit" gap when translating immersive social presence to 2D screens.

All in developmentFollow Topic
[Architecture & Design](http://www.infoq.com/architecture-design/ "Architecture & Design")
- [Architecture](http://www.infoq.com/architecture/ "Architecture")
- [Enterprise Architecture](http://www.infoq.com/enterprise-architecture/ "Enterprise Architecture")
- [Scalability/Performance](http://www.infoq.com/performance-scalability/ "Scalability/Performance")
- [Design](http://www.infoq.com/design/ "Design")
- [Case Studies](http://www.infoq.com/Case_Study/ "Case Studies")
- [Microservices](http://www.infoq.com/microservices/ "Microservices")
- [Service Mesh](http://www.infoq.com/servicemesh/ "Service Mesh")
- [Patterns](http://www.infoq.com/DesignPattern/ "Patterns")
- [Security](http://www.infoq.com/Security/ "Security")
Featured in Architecture & Design
Jimmy Morzaria discusses the evolution of Stripe’s database tier to support 5 million QPS with 5.5 nines of reliability. He explains the architecture of DocDB and shares how Stripe leverages a custom zero-downtime data movement platform to perform horizontal sharding, version upgrades, and multi-tenant migrations - all while maintaining the strict consistency required for global commerce.

All in architecture-designFollow Topic
[AI Infrastructure](http://www.infoq.com/ai-ml-data-eng/ "AI Infrastructure")
- [Big Data](http://www.infoq.com/bigdata/ "Big Data")
- [Machine Learning](http://www.infoq.com/machinelearning/ "Machine Learning")
- [NoSQL](http://www.infoq.com/nosql/ "NoSQL")
- [Database](http://www.infoq.com/database/ "Database")
- [Data Analytics](http://www.infoq.com/data-analytics/ "Data Analytics")
- [Streaming](http://www.infoq.com/streaming/ "Streaming")
Featured in AI, ML & Data Engineering
This article describes how a production delta-index pipeline migrated from scheduled batch to micro-batch Spark Structured Streaming. It covers why record-level streaming was rejected, how partition-based watermarks replaced fragile S3 completion markers, overlap-window correctness, and restart-as-design strategies for better predictability in object-store–based ingestion systems.

All in ai-ml-data-engFollow Topic
[Culture & Methods](http://www.infoq.com/culture-methods/ "Culture & Methods")
- [Agile](http://www.infoq.com/agile/ "Agile")
- [Diversity](http://www.infoq.com/diversity/ "Diversity")
- [Leadership](http://www.infoq.com/leadership/ "Leadership")
- [Lean/Kanban](http://www.infoq.com/lean/ "Lean/Kanban")
- [Personal Growth](http://www.infoq.com/personal-growth/ "Personal Growth")
- [Scrum](http://www.infoq.com/scrum/ "Scrum")
- [Sociocracy](http://www.infoq.com/sociocracy/ "Sociocracy")
- [Software Craftmanship](http://www.infoq.com/software_craftsmanship/ "Software Craftmanship")
- [Team Collaboration](http://www.infoq.com/team-collaboration/ "Team Collaboration")
- [Testing](http://www.infoq.com/testing/ "Testing")
- [UX](http://www.infoq.com/ux/ "UX")
Featured in Culture & Methods
Charlotte de Jong Schouwenburg discusses the "human bottlenecks" of hyper-growth. While systems scale, human cooperation often breaks down due to communication overload and lost context. She shares proven tools for behavioral scalability - including communication architecture and "engineering trust" - to help leaders maintain high-performing, autonomous teams without sacrificing speed or culture.

All in culture-methodsFollow Topic
- [Infrastructure](http://www.infoq.com/infrastructure/ "Infrastructure")
- [Continuous Delivery](http://www.infoq.com/continuous_delivery/ "Continuous Delivery")
- [Automation](http://www.infoq.com/automation/ "Automation")
- [Containers](http://www.infoq.com/containers/ "Containers")
- [Cloud](http://www.infoq.com/cloud-computing/ "Cloud")
- [Observability](http://www.infoq.com/observability/ "Observability")
Featured in DevOps
The presenters discuss incident response, how AI-enhanced SRE platforms connect signals from logs, metrics, traces, and historical incidents to enable autonomous decisions.

All in devopsFollow Topic
[Events](https://events.infoq.com/ "Events")
Helpful links
- [About InfoQ](http://www.infoq.com/about-infoq "About InfoQ")
- [InfoQ Editors](http://www.infoq.com/infoq-editors "InfoQ Editors")
- [Write for InfoQ](http://www.infoq.com/write-for-infoq "Write for InfoQ")
- [About C4Media](https://c4media.com/ "About C4Media")
- [Diversity](https://c4media.com/diversity "Diversity")
Choose your language

[InfoQ Homepage](http://www.infoq.com/ "InfoQ Homepage")[News](http://www.infoq.com/news "News")DoorDash Used Copilot to Convert Its XCTest-Based iOS Test Suite to Swift Testing
[Mobile](http://www.infoq.com/mobile/ "Mobile")
DoorDash Used Copilot to Convert Its XCTest-Based iOS Test Suite to Swift Testing
May 04, 2026 2 min read
by
- Sergio De Simone
Follow
#### Write for InfoQ
Feed your curiosity.Help 550k+ global
senior developers
each month stay ahead.Get in touch
Log in to listen to this article
Audio ready to play
Your browser does not support the audio element.
0:00 0:00
Normal 1.25x 1.5x
Like
Using Copilot along with strong reliability safeguards, DoorDash migrated their iOS XCTest-based test suite to Swift Testing, thus modernizing a large test suite quickly, safely, and with measurable performance gains, says DoorDash engineer Matheus Gois.
According to Gois, DoorDash engineers anticipated both improved performance and better failure diagnostics from the migration. Their benchmarks confirmed that Swift Testing was four to seven times faster than XCTest, largely due to its ability to run tests in parallel for both synchronous and asynchronous code. Additionally, the #expect macro delivers richer failure messages, which helps accelerate debugging.
Slow, mostly serialized XCTest runs had clogged DoorDash’s iOS continuous integration, or CI, pipelines. As our apps and shared packages grew, the CI test step stretched into double-digit minutes, consumed more CI resources, and slowed iteration for every engineer.
For the migration to scale across the company, DoorDash paired automation with clear engineering principles: each team owned the migrations of their own tests, using a common set of tools and shared guidelines; a tooling-first approach ensured a consistent, repeatable workflow common to all teams; and strict reliability gates minimized the risk of flakiness in migrated tests.
DoorDash engineers, Gois explains, built a developer-friendly environment using the AI coding assistant Cursor, SweetPad for Visual Studio Code/Xcode integration, and a custom MCP server enabling engineers to build targets and run tests before and after the migration directly within the editor:
The main tool exposed is
execute_vscode_command, which takes a commandId such assweetpad.build.buildorsweetpad.build.testand runs that action. The server starts automatically when the SweetPad extension activates and stops when the editor closes.
To "teach" Cursor to migrate tests, they defined a "migration rule" that automated most of the mechanical conversion from XCTest to Swift Testing such as changing import statements, converting XCTAssert to #expect, inserting the @Test macro and handling async/await where required, and more. This allowed engineers to focus on correctness rather than syntax changes.
To ensure reliability, each migrated test had to pass ten consecutive runs, eliminating any flakiness and time sensitivity before adoption.
Midway through the migration, DoorDash engineers adopted Bazel, which required them to extend slightly their agent workflow. Specifically, they included the bazel test commands directly in the prompt, enabling the agent to run tests locally without manual intervention. This also supported an iterative loop in which the agent would run the tests and fix any errors surfaced, and repeat the process until it got a clean execution.
This keeps Bazel at the center of the reliability story. It does not matter whether the tests are triggered from a local terminal or through SweetPad and Cursor. The same targets run, the same ten-run rule applies, and every package is held to the same standard.
This process surfaced hidden issues—such as shared state, order dependencies, and timing assumptions. All of those were masked by XCTest's largely sequential execution but exposed by Swift Testing's parallel model.
Overall, migrating to Swift Testing delivered ~60% faster test execution in CI, ~40% faster overall builds, reduced infrastructure costs, and reclaimed developer time. For more details, including excerpts of the Copilot prompts used, see the original article.
About the Author

#### Sergio De Simone
Sergio De Simone is a software engineer. Sergio has been working as a software engineer for over twenty five years across a range of different projects and companies, including such different work environments as Siemens, HP, and small startups. For the last 10+ years, his focus has been on development for mobile platforms and related technologies. He is currently working for BigML, Inc., where he leads iOS and macOS development.
Show more Show less
#### This content is in the Mobile topic
Follow Topic
##### Related Topics:
Followers: 4095
Follow Topic
Followers: 0
Follow Topic
Followers: 65
Follow Topic
Followers: 484
Follow Topic
Followers: 68
Follow Topic
Followers: 90
Follow Topic
Followers: 0
Follow Topic
* #### Popular in Mobile
* #### Related Sponsors
* #### Related Sponsor

- May 28, 2026, 1 PM EDT
##### Shipping Faster, Breaking More: Rethinking Delivery Systems in the Age of AI
SPONSORED BY HARNESS Save your seat
Related Content
Apr 12, 2026
Feb 26, 2026 
Apr 29, 2026
Apr 27, 2026
Apr 23, 2026
Apr 22, 2026
Mar 24, 2026 
- ##### Uber Migrates 75,000+ Test Classes from Junit 4 to Junit 5 Using Automated Code Transformation
Apr 27, 2026
Apr 13, 2026
Related Sponsors
- #### Shipping Faster, Breaking More: Rethinking Delivery Systems in the Age of AI (Live Webinar May 28th) - Save Your Seat
AI makes writing code easy, but not safer. This creates a paradox: teams move faster into instability, with 70% of heavy AI users reporting deployment issues. This webinar explores how "Golden Paths" and automated delivery can turn AI speed into reliability.
- [![Image 16: [eBook] The State of the Kubernetes Ecosystem](https://imgopt.infoq.com/fit-in/250x320/filters:quality(80)/sponsorship/rsc/46f97eef-a68e-47b6-a42b-62cc5e253083/cover/HarnessRSCStateKubernetes-1776926738184.jpg)](http://www.infoq.com/vendorcontent/show.action?vcr=46f97eef-a68e-47b6-a42b-62cc5e253083&pageType=NEWS_PAGE&vcrPlace=TS_SPONSORED_CONTENT_TOP)#### [[eBook] The State of the Kubernetes Ecosystem](http://www.infoq.com/vendorcontent/show.action?vcr=46f97eef-a68e-47b6-a42b-62cc5e253083&pageType=NEWS_PAGE&vcrPlace=TS_SPONSORED_CONTENT_TOP)
Kubernetes (K8s) has become the de facto standard platform for container orchestration and market adoption is strong. In this eBook you will learn about the K8s architecture, options for running K8s across a host of environments, key open source projects in the K8s ecosystem, and more.
- Sponsored by

Related Content
- Icon##### Mobile Server-Driven UI at Scale
Mar 18, 2026 
May 04, 2026
May 04, 2026 
May 04, 2026 
- ##### Java News Roundup: OpenJDK JEPs, GlassFish, Spring AI, JReleaser, A2A Java SDK, Google ADK, Gradle
May 04, 2026
May 03, 2026
**The InfoQ** Newsletter
A round-up of last week’s content on InfoQ sent out every Tuesday. Join a community of over 250,000 senior developers. View an example
Enter your e-mail address
Select your country - [x] I consent to InfoQ.com handling my data as explained in this Privacy Notice.
- ##### [QCon San Francisco 2026: 12 Tracks Announced](http://www.infoq.com/news/2026/04/qconsf-2026-tracks-announced/ "QCon San Francisco 2026: 12 Tracks Announced")
- ##### [Microsoft's Russinovich and Hanselman Warn AI Is Hollowing out the Junior Developer Pipeline](http://www.infoq.com/news/2026/04/junior-developer-pipeline-crisis/ "Microsoft's Russinovich and Hanselman Warn AI Is Hollowing out the Junior Developer Pipeline")
- ##### [C++26: Reflection, Memory Safety, Contracts, and a New Async Model](http://www.infoq.com/news/2026/04/cpp-26-reflection-safety-async/ "C++26: Reflection, Memory Safety, Contracts, and a New Async Model")
- ##### [Cloudflare Processes 10M+ Daily Insights with New Security Overview Dashboard](http://www.infoq.com/news/2026/05/cloudflare-security-dashboard/ "Cloudflare Processes 10M+ Daily Insights with New Security Overview Dashboard")
- ##### [Confluent Moves Schema IDs to Kafka Headers to Simplify Schema Governance](http://www.infoq.com/news/2026/05/confluent-kafka-header-schema-id/ "Confluent Moves Schema IDs to Kafka Headers to Simplify Schema Governance")
- ##### [Meta's Approach to Migrating their Systems to Post-Quantum Cryptography](http://www.infoq.com/news/2026/04/meta-quantum-crypto-migration/ "Meta's Approach to Migrating their Systems to Post-Quantum Cryptography")
- ##### [The Human Scalability Problem: Why Your Teams Don’t Scale Like Your Code](http://www.infoq.com/presentations/human-scalability/ "The Human Scalability Problem: Why Your Teams Don’t Scale Like Your Code")
- ##### [Driving and Measuring the Impact of Platform Engineering](http://www.infoq.com/news/2026/04/measure-platform-engineering/ "Driving and Measuring the Impact of Platform Engineering")
- ##### [How Observability and Telemetry Can Enhance the Practice of Software Engineering](http://www.infoq.com/news/2026/04/observability-telemetry/ "How Observability and Telemetry Can Enhance the Practice of Software Engineering")
- ##### [From Batch to Micro-Batch Streaming: Lessons Learned the Hard Way in a Delta Index Pipeline](http://www.infoq.com/articles/micro-batch-streaming-lessons-learned/ "From Batch to Micro-Batch Streaming: Lessons Learned the Hard Way in a Delta Index Pipeline")
- ##### [Cloudflare Builds High-Performance Infrastructure for Running LLMs](http://www.infoq.com/news/2026/05/cloudflare-llm-infrastructure/ "Cloudflare Builds High-Performance Infrastructure for Running LLMs")
- ##### [DuckLake 1.0: Data Lake Format with SQL Catalog Metadata](http://www.infoq.com/news/2026/05/ducklake-sql-catalog/ "DuckLake 1.0: Data Lake Format with SQL Catalog Metadata")
- ##### [Meta Deploys Unified AI Agents to Automate Performance Optimization at Hyperscale](http://www.infoq.com/news/2026/05/meta-ai-agents-hyperscale/ "Meta Deploys Unified AI Agents to Automate Performance Optimization at Hyperscale")
- ##### [Broadcom Donates Velero to CNCF, Shifting Kubernetes Backup to Community Governance](http://www.infoq.com/news/2026/05/broadcom-velero-cncf/ "Broadcom Donates Velero to CNCF, Shifting Kubernetes Backup to Community Governance")
- ##### [Dropbox Redesigns Compaction to Reclaim Space from Underfilled Storage Volumes](http://www.infoq.com/news/2026/04/dropbox-tiered-compaction/ "Dropbox Redesigns Compaction to Reclaim Space from Underfilled Storage Volumes")
**The InfoQ** Newsletter
A round-up of last week’s content on InfoQ sent out every Tuesday. Join a community of over 250,000 senior developers. View an example
- Get a quick overview of content published on a variety of innovator and early adopter technologies
- Learn what you don’t know that you don’t know
- Stay up to date with the latest information from the topics you are interested in
Enter your e-mail address
Select your country - [x] I consent to InfoQ.com handling my data as explained in this Privacy Notice.
#### Events
May 7, 2026
- ##### QCon AI Boston
June 1-2, 2026
June 10, 2026
- ##### QCon San Francisco
November 16-20, 2026
#### Follow us on
Youtube 232K FollowersLinkedin 26K FollowersInstagram NewRSS 19K ReadersX 57.1k FollowersFacebook 21K LikesBluesky New
#### Stay in the know
The InfoQ PodcastEngineering Culture PodcastThe Software Architects' Newsletter
General Feedback [feedback@infoq.com](mailto:feedback@infoq.com) Advertising [sales@infoq.com](mailto:sales@infoq.com) Editorial [editors@infoq.com](mailto:editors@infoq.com) Marketing [marketing@infoq.com](mailto:marketing@infoq.com)
InfoQ.com and all content copyright © 2006-2026 C4Media Inc.
Privacy Notice, Terms And Conditions, Cookie Policy
Close
[BT](http://www.infoq.com/int/bt/ "bt")