SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine(コードジン) ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

AI時代のソフトウェアテスト技法活用法

AIで「世界一難しいテスト技法」の敷居を下げる──面倒だった原因結果グラフ法をお手軽に

AI時代のソフトウェアテスト技法活用法 前編

「原因結果グラフ法」でAI活用を実践

 それでは以下に実際の手順を示します。「原因結果グラフ技法」をやってみましょう。

 原因結果グラフ技法は、ソフトウェアテストの国際規格ISO/IEC/IEEE 29119の中にも示され、テスト設計技法として知られているものです。規格に示されている技法の中でも、正しく使いこなすのが最も難しい手法のひとつと言えます。

 「よりによって、なぜそんな厄介な技法を選ぶのか?」と、思われるかもしれません。しかし、AIとツールの登場によって、その扱いやすさが一変したことをぜひ知っていただきたいのです。テストだけではなく、コードの複雑さを縮減することにも役立ち、プログラマーの方にも興味を持っていただけるものと思います。

 さて、この技法がなぜ難しいのかというと、グラフからデシジョンテーブルを導く手順や、そもそも原因結果グラフ(モデル図)を描くのが一番大変だという人が多いようです。

 しかし、グラフからデシジョンテーブルを導く手順はツールがやってくれます。無料かつローカルで動くものが公開されているので、セキュリティ上の心配も不要です。ツールとしては、「CEGTest」がよく使われていましたが、今は「NeoCEG」が公開されていて、無料でお使いいただけます(実はこのツールの作者は本稿の著者です)。

 また、原因結果グラフ(モデル図)を描くのも、今や自分で描く必要はありません。AIに描いてもらえばよいのです。簡単にできるので、以下に手順を示します。

 まずは何か題材が必要なので、次の表に示すような遊園地の料金システムをグラフ化してみましょう。

ある遊園地の料金システム(出典:秋山浩⼀『組合せテストの設計』情報処理 Vol.49 No.2 Feb. 2008)
ある遊園地の料金システム(出典:秋山浩⼀『組合せテストの設計』情報処理 Vol.49 No.2 Feb. 2008)

※六歳でまだ小学生でない人はどうなるのかと、気になる方もいらっしゃるかもしれません。しかし、その条件範囲を特別扱いしたいわけではないと思います。意図を確認して、境界の表現を修正すればよいだけのことでしょう。「未就学児」という表現は一般の直感に反して解決にならないようですし、元の論文も本稿もそこに焦点はありませんので、そこには深入りしないことにします。

 まず、2つのファイルを手元に用意します。ひとつは「NeoCEG_DSL_Grammar.txt」というファイルで、これは先のNeoCEGのページで右上の「?」をクリックすると、プルダウンメニューが出てきて、その中の「Download DSL Grammar」を選ぶとダウンロードできます。

 もうひとつは、上記の題材です(画像をダウンロードすれば簡単でしょう。もちろん、お手元にある何らかのシステムのモデル化したい一部分の要求仕様でも構いません。画像よりも自然言語表現されているものが一般的でしょう)。

 生成AIに用意した2つの情報を与え、次のプロンプトを入力します。

AIに与えるプロンプト例

 添付の画像に示される仕様について、原因結果グラフ技法でテスト設計を行います。原因結果グラフ技法はあなたもご存知のはずのソフトウェアテストの国際規格ISO/IEC/IEEE 29119 Part4の中にも示されているものです。

 PlantUMLやMermaidのように、言語で表現すれば原因結果グラフを描いてくれるNeoCEGと呼ばれるシステムがありますので、あなたは添付ファイルのNeoCEG_DSL_Grammar.txtに示されている文法に従って言語表現してください。

 プロンプトを読めば何をしているかわかっていただけるものと思います。要求仕様を与えた文法に従った表現に書き換えてもらっているだけです。LLMは言語の変換が得意なので、その能力を活用します。

 得られた出力をクリップボードにコピーして、NeoCEG画面下部の「NeoCEG Language」のタブを開き「Paste CEG Definition」ボタンを押すと上部にグラフが描画されるはずです。

NeoCEGによるモデル図作成
NeoCEGによるモデル図作成

 もちろん、AIの出力が正しいとは限りません[注1]が、だいたい出来上がった状態からレビューで修正していく活動にすぐに入れます。「誰か描いてくれないかな、誰か」問題は解消されます。

[注1]筆者は、Claude Sonnet 4.6、Codex 5.5、Gemini Flash、Copilot smartなどで実際に試してみました。Codexはほぼ正解を出しました。ClaudeやGeminiはわずかな修正が必要でした。確率的な動作をするので、数回やり直してみるのも良いかもしれません。

NeoCEGによって原因結果グラフ法を実現する流れ
NeoCEGによって原因結果グラフ法を実現する流れ

 グラフの表記方法やテストケースの減らし方については、本稿では説明しません。すでに以下の別稿や良書で詳しく解説されていますので、そちらを参照してください。

次のページ
原因結果グラフは設計モデル

この記事は参考になりましたか?

この記事の著者

林 祥一(オーティファイ株式会社)(ハヤシ ショウイチ)

 NTTソフトウェア、富士ゼロックスのシステム技術研究所等を経て、2025年に現職のオーティファイ株式会社に入社。オブジェクト指向言語拡張によるマルチエージェントシステムやCSCWの研究などを起点に、ITアーキテクト兼商品企画を中心にキャリアを築く。エンタープライズ領域における研究、商品企画、ビジネス分析、要求開発、設計、開発、プロモーション、ソリューション営業のほぼ全工程に従事。2010年にソフトウェアテスト技...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/28931 2026/07/28 09:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー