S
Smarter Business

企業の生き残りにも不可欠!? AI活用によるソフトウェア品質保証の最前線

post_thumb
石川 冬樹の写真

石川 冬樹
国立情報学研究所
アーキテクチャ科学研究系
准教授

形式検証やソフトウェア・テスト技術を中心に、ディペンダビリティ保証のための研究に取り組んでいる。最近は、自動運転に代表されるような、AIを含めた複雑で不確実なシステムのためのテスト技術、およびAIを用いたテスト技術に取り組む。

西 康晴の写真

西 康晴
電気通信大学
大学院情報理工学研究科
情報学専攻 経営・社会情報学プログラム
講師

AIプロダクト品質保証コンソーシアム (QA4AI) 運営委員長、ソフトウェアテスト技術振興協会 (ASTER) 理事長、ISO/IEC JTC1/SC7/WG26国内委員会主査、日本科学技術連盟ソフトウェア品質委員会 (SQiP) 副委員長などを務める。電気通信大学にて、テストや品質保証などについて研究や教育、コンサルティングを行うかたわら、ソフトウェアテストのビジョナリーとして「現場に笑顔を」をキーワードに飛び回っている。

増田 聡の写真

増田 聡
日本アイ・ビー・エム株式会社
東京基礎研究所
AI.エンボディード・ラーニング
リサーチ・スタッフ・メンバー

ソフトウェア・テスト技術を専門として、現在、AIをテストする技術を研究している。最近では、自動運転の画像認識や音声応答システムのテキスト分類などに関するテスト技術の開発に取り組む。

小野塚 荘一の写真

小野塚 荘一
日本アイ・ビー・エム株式会社
GBS IGNITE推進

IBMでソフトウェア・テスト技術の推進を専門としている。テスト自動化、静的解析、組み合わせテストなどのツールを活用し、ソフトウェア開発の効率化、高品質化に取り組んでいる。最近ではAI技術を活用し、より正確なテストの実現に取り組む。

チャットボット、音声によるアシスタント、また最適な調達先選定など、日常生活でもビジネスでもAIが使われ始めている。ユーザーに利便性をもたらす一方で、AIは責任の所在が曖昧であるためAIを組み込んだ製品やサービスの品質保証が課題に持ち上がり始めた。同時に、品質保証の開発サイクルでもAIを取り込もうという動きがあり、IBMは2017年に「IBM IGNITE」という構想を打ち出している。

THINK Businessでは、機械学習工学 (MLSE) 研究会を共同で立ち上げた国立情報学研究所 アーキテクチャ科学研究系 准教授の石川冬樹先生、AIプロダクト品質保証 (QA4AI:Quality Assurance for AI) コンソーシアムの共同発起人で電気通信大学の講師を務める西康晴先生を招いて、AI製品の品質保証、品質保証におけるAI活用の2つについて話を聞いた。

AIの浸透に伴って発足した2つの研究会


石川 冬樹氏(左)と西 康晴氏(右)の写真

――本日はお集まりいただきありがとうございます。AIと品質保証という大きなテーマについてお話をお聞きしたいと思います。まずは、機械学習工学研究会とAIプロダクト品質保証 (QA4AI) コンソーシアム、それぞれが現在取り組んでいることについて聞かせてください。

小野塚 ビジネスの分野でAIを活用する例として、オートデスク株式会社の製品とIBM Watsonを使った調達プロセスの最適化などが挙げられます。CADで設計した部品について蓄積された膨大なデータからから、最適な調達先を選ぶなどの仕組みを構築しています。その先の梱包や流通についても、データが蓄積されていけば最適化が可能になるでしょう。

増田 調達のような複雑なプロセスで、これまで人間がやってきた作業がAIに置き換わりつつある中、「AIは万能」という過度な期待もあります。そこで先生方の取り組みが重要になってくるのだと考えます。

石川 データから学習する機械学習や深層学習などが、第3次とされる現在のAIブームを牽引しています。しかし、現在のAIは人の知能を模倣するところからスタートした技術研究であり、ビジネスのために何かを作る発想が基本的に欠けています。ビジネスに向けてシステムを作るとなると、これまでの作り方では通用しないことが出てくるわけです。そこで、機械学習ではなく機械学習工学という新しい学問の分野が必要だと思い、研究会を立ち上げました。これが、機械学習工学 (MLSE) 研究会です。

もう少し説明すると、これまでのシステムは人がプログラムを書いており、成果物が何をするかを人が設計しています。例えば税金の計算だったら、年収が一千万円以上の人なら何パーセントの税率を掛けて計算するというルールがあり、それをプログラムに落とすわけです。

