検索
特集

2022年、開発プロジェクトの4割がAIをチームメンバーに加え、AIを活用したテスト自動化ツールを使う――GartnerAIは開発とテストをどう変えるのか

「AIは開発者のコード生成をどう変えるのか」「AIベースのツールは開発チームのテストをどう変えるのか」。Gartner バイスプレジデント アナリストのマーク・ドライバー氏が行った講演の内容をダイジェストでお届けする。

Share
Tweet
LINE
Hatena

 ガートナー ジャパンが2019年3月12〜13日に開催した「エンタプライズ・アプリケーション戦略 & アプリケーション・アーキテクチャ サミット 2019」において、AI(人工知能)を用いたアプリ開発に関するセッションが実施された。Gartner バイスプレジデント アナリストのマーク・ドライバー氏が行った講演「人工知能はアプリ開発をどう変えるか」の内容をダイジェストでお届けする。

AIのインパクトを知るための4つの論点

 AIはアプリ開発をどう変えるのか──。この問いに対する答えを探るためには大きく4つの論点があるとドライバー氏は指摘する。

  1. AIは開発者のコード生成をどう変えるのか
  2. AIベースのツールは開発チームのテストをどう変えるのか
  3. ホスト型AIサービスは、自社ビジネスのアプリをどう変えるのか
  4. AIの民主化によって、開発者はAI対応アプリを開発できるようになるのか

 3と4は、どちらかといえばビジネス側にフォーカスした論点だ。経営層やCIO(最高情報責任者)などがAIをビジネスにどう生かすかを考える際の参考になるものといえる。一方、1と2は、開発者にフォーカスした論点であり、「エンジニアやプロダクトマネジャーが開発の現場でAIをどう生かせばよいか」「AIベースのツールをアプリのテストなどにどう活用するか」などを考える際のヒントになるものだ。ドライバー氏は講演でそれぞれについて同程度の時間を割いて説明を行ったが、本稿では1と2を中心に同氏の主張をまとめる。


Gartner バイスプレジデント アナリストのマーク・ドライバー氏

 ドライバー氏はまず、AIの動向について「5〜6年前では想像もできなかったほど高い関心を集めていて、今も爆発的に伸びている領域です。ただ、科学的、数学的な土台といえるものは何十年も前からあるものと大きく変わっていません。変わったのは膨大な量のデータがあり、それを、クラウドに代表されるコンピューティング能力を使って学習できるようになったことです。AIの中でも機械学習や深層学習の領域が、これに当てはまります。機械学習はビジネスの課題に適用しやすく、そのことが企業からも高い関心を集める要因になっています」と振り返った。

 もっとも、AIが盛り上がる中で、AIに対する懸念や警鐘も出てきた。それは、「機械に意思決定の力を与えると、いずれ人間が機械をコントロールする力を失う」という、いわば“古典的な”懸念だ。こうした懸念は、人間に似たロボットの話だけではなく、ドローンや自動運転車の制御、心臓のモニタリングといった行為にも当てはまる。それらの制御をAIに任せることで、機械が人間の生死を左右することになるからだ。

 「AIは人間の倫理にもつながるテーマ性を持っていますが、エンジニアリングの手法としてソフトウェア開発の現場で大きな役割を果たすことが期待されています。それが『AIは開発者のコード生成をどう変えるのか』『AIベースのツールは開発チームのテストをどう変えるのか』という2つの論点につながっています」

2022年、新規アプリ開発プロジェクトの40%でAIがチームメンバーになる

 1つ目の論点についてドライバー氏は、まず「2022年までに新規アプリ開発プロジェクトの少なくとも40%で『仮想AI共同開発者(AI co-developer)』がチームメンバーとして活用される」というGartnerの予測を挙げた。

 「AIを使うことによって、設計、テスト、実装、構成などプロセスで支援を受けることができます。現在のビジネス環境は急激に変化しており、ソフトウェアをビジネスのスピードに合わせて提供することはだんだん難しくなってきています。そのためにサービスやソリューションの構築を自動化していくことが求められており、その中でAIが果たす役割が大きくなっているのです」

 どのような領域でAIが活用されていくかについては「技術的知識の専門性/自律性」と「ビジネス領域の専門性/自立性」の2軸で考えることができる。技術的な専門性は処理のための変数が少ないため、AIが適用しやすい。そのため、まずは技術的な専門性、ビジネスの専門性がともに少なくて済む領域から活用が進み、徐々に技術的専門性とビジネス専門性が求められる領域に広がっていくという。


