ABAP開発に限らずプログラミングに不具合はつきものです。
人の頭で考えられるキャパには限りがあるので、いざ実行してみたら想定していなかった動きをする事は普通に起こる事です。だからこそ、テストをしっかりと行なって、本番化に向けて不具合をつぶしていく作業をするのですが、ソースコードを見ているだけではどこに不具合が潜んでいるのか分からない事もしばしばです。
そんな時に行うのがデバッグですよね。ただ、このデバッグをむやみにやっても時間ばかりが掛かってしまって効率が悪くなります。
そこで今回は効率的にデバッグをするためのポイントをご紹介したいなと思います。
デバッガの起動方法
ご存知かとは思いますが、ABAPプログラムをデバッグする方法は主に2つです。
1つはプログラムにブレイクポイントを設定する方法で、もう1つは画面左上にあるコマンドフィールドに『/H』を入力する方法です。
どちらの方法でデバッガを起動しても同じものが動いているので、その時々によってやりやすい方法で大丈夫です。
むやみにデバックするのではなく仮説を立てる
デバッグをする時に先ほどの後者の方法で起動して行う場合は注意が必要です。
たまにいるのが、プログラムの頭から全部調べていくという猛者です(笑)プログラムのサイズにもよりますが、かなり時間がかかります。
基本的には、この変数の値がこうなってるのが正しいけれど、この処理で誤った値をセットしてしまってるのではないか?という仮説を立ててからデバッグするのがオススメです。
最初は難しいかもしれませんが、経験を積んでいけばできるようになりますし、仮説思考を身に付けておかないと、仕事全般でキツくなっていきます。
なので、まずはソースコードの確認をしてあたりを付けてブレイクポイントを置く位置を考えてからデバッグするようにしましょう。
ウォッチポイントを活用する
次に意外に知らない人が多い機能がウォッチポイントです。
特定の変数の値が変わったタイミングや、指定した値になったタイミングでデバッグを止めてくれる機能です。
プログラムが長くなれば長くなるほど、変数のスコープが広くなってどこで変更されているのかを把握するのが難しくなってきます。
特にグローバル変数を使っている場合は、プログラム全体からその変数にアクセス出来るようになるので、どこでどう値が変わったのか把握しづらくなります。
そんな時には、ウォッチポイントを活用してみてください。ちなみに構造や内部テーブルでも使えます。
テーブルデータをダウンロードしてエクセルで分析する
大量データを処理するときに、内部テーブルのデータを確認したいというケースがありますよね。そんな場合には、テーブルデータをExcelにダウンロードして確認するのがオススメです。
デバッグ画面は通常の処理に比べて大量のメモリを消費するので、画面の動きが遅くなったりします。また、サーバーのリソースによってはシステム全体のメモリのリソースが枯渇して、システム自体が重くなる事もなくはないです。
並べ替えやフィルタリング機能等もExcelのほうが優れているので、調べる時間も短くて済むケースが多いと思います。
他にもたくさんの機能があるので使いながら覚えていってみてください。
コメント