Swiftが公開され今年で10年目となったように、iOSアプリ開発も長い年月をかけて運営し開発を続けていく現代では、プロダクトにおけるテストコードの量も自然と大量になっているはずです。そのうえ大人数がプロジェクトに関わっているのなら、機能追加や不具合の修正に加えてテストコードも日々大量に増え続けていることでしょう。
そして現代のプロジェクトでは、新たに開発した機能や不具合の修正は既存の全てのテストコードが正常に成功しないとマージできないという開発のフローを採用しているはずです。そのような開発フローにおいて、意図せず稀に失敗するようなテストコードが紛れ込んでいると、自分が関与していない不安定なテストが自分の開発リズムに割り込んでくる厄介な状況が発生します。
さらには大量のテストコードが実行時間をかけた末に失敗してしまうと、各メンバーがスムーズに作業を進められず、開発時間が不要に伸び開発体験が低下してしまうのも問題です。
このトークでは、結果が不安定となるテストコードの原因を分類し、具体的な例を交えながら改善点について解説します。
また、Xcode 16で正式統合されそうなswift-testing
を活用することで、ある種の不安定なテストを解決できるのではないかという事についても話しができればと思います。