TO THE FUTURE NSSOL STORIES TO THE FUTURE NSSOL STORIES

2022-11-07 DX サステナビリティ
TwitterTwitterでシェア FacebookFacebookでシェア

システム開発をDX!Web画面テスト自動化AI「Curatis」を若手研究員が開発

左から、米倉 千晶さん、坂田 雄亮さん

システム開発業務は手作業による業務がまだ多く、その中でも3分1から4分の1を占めるのがテスト工程です。そのうちの半分を占めるとも言われているのがWeb画面テスト(E2Eテスト)です。そこで当社のシステム研究開発センター(以下、シス研)では、Web画面テスト自動化AI「Curatis(キュラティス)」を開発しました。開発の中心メンバーである米倉 千晶さん、坂田 雄亮さんに、Curatisの概要や今後の展望などを聞きました。

手作業で行っていた「Web画面テスト」を自動化

─最初にCuratisの開発に至る背景から聞かせてもらえますか。

米倉:システム開発の現場には、手作業で行っている業務が少なくないという現状があり、時間・費用どちらにおいても課題となっています。この手作業の部分を自動化することで、システムの素早い提供と工数の大幅な削減に貢献できると考えました。

坂田:中でも工程の3分の1から4分の1を占めるテストフェーズの自動化ができれば、システムの品質向上も見込め、特に恩恵が大きいだろうと。そこで、テストフェーズの半分ほどの作業ボリュームを占める「Web画面テスト」の自動化に着目しました(図1)。

図1

─「Web画面テスト」とは、具体的にどういったテストなのですか?

米倉:Webアプリケーション開発の最終段階で、システムが期待通りに動作するかどうか、画面(UI)を実際に操作して確認するテストです。テスト内容が書かれた仕様書に従いながら画面を操作し、結果の妥当性を確認するとともにエビデンスとしてキャプチャした画面を記録して、怪しい結果があれば開発者などに報告します。

─たとえばどのような操作があるのですか?

坂田:多くのアプリケーションで共通している操作で説明すれば、ログイン時に必ず行う、アカウント・パスワードの入力などです。ECサイトであれば商品をカートに入れる、その後、カートにその商品が正しくカウントされているかどうかを確認する、といった具合です。

─なるほど、画面は絶えず変化しているイメージですから、テストの対象は膨大な数になりそうですね。

米倉:ええ。しかもテストは新たに機能を追加したり、仕様を変更した都度行いますから、おっしゃるとおり、膨大な作業量になります。
一例ですが、あるアプリケーションで5000ケースの画面テストを行う必要があったとします。具体的に人が操作する回数は3万5000回ほどになりますが、1日に操作できる回数は900回ほどなので、1人でテストをしようとすると40日もかかる計算になります。

─これまでなぜ、自動化されていなかったのですか?

坂田:テストを自動実行するためのプログラム(テストプログラム)を開発する動きはこれまでもありました。ただ、テストプログラムの量も膨大となるため、結局、手作業でテストするのと同じく労力がかかってしまいます。またテストプログラムをつくれる人材も限られていることから、あまり広まっていません。実際、画面テストを自動化しているプロジェクトは約13%にしか過ぎない、とのデータもあるほどです(図2)。

米倉:Web画面の操作を記録して再実行するという「レコード&プレイバック」機能を持ったテスト自動実行ツールもありますが、そうしたテストツールの対象は正常に動くシステムに限られます。そのため、新規開発プロジェクトでは基本的に使えません。

図2

─そのような課題を解決したのがCuratisということですね。

米倉:Curatisの場合は、テストプログラムによる自動実行ではなく、テスト仕様書をAIが読み取り自動実行します。新規開発から使えますし、テストプログラムを用意する必要もありません。

