Swift TestingはWWDC2024でアナウンスされたテストフレームワークです。マクロを活用したAPIで、記述量を抑えつつ、parameterized testsやテストの並行実行もサポートされるものです。XCTestからのマイグレーションドキュメントも公式に準備されており、プロジェクトをSwift 6にさえできていれば、デメリット小さく良いテスト体験を享受できます。
一方で、課題になるのは「既存のテストをどう書き換えていくか」ではないでしょうか?プロジェクトによってはXCTestで記載されたもののみでなく、Nimbleのようなライブラリを用いて記載されたテストもあるでしょう。
これらの既存のテスト資産を効率よく、そしてより効果的なテストに変換することを皆さんは意識できていますか?マイグレーションドキュメントはXCTestとの対応表に過ぎず、「どう書き換えるか?」については焦点を当てていません。また、数個の単体テストを書き換えても、テスト実行時間の削減には大きな影響はなく、書き換える事自体のモチベーションが下がり、Swift Testingに置き換える事自体が後回しになっていないでしょうか?
そんな後回しになってしまう課題について、このトークではMCP ServerとこれをコントロールするAI Agentを導入することで、無駄な後戻りを小さくおおよそ自動でテストのマイグレーションを実行したケーススタディを紹介します。既存のswift-testing-revolutionaryやSwiftFormatのpreferSwiftTestingといったツールをそのまま使うのではなく、MCP Serverとして提供することのメリットについても触れ、Swift Testingに移行するモチベーションを上げる具体的なアクションの一つを皆さんと共有できればと思います。