現在、多くの企業が人手不足に対応するために、業務の自動化を可能にするRPAの導入を急速に進めています。RPAと言えば、一般的にPCを使った通常業務に使用すると認識されていますが、実はソフトウェアテストのような専門的な業務でも活用することができます。ここでは、RPAを用いたソフトウェアテストの自動化と開発業務のプロセス改善について説明します。
- もくじ
現在の深刻なIT人材不足の状況
すでに述べた通り、現在日本の企業の多くは少子高齢化の影響などを受けて人手不足に悩んでいます。特にIT業界での人手不足は深刻で、その状況は改善されるどころかますます悪化すると予想されており、2030年には約79万人のIT人材が不足するというデータが出ています。(※1)
このようにIT業界は、どのように人材不足を解決するかという課題を抱えています。
そもそも、人手不足の原因はIT業界の悪いイメージにも起因します。「仕事がきつい」「家に帰れない」「休日出勤なども当たり前」というネガティブな業界のイメージを払拭するのは並大抵のことではありません。
そのため、業務の改善によるイメージの改善は喫緊の課題と言えるでしょう。
手動で行なわなくてはならない作業が多いソフトウェアテスト
ITの分野において、プログラミング言語や開発ツールなどは進化し続けているものの、業務全体の改善がなかなか進んでいない分野であると言えます。
ソフトウェアテストの分野においても、"人手による"テストがまだまだ主流となっています。それは、連続的かつ複雑な操作は自動化が難しいとされており、そのようなテストは人手に頼る必要があるなどの要因があるからです。とはいえ、ソフトウェアテストにはさまざまな階層があり、ソフトウェアやAPIの基本動作をチェックする単体テストや、テスト自動化ツールで行なえるテストも存在しています。
こういった状況のなかでソフトウェアテストの自動化を促進させる技術革新が起こります。RPAの登場です。
RPAはPCで行なう作業を自動化できる
RPAとは、Robotic Process Automation (ロボティック・プロセス・オートメーション)という言葉の略で、ホワイトカラー(事務作業や管理作業などを行なう労働者)のデスクワークのうち主に定型作業を、PC中のソフトウェア型ロボットが作業を代行・自動化するシステムです。
RPAはPCの操作をソフトウェアのロボットに記録させることで、PCによるデスクワークを効率化・自動化できます。例えば、RPAに任せたい作業をPC上で実行すると、RPAツールが操作手順を"シナリオ"と呼ばれる動作ルールに置き換えて記憶します。そして、次回以降の作業をシナリオに基づいて代わりに実行します。イメージとしては、入社したての新人に作業の手順を見せて教えるようなものです。
RPAの導入が進んだのはつい最近のことです。日本国内では2016年からRPAという言葉が使われるようになり、2017年には大ブームが起こり、現在ではほぼ定着したと言えます。
商品例としてはWinActor、UiPathなどがありますが、これ以外にもさまざまな種類のRPAが存在します。
RPA導入でソフトウェアテストの自動化と効率改善
RPAはもともとデスクワークを行なうホワイトカラーの業務をサポートするのが目的で作られたツールですが、最近RPAの別の使い道として、ソフトウェアテストへの導入がにわかに注目を浴びています。
ソフトウェアテストにはさまざまな階層があり、単体テストやUIテストのようにある程度定型化されたテストには専用のツールが存在し、それらを活用すればテストを自動化することができ、開発業務のプロセス改善につながります。しかし、実際のソフトウェアテストはもっと複雑な作業工程が含まれており、テスト作業すべてを既存のテストツールで自動化することは不可能です。
例えば、ERPやCRMのようなソフトウェアの場合、データの登録や削除・編集などの単純な処理ばかりではなく、他のアプリケーションの連携などのような極めて複雑な作業も存在します。そのため、複雑なテストになるとどうしても既存のツールでは自動化できず、ソフトウェアをアップデートするたびに何度も人手でテストを行なわなくてはなりませんでした。
しかも複雑なテストになるほど、テスター側にもある程度熟練を求められるため、誰でもテストができるわけではありません。しかし、このような場合でもRPAを駆使してテスターの作業を記録し、シナリオ化してしまえば何度も同じ処理を人の手作業で繰り返す必要はありません。このようにRPAとソフトウェアテストの相性が注目を集めており、現場に導入するケースが近年増えているのです。
ソフトウェアテストにRPAを使うメリットとデメリット
ソフトウェアテストにRPAを使うメリットは、単なる自動化だけではありません。どんなに熟練したテスターでも、人間である以上はミスを犯す確率はゼロではありません。しかし一度RPAに正しいテスト工程を覚えさせればコンピュータはミスをしないので、テストを確実に行なうことができます。つまり、テストのミス自体を無くすことが可能です。
副次的な効果としてテスターの作業量を軽減できることから、テストに使っていた時間をさらに高度なテスト内容の設計に割くこともできます。
その上、高度なテストは誰にでもできるわけではないので、しばしば属人的になり、実行できるテスターに負担がかかりすぎるという問題が起こります。しかし、RPAにテストを覚えこませた作業は何度でも再現できるため、練度の低いテスターでもRPAを使用して高度なテストをできるようになり、作業の属人化を防止することにも役立ちます。
このようなメリットがある反面、当然のことながらデメリットも存在。一つは、テスターは従来のテスト業務のみならず、RPAの使用方法にも習熟する必要があるという点です。テストを自動化するにはテスター自身がRPAを使いこなせなくてはならないため、新規に教育投資が必要になります。
また、RPAは指示された作業を繰り返すだけなので、指示内容が誤っていても、途中で止まることなく作業を続けてしまいます。そのため、最悪の場合は製品がリリースされてからテストが誤っていた事実に気がつくという恐れもあります。
さらに自動化の弊害として、作業内容がブラックボックス化してしまう危険性をはらんでいます。何らかの理由でテストシナリオを作成したテスターが現場から離れてしまった場合、その内容を理解して修正することができなくなるため、ソフトウェアのアップデートでテスト内容が変更になった場合でもRPAのシナリオ変更ができなくなる可能性があります。
そのため、導入に際しては作成したシナリオの長期的なメンテナンスも視野に入れて導入を進めなくてはなりません。
RPAを導入する際にはこういったメリット・デメリットも見据え、対応策を検討しながら計画を進めなければなりません。
おわりに
以上のように、RPAを導入することによりソフトウェアテストの自動化によりプロセスを効率化することが可能です。しかし、最も大事なことはテストのみならず、ソフトウェア開発プロセス全体をいかに効率的に運営するかという戦略をしっかりと立てることです。特定の個人の能力や努力に依存する環境や、特殊なツールの能力のみに特化した開発体制は破綻をきたしやすいもの。最優先すべきはプロセス全体の運営体制であり、有効なツールとしてRPAを活用することにより大きな成果を得られるということを忘れないようにしましょう。
参考
※1:経済産業省 NewsRelease 平成 28 年 6 月 10 日| IT 人材の最新動向と将来推計に関する調査結果
https://www.meti.go.jp/press/2016/06/20160610002/20160610002.pdf