しかし、機械学習を使うと異なります。この画像のここに歩行者が写っている、この画像はパンダ、など具体例がたくさんあり、画像からどうやって歩行者を見つけるのかのルールは勝手に掘り出してくださいということになります。最終的にできあがったソフトウェア製品やプログラムの中には“これはパンダ”と見つけ出すルールが入っていますが、それはエンジニアが設計したものではありません。データを与えることで間接的に誘導するという形です。

これまでとは作り方が違うため、AI製品を自分たちで作っておきながら、何ができるのか、何ができないのか分からない、断言できないというブラックボックスの問題が出てきています。

以前から機械学習工学のコンセプトは提唱されていましたが、この問題に悩んでいるエンジニアが多いことがわかり、2018年春に日本ソフトウェア科学会の研究会として正式に立ち上がりました。ここではガイドラインを作るよりも、イベントなどの場を提供したり、論文を読んだりする勉強会、パネルの開催などが主な活動となります。

――西先生のAIプロダクト品質保証 (QA4AI) コンソーシアムは、より品質保証に特化したものとなりますか?

西 MLSEが機械学習システムを作る技術も品質保証の技術も全て含んでいるのに対し、AIプロダクト品質保証 (QA4AI) コンソーシアムは、MLSEと深く連携する形で、AIプロダクトの品質保証に取り組むことになります。発足は2018年4月で、石川先生にもご参加いただいています。学術界の方のほか、さまざまな企業、例えば工場で生産工程に関する設備やシステムを作る企業、家電を開発する企業、クラウドサービスを提供する企業などが参加し、オープンかつ技術志向な形で進めています。現在は、安心して機械学習のシステムを出荷するにはどうすればよいのか各社で議論している段階です。

そもそも、品質保証は難しい仕事です。早く出荷したいというニーズを持っている開発組織に対し、顧客に安心して使ってもらうためにはもう少し検証した方がよいのではとブレーキ役を果たすのが品質保証です。このバランスがいい会社とよくない会社があり、ブレーキが強すぎる会社の場合には、品質保証チームが開発の邪魔をしてしまいます。

機械学習システムには、MLSEで盛んに議論されているように、こう作ればうまくいくという決め手がない状況です。当然ながら品質保証にも、ただでさえ難しいのに決め手がない。そのため、日本の企業や組織はリスクを避ける方向に動いてしまう傾向があります。ところが、AIや機械学習は競争が活発な技術なので、競争のためにも、技術進化に対応して新しいシステム、製品、サービスを出さなければならない。このように、品質保証が不必要に足を止めるのもよくないが、お客様にご迷惑をかけるような品質でもだめというジレンマの中で、ちょうどいいバランスを考えることが大切になっています。

AIへの取り組みにおいて生じる企業間格差

石川 冬樹氏の写真

――企業におけるAIの利用はどのぐらい進んでいるのでしょうか? 

石川 4割が何かしら手をつけているという調査があるそうですが、製品に至らずPoC (Proof of Concept:実証実験) で終わっているところも含まれているようです。まだ何をすればいいのか分からなかったり、自社にとって何がいいAIになるのかを決めかねていたりし、コストをかけるのに躊躇している状況も多いと思います。

スキルの問題もありますね。特に経営者、上層部とエンジニアとの間に知識の開きがあるところが多い。AIに対して過剰な期待を抱く一方で、自社にとって何がいいのかを決められない状況が生まれています。

西 AIのソリューション、サービス、製品は増えています。一方で、機械学習システムを作るにしても購入するにしても、きちんと運用するにはデータが必要です。日本企業では業務が属人化してしまっているところが多いので、きちんとしたデータがないケースも少なくない。デジタル化の度合いが低い点が問題です。

これは現在の競争環境における本質的な問題で、そこに気が付いてきちんとやろうとする企業もありますが、どちらかというと少数派です。“AIを使えばなんとかなるんじゃない”という考えの会社が多く、ギャップが大きい。ですから二極化していくと思います。

石川 二極化はあちこちで課題に挙がっています。AIだけではなく、技術の受け入れに対する企業の文化も関係ありそうです。

増田 AIにも得意分野があるので、分野の二極化もあるかもしれません。例えば、画像認識はかなりのレベルに達しており、工場出荷のところで画像を見ながら不良品を検出する仕組みは実用化されています。一方、経営判断や採用判断にAIを適用することはできますが、結果が正しいかどうかわからない、また公平でない結果も出てきます。とりあえずやって結果は出るが、問題も出ているという段階です。

西 将来的にはU字型になっていくと思います。古参企業でも常に変化する文化を持ちトップを走ってきた企業は、AIに限らずいつの時代でも常にトップを維持する。一方で、新興国や新しい産業は古いシステムや仕組みといった“負の遺産”を持っていないので、最先端の技術を買ってきてすぐにビジネスができる。当然競争力は高いわけです。この2つがU字型の上の部分です。

