AIが品質評価を変える!もう見逃さない、ソフトウェアの「品質問題」

はじめまして、Tak@です!普段は生成AIを活用したWebサービスの開発に携わるシステムインテグレーターとして、技術に裏打ちされたサービス設計を心がけています。

このコラムでは、皆さんにAI技術の面白さや実用性を分かりやすくお伝えできればと思っています。

今回のテーマは、AIがソフトウェアの品質評価にどう役立つのかを考察します。

特に、これまで人手に頼っていた設計ドキュメントのレビュー業務が、AIの導入によってどのように変わり、品質が向上し、作業が効率化されたのか、株式会社日立ソリューションズでの事例を中心に具体的な数字を交えてご紹介します。

AIが品質保証の分野に新しい価値をもたらす「AI4QA」という考え方や、その中心技術である「BERT」についても、専門知識がない方にも理解しやすいように解説していきますので、ぜひ最後までお付き合いください。

ソフトウェア品質評価の「困った」をAIで解決する

ソフトウェア開発において、「品質」は常に重要な課題です。特に、設計ドキュメントのレビューは、その後の開発工程の品質を左右する大切なプロセスですが、このレビュー作業には長年、「困った」と感じる点が少なくありませんでした。

人手に頼るレビューの課題

ドキュメントレビューを人手で行う場合、大きく二つの側面で課題がありました。

量的側面:大量ドキュメントと限られたリソース

現代のソフトウェアは非常に大規模で複雑です。

そのため、設計ドキュメントも膨大な量になりがちですが、限られた人員と時間の中で、これら全てのページを隅々までチェックするのは、とても大変なことです。

見落としが発生したり、レビューが不十分になったりする可能性がありました。

質的側面:レビュアーの知識や経験への依存

レビューの質は、担当するレビュアーの知識や経験に大きく左右されるという問題もありました。

ベテランの技術者であれば深い洞察に基づいた指摘ができる一方で、経験の浅い担当者では見つけられない問題があるかもしれません。

これでは、レビュー結果にばらつきが生じ、品質の「ムラ」につながってしまいます。誰がレビューしても、常に安定した品質を確保することは難しいのです。

従来のキーワード判定方式の限界

このような課題を解決するため、これまでは「キーワード判定方式」という仕組みが試されてきました。

これは、あらかじめ定義されたチェックルールに従って、ドキュメント内の特定のキーワードを探し出す方法です。例えば、「○○の場合」という表現が2回以上続く文章は、条件が複雑でバグにつながりやすいかもしれない、といったルールを設定するのです。

オープンソースのドキュメントチェックツールであるRedpenなども活用されました。

しかし、この方式にはいくつかの大きな課題があります。

  • キーワード定義の煩雑さ:チェックキーワードを事前に検討し、一つ一つ登録していく作業は、非常に手間がかかります。
  • 文脈理解の困難さ:最大の課題は、キーワードだけを拾うため、文章の「文脈」や「意味合い」を正確に理解できないことでした。例えば、「〇〇の場合」というキーワードが含まれていても、それが本当に問題のある表現なのか、単にその文脈では適切な表現なのかを判断できません。
  • 高い誤指摘率:この文脈理解の難しさから、日立ソリューションズでの試行当初はなんと約90%もの誤指摘が発生したそうです。これでは、指摘を一つ一つ確認する人間の負担が大きく、かえって効率が悪くなってしまいます。

私も以前、複雑な条件分岐が重なる設計書をレビューしていて、自動チェックツールがたくさんの警告を出してきたものの、その大半が誤検知だったことがあり、「もう少し賢く判断してくれたらいいのに」と感じたことがあります。

このような誤指摘の多さは、ツールを使う側のモチベーションを下げてしまう大きな要因でした。

AIが品質評価を変える「AI4QA」の考え方

このような従来の課題に対し、AI技術が解決策として注目されています。特に、AI技術を品質保証のプロセス自体に活用するアプローチは「AI4QA(Artificial-Intelligence for Quality Assurance)」と呼ばれています。

これは、AIを搭載した製品の品質を保証する「QA4AI」とは異なる考え方で、AIが品質保証活動そのものを効率化・高度化することを目指します。

AI4QAとは?

AI4QAの目的は、AIの力を借りて、品質、スピード、コストという三つの要素を同時に向上させることです。

具体的には、これまで人間が行ってきた様々な品質保証のタスクをAIで支援したり、自動化したりすることで、より正確で、より速く、そしてより少ないコストで品質を保つことを目指します。

株式会社ベリサーブの研究企画開発部部長である松木晋祐氏も、AI4QAはAI技術を品質技術にどのように活用していくかという「アプローチ」であると説明しています。

AIの得意な分野を品質保証に持ち込むことで、テスト自動化ツールなどが進化し、「より良いツール」が登場しています。

AIが目指すレビューの姿

