AIテスト自動化の実務|生成AIで単体・E2Eテストを作る手順と限界
最終更新日:2026/09/21
AIテスト自動化とは、生成AIにテストコードの作成や修復を任せ、人はテスト観点の設計とレビューに集中する進め方です。単体テストは任せやすく、E2Eは設計判断が残ります。どこまで任せて、どこから自分で書くか。その線引きと具体的な手順を、実務で詰まるポイントから解説します。
先に結論
AIテスト自動化とは、テストの実行を自動化することではなく、生成AIでテストコードの作成・修復を補助する進め方を指します
生成AIは「テストを増やす」道具であり、「品質を保証する」道具ではありません。観点設計とレビューは人に残ります
単体テストは任せやすく、E2Eはロケータ設計とテストデータの前提が要るため、人の判断が残る領域が広くなります
実装コードをそのまま渡すと、実装のバグごとテストに固定されます。先に仕様・観点を言語化してから渡すのが基本です
生成直後のテストは、トートロジー・薄いアサーション・過剰モック・フレーキーの4パターンで壊れます。レビューはこの4点から見ます
カバレッジの数字だけでは、AI生成テストの良し悪しは測れません。ミューテーションテストで「バグに気づけるか」を確かめる方が実態に近くなります
この記事でわかること
生成AIに単体テスト・E2Eテストを書かせる具体的な手順とプロンプトの型
生成されたテストをレビューするときの4つの着眼点
生成AIが苦手な領域と、人が書くべきテストの線引き
AI生成テストの質を検証する方法(カバレッジとミューテーションテスト)
案件でこのスキルがどう評価されるか
対象読者は、単体テストやE2Eテストをすでに自分で書いた経験があり、そこに生成AIを組み込みたいエンジニアです。テストフレームワークそのものの入門は扱いません。各ツールの基本はPlaywrightとは|E2Eテスト自動化の基本・Cypressとの違い・案件単価をフリーランス視点で解説やJestテストとは|JavaScriptテストの基本・案件単価・学習ロードマップを参照してください。
目次
AIテスト自動化とは|「テストを書く」と「テストを動かす」は別物
生成AIにテストを書かせる前に決める3つのこと
単体テストを生成AIで作る手順
E2Eテストを生成AIで作る手順
AI生成テストの落とし穴と限界
AI生成テストの質をどう検証するか
ケース別の進め方
案件でこのスキルはどう見られるか
まとめ
よくある質問
AIテスト自動化とは|「テストを書く」と「テストを動かす」は別物
結論から言えば、生成AIが担うのはテストコードの作成と修復であり、テストを実行する仕組みは従来どおりです。ここを混同すると、導入の議論が噛み合いません。
テスト自動化という言葉には、もともと2つの意味が混ざっています。ひとつはテストを人手で実行せず自動で回すこと。もうひとつはテストコード自体を人が書かずに用意すること。PlaywrightやJest、pytestが解決してきたのは前者です。生成AIが新しく持ち込んだのは後者になります。
生成AIが担当する範囲
生成AIがテスト工程で実際に手を動かせるのは、おおむね次の4つです。
仕様や実装から、テストケースの観点を洗い出す
洗い出した観点を、実行可能なテストコードに変換する
失敗しているテストの原因を推定し、修正案を出す
既存テストのリファクタリング(重複の整理、命名の統一)
逆に、実行環境の構築、CIへの組み込み、テストデータの準備方針の決定は、依然として人の仕事です。GitHub Actionsとは?CI/CDの仕組み・基本ワークフロー・案件単価をフリーランス視点で解説で扱っているような実行基盤の設計は、生成AIに任せても判断の質が上がりません。
「使う」と「信じる」のギャップは大きい
導入前に、業界全体の温度感を押さえておくと期待値を調整しやすくなります。
DORAのState of AI-assisted Software Development(2025年)では、回答者の90%が業務でAIを使っていると答えた一方、AIが生成したコードをほとんど信頼していない層が30%いると報告されています。同レポートは、書く時間が減った分が検証の時間に回る構造を指摘しています。
Stack Overflow Developer Survey 2025のAIセクションはもう少し具体的です。AIツールを使う、または使う予定と答えた層は84%。一方で精度を高く信頼していると答えたのは3.1%にとどまります。66%が「ほぼ正しいが微妙に違う」解答に遭遇したと回答し、45.2%がAI生成コードのデバッグに時間がかかると答えました。いずれも同調査に回答した開発者を母集団とする数字で、開発者全体の分布ではない点には注意してください。
この「ほぼ正しいが微妙に違う」という性質は、テストコードと特に相性が悪くなります。実装コードなら動かせば壊れていることに気づけますが、テストコードは壊れていても緑のまま通るからです。
ミニFAQ
Q. 生成AIを入れればテストエンジニアは不要になりますか。
A. テストコードを書く工数は減りますが、何をテストすべきかを決める工程は残ります。むしろ観点設計とレビューの比重が上がるため、職種としての役割はQAエンジニアとは|仕事内容・年収・テストエンジニアとの違いをフリーランス視点で解説で整理されている方向に寄っていきます。
Q. どのAIツールを使えばいいですか。
A. テスト生成に限れば、エディタ統合型(Copilot、Cursor)とエージェント型(Claude Code、Cline)で使い分けが変わります。ツールごとの違いはAIコーディングエージェント比較|Cursor・Claude Code・Clineの選び方にまとめています。
生成AIにテストを書かせる前に決める3つのこと
先に決めておかないと手戻りが出るのは、入力・レイヤー・受け入れ基準の3つです。ここを曖昧にしたまま生成させると、量は増えるのに信頼できないテストの山ができます。
何を入力にするか(実装コードか、仕様か)
実装コードをそのまま渡すのは、最も手軽で最も危険なやり方です。生成AIは渡されたコードの挙動を正とみなすため、実装にバグがあればバグごとテストに固定されます。「今の動きが仕様です」と宣言しているのと変わりません。
安全なのは、仕様・受け入れ条件・バグ票のいずれかを先に渡し、テスト観点を出させてから、コードに変換させる二段構えです。
入力 | 向いている場面 | リスク |
|---|---|---|
仕様書・受け入れ条件 | 新規機能、仕様が文書化されている | 文書が古いと的外れなテストになる |
実装コード | レガシーに保護網を張りたい | 現在のバグを正しい挙動として固定する |
バグ票・障害報告 | 再発防止テストの追加 | 再現条件の記載が甘いと再現しない |
既存テストコード | 類似ケースの横展開 | 既存の設計上の癖まで複製される |
レガシーコードに後からテストを足すケースでは、実装コードを入力にせざるを得ないことがあります。そのときは「これは現状の挙動を固定する特性テストであり、正しさの保証ではない」とテストファイルのコメントに明記しておくと、後から読む人が誤解しません。
どのレイヤーを任せるか
レイヤーによって、生成AIの当たり外れは大きく変わります。
テストの種類 | AIへの任せやすさ | 人が残すべき判断 |
|---|---|---|
単体テスト(純粋関数) | 高い | 境界値の妥当性 |
単体テスト(副作用あり) | 中程度 | モックの粒度 |
結合テスト | 中程度 | どこまで本物を使うか |
E2Eテスト | 低め | ロケータ設計、テストデータの前提 |
非機能テスト(性能・負荷) | 低い | 目標値の設定そのもの |
純粋関数の単体テストは、入出力が閉じているため任せやすい部類です。逆にE2Eは、画面のどの要素を掴むか、テストデータをどう用意するかという前提条件が外にあり、そこを人が決めないと生成結果が安定しません。
受け入れ基準(人がどこを見るか)
生成されたテストを全行精読していては、時間の節約になりません。かといってノーチェックでマージすると、通るだけのテストが増えます。
筆者が現場で使っているのは、1テストあたり2〜3分で次の4点だけを見る運用です。この4点は後述する典型的な壊れ方に対応しています。
そのテストは、実装を壊したときに落ちるか
アサーションは結果を見ているか、呼び出した事実を見ているだけか
モックを剥がしたとき、何も検証していない状態にならないか
実行順や時刻に依存していないか
単体テストを生成AIで作る手順
単体テストは、プロンプトに観点を明示できるかどうかで結果が変わります。「テストを書いて」だけでは、正常系を3本並べただけの薄いテストが返ってきやすくなります。
プロンプトの型は「対象・観点・制約」
GitHub Copilotの公式ガイドも、スコープの明示とテストシナリオの指定を推奨しています。実務で使いやすいのは、次の3ブロックに分けた指示です。
対象:どの関数・クラスをテストするか。依存の有無。
観点:正常系、境界値、異常系、例外の型、null/空配列、日付をまたぐケースなど、拾ってほしい観点を列挙します。ここを省くと生成AIは正常系に寄ります。
制約:使うテストフレームワークとバージョン、モックライブラリ、命名規約、1テスト1アサーションにするかどうか、日本語のテスト名を使うか。
制約を書かないと、プロジェクトで使っていないライブラリを前提にしたコードが混ざります。既存のテストファイルを隣のタブで開いておくと、フレームワークを推測させやすくなるのは公式ガイドの指摘どおりです。
1回の生成で渡す対象は、目安として200〜300行程度までに抑えると精度が落ちにくくなります。ファイル全体を一度に投げると、観点が薄く広く散る傾向があります。
生成後に必ず直す4つのポイント
生成されたテストで、ほぼ毎回手を入れることになるのは次の箇所です。
境界値の根拠:AIはキリのいい数字(0、1、100)を選びがちです。仕様上の実際の境界(たとえば上限が255文字なら254/255/256)に置き換えます
例外の型:「エラーが出ること」ではなく、どの例外クラスがどのメッセージで投げられるかまで指定します
テストデータの意味:「test1」「foo」のような無意味な値を、ドメイン上あり得る値に直します。レビュー時の読みやすさが変わります
重複:同じ条件のテストが名前違いで複数生成されることがあります。1本に統合します
pytestやJestのパラメータ化機能を使うと、生成された似たテスト群をまとめやすくなります。それぞれの記法はPytestとは?Pythonテストフレームワークの基本・使い方・フリーランス案件単価への影響を徹底解説やJUnitとは?Javaエンジニアの年収と未来を変える「テスト自動化」で扱っています。
ミニFAQ
Q. 生成されたテストが最初から全部通りました。これは良い状態ですか。
A. 疑ったほうがよいケースです。実装に合わせて書かれたテストは当然通ります。1か所わざと実装を壊して、狙ったテストだけが落ちるかを確認してください。
E2Eテストを生成AIで作る手順
E2Eは、生成したコードがそのまま動く確率が単体テストより低くなります。画面の構造に依存するためです。ここで有効なのは、生成時に実際のブラウザで検証させるアプローチです。
以下ではPlaywrightを代表例として工程を説明しますが、これはPlaywrightに限った話ではありません。CypressやSeleniumを使う場合でも、「計画を立てる・コードに変換する・失敗を直す」という3工程に分ける考え方はそのまま使えます。ツール固有の機能に依存しない部分として読んでください。
代表例:Playwrightの3エージェント構成
Playwright公式のTest Agentsドキュメントでは、役割の異なる3つのエージェントが定義されています。この分け方は、生成AIでE2Eを作るときの工程設計としてそのまま参考になります。
エージェント | 役割 | 人が確認すること |
|---|---|---|
Planner | アプリを探索し、マークダウン形式のテスト計画を作る | 計画に載っている観点が仕様と合っているか |
Generator | 計画を実行可能なテストに変換する。セレクタとアサーションをライブ検証する | ロケータがテキスト依存になっていないか |
Healer | 失敗したテストを再実行し、UIを検査して修正案を出す | 修正が「テストを通すための修正」になっていないか |
重要なのは、Generatorがセレクタとアサーションを実際に動かしながら検証する点です。静的にコードを生成するだけの使い方と比べ、最初から動かない率が下がります。本記事の執筆時点で公式ドキュメントが挙げている前提はVS Code 1.105以上ですが、動作要件は更新されるため、導入前に公式ページで確認してください。エージェント定義はPlaywrightの更新ごとに再生成すべきとされています。
Healerを使うときの歯止め
自動修復は便利な反面、使い方を間違えると品質を下げます。落ちているテストを通す方向に寄せると、本来検出すべきリグレッションを握りつぶすことがあるためです。
歯止めとして決めておきたいのは次の3つです。
再実行は2〜3回で打ち切る。それ以上通らないものは人が見る
アサーションの削除・緩和を含む修正は自動採用しない
修復の差分は必ずコミットを分け、レビューで見分けられるようにする
ロケータについては、生成AIは画面上の文言を掴みに行きがちです。文言はリリースのたびに変わります。data-testid属性のような、表示テキストから独立した識別子を先にアプリ側へ用意しておくと、生成されるテストの寿命が伸びます。この下準備は生成AIの導入前にやっておく価値があります。
Selenium資産が残っている現場では、移行判断が別途必要になります。Seleniumとは|ブラウザ自動化・スクレイピングの基本と案件への影響を解説も参考にしてください。
AI生成テストの落とし穴と限界
ここが本記事の中心です。AI生成テスト特有の壊れ方には型があり、知っていれば数分のレビューで見抜けます。
壊れ方は4パターンに分類できる
トートロジーテスト。 実装をそのまま写しただけのテストです。実装が「価格×1.1」なら、テスト側でも同じ計算式を期待値として書いてしまう。実装を変えれば期待値も変わるため、どんな変更をしても落ちません。
見分け方は単純で、期待値がリテラル(110という具体的な数字)になっているかを見ます。期待値に計算式が入っていたら疑ってください。
アサーションが薄い。 呼び出しが例外を投げずに終わったことだけを確認し、返り値を見ていないテストです。nullが返っても通ります。「エラーにならないこと」だけを確かめているテストは、テストというより実行確認です。
過剰モック。 依存をすべてモック化した結果、テスト対象の実処理がほとんど通らなくなっている状態です。モックの設定を書き写す形でアサーションが組まれるため、「モックを呼んだことをモックで確認する」構図になります。
対策は、モックの対象を外部I/O(HTTP、DB、ファイル、時刻)に限定するルールを先に決め、プロンプトの制約ブロックに書いておくことです。
フレーキー(実行のたびに結果が変わる)。 現在時刻、ランダム値、実行順への依存が代表例です。生成AIは現在時刻の取得をそのまま使ったテストを書くことがあり、月末や年またぎで落ちます。
E2Eでは、待機処理を固定の秒数スリープで書いてしまうパターンが目立ちます。要素の出現を待つ仕組みに置き換えてください。
これら4つを1枚のチェックリストにまとめたのが、次の表です。
パターン | 5秒での見分け方 | 直し方 |
|---|---|---|
トートロジー | 期待値に計算式がある | 期待値をリテラルで直書きする |
薄いアサーション | 例外が出ないことしか見ていない | 返り値・状態変化を検証する |
過剰モック | モックの呼び出し確認だけで終わっている | モックは外部I/Oに限定する |
フレーキー | 時刻・乱数・実行順に依存している | 時刻は固定値を注入する |
生成AIが苦手な領域と、人が書くべきテスト
結論として、判断基準が仕様書の外にあるテストは、生成AIに任せても精度が出ません。以下は人が主導する前提で考えたほうが安全です。
非機能要件のテスト:性能・負荷の目標値そのものが事業判断です。閾値を決められない相手に書かせても意味がありません
セキュリティテスト:攻撃観点は「こう使われたら困る」という想定に依存します。網羅性をAIの知識に委ねるのは危険です
マルチテナントの分離検証:他社データが見えないことの確認は、仕様の外にある前提知識が必要です
業務ドメイン固有の異常系:金融の営業日計算、医療の投薬ルールなど、ドメイン知識が判断を左右する領域
UIの見た目・使い勝手:崩れの許容範囲は人の判断です
LLMを組み込んだプロダクションのテストは、さらに別の話になります。出力が確率的で固定の期待値を置けないためです。この領域はLLM評価(Evals)とは|LLM-as-a-Judgeと品質保証の実務まで解説で扱っています。
AI生成テストの質をどう検証するか
テストが増えたことと、品質が上がったことは別です。ここを測る方法を持っておくと、案件でも説明できるようになります。
カバレッジの数字は目安にしかならない
AIにテストを大量生成させると、カバレッジは簡単に上がります。行を通るだけならアサーションがなくても数字は伸びるからです。80%を超えたという報告だけでは、品質の根拠になりません。
カバレッジは「テストされていない箇所を見つける」用途では有効です。「テストされている箇所が十分か」を判断する用途には向きません。
ミューテーションテストで「気づけるか」を測る
より実態に近いのが、ミューテーションテストです。要するに、実装に小さなバグを人工的に混ぜ込み、既存のテストがそれに気づけるかを確かめる方法です。演算子の反転や条件の除去といった書き換えを機械的に加え、テストが落ちるかを見ます。検出できなければ、そのテストは意味を持っていません。
JavaScript/TypeScript、C#、ScalaではStryker Mutator、Javaではpitestが代表的な選択肢です。実行コストは通常のテストより重くなるため、毎回のプッシュではなく週1回や夜間バッチで回す運用が現実的です。
AI生成テストは「通るが検出しない」テストが混ざりやすいため、この検証と特に相性が良い組み合わせになります。
レビュー観点チェックリスト
生成テストをマージする前に確認する項目を、実務で使っている順に並べます。
実装を1か所壊したとき、狙ったテストが落ちるか
期待値がリテラルで書かれているか
モックの対象が外部I/Oに限定されているか
時刻・乱数が固定値として注入されているか
テスト名から、何を保証しているかが読み取れるか
同じ条件のテストが重複していないか
テストデータがドメイン上あり得る値になっているか
失敗時のメッセージで原因が特定できるか
ケース別の進め方
レガシーコードに保護網を張る
仕様書がなく、コードだけが残っている状況です。この場合は現状の挙動を固定する特性テストから入ります。生成AIとの相性は良く、短時間で広い範囲を覆えます。
ただし前述のとおり、これは「正しさ」ではなく「現状」を固定するものです。リファクタリング前の安全網としては機能しますが、バグの検出は期待できません。テストファイルの冒頭に、その旨と作成日を書き残しておいてください。
新規開発でテストを並走させる
仕様が文書化されているため、仕様を入力にしたテスト生成が使えます。実装より先にテスト観点を出させ、観点をレビューしてからコードを書く進め方が取りやすくなります。
観点の洗い出しは、生成AIが比較的得意な工程です。人が思いつかない異常系が出てくることもあります。採用するかどうかは人が決め、不要な観点は削ります。
CIで落ちているテストを直す
既存テストが落ちたとき、原因の切り分けに生成AIを使うケースです。失敗ログ、対象コードの差分、テストコードの3点を渡すと、当たりをつけやすくなります。
ここで気をつけたいのは、修正の方向です。実装のバグでテストが落ちているのに、テスト側を通るように直してしまうと、検出したはずの不具合を消してしまいます。「実装とテストのどちらが間違っているか」を先に判断してから修正に入ってください。
案件でこのスキルはどう見られるか
まず短答として、テスト自動化の経験は単体で単価を押し上げる要素というより、開発案件の中で評価が加点される性質のスキルです。公開されている案件情報を見る限り、「テスト自動化担当」として切り出された募集より、開発ポジションの要件欄にPlaywrightやpytestが並ぶ形のほうが目立ちます。
この節の記述は、2026年9月時点で首都圏を中心とする主要フリーランスエージェント数社の公開案件ページを対象に、テスト自動化・QA関連の募集を確認した範囲での観測です。週3〜5日稼働の準委任案件を中心に見ており、確認できたのは数十件規模にとどまります。統計調査ではないため、傾向をつかむ材料として読んでください。非公開案件は個別条件で内容が大きく変わるため、ここには含めていません。
その範囲では、生成AIを使ったテスト作成そのものを要件に掲げる募集は限定的でした。一方で、AIツールの利用を前提とした開発案件は公開案件でも見られ、その中でテスト品質を担保できることが差別化になります。
スキルシートへの書き方
「生成AIを使ってテストを書けます」という書き方では、評価につながりません。何をどう改善したかを数値で示すほうが伝わります。
どのレイヤーのテストを、どのくらいの規模で整備したか(例:単体テスト400ケース、E2E 60シナリオ)
導入前後で何が変わったか(リグレッション検出のタイミング、リリース前の手動確認工数)
品質の検証をどう行ったか(ミューテーションスコア、意図的な実装破壊での検出確認)
書き方の型はQAエンジニアのスキルシートの書き方|品質実績の数値化と職種別テンプレが参考になります。品質保証寄りのポジションで動く場合の単価感はQAエンジニアのフリーランス単価相場|案件動向と単価アップの条件にまとめています。
自分の経歴だとどのくらいの単価帯を狙えるのかを確かめたい方は、無料のフリーランスエンジニア単価診断で目安を確認できます。テスト関連の募集を実際に見たい場合は、テストエンジニアの案件一覧から探せます。
案件に入る前の導入チェックリスト
生成AIをテスト工程に組み込む前に、次の項目を確認しておくと立ち上がりが早くなります。
テスト方針(何をどのレイヤーで担保するか)が文書になっているか
コードを外部AIサービスに送信してよいか、契約上の確認が済んでいるか
data-testidなど、表示テキストに依存しない識別子が用意されているか
生成テストのレビュー基準がチームで共有されているか
時刻・乱数を固定値に差し替える仕組みがあるか
CIでテストが落ちたときの一次対応者が決まっているか
AI生成であることがコミットやPRから判別できるか
2番目は特に、フリーランスとして客先の案件に入る場合の必須確認事項です。ソースコードの外部送信を禁じている現場は珍しくありません。契約上の扱いはGitHub Copilotの使い方|エンジニアの開発効率と案件単価への影響を解説でも触れています。
まとめ
生成AIはテストコードを書く工数を確実に減らしますが、何をテストすべきかを決める工程と、生成物を検証する工程は人に残ります。増えたテストが品質につながるかは、レビュー基準を先に決められるかで決まります。
実装コードをそのまま渡すと、バグごとテストに固定される。仕様・観点を先に言語化する
単体テストは任せやすく、E2Eはロケータ設計とテストデータの前提を人が用意してから広げる
生成テストの壊れ方はトートロジー・薄いアサーション・過剰モック・フレーキーの4型。レビューはここから見る
実装を1か所壊して狙ったテストが落ちるかを確認する。これが最も速い検証方法
カバレッジは不足箇所の発見に使い、十分性はミューテーションテストで測る
客先の案件では、コードの外部送信可否を契約面で先に確認する
次の一歩としては、既存プロジェクトのテストを1ファイル選び、実装をわざと1か所壊してみてください。落ちないテストが混ざっていれば、そこが生成AIを入れる前に整えるべき場所です。
参照した一次情報は以下のとおりです。
よくある質問
テストを先に書くTDDと、生成AIは両立しますか
両立しますが、順序に工夫が要ります。実装がまだない状態でテストを書かせると、生成AIは存在しない関数のシグネチャを勝手に決めてしまいます。インターフェースだけ先に人が定義し、それを渡してテストを生成させると噛み合いやすくなります。
生成されたテストのライセンスは問題になりませんか
学習データ由来のコード片が混入する懸念は、テストコードでも実装コードと同様に存在します。GitHub Copilotには公開コードとの一致をブロックする設定があり、企業向けプランでは管理者が制御できます。客先の案件では、その設定状態を確認してから使ってください。
テストケースの日本語仕様書から直接テストを生成できますか
できます。ただし、表形式で書かれたテストケース表をそのまま渡すと、表の行数ぶんテストが機械的に生成され、重複が増えます。先に観点として整理し直させてから、コードに変換させる二段階のほうが結果が安定します。
ビジュアルリグレッションテストにも使えますか
スクリーンショット比較の仕組み自体は従来ツールの領域です。生成AIが効くのは、差分が出たときに「意図した変更か、崩れか」の一次判定を補助する部分になります。最終判断は人が行う前提で組んでください。
カバレッジは何%を目指せばいいですか
一律の目標値を置くことは勧めません。数字を目標にすると、通るだけのテストを生成AIで量産する方向に力が働きます。目標にするなら、重要な業務ロジックを含むモジュールに絞って高めに設定し、それ以外は検出力で測るほうが実態に合います。
モノリポや大規模コードベースでも使えますか
使えますが、一度に渡す範囲を絞る必要があります。モジュール単位、あるいは変更差分に含まれるファイル単位で区切るのが現実的です。リポジトリ全体を文脈として与えると、無関係な箇所の命名規約を引きずったテストが出てくることがあります。
AIが生成したテストをそのままコミットしてよいですか
チームのルール次第ですが、AI生成であることが後から分かる形にしておくと運用が楽になります。コミットメッセージやPRのラベルで区別しておくと、後で品質を振り返るときに切り分けられます。
テストが落ちたとき、Healerのような自動修復に任せきりにできますか
できません。自動修復はテストを通す方向に働くため、実装側の不具合をテストの書き換えで隠す動きが起こり得ます。修復の差分はレビュー対象にしてください。
単体テストとE2E、どちらから生成AIを入れるべきですか
単体テストからをおすすめします。判断材料が閉じているぶん結果が安定し、レビューの型を作りやすいためです。E2Eは、ロケータの整備など下準備が済んでから広げると失敗が減ります。
Rubyでも同じ進め方でいいですか
基本的な考え方は変わりません。ただしRSpecのように記述の自由度が高いフレームワークでは、プロンプトの制約ブロックに書き方の規約(describeとcontextの使い分け、letの扱い)を明示しないと、既存コードと文体が揃わなくなります。詳しくはRSpecとは|Ruby on Railsテストの基本・書き方とフリーランス案件への影響を参照してください。
AIツールの費用は経費になりますか
業務で使用する開発ツールの利用料は、事業に必要な支出として経費計上できるケースが一般的です。ただし個人利用と混在する場合の按分など、判断が分かれる点もあるため、詳細は税理士に確認してください。