坂田:テスト担当者の作業は、テストの内容(画面操作や期待される結果)が書かれたテスト仕様書、それもテキストベースのドキュメントを用意するだけ。あとはテスト仕様書をCuratisサーバーにアップロードすれば、CuratisのAIがテキストの内容を理解し、テストを自動実行します。操作結果も同時にキャプチャし、報告してくれます。

米倉:このような特徴があるため、非プログラマの方でも利用できます。テスト内容により異なりますが、テストプログラムを作成する場合に比べて、記述作業量が約6分の1に減少すると試算しています。

これまで研究開発してきた「AI」「システム開発高度化」技術により実現

─技術的な裏側といいますか、Curatisがこれまで難しいとされていたテスト自動化を実現できたポイントは、どのあたりにあるのでしょうか。

図3

坂田:マルチモーダルAIを搭載している点です。具体的には、自然言語処理AIと画像解析AIを備えています。テスト仕様書に書かれた操作指示や確認内容を柔軟に解釈し、また、その指示された操作をWeb画面のどこで行えばよいのかを推定してくれます(図4)。

米倉:アイコンなどの画像の意味も柔軟に解釈してくれます。たとえば「ゴミ箱アイコンをクリックする。」という操作指示があったとき、ゴミ箱アイコン要素に「これはゴミ箱アイコンです」という意味のテキスト情報が付与されていなくても、アイコン画像のみから意味を推測してどのアイコンをクリックすべきかを判断してくれます。

坂田:これらのAIが連携して、テスト仕様書に書かれた指示を的確に解釈してテストを実行していきます。実際にCuratisが自動でテストを行っている様子をデモ動画として紹介していますので、よろしければご覧ください。AIがテスト仕様書の操作指示文章を理解して、Web画面を操作しテストしていく様子をご覧いただけます。

図4

─つまり大きくは自然言語処理AIと画像解析AIが目や脳となり、自動でテストをしていると。

米倉:ええ。複数種類の情報を統合して処理・判断するマルチモーダル深層学習技術が使われています。ただ、その仕組みは技術的な核になるため、詳しいことはお話しできませんが(苦笑)。ただ言えることは、これまでNSSOLが研究開発してきたAI技術のノウハウを活用しています。

─LumisisやCogminoですね。

坂田:AI技術だけではありません。SIerとして長年にわたり、システム開発高度化技術の研究開発で培ってきた技術や知見も大いに活かされています。Webアプリ開発におけるリグレッションテストを自動・省力化するためのOSSライブラリ「Pitalium」や、レガシーシステムのソースコードを分析する「Lacat」などです。

─なるほど。これまで長年にわたり研究開発してきた技術の蓄積があるからこそ生まれたと。ところで、どのようなWebアプリケーションでもテストできるのですか?

米倉:はい。これもCuratisの特徴のひとつですが、テスト対象のWebアプリケーションごとに個別のチューニングをする必要がない設計にしています。そのため、どんなWebアプリケーションであっても調整不要で、すぐにCuratisを利用できます。

─それこそWebアプリケーションごとに調整が必要では、手間がまたかかってしまいますものね。

坂田:実際、GitLabやWordPress、当社が開発したシステム等において、いくつものWebアプリケーションの分析や実験を行った上でCuratisの仕様をかためていきました。
一方で、汎用的なテストAIを作るという目標が、実際に仕組みを考案する上での難しさとなりました。AIを構築するためのデータ作成も、苦労ポイントのひとつでもありましたね。

─苦労はどうやって乗り越えたのですか?

米倉:まさしく先人の教えです。これまでシステム開発で実際に行ってきたテストの仕様書がNSSOLには大量にあります。このドキュメントを分析することで、リアルなデータを自動生成する方法を編み出し、乗り越えました。

坂田:ドキュメントだけでなく、実際にシステム開発に携わっている人にもヒアリングを行い、どの箇所を自動化したら負担が減るかなど、利用者にとって使い勝手のよいAIにすることも心がけました。

「自然言語処理」を軸にしたマルチモーダルAIの研究開発が強み

