生成AIで複雑化するテストプロセスとソフトウェア品質
セッションの冒頭、高橋氏は「AIの品質保証は、今後かなり面倒になる」としたうえで、「AIの台頭がさらに進むと、品質保証にかかるテスト費用は増える。このテスト費用はここ30年変わらなかったが、開発者やプロジェクトの管理者は今後かなり痛い思いをするだろう」と切り出した。
Microsoft Copilotのラボで使われる単体テスト生成ツール「TestPilot」においても、生産性が数十%上がっても「Copilotの生産性には全く追いつかない状況にある」という。その理由として、高橋氏は「テストプロセスの複雑さ」「見るべき範囲の広範さ」「機能品質を担保することの難しさ」の3点を列挙した。
生成AIを利用することで開発の生産性やソースコードの凝集度は上がるものの、現状では人の書いたコードと生成AIの書いたコードのどちらが「正しい」コードなのかを判別できないのだ。さらに、AIが生成するソースコードは比較的小さいものの、そのコードでやれることは多岐にわたる。こうしたコードを生成するAIを、高橋氏は「複雑で気まぐれ」と評価する。
マイクロサービス化や仮想化などの潮流も、こうした状況に拍車をかける。「自分の知らないところでさまざまなものが動いて、どこかに渡っていく」(高橋氏)ため、モジュールが増えて巨大化したソフトウェアやシステムにおいては、テストを行うシナリオケースの数も膨大になる。こうしたケースの発注コストは莫大なものになるが、高橋氏は「コストが膨らむだけならまだしも、テストが終わらないという事態に陥る可能性もある」と指摘する。
生成AIの問題点は技術的範囲にとどまらない。生成AIの台頭に合わせ、ヨーロッパを中心に個人情報の観点から法規制が進んでおり、なかでもEUで制定された「EU一般データ保護規則」(GDPR;General Data Protection Regulation)は制裁金の額が大きいという。
たとえば意思決定の自動化と個人データを自動的に取り扱うプロファイリングにおいて、個人データを基にした意思決定をAIに行わせると、何十億〜何百億規模の賠償金が課される可能性があるのだ。
システムやソフトウェアのみならず、「AI自体のテストも非常にしにくい」と語る高橋氏。AIの品質保証については、AI製品のテストとAIを利用したテストに加え、シフトレフト・シフトライトのアプローチも加わることでプロセスはより複雑化してしまう。高橋氏は「データサイエンティストがモデルを書いているときに、バグを発見できるエンジニアはほとんどいない」と語る。
開発フェーズによってテストの期待値が変わってくる可能性がある以上、「実際のユーザーデータなどを使ったテストを行い、そこで判明したバグをすぐに修正する」という形でのシフトライト戦略をとらざるを得ないのが実情だ。