【UiPath】「デバッグ機能と使用法」を理解する【初心者】
UiPathの学習追体験記事です。
※あくまで学習中の脳内を記事にしたものなので、この記事で書かれてあることが”正しい”とは限りません。
参考:学習効率本5巻 「知識の自作」

0.動機

「UiPath RPA アソシエイト資格試験」を受けたい!
と思い、練習問題のプラクティステストを受けてみたが、正答率は半分にも満たなかった。徹底的にプラクティステストの復習をするしかない!
ということで、本記事では、プラクティステストで間違えた問題の復習の様子を書きつらねていきます。
まずは、間違えた問題の紹介。
開発中、ある1つのアクティビティにてブレークポイントを有効にしました。その後、パッケージをUiPath Orchestrator2019.10にパブリッシュしました。プロセスがUiPath RobotからUnattendedモードで実行された場合、どのような動作が予想されますか。
引用元:https://www.pearsonvue.co.jp/uipath
UiPath RPA アソシエイト資格試験 プラクティステスト
解説部分には、この問題で求めている知識が紹介されていた。内容は以下。※答えは明示されてない
トピック:オートメーションのデバッグ機能と使用法(ブレークポイントなど)について説明する。
引用元:https://www.pearsonvue.co.jp/uipath
UiPath RPA アソシエイト資格試験 プラクティステスト

ちょっと気になるのは、「”オートメーション”のデバッグ機能」と記載されているところ。「”UiPath Studio”のデバッグ機能」と同意と解釈しても良いのかな。
ちなみに、UiPath Orchestratorで「オートメーション」という記載を見つけたが、このページからデバッグできるとは思えなかった。
よって、解説部分の「オートメーションのデバッグ機能」は「UiPath Studioのデバッグ機能」と同意とみなし、UiPath Studioのデバッグ機能を学習していく。
では、以下から、UiPath Studioのデバッグ機能の学習をしていく。
1.全体像理解
全体像理解とは、理解する項目の位置づけを把握すること。
垂直的理解
理解する対象が、UiPathアカデミーの「どのコース」「どの章」にあるかを確認する。
今回の理解の対象であるデバッグ機能については、以下のコースの章に記載があった。
UiPathアカデミー>UiPath Studio開発 中級コース>レッスン一覧>デバッグ
では、デバッグ機能の説明文を見てみる。
デバッグ
デバッグとは、プログラムの欠陥や誤りを発見して修正する作業のことです
引用元:https://academy.uipath.com/jp/learningpath-viewer/1955/1/153412/16

「バグを取り除く作業」ってことかな。
デバッグやバグは、どの単語から派生したものだろう。
話はそれるけど、これらの単語の語源を調べてみたい。
・デバッグとバグの語源
デバッグとバグの語源は「虫」関連のようだ。

デバッグが「虫取り」
バグが「虫」

バグの語源が「虫」。「バグ(虫)取り除いて」ってことになるのかな。ちょっと納得いかんな~。だって、虫全般にネガティブなイメージがついちゃうじゃん。もっと、圧倒的に悪そうなものを語源にしたらよかったのに(ゴキブリとか)。
と思ってたら、以下記事を見つけた。
bug(バグ)は害虫、バグ、虫
語源→甲虫(bugge)

甲虫は、カブトムシやテントウムシのことだよね。昔は、ヒトの生活に悪影響を及ぼしていたのかな。ちなみに、ゴキブリは甲虫ではない(シロアリの仲間)。
害虫という意味の「bug」の先頭に「de」をつけたものが「debug(デバッグ)」。

「de」ってなに?
「de」の語源を調べてみた。以下、記事。

「de」の語源は、「下・離れる・否定・強意」という意味があるらしい。

「害虫(bug)を対象から離す(de)」で「debug」になるのかな。
話が逸れまくった。UiPathのデバッグ機能の学習に戻ろう。
水平的理解
デバッグ機能の一覧を見る。
すべてを理解しようとすると、あれなので、以下に絞る。
・ステップイン
・ステップオーバー
・ステップアウト
・再実行
・フォーカス
・ブレークポイント
・低速ステップ