─Curatisの開発は、いつごろから取り組まれていたのですか。

米倉:私たち2人が明確にアサインされて動き出してからは1年ほどですが、構想自体は5年ほど前からあったと聞いています。自然言語処理に関する研究開発に力を入れるために、私たちが所属するCIG(コラボレーティブ・インテリジェンス・グループ)が立ち上がったのと同時期、というのが正しいところだと思います。

坂田:実は私は、そのCIGが立ち上がったばかりのときに、学生インターンとして同グループに一時期おりました。大学では機械学習を研究しており、テーマ自体や技術力に興味があったのはもちろんですが、メンバーの人柄が心地よく、助け合いの精神に溢れていたので、このような環境の中で研究を続けたいと思い、NSSOLに入社しました。

米倉:私も大学で自然言語処理を研究テーマとしていたので、同じようにシス研に興味を持ちました。研究領域だけでなく実社会で役立つシステムを開発し、社会に貢献するビジョンに共感したことも、私の場合は大きいですね。

─お2人ともお若いですが、5年前にできたグループだとメンバー全体の平均年齢も若いですか?

坂田:そうですね。11名からなるグループですが、グループリーダーを除くと、入社10年目のメンバーが一番上になります。それぞれが得意領域を研究しながらも、最近は特にCuratisのようなマルチモーダルAIの研究開発を行っています。

─自然言語処理、マルチモーダルAI以外にどのような技術を研究開発しているのですか。

図5

米倉:AIを実際にシステムや業務で使えるようにするためのAIシステムアーキテクチャに関する研究開発などもしています。そのほか、こちらもマルチモーダルと親和性のある、ARやVRといった領域も手がけています。

坂田:まさにCuratisが体現していることですが、研究開発の指針となる私たちのグループのビジョンは、AIといった先端技術を使い、プロの技能がコアとなっている組織において労働人口の減少や競争激化が起こる中でも競争力を落とさないどころか逆に高めるような、そのようなチーム力アップに貢献することです。

米倉:グループ名のCIは「Collaborative Intelligence(コラボレーティブ・インテリジェンス)」の頭文字から取った言葉で、人とAIがお互いの知識を補完し合うとの意味で、私たちの取り組みの根幹そのものでもあります。

─今年の4月に発表したシス研の中長期目標である「未来目標」の②「業務を理解・実行する人工知能」の領域にも重なりますね。

図6

人は仕様書を書くだけ――
あとはAIが自動でシステムを構築する未来が究極の目標

─Curatisの現況について聞かせてください。

坂田:今、まさにお客様の実システムを対象に実証実験を行っているところです。B2Cシステムのアジャイル開発における結合テストにおいて、従来の人が行っていたテストをCuratisが代わりに自動実行する実証実験をしています。

─反応や成果はどうですか。

米倉:成果は正直これから、というところですが、現状、自動実行可能と見込まれる画面テストの8割は実際にCuratisで自動化できるだろう、との手応えを得ています。同時に、足りない機能なども浮かび上がってきたので、その知見を活かしてCuratisの改良を進めています。

─課題などは出てきていますか?

坂田:現在のCuratisのアーキテクチャはあくまでも第一歩として最小限の機能を実現し、価値を検証することを優先した設計のため、正直、洗練されているとはいえません。具体的には、パフォーマンス、運用保守性、セキュリティ面などです。今後は導入・運用・改良しやすいアーキテクチャにブラッシュアップしていくと同時に、 NSSOLの全システム開発プロジェクトでCuratisが活躍している状況に持っていくことが、当面の目標です。

米倉:次のステップとしてはテスト仕様書を自動作成できるAIなどを開発したいと考えています。

─もっと大きな話になりますが、設計業務自体の自動化などはどうですか?

坂田:人が仕様書を書いたらあとはAIが自動で読み込み、システムの開発まで担ってくれる。最終的には、そこまでのレベルの自動化ツールを開発できればと考えています。

関連リンク