テスト戦略
テスト戦略の基礎原理と実務での判断基準を体系的に解説します。
QUALITY · 18 ARTICLES
テストとコード品質の基礎原理と実務での判断基準を体系的に解説します。
トピックマップ
テスト戦略の基礎原理と実務での判断基準を体系的に解説します。
TDDとテストダブルの基礎原理と実務での判断基準を体系的に解説します。
コードの臭いの基礎原理と実務での判断基準を体系的に解説します。
リファクタリングの基礎原理と実務での判断基準を体系的に解説します。
はじめに
基礎から次のステップへ進むための記事です。
iOS開発をしていると、「テストコードを書かないと…」と思いながら、つい先延ばしにしてしまいますよね。いざXCTestを開いても、何から始めればよいのか分かりにくいものです。
記事を読むスパゲッティコードが指すのは長さや汚さではなく、制御フローです。1968年のダイクストラによるgoto反対の手紙を起点に、gotoが消えた後もスパゲッティが残った理由と、循環的複雑度による測定方法をまとめます。
記事を読むすべての記事
ショットガン手術は、1つの変更が複数のファイルに分散するスメルです。一方、発散的変更はその鏡像で、1つのファイルが複数の理由で変更されます。相反する2つのスメルをコミット履歴で実測し、見分ける方法を整理します。
記事を読むGod Objectは周囲の責務とデータを吸収し続けて肥大化するクラスで、チームで最も変更と競合が多いファイルになります。肥大化の兆候、分解の順序、分割に失敗する2つの方法を整理します。
記事を読む関数はすべて5行で責務も1つずつなのに、ボタンを押すと何が起きるか誰も答えられないコードがラビオリコードです。過度な分割の理由とジャンプ回数に表れるコスト、流れを取り戻す方法をまとめました。
記事を読む層をきれいに分けているのに、フィールドを1つ追加するだけで7ファイルを修正しなければならないコードがラザニアコードです。層が増える理由とコストが発生する箇所、層が必要な場合と取り除き方をまとめます。
記事を読むテストプランは、実行するテストと条件を.xctestplanファイルで管理します。スキーム設定だけでは足りない理由、対象選択、構成分割、カバレッジ・実行順・反復設定、xcodebuild連携までまとめます。
記事を読むコードカバレッジ100%は、バグがないコードを意味しません。実務で一般的な70~80%台の目安と、数字より先に確認すべき未検証の分岐を見極める方法をまとめました。
記事を読むレガシーコードでは、リファクタリングより先に現在の動作を固定する特性化テストが必要です。依存性のためテストできないコードをイームズで切り出す手順まで、実践的な流れとしてまとめました。
記事を読むSwift 5.5以降では、テスト関数をasyncとして宣言し、awaitで結果を待ってから検証します。エラー検証、古いコールバックAPIのテスト、expectationがまだ必要なケースまでまとめました。
記事を読む