2.実践理解
実際に手を動かすことで理解を深める。
ステップ系
ステップの種類を1つ1つ試してみる。
フローはこんな感じ↓
【補足】
これを「実行ポイント」とする。
・ステップイン
機能の予想をする。

ステップインのアイコンと名前から予想するに、単純に、1つずつ目の前のアクティビティを実行するって感じじゃないかな。
実行動画↓
実行ポイントのアクティビティが実行された後、次のアクティビティに実行ポイントが移動した。

イメージしてた通りの機能かな。1つずつ動作確認したい場合は、ステップインで進めていこう。
・ステップオーバー
機能の予想をする。

アイコンと名前から予想すると、実行ポイントのアクティビティをスキップして、次のアクティビティを実行するとかかな。
実行動画↓
実行ポイントのアクティビティ内のアクティビティがすべて実行された。

スキップというより、「○○まで止まらずに実行します」って感じかな。
・ステップアウト
機能の予想をする。

前回のステップオーバーでは、アクティビティ内のすべてのアクティビティが実行された。ってことは、ステップアウトはアクティビティ外のアクティビティも実行したりして……
(アクティビティ外ってなんだ)
実行動画↓
実行ポイントのアクティビティ内のアクティビティがすべて実行された後、実行ポイントのアクティビティと同階層にあるアクティビティも実行された。後、そのアクティビティの上位の階層に実行ポイントは移動した。

「実行ポイントのアクティビティより上位の階層に到達するまで実行しつづける」って感じかな。
再実行とフォーカス
特に意外な点はなかったため簡潔に紹介。
・再実行
「再実行」の実行動画↓
実行の途中で「再実行」をすると、実行ポイントが一番初めのアクティビティに戻った。
・フォーカス
「フォーカス」の実行動画↓
実行ポイントのアクティビティがある画面に切り替わった。
ブレークポイント
機能の予想をする。

「ブレークポイント」って名前だから、中断ポイントを設けるってことかな。「指定アクティビティが終わったら、一旦、ストップ」みたいな機能だと思う。
実行動画↓
ブレークポイントに指定されたアクティビティを実行する前に中断された。

アクティビティ実行前の段階でストップするんだね。
ブレークポイントの機能をもう少し詳しく見てみる。
「ブレークポイント パネルを表示」をクリックしてみる。
ブレークポイント設定済みアクティビティの一覧を表示するパネルが、画面右下に追加された。
ブレークポイントパネルのアクティビティ名左の赤丸をクリックすると…
白抜き赤丸になった。
そのまま実行したところ、白抜き赤丸の部分はブレークポイントとならなかった。

ブレークポイントのon/offを切り替えれるようになるんだね。
低速ステップ
機能の予想をする。

「低速」とあるぐらいだから、ゆっくり人間の目で追えるぐらいのスピードで実行されるんじゃないかな。
実行動画↓
やはり、普通の実行と比べると、低速ステップの方が明らかに遅い。その上、低速ステップの場合は、1つ1つのアクティビティを追うように実行されている。

普通の実行では、アクティビティの実行結果だけ返ってくるのに対して、低速ステップでは、実行中アクティビティのある画面に推移している。そのため、実行中のアクティビティを把握しやすい。
普通の実行だけではなく、ステップ実行時の場合も確認してみる。
やはり、実行の速度がおそくなり、かつ、実行中アクティビティを追うようになっている。

初心者は、基本的に低速ステップを使った方が良さそう。
3.まとめ
UiPath Studioのデバッグ機能のうち、「ステップ実行系・ブレークポイント・低速ステップ」を実際に使ってみることで理解を深めた。
結果、上記の3つを自分の言葉でまとめてみる。
ステップ実行系 →「止まらずにどこまで実行するか」を決める機能
ブレークポイント→「止まるポイント」をあらかじめ決める機能
低速ステップ →「実行中アクティビティの移り変わり」を見やすくする機能

コメント