RPAを開発・運用を行っていく中で「RPAを開発したのはいいものの、何を行っているのかコードから読み取れない…」「開発ルールはあるものの、開発者によって作成方法がバラバラになってしまう…」といった声が上がることが多いです。読みにくいコードのロボットやルールに順守できていないロボットが作成されないようにどうしたらいいのか。対応策は開発者が作成したRPAの中身を経験豊富な技術的者等が確認すること(コードレビュー)にあります。どうしてコードレビューをすることが重要なのか、以下の目次に沿ってご説明させていただきます。
作成したロボットをコードレビューする目的
なぜ、作成したロボットをコードレビューする必要があるのでしょうか。その目的は以下の3つにあります。
- 開発者によってロボットの作成方法が異なると管理のしづらさやロボットが分かりづらい状態となるため、ロボットの均一性を図るようルールの適用を徹底すること
- 可読性・安定性・メンテナンス性があるロボットを運用する
- 開発者のスキルアップ
このような目的をもってコードレビューを行うことで、作成したロボットを運用前に、チェックすることでロボットの質のばらつきを抑えることができ、一定して質の高いロボットを運用することが可能となります。
また、RPA経験者がコードレビューをすることで、開発時の作成方法や技術的知識の勉強となり開発者自身の開発スキルが向上することができます。
コードレビュー時のタイミングと確認ポイント
コードレビューする際、誰がいつのタイミングでどのように実施するべきなのでしょうか。
- コードレビューを行う人
- 開発標準の運用経験が十分にある技術支援者またはシニア開発者
まずは開発者自身でコードレビューを行い、修正箇所が無いかセルフチェックを行います。
そのうえで②の経験豊富な開発者がチェックを行うことでより正確で適切なコードレビューをすることができます。
- コードレビューを行うタイミング
- 単体テスト後
単体テストを実施した後、コードレビューを行うことで、運用前にロボットの状態をチェックすることができます。
単体テストにつきましては、以下のコラムを参照ください。
テストを行う目的は主に2つあります。
①運用段階でRPAが誤作動やエラー停止し、業務に支障を発生させないよう、事前にエラー要員を排除するため。またエラー要因が排除できているか確認するため。
②情報システムの開発を外部に委託した場合に、その最終段階で発注元(ユーザー企業)側が納品を受け付けるか否かを判定するため。
- 確認時のチェックポイント
コードレビューを行う際、以下の3つの観点でコードをレビューしていきます。
- ロボットが業務ロジックに合った設計になって動作できているのか?
- 可読性・安定性のあるコードであるか?
- 命名規則は順守しているか?
ただ上記の観点のみでチェックをしていくと人によって確認内容にばらつきが出てしまいます。そのため次の項目でペネトレイター株式会社が使用しているコードレビューのチェック表をご紹介します
コードレビュー時のチェックリストを紹介
弊社が作成したチェックリストをご紹介させていただきます。このチェックリストは7つの大項目で構成されています。各項目の内容をご説明いたします。
- ロボットの通常稼働
ロボット想定通り、安定稼働するか確認します。正常系の動作が五回連続で稼働しているか確認したり、異常時も事前に想定した動作を行ったりするか確認します
- 命名規則の遵守
開発ルールにのっとり作成できているか確認します。変数や固定値の指定方法など開発基準に沿っているか確認していきます。
コードが重複している等で長いコードになっていないか確認します。同じ処理を繰り返すことでメンテナンス時になんども同じ修正が発生したり、長いコードで読みにくくなったりすることを防ぐためチェックを行います。
例)コードレビュー前:対象Excel分転記処理を繰り返すため、Excelのファイル数分同じ処理を記載している
コードレビュー後:ループを使用した処理に変更することで、処理を1つにまとめることができる。
- ハードコードを含めない
環境依存(デバイスの状態が変わると変わってしまう内容)やユーザー名やパスワードといった機密情報がコードに直接記載されていないか確認します。環境依存が含まれていると環境が変更になったとき(デバイスの変更等)ロボットが停止してしまいます。また機密情報をロボットに記載すると外部の開発者等が見ることができるので情報漏洩に繋がってしまいます。
- 対象アプリケーション
各アプリケーションに対して安定性や可読性の高い設定方法を行っているか確認しています。例えば、Webサイトのクリック処理を座標で認識して行うマウスアクションを使用していると、ウィンドウサイズによって取得ができない場合があり不安定なので、キャプチャに変更することが必要になります。このような修正箇所をコードレビューで確認していきます。
- エラー時の対応
エラー発生時、開発ルールで決まられたエラー対応がロボットに組み込まれているか確認をしています。この確認を行うことで、エラー時のメンテナンス性が確保された状態であるか確認することができます。
- その他
上記6つ以外の項目で確認するべき内容が記載されています。弊社では要件に含まれていないシステムを使用していないか確認しています。理由としては、要件に含まれていないシステムを操作することで予期しない操作が実装され、業務等に支障が発生するのを防ぐために確認しています。
この7つの項目を開発者とレビューする側が確認することで、より質の高いロボットが標準化され、運用時のトラブルを削減することが可能です。
品質基準をそろえる重要性
開発者によって質にばらつきがあるロボットがあると、運用時のメンテナンスも大変になります。また、品質や基準が統一されていないと折角業務の俗人化を解消するために導入したRPAの管理が俗人化してしまうというような事態になってしまいかねません。 なるべく運用時でのトラブルをさけるため、開発段階でロボットのコードをチェックしていきましょう。
また、自社にはベテランの開発者がいないのでコードレビューをお願いしたい、自社向けにコードレビューチェックリストを作成してほしい等、ご相談があればぜひ弊社までお問い合わせください。
ペネトレイター株式会社 杉山