U字型の下の部分にあるのが、中途半端に今までの負の遺産を引きずりながら、それを活用することも難しく、かと言って捨てる勇気もないタイプの会社です。多くの日本企業がここに該当します。その中でも、さらにU字ができているように感じます。

IBMが取り組むAI活用による品質保証


小野塚 荘一の写真

――ソフトウェアのテストや品質保証は、AIによりどのように変わりつつあるのでしょうか?また、新しい状況下で、IBMはAIを活用した品質保証にどのように取り組んでいますか?

西 この分野は、大きな視点では「AI4SE」 (AI for SE: AIのソフトウェアエンジニアリングへの応用) として研究が進んでおり、品質保証に限ってみると「AI4QA (AI for QA)」というキーワードで世界でも日本でも盛んに議論されています。企業側も動いており、IBMなどの大手、そしてベンチャーも立ち上がっています。

小野塚 これまでもテスト自動化の試みはされてきましたが、AIはソフトウェア開発、ソフトウェアのテストや品質保証でも活用できると考えられています。

IBM IGNITEでは、「教師あり学習」で過去のアプリケーション障害の特徴を学習し、障害の早期発見、予防につなげる取り組みを始めています。

各プロジェクトを見ると、きちんと障害を管理しているところと、有識者や専門家の頭の中だけで解決してしまい属人化が進んでいるところと大きく分かれます。「教師データ」がちゃんと残っているところと、残っていなくて「教師データ」を作るところから始めるところがあるというのが現状です。

石川 機械学習でソフトウェアの品質保証を行うことは、学術界では10年前からブームで“マイニング”と言われています。マイニングとは採掘の意味で、何か出たらラッキーという分野です。あまり安定して使えないかもしれない段階なので、データを取って可視化して、それを見て人が判断する方法でもいい。結局、データを見る文化があるかどうかという文化の話にたどり着きます。

IBMが障害データベースに取り組んでいるのはすごいことですね。特に、障害情報は人が書いている(=機械的ではない)ものなのでブレが出てくる。本当に大切なところは人が書いたものだということも分かってきています。コーパス(自然言語処理のための言語資料)の作成などの作業が必要になると思いますが、そこが解決できると素晴らしいです。技術的にはぜひ進めてほしいです。

小野塚 人がテスト作業をすると、“昨日と同じ操作だから今日も問題ないに違いない”などと思い込みや心理的なバイアスが入って、見逃しが起きる可能性があります。でも、AIでは、心理学でいう人のバイアスは入らないのではと思うのですが、そのあたりはどうお考えですか?

石川 訓練するデータが、例えばバグが実際にあったかどうかというデータであれば、そういう思い込みのないAIになるし、人がやっていたことを真似るように訓練すると、人がやっている思い込みを真似するAIになる。そこが難しいですね。

――IBM IGNITEは、ソフトウェアの品質保証を自動化する構想を打ち出しています。

IBM IGNITE価値実証の概要図

小野塚 現在、ソフトウェアのテストでは、ブラックボックステストとホワイトボックステストの2つの分野で自動化を推進しています。

ブラックボックステストはソフトウェアの機能をシステムの外側からデータ入力して出力結果を確認するアプローチで、ホワイトボックステストはソースコードそのものの品質を測定してどこが悪いのかを見つけるアプローチです。両方とも重要なアプローチですが、特にホワイトボックスの重要性は軽視されているように思います。

また、これらのテストはCI(継続的インテグレーション)に組み込んで繰り返し継続的に自動でテストを行うことが重要です。手作業では間違いが起こるのでなるべく自動化を活用し、効率よく高品質のソフトウェアを作るのがIBM IGNITEの取り組みです。

このような取り組みを通して自動化の範囲を拡大することで、見つかったエラーや障害などの情報が蓄積されます。これを「教師データ」とすることで、AIを使って障害がどのぐらい出るかの予測やエラーの早期検出が可能になると考えています。

石川 これまで人が決めたものを実行することだった自動化から、何をすべきかもAIが決めるようなテスト、品質保証の技術が開発されてきています。2018年には、FacebookがAIを使ったテストツールを使っていることをリークされて話題になりましたね。

そこから先どこまで適用できるかは、人間の勘が必要になってくるかもしれません。

小野塚 システム開発でAIを活用するためには、システム開発のサイクルを短期間で繰り返すアジャイル開発やDevOpsの適用が必須と考えています。

石川 AIの難しさは不確かさで、PDCAサイクルを回すしかない。最初に作るときに、最大限確認して想定を尽くしたから以後何もしなくても大丈夫という考えでは品質保証は無理です。ずっと進化し続ける必要があり、その準備として自動化やDevOpsが重要になりますね。実際、ML DevOps、AI DevOpsなどのバリエーションが出てきており、今後も進化すると思います。

