Xcode 27.3 BetaのSwift Testing UIテストをどう導入する?2026
📋 目次
テスト環境で新しいUIテストの書き方を試したい一方、既存のCIを止めたくない。 Xcode 27.3 BetaではSwift TestingとXCUIAutomationによるUIテストを試せますが、まず独立したテスト目標で小さく検証し、既存のXCTestと正式なCI経路は維持してください。
対象は、Swift TestingでUIテストを作るiOS・macOS開発者、テスト担当者、遠隔Mac CIを管理するエンジニアです。Betaの機能確認だけでなく、結果の見方や試験導入を広げる判断まで必要な場合に使えます。
最終更新:2026年11月6日。 Appleの開発者向け公開情報では、Xcode 27.3 Betaは2026年11月3日公開とされています。機能とBetaの位置付けは、Appleのリリース一覧とXcode 27.3 Betaのリリースノートを基に確認してください。更新時にはBetaから正式版への変更や、システム要件の改訂も再確認します。
導入前:Betaの確認と環境の確認を分ける
Appleが案内しているのは、Swift TestingとXCUIAutomationを使ったUIテストのサポートです。これはBetaで利用できる機能の情報であり、既存のすべてのテストやCIがそのまま対応するという保証ではありません。正式版としての提供状況は、Appleの開発者向けリリース一覧で、機能の説明はXcode 27.3 Betaのリリースノートで確認してください。
次に、使うMacのmacOSとXcodeが対象の要件を満たすか照合します。Beta固有の条件を正式版の要件と混同せず、AppleのXcodeシステム要件で実行環境を確認してください。Mac上のXcodeからシミュレーターや実機を使う場合も、対象プロジェクトで利用できる実行先を確認しておきます。
環境の準備と同時に、現在のテスト目標、対象プラットフォーム、テスト実行方法、既存テストの結果を記録します。後で比較できる基準がないと、新しいテストが動かないのか、もともとのCI設定が異なるのかを切り分けにくくなります。
試験範囲:既存テストの基準を先に残す
最初に対象にするのは、ユーザー操作と期待結果を説明しやすい小さな経路です。たとえば画面遷移や入力結果を確認する一連の操作を選び、テスト全体の書き換えやリリース判定の変更は試験対象に含めません。
Swift TestingとXCTestは、ここでは「新しいテストの書き方」と「既存のテスト資産」として分けて扱います。Xcodeのテストに関する公式ガイドでプロジェクトのテスト構成を確認し、既存のXCTestを残したまま独立したテスト目標で試せるかを検討してください。目標の追加方法はAppleの新しいプロジェクト目標に関する説明を参照し、表示や設定項目は実際に使うXcodeのバージョンで確認します。
判断を急がないための比較は次のとおりです。記号は実測値ではなく、導入判断の目安です。
| 選択肢 | 試験範囲 | 判断目安 | リリースへの影響 |
|---|---|---|---|
| 既存のXCTestを維持 | 現在のUIテスト | ◎ 既存運用を保ちやすい | 変更を抑えたい場合に適します |
| Swift Testingを別目標で試す | 限定したユーザー経路 | ◎ Beta機能の確認に向きます | 既存の判定経路を残せます |
| 既存テストをまとめて移行 | UIテスト全体 | △ Beta段階では慎重に判断 | 未検証のテストまで影響するおそれがあります |
既存のテスト目標や依存関係によって、分離の仕方は異なります。表の評価を互換性の保証と見なさず、プロジェクト固有の構成で確かめてください。
第一歩:独立したSwift Testing UIテストを作る
試験対象を決めたら、新しいテストを既存のリリース用テスト経路から分けます。テストの構成と利用可能な記述方法は、Xcodeのテストガイドと対象バージョンのリリースノートに照らして確認してください。BetaのAPI名や構文を、以前のXcodeでの経験から推測して書き足さないことが重要です。
画面の操作や要素の確認には、AppleのXCUIAutomation公式ドキュメントを参照します。Swift Testingがテストの構成を担い、XCUIAutomationがUI操作や確認に関わるものとして整理し、各APIが対象バージョンで有効かを項目ごとに照合してください。
注意:AppleがBetaで機能を案内していることと、チームの既存プロジェクトでそのまま動くことは別です。コンパイル可否だけで判断せず、テストの起動、UI操作、アサーションまで個別に確認してください。
実行確認:ビルド・起動・アサーションを別々に記録する
テスト目標を作成したら、対象のMacで実行先を選び、試験対象のユーザー経路を実行します。シミュレーターと実機の扱いはプロジェクトや環境により異なるため、Appleのシミュレーター・実機での実行手順で利用条件を確かめてください。
記録は、次の段階を混ぜずに残します。
- ビルド:選択したテスト目標とアプリがビルドできたか。
- テスト起動:意図したテストが選ばれ、実際に実行されたか。
- UI確認:画面操作とアサーションが完了したか。失敗時は、どのテストでどの確認が止まったか。
一度の成功は、その実行環境で試験が通ったことを示すだけです。別の実行先やチーム全体のテストとの互換性まで確認できた、と扱わないでください。
遠隔Mac CI:ジョブの成功表示より証跡を確認する
ローカルの試験で実行手順を確認した後、隔離した遠隔Mac CIのジョブに追加します。最初は既存のリリース用ジョブの判定条件を変えず、ジョブが選んだXcodeのバージョン、実行したテスト目標、結果の保存先を記録します。
確認すべきなのは、CIが成功表示を返したことだけではありません。テストが実行されたか、失敗したテストを特定できるか、ログやテスト結果を後から参照できるかを確認してください。テストの構成はXcodeのテストに関する公式ガイドに照らし、保存方法やジョブの終了判定は利用するCIの設定に合わせます。Xcode Cloudを使う場合は、ワークフローのアクションと結果に関するAppleの説明も確認できますが、そこにある説明を別のCI環境の動作保証として読み替えないでください。
この確認で、フレームワークが機能することと、チームのパイプラインに適合することを分けて評価できます。実行時間や安定率について、実環境で記録していない数値を合否の根拠にしないでください。
よくある判断:接続・移行・実行先
既存のXCTest UIテストも同時に走らせる必要がありますか?
一律に統合するのではなく、既存テストを維持したまま試験経路を分けられるかをプロジェクトで確認します。別のテスト目標に分けられる場合は、それぞれの結果を識別して保存し、失敗時にどちらのテストか追える状態にしてください。設定方法はXcodeのテストガイドと対象バージョンの説明に合わせます。
遠隔Macでも同じように実行できますか?
遠隔MacのXcodeとmacOSが対象バージョンの要件を満たし、選択した実行先を利用できるかを確認してから試します。SSHなどでジョブを起動できることだけでは、UIテストの実行や結果保存まで確認したことになりません。接続方式、テスト実行、結果の回収を分けて検証してください。実行環境の仮想化や実機利用の条件を整理するには、Macのベアメタル環境と仮想化の違いも参考になります。
試験後:拡大・二本立て・保留を選ぶ
試験結果を見たら、次の条件で進め方を選びます。
- 同じ手順で再実行でき、失敗箇所と結果を追えるなら、対象を限定したまま試験範囲を広げます。
- テストは動くものの、CIでの結果確認やチームのツールチェーンに未確認事項があるなら、既存XCTestと新しいテストを二本立てにします。
- Betaの要件に合わない、テストが起動しない、失敗を診断できない場合は、新しい経路をリリース判定から外し、既存のXCTestを維持します。
手元のLinux環境だけではXcodeを使うテスト経路を検証できず、開発用Macを共用するとCIの再現性やテスト環境の確保が難しい場合があります。一方、常時使うMacをすでに管理できているチームや、物理機器への接続が必要な運用では、既存のMacを使うほうが適切な場合もあります。試験だけのためにMacを購入・維持する負担が大きい場合は、Mac miniの料金と構成を確認するガイドなどで購入案も比較し、必要なXcodeと実行先の条件に合うかを確かめてください。
購入や自前運用では初期費用に加えて、保守やCI専用機の管理が必要になります。短期間の試験用にMacを用意したいなら、必要なXcodeとテスト条件を満たすか確認したうえで、MacDateのリモートMacを隔離した検証環境として検討できます。既存のリリース用CIは保ったまま、実際のMacでテストの起動と証跡の保存を確かめてから、導入範囲を決めてください。