ロボットレビューガイドライン

フォローする

新規開発したロボット、および運用中ロボットの修正後のリリースに際しては、以下の観点からレビューを行い、ロボットのデグレードを防止すること。

以下の観点からロボットのレビューを行うこと。

  • プロジェクト、ロボットの内容が規約・ガイドラインに沿っているか。
  • デバッグ時に無効化されたまま有効化し忘れているステップはないか。
  • Tag Finder はサイト変更時など状況の変化に柔軟に耐えられる考慮がされているか。
    • 単純なDOMによる指定だけではなく、idやnameなどページの中でユニークなタグが選択できる指定になっているか。
    • li や td など、タグの属性にユニークな情報がなくDOM以外で位置情報を指定できない場合については Set Named Tag(名前付きタグ指定) でDOM検索の範囲を絞り込無考慮ができているか。
    • 適宜文字列一致条件等を指定して位置情報の指定をしているか。また、完全一致で指定している文字列については、変更されない理由付けがあるか。
  • Set Current Tag(現在のタグとして設定), Set Current Range(現在の範囲として設定), Set Current Window(現在のウィンドウとして設定) により指定する対象は相対参照(表示順番等)ではなく、絶対参照(IDやパターンなどのヒントの組み合わせ)で指定してあるか。
  •  ファイルの読み込みステップには下記考慮した対応がされているか。
    • ファイルが無い・パスが違う
    • ファイルの拡張子・フォーマットが違う(xlsとxlsxなど)
    • ファイルパーシング(構文解析)エラーの考慮(正規のExcelではなく、システムから自動的に出力されたExcelファイルの場合、パースエラーが発生することもある)
    • ファイルサイズの想定確認
  • ファイルの取り回しが明確であるか。
    • 処理終了後に削除するか、アーカイビングするか、追記をするか
  • URL読み込みステップには下記考慮した対応がされているか。
    • タイムアウトエラー時の対応
    • 読み込んだページが正しいかの対応(サイトによっては、ランダムで広告のウィンドウが表示されたり、システムメンテナンス中等のアラート画面が表示されることがある)
  • ログの取り扱いが明確であるか。
    • 使用するログの種類(Write File(ファイル出力)、Write Log(ログ出力)、Execute SQL(SQL実行)、Send Mail)
    • ログを残すルールと基準
  • 外部ツールを Execute Command Line(コマンド ライン実行) で使用する場合の考慮。
    • 使用するツールに内在するバグはないか、ある場合対応策はあるか(エラーを吐かず、ハングアップしてしまう様な場合、Kapowはひたすら外部ツールから返事が来るまで待ってしまう→実質的なロボットの停止)
  • Test タグの設定は正しいか。
    • Test 条件にマッチしない場合にエラー処理として別ブランチにジャンプさせるつもりが、エラーハンドリングの設定内容が Skip following steps(後続のステップ全てをスキップ) 等意図しない設定になっていないか。
  • エラー処理の設計が明確か。
    • エラーに対する考え方(何をエラーとするか。通信状況や相手先サイトの状況に依存する環境エラー、ロボット内部のロジックエラー)
    • エラーをどの様にキャッチするか(エラー判定の基準)
    • エラーをどの様に取り扱うか(リカバリするか、スキップするか、中断するか)
  • 変数の取り扱いについて適切な考慮がされているか。
    • 同一の変数でいろんな値を使いまわしていないか。
    • Assign Variable アクションについて、空白前提での挿入か、上書きか、追記かを意識して使い分けているか
    • 変数の初期化(特にグローバル変数使用時)は適切に行われているか。
      • Assign Variable(変数の割当) で空白が設定されている場合 : 変数は空白で初期化
      • Extract(抽出) で空白を抽出した場合は 変数には抽出した空白は設定されず、Extract(抽出) 以前の変数値がそのまま引き継がれる。(初期化されない)
      • Loop(ループ) 処理や Branch(ブランチ) の直前で初期化されていること。
  • 定数の取り扱いについて適切な考慮がされているか。
    • 複数個所で使用する値を、その都度固定値で設定していないか。(適切に変数化されているか)
  • ロボットへの入出力が簡潔であるか。
    • 理由なくInput/Output(入力/出力)のTypeが複数に分割されていないか。
  • ロボットのロジックは分かりやすいか。
    • 不要なループ処理や、冗長なロジック(同じ処理を理由なく複数個所で行っている部分)が存在しないか。