AI4QAの考え方に基づき、ドキュメントレビューが目指す姿は、まさに従来の課題を克服したものです。

  • 人手を介さず全ページチェック:まず、全てのドキュメントページを人手を介さずにツールが自動でチェックできるようになります。これにより、大量のドキュメントでも短時間でレビューが完了し、見落としのリスクを減らせます。
  • 誰でも同じ結果、ベテランの洞察を再現:AIが判断基準を持つことで、レビュアーの知識や経験に依存せず、誰がチェックしても常に同じ結果が得られるようになります。さらに、ベテラン技術者が長年の経験で培った「洞察」に基づいた指摘をAIが再現し、より質の高いフィードバックを提供できるようになります。

これは、まさに「品質の均一化」と「熟練の技の共有」をAIが実現するということです。

文脈を理解するAI、「BERT」の力

では、具体的にどのようなAI技術が、従来のキーワード判定方式の課題を解決し、文脈を理解する賢いレビューを可能にしたのでしょうか?

ここで登場するのが「BERT」という強力な自然言語処理モデルです。

BERTとは何か?

BERTは「Bidirectional Encoder Representations from Transformers」の略で、Googleが2018年に発表した深層学習モデルです。

当時の自然言語処理(NLP)モデルの中で最高のスコアを叩き出し、大きな話題となりました。

BERTの最大の特徴は、文章を「文頭から末尾」と「末尾から文頭」の両方向から同時に事前学習するという点です。これまでのモデルは一方向からの学習が主流だったため、この双方向性によって、より深く文脈を理解できるようになりました。

例えるなら、文章全体の意味を両側からじっくり読んで把握する読書家のようなものです。

BERTは、Transformerと呼ばれるモデル構造を基礎としています。Transformerは、単語同士の関連性や重要度を示す「Attention(アテンション)」という仕組みを使って、文脈を高精度で読み取ることができます。

BERTが課題をどう解決したか

BERTを設計レビューに応用することで、従来のキーワード判定方式が抱えていた問題は劇的に改善されました。

  • 文脈理解による高精度判定:BERTは文章の文脈や意味合いを深く理解するため、単なるキーワードの有無だけでなく、その言葉が使われている状況全体を考慮して判定を下せます。これにより、日立ソリューションズでの実証実験では誤指摘率をキーワード判定方式の約90%から、わずか5%まで削減することに成功しました
  • 単語登録不要の柔軟性:BERTは文章を「サブワード」という小さな単位に分解して処理します。これにより、新しい単語や専門用語を事前に登録する必要がなくなりました。どんな文章にも柔軟に対応できるのです。
  • 特徴の自動学習:指摘すべき文章のパターンや特徴をAIが自動で学習するため、人間が複雑な判断ロジックを事前に定義する必要がなくなりました。これにより、準備段階での煩雑さも解消されました。

AI学習データの準備、どうする?

BERTのようなAIモデルを高精度で動作させるためには、質の良い「学習データ」が不可欠です。AIは、与えられたデータ(教師データ)を「例題」として学習します。

学習データの作成には課題がありました。

設計ドキュメントの記載内容に適切な「品質懸念カテゴリ」(例:「あいまい用語の懸念」や「複雑な条件の懸念」など9種類が定義されました)を付与する作業は、専門知識が必要で時間がかかり、1人あたり1日50~80件が限界でした。

そこで、効率的な学習データ作成のために、ある工夫が凝らされました。

それは、オープンデータとして公開されている設計書を、従来のキーワードチェックツールで一度解析し、その結果を目視で精査するという方法です

キーワードチェックツールが問題箇所を強調表示し、品質懸念カテゴリの候補を出力してくれるため、人間はその情報を元に素早く判断・分類できます。

この方法により、1人あたりの作業効率が約6~9倍に向上し、1日450~500件ものデータに品質懸念カテゴリを付与できるようになりました。結果として、71ファイル、約3万2000件の文章データが収集されました。

もちろん、最初の学習データ準備には時間と労力がかかります。この事例では、約8500件の学習データに対して約1.5人月を要したとされています。

しかし、一度学習モデルが構築されれば、その後の精度向上は、文章と品質懸念カテゴリの学習追加のみで容易に行えます。

AI活用で得られた具体的な効果と今後の展望

日立ソリューションズのこの取り組みは、AIがソフトウェア品質評価にもたらす具体的な効果を明確に示しています。

定量的な効果事例:日立ソリューションズの取り組み

基本設計書(約1500ページ)のレビュー工数比較では、驚くべき結果が出ました。

項目人手で対応(時間)BERT活用(時間)削減効果
着眼点に沿ったドキュメントチェック300.0162.0-46.0%
指摘一覧の作成や、質疑事項のやりとり30.017.0-43.3%
合計510.0360.0-29.4%

全体のレビュー工数を29.4%(150時間)も削減できたのです。これは、大量のドキュメントを扱う現場にとって、非常に大きな効果です。

