テスト影響分析(TIA)は、AIコーディングエージェントからの「このコード変更は、既存のmablテストのどれに影響するか」という1つの質問に答えます。この記事では、mablがその答えをどのように導き出すかを説明します。手順ごとのワークフローについては、テスト影響分析でコード変更を検証するを参照してください。
コード変更から説明文へ
コーディングエージェントに「どのmablテストが変更の影響を受けるか」を尋ねる際、変更内容を自分で説明する必要はありません。TIAが代わりに行います。mablテストはコード内のファイル名に言及しないため、TIAはファイル名を探しません。代わりに、コード変更をmablテストと同じ言葉で書かれた説明文に変換し、関連するページ、コントロール、フローを探します。変更に共有コンポーネントの更新が含まれている場合、TIAはそのコンポーネントを操作するすべてのテストを探します。
各分析は、mablの1つのアプリケーションを対象とします。複数のアプリケーションにまたがる変更は、アプリケーションごとに1回ずつ分析され、結果が統合されます。
関連するテストを見つける
mablは、その説明文に対してテストの内容を検索し、言葉遣いと意味の両方で照合します。たとえば、「チェックアウト」と書かれたテストは、「購入フロー」と説明された変更に一致する可能性があります。検索では、テスト名、説明、ステップを読み取ります。
この検索に基づいて、mablは優先順位付けされたテストのセットを返します。
- 各テストには、含まれた理由が付きます。 CIの外でTIAを対話的に使用する場合、mablがテストを含めた理由を、実行する前に確認できます。
- 各テストには、実行するかどうかをスキルが判断するために必要な詳細が含まれます。 有効かどうか、信頼性の履歴、環境やクレデンシャルなどテストに記録された実行設定です。
- テストのセットは網羅的ではありません。 分析は最も関連性の高いテストを返します。変更が返された数以上のテストに一致する場合、TIAは範囲を絞った追加の分析を実行するよう提案することがあります。
- 結果にはカバレッジのギャップも示されます。 説明文に含まれるユーザー向けの領域のうち、テストカバレッジが見当たらないものです。これらは、スキルがテスト作成スキルへの引き継ぎを提案する候補になります。
結果のセットが大きい場合は、一般的にコード変更が広範囲にわたることを示しています。多くの場合、共有コードに触れているためです。この場合、TIAは見た目を整えるためにセットを削るのではなく、テストのセットを整理してグループ化します。
実行するテストを決める
分析は、実行の候補を返します。TIAは何かを実行する前に、各テストを次の3つのグループのいずれかに分類します。
| グループ | 対象のテスト | TIAの動作 |
|---|---|---|
| 今すぐ実行 | データを読み取るだけのテスト、または自身でクリーンアップするテスト | 対象を確認するために、まず1つをカナリアとして実行し、その後に残りを実行します。 |
| 承認が必要 | 共有データに書き込むテスト、TIAがクリーンアップを検証できないテスト、またはローカルで実行するために課金対象の機能を有効にする必要があるテスト | 実行する前にユーザーに確認します。 |
| 実行しない | 無効になっているテスト、信頼性の低いテスト、または設定したスコープの外にあるテスト | スキップし、その理由を示します。 |
分析ではわからないこと
TIAが生成したレポートを読む際は、次の点に注意してください。
- ギャップが報告されない分析は、カバレッジの証明にはなりません。 TIAは変更を既存のテストと比較してギャップを見つけるため、まったく新しい画面には比較対象がありません。特定の領域について確信を得たい場合は、直接尋ねることができます。
- APIテストとパフォーマンステストは、結果に含まれない可能性があります。 検索は、ユーザーの言葉で説明されたブラウザーのフローに合わせて調整されています。変更がAPIやパフォーマンスの動作に影響する場合、それらのテストは検討済みで除外されたのではなく、セットから欠けている可能性があるものとして扱ってください。
- テストは、ステップではなく説明で一致する場合があります。 検索はステップだけでなく、テストの説明やメモも読み取ります。よく書かれた説明があり、実行可能なステップがないテストが結果に現れることがあります。ただし、スキルはステップ数を確認し、スタブを実行計画の先頭に置くことはありません。
- 分析は、一度に1つのアプリケーションを対象とします。 別のアプリケーションから同じ共有UIをカバーしているテストは、1回の分析では見えません。変更が共有UIに影響する場合は、分析が完了したと判断する前に、別のアプリケーションが同じ領域をカバーしていないか確認してください。
- 同じ変更を2回分析しても、同一のリストは返りません。 検索は言葉遣いだけでなく意味でも照合するため、分析結果は実行ごとに変わることがあります。TIAはテストが含まれた理由を常に示すので、以前の実行と比較するのではなく、その理由をもとに返されたテストのセットを判断してください。
- TIAはテストを見つけますが、書くことはしません。 テストのギャップをカバーしたい場合、TIAはテスト作成スキルへの引き継ぎを提案します。