スキップしてメイン コンテンツに移動

GASデバッグ:ブレークポイント

GASデバッグ:ブレークポイント

GAS基礎

Google Apps Script(GAS)は、Google Workspace のサービスを自動化するための JavaScript ベースのスクリプト言語です。GAS の基本構文は標準的な JavaScript とほぼ同じですが、Google の API を呼び出すための専用オブジェクトが多数用意されています。まずはスクリプトエディタを開き、簡単な関数を作成してみましょう。

function helloWorld() {
  Logger.log('Hello, GAS!');
}

この関数を実行すると、ログに「Hello, GAS!」が出力されます。GAS の基礎を押さえることで、後のデバッグ手法をスムーズに学べます。

デバッグ手法

GAS でのデバッグは、主に「Logger.log」や「console.log」を使ったテキスト出力と、ブラウザのデベロッパーツールを組み合わせて行います。さらに、Apps Script のデバッグ機能を利用すると、ブレークポイントを設定して実行を一時停止し、変数の状態を確認できます。

デバッグ手法を体系的に整理すると、以下のステップが重要です。

  1. ログ出力で大まかな流れを確認
  2. ブレークポイントで実行を停止
  3. ステップ実行でコードを1行ずつ追跡
  4. 変数値確認・ウォッチ式で状態を監視
  5. 呼び出しスタックを確認し、関数の呼び出し順序を把握
  6. 検証結果をもとに修正を行う

ブレークポイント

ブレークポイントは、コードの任意の行に設定できる停止点です。GAS のエディタでは、行番号の左側をクリックすると赤い点が表示され、ブレークポイントが設定されます。実行時にこの点に到達すると、スクリプトは自動的に停止し、デバッガが起動します。

ブレークポイントを活用すると、特定の条件でのみ停止させることも可能です。例えば、変数が期待値と異なるときだけ停止させるように設定できます。

デバッガ

デバッガは、ブレークポイントで停止した際にコードの状態を詳細に調べるツールです。デバッガの主な機能は、ステップ実行、変数値確認、ウォッチ式、呼び出しスタックの表示です。

デバッガを起動するには、エディタ上部の「デバッグ」ボタンをクリックします。ブレークポイントが設定されている行で停止し、デバッガパネルが表示されます。

ステップ実行

ステップ実行は、コードを1行ずつ実行しながら状態を確認する手法です。デバッガパネルには「ステップオーバー」「ステップイン」「ステップアウト」の3つのボタンがあります。

  • ステップオーバー:現在の行を実行し、次の行へ進む。
  • ステップイン:関数呼び出しがある場合、その関数内部へ入る。
  • ステップアウト:現在の関数を終了し、呼び出し元へ戻る。

ステップ実行を使うことで、ロジックの流れを細かく追跡できます。

変数値確認

デバッガの「変数」パネルでは、現在のスコープにある全ての変数とその値が表示されます。変数名をクリックすると、詳細な値が確認できます。

変数値確認は、予期しない値が代入されている箇所を特定するのに非常に有効です。例えば、配列のインデックスが範囲外になっている場合、エラーが発生する前に検知できます。

ウォッチ式

ウォッチ式は、特定の式や変数を常に監視し、その値をデバッガに表示させる機能です。デバッガパネルの「ウォッチ」タブで式を追加すると、実行中に自動で更新されます。

ウォッチ式を使うと、例えば「user.isActive」や「items.length」など、頻繁に変化する値をリアルタイムで確認できます。これにより、デバッグの効率が大幅に向上します。

呼び出しスタック

呼び出しスタックは、現在実行中の関数がどのように呼び出されたかを階層的に表示します。デバッガの「スタック」タブで確認できます。

スタック情報を読むことで、エラーが発生した場所だけでなく、エラーに至るまでの経路を追跡できます。例えば、外部 API 呼び出しの失敗が内部ロジックに波及した場合、スタックを辿ることで原因を特定できます。

検証

デバッグで得た情報をもとに、コードの挙動を検証します。検証は、単にエラーが消えたかどうかだけでなく、期待通りの結果が得られるかを確認するプロセスです。

検証の際には、テストケースを作成し、入力と期待出力を明確にします。GAS では、テストフレームワークを導入することで、検証作業を自動化できます。

修正

検証で問題が判明したら、コードを修正します。修正後は、再度デバッグ手法を適用し、修正が正しく反映されているか確認します。

修正作業では、以下のポイントに注意します。

  • 変更箇所を限定し、影響範囲を最小化する。
  • 変更前後でログを比較し、挙動の差異を確認する。
  • 必要に応じて、ユニットテストを追加し、再発防止を図る。

このサイクルを繰り返すことで、GAS の品質を高め、安定した自動化スクリプトを構築できます。

この記事はAIによって作成されました。

コメント