また、品質面では次のような改善が見られました。

  • 指摘再現率:ベテラン技術者と同様に指摘できるかを示す指標で、キーワード判定方式の29.7%に対し、BERTによるテキスト分類では85.7%に向上しました。
  • 指摘見逃し率:見落としなく指摘できるかを示す指標で、キーワード判定方式の69.2%に対し、BERTでは4.4%に激減しました。
  • 誤指摘率:誤った指摘が少ないかを示す指標で、キーワード判定方式の9.1%に対し、BERTでは9.3%とほぼ同等でした。

これらの数字は、AIが単に作業を速くするだけでなく、品質そのものも大きく向上させられることを物語っています。特に、見逃しが大幅に減ったことは、後工程でのバグ発生リスク低減に直結します。

AI活用の様々な可能性

設計レビュー以外にも、AIはソフトウェア品質保証の様々な場面で役立ち始めています。

  • テストケースの自動生成:AIが過去のデータや仕様書を分析し、効果的なテストケースを自動で作り出すことができます。これにより、人間では思いつかないようなシナリオもカバーできるようになります。
  • バグの予測分析:過去のテスト結果や開発履歴を学習することで、AIは将来発生しそうなバグや問題点を予測し、開発者に事前に警告することも可能です。
  • UIの視覚的検証:AIの画像認識技術を使えば、ユーザーインターフェースの見た目の不具合やデザインの不一致などを自動で検出できます。
  • チャットボットでの活用:生成AIを搭載したチャットボットは、川崎市役所の事例のように市民からの問い合わせに自動で回答したり、大学の研究データ管理支援に使われたりしています。特に「RAG(検索拡張生成)」という技術を使えば、学習データにない最新の情報や企業固有の知識も外部データベースから検索して、より正確な回答を生成できるようになります。
  • 欠陥の特定と修正:AIは、コードの欠陥箇所を特定する「欠陥限局」や、簡単な欠陥であれば自動で修正する「自動プログラム修正」にも応用されています。
  • 欠陥報告の管理:大量のバグレポートの中から重複するものを特定する際にも、BERTのような自然言語処理技術が活用されています。

このように、AIは品質保証の多くの工程において、人間の作業をサポートし、より賢く、より効率的な活動を可能にしています。

AI導入の課題とこれから

AIは非常に強力なツールですが、導入にはいくつかの課題も存在します。

  • 学習データ作成の労力:先ほど触れたように、AIの精度を高めるためには、事前に高品質な学習データを準備する労力が必要です。また、ベテラン技術者間でも品質に関する見解が異なる場合があり、その調整が必要になることもあります。
  • AIモデルの信頼性と安全性:AIの出力が常に信頼できるとは限りません。特に生成AIでは、「ハルシネーション」(事実に基づかない情報を生成すること)や、学習データに含まれる偏見が反映されてしまう「バイアス」、さらには意図しない情報漏洩のリスクなども指摘されています。これらのリスクを最小限に抑えるための評価項目やテスト手法の確立が、今後の大きな課題です。
  • 人間の役割の変化と継続的な学習:AIが多くの作業を自動化するようになるにつれて、人間のテスターは単なる「バグ発見者」から「品質コンサルタント」へと役割が変わっていくでしょう。AIツールを使いこなすスキルや、テスト結果を分析して洞察を導き出すデータ分析力、そして開発者とのコミュニケーション能力など、新たなスキルアップが不可欠になります。

これらの課題に対し、AIの学習を継続的に強化し、自動で学習データを追加していく「MLOps(Machine Learning Operations)」の導入や、安全性評価のための包括的なテスト観点表の作成 など、様々な取り組みが進められています。

AIと人間がそれぞれの得意分野を活かし、協力し合うことで、より質の高いソフトウェア開発が実現されていくことでしょう。

まとめ

今回のコラムでは、ソフトウェアの品質評価、特に設計ドキュメントのレビューにおけるAI活用事例を中心に、AIがどのように品質を向上させ、作業を効率化するのかを見てきました。

従来のキーワード判定方式が抱えていた文脈理解の難しさや誤指摘の多さといった課題に対し、BERTのような高性能な自然言語処理モデルが、その「文脈を理解する力」で劇的な改善をもたらしました。

AIがもたらす品質評価の進化は、単に作業時間を短縮するだけでなく、レビューの質を高め、見落としを減らすことで、最終的な製品の品質向上に大きく貢献します。

これは、AIが品質保証のプロセスそのものに深く関わり、その能力を高める「AI4QA」という考え方が、現実のものとなっている証拠です。

もちろん、AIは万能ではありません。

学習データの準備や、AIの信頼性・安全性に関する課題は残っています。しかし、これらの課題もまた、AIと人間の協力によって解決されていくことでしょう。

AIは、私たち人間がより創造的で価値の高い仕事に集中できるような環境を作り出し、品質保証の未来をより明るく、確かなものにしてくれるはずです。

これからのAI技術の進展が、どのようにソフトウェア開発の現場を変えていくのか、私もとても楽しみです。

Follow me!