開発プロセスへのAIの適用(出典:ガートナー 2019年3月)

 具体的には、下記のように適用が進んでいく見込みだ。

  • 仮想インターン(2018年以降適用が始まっている)
  • 仮想データサイエンティスト(2018年以降適用が始まっている)
  • 仮想QAテスター(2019年以降適用が始まる見込み)
  • 仮想ソフトウェアエンジニア(2020年以降適用が始まる見込み)
  • 仮想ビジネスアナリスト(2022年以降適用が始まる見込み)
  • 仮想アーキテクト(2023年以降適用が始まる見込み)
  • 仮想ソリューションアーキテクト/開発者(2025年以降適用が始まる見込み)

 それぞれにおける作業内容としては「補助付きでの開発とテスト」「自動化されたテストとコード生成」「自動化されたアーキテクチャ設計とデータ解析」「補助付き/自動化モデルによるコーディングのリプレース」などとなる。

AIは開発者のコード生成をどう変えるのか

 「AIによる共同開発者がチームメンバーに加わることで、より大きなプロジェクトを少数のエンジニアで進めていくことができるようになります。これによって人間のエンジニアはより付加価値の高い領域にフォーカスしていくことができるようになります」

 AIがスマートになっていくにつれ、人間とAIの関係は『鍛冶屋における親方と弟子』の関係に近づいていくとドライバー氏は話す。これは、弟子が親方の後ろ姿を見て育つように、AIが人間の作業の“まね”から始めて、いずれ親方と同じような作業ができるようになることを指している。

 「今から数年後には、AIは、技術的な専門性とビジネスの専門性の両方を兼ね備え、ソフトウェアを、よりエキサイティングな形で開発できるようになるでしょう」

 現時点でのAIは、シンプルなアシストを行うにすぎないが、多くの有用な機能が提供され始めている。ドライバー氏はその例として、大量のソースコードを学習してコード生成に役立てるツールを幾つか紹介した。具体的には、「Microsoft Visual Studio」の機能「IntelliCode」、コード解析ツール「source{d}」、開発ツール「AppSheet」における「Spec」機能などだ。

 IntelliCodeは、GitHub上の2000以上のオープンソースプロジェクト(スター数100個以上)を学習して、Visual Studioでの開発時にコードの候補を表示する機能だ。詳細は記事「IntelliCode:AIを利用した効率的なコーディングを実現?:特集:Microsoftテクノロジーの現在と未来 - @IT」を参照してほしい。

 「IntelliCodeは単にコードの間違いやバグを発見するだけではなく、効率よく処理するにはどうコードを変更したらよいかといったパフォーマンスのボトルネックまでアドバイスしてくれます。C#やC++のプログラマーが隣にいてアドバイスしてくれるようなものであり、これはとてもパワフルな機能です。source{d}は、『C#よりもPythonがいい』とアドバイスし、コードのコンバージョンまで行ってくれます。AppSheetのSpec機能は自然言語を理解し、コードが書けない人でもアプリを開発できるようにします。ビジネスアナリストが隣にいるようなものです」

AIはテストをどう変えるのか

 2つ目の論点「AIベースのツールは開発チームのテストをどう変えるのか」については、「2022年までに、アプリ開発プロジェクトの40%がテスト資産の構築、維持、実行、最適化を行うAI対応テストセット最適化ツールを使用するようになる」との予測を挙げて説明した。

 AI対応テストセット最適化ツールというのは、例えば、AIを活用したテスト自動化ツールのことだ。CI(継続的インテグレーション)/CD(継続的デプロイ)の中でテストを自動的に実行するケースが増えているが、自動化することで結果の判断ができないことがある。

 「自動化したテストで誤検知や過検知が発生しても、それが重要かどうかをテストツールが判断することはできません。結果が正しいのか、まずかったのかが曖昧になるのです。そこで機械学習を活用して、テスト結果を学習して何がまずかったのかを判断したり、テストケースの自動生成や自動メンテナンスを行ったりするツールが登場しています」

 例えば、「Functionize」は、回帰テストを自動的に行うツールで、テストケースを学習してメンテナンスを不要にすることができる。これにより、アジャイル開発を加速させるという。

 また「Applitools」は、テストのスクリーンショットを取得して、PCやモバイルデバイスでの表示の違いや、テスト前との違いを見つけ出すビジュアルテストやモニタリングをAIで行うツールだ。ルールを用いたさまざまなテストケースの自動化も可能だ。

 「AIベースのテストのメリットは、人間が確実にはできないことを可能にすることです。また、テストをより迅速に実行できるようになり、ルール駆動のテストを実践することも可能になります。今後は機械学習とテストが融合した形で利用されるシーンはますます増えていくでしょう」



 こうした流れの中で、データサイエンティストとアプリ開発者の役割も融合していく。ドライバー氏は、アプリ開発の今後について次のような展望を示した。

 「現在、データサイエンティストはモデル構築に対する責任を持っています。一方、アプリ開発者はプログラムに対する責任を持っています。今後は、そうした役割はなくなり、アプリ開発者がデータ解析を行ったり、データサイエンティストがアプリ開発に携わったりするようになります。Gartnerでは、2022年までに新規開発プロジェクトの30%はデータサイエンティストとプログラマーの共同チームが提供するAIコンポーネントが含まれるようになると予測しています。お互いの役割の融合が今後ますます進んでいくのです」

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る