西 RPA、テスト自動化、品質保証の自動化やAI化、DevOpsとCIなどありますが、これらで忘れがちなのは、全てソフトウェアということです。

RPAで特に顕著ですが、手元のビジネスプロセスをRPAで自動化した結果、RPAのロボット群がたくさんできてしまい、わけが分からない状況になる。ソフトウェアのテスト自動化も同じことが起こる可能性がある。大切なのは、大規模なテストをどう開発し、管理するかという技術です。

ここも人手では無理で、入れ子の構造になるでしょう。単に目先のテスト自動化だけしか請け負えない会社と、テストの自動化やAI化に加えて、テストの大規模化に対応できる技術まで持つ会社とでは、顧客にとってのメリットは大きく変わってきます。

AI社会への適応が企業の未来を左右する

増田 聡の写真

――品質保証に限ってみたトレンドはありますか?

西 品質保証は長らく人手に依存してきました。ちゃんとやっていたことを確認すれば品質は確保できるのではないかという基本的な発想があります。ところが、機械学習の時代になると、ちゃんとやっていることを確認するだけの人は不要になり、さまざまなコンピュータや機械学習の技術、ソフトウェア工学の技術をフルに生かして、最先端の技術を使って開発や品質保証をするという動きが、特に最先端の企業で起きています。その結果、最先端の技術を取り込もうと産学連携が活発になっています。

これはいくつかの変化をもたらしています。まずは、スキルの高い人を高い報酬で採用するトレンドが起きています。次に、開発の内製化です。そんな中で、研究開発機能を持たない会社やソフトウェア開発の会社は淘汰されるのかもしれません。研究開発と現場が遠い会社も少しずつ淘汰されるでしょう。

増田 IBM Researchでも、「信頼されるAI (Trusted AI)」の中でAIの品質に取り組んでいます。これらをもとに、お客様と共同で技術開発を進める例が増えています。

西 御用聞き型のシステム開発は今後厳しくなるでしょう。高いスキル、高い生産性、高い品質の機械学習システムを作ることができる会社は、受注価格も単価も上がります。そうではない会社は相対的に下がります。非常に厳しい競争になるでしょう。

石川 MLSEでのアンケートで、「機械学習やAIを使って作るときに何が一番難しいか」を聞きました。一番多かったのは「顧客とのやりとり」で、今までのやり方が通用しないという人が4割を超えていました。

なぜかというと、AIは使ってみないと分からないという点、そして本当に人がやりたいことをやるための発注が難しいという点があります。単なる税金の計算ではなく、「本当にやりたいことは何か?」まで踏み込まなければならない。契約も同じで、作ってみないと精度がどのぐらい出るのかわからないので、“これぐらいの品質のものを半年で作ります”という約束ができません。“半年一緒に頑張りましょう”という契約になるわけです。

ベンダーの意識も変わる必要があります。本来やらなければならないことをやらなければならない時代になったということ、スピードの世界になったということを理解する必要があります。

――今後さらにAIが発展する時代、ソフトウェアの品質改善の取り組みはどう変わっていくのでしょうか?企業は何をすべきでしょうか?

石川 技術を強くしていかないといけないと思います。技術を早く受け入れなければならないし、作る立場のこと考えずに文句ばかり言ってもしょうがない。価値を生み出すための活動に自分たちも参加することが必要です。そして、速度と技術は企業にとって必要不可欠になります。

小野塚 開発の速度、ビジネスの要求、活用する技術――この3つの中で、どこまで品質を追求すればいいかのバランスが重要になるのではないでしょうか。バランスが取れるのは人間だからこそかもしれませんね。

西 品質保証の技術力やノウハウが自社にあると思っている人は多いようですが、明確に理解している人は少ないと思います。今後技術が発展していく中で、より人間が人間らしく、人間しかできないことは一体何なのか?ということに向き合うことになります。その中で人間は、機械と一緒に競争をしながら品質保証を進めていく形になると思います。逆に言うと、それができない人や会社は厳しくなります。仕事を矮小化したり、考えない方向に仕事をシフトさせたりする方が楽かもしれませんが、それでは生き残れない。

私は、AIは人間の仕事を奪わないと考えます。AIは人間をより人間らしく、価値を高めてくれるが、人間らしく働こうとしていない人たちは淘汰されていきます。

増田 品質改善を考えたとき、品質とは目標があり、現状からその目標に近づけることです。AIを使ったシステムの品質を対象にすると、目標がビジネス的にも技術的にも何なのかがはっきりせず、そこから始めなければならないのが現在の状況です。まずは、目標をどう定めるか、現状をどう近づけるかを考えることからでしょう。

目標を定める、現状を把握する、改善する、それぞれで技術的な方法が必要だと思います。AIが注目される中で、IBMは将来ずっと残るような技術を作りたい、そして皆さんが使えるような実用的な技術として広めることができれば幸いです。