はじめに
「生成AIをテスト設計で用いた事例が出てきてますが、使う際に注意が必要だと思っています。」という言葉から始めた連続ポストをX上に行った*1のですが、しっかりと記録を残した方が良いと感じたので、本記事を書いています。
ちなみに、一昨年にも生成AIのテスト設計への活用について書いてます。
本記事で伝えたいこと
結論は以下の2点です。
- 生成AIはシレッと嘘を混ぜてくるので、それを見極める力が必要
- 直交表を用いたテスト設計は苦手?
目次
前提
予めお断りしておくと、
- 生成AIを使うこと自体を咎めたいわけではない
- 記事にして発信すること自体は素晴らしい
という話が前提です。
そのうえで今回の記事では、とある記事に書いてあった直交表の使い方に疑問があるので言及していきます。
今回の題材
題材となる記事
この記事の記載について言及していきます。
言及の対象部分
以下の部分が言及の対象です。
因子間の組み合わせテスト
チケットの購入パターンを指示してみます。
以下の因子から組み合わせによる購入パターンのテストケースを作成してください。
結果
![]()
特に指示はしていませんでしたが、ChatGPTは組み合わせ最適化のアプローチとして直交表を採用した結果を返してくれました。
テストケース作成に生成AIを導入した効果と課題 - asoview! Tech Blog
直交表の特徴
出力内容が直交表だったので、改めて直交表の特徴を挙げてみます。特に、今回採用しているのは強さ2の直交表のようなので、強さ2の直交表の特徴について挙げます。
- 二因子間の水準の組み合わせが必ず1回以上現れる(オールペア法の特徴)
- 二因子間の水準の組み合わせが同一個数現れる
よって、直交表はオールペアの中でも限定された特殊形であると見ることもできます。
指摘内容
今回指摘したい内容は以下の2点です。
- 水準の組み合わせが適切に作成できていない
- 適切に直交表を使いこなせていない
指摘内容1:水準の組み合わせが適切に作成できていない
1つ目の指摘は、「水準の組み合わせが適切に作成できていない」です。
今回の対象記事の内容をみると、「二因子間の水準の組み合わせが必ず1回以上現れる」が満たせていません。具体的には、「券種」と「決済手段」の組み合わせとして、「大人」かつ「電子マネー」が出現していないことが分かります。(赤囲み部分)*2
かつ、出力結果の最後にポイントとして「ペアワイズ法により、2因子の組み合わせは全て含まれる」と書いていますが、このポイントを押さえられていない(嘘の報告をしている)と言わざるを得ません。
指摘内容2:適切に直交表を使いこなせていない
2つ目の指摘は、「適切に直交表を使いこなせていない」です。
今回の直交表の例は、「2水準、3水準、2水準、2水準」です。(決済手段は3種類、それ以外の券種、ポイント利用有無、クーポン利用有無は2種類ずつの水準になっています)
一方、L8は2水準系の直交表です。つまり、今回のように3水準以上の因子が入っている場合に使うことはできません。*3*4
余談
直交表について、個人的には以下のような見解を持っています。
- 生成AIと直交表は相性が悪いのではないか
- (現状の)生成AIの作成する直交表は基本的に信じない方が良いのではないか
この点については、以前に記事を書いた時にいただいたはてブのコメントが的を得ていたので、引用します。
AI駆動開発と現状とのギャップを示す - ブロッコリーのブログb.hatena.ne.jp正しさを担保するところを、正しい結果を出すことが苦手なものに頼るってそもそもどうなんだろうね
2023/02/27 19:27
おわりに:専門家でも生成AIの不備を見抜くことが難しくなっている
最後に「生成AIは解法を示してくるが、その間違いを見抜くことは容易ではない」ことをお伝えします。
生成AIでは単純なケースならばある程度正確に作成することができます。「ある程度正確に」というのが肝で、完璧ではないということを意味しています。つまり、それを見抜く力がより重要になってくるということです。
今回はアソビュー!さんの記事に言及しましたが、テスト設計者が生成AIを用いて作成した直交表に対して言及したのは、実は今回が初めてではありません。
それぐらい、テストを生業としている人でもなかなか見抜きづらい部分であるという理解をお願いします。
以上のことに注意しつつ、生成AIのテスト設計への活用を進めてみてください。
*1:そのポストはここから
生成AIをテスト設計で用いた事例が出てきてますが、使う際に注意が必要だと思っています。
— broccoli (@nihonbuson) 2025年2月27日
今回、アソビュー!さんの記事を見ていて気になる点があったので指摘します。https://t.co/7jW2CoyO3A
結論は以下の2点。
・生成AIはシレッと嘘を混ぜてくるので、それを見極める力が必要
・直交表は苦手?
*2:ちなみに、対象記事には続きとして直交表(L12)によるケースを書いていますが、そこでも「大人」かつ「電子マネー」が出現していません
*3:もしも今回の例に対して直交表を用いてテストケースを作るには、3水準系の直交表である直交表L9を用いると良いでしょう。そして2水準しかない因子については、3水準目の記入欄に1水準目か2水準目の値を入力します。「二因子間の水準の組み合わせが同一個数現れる」という直交表の特徴は失われてしまいますが、「水準の組み合わせが必ず1回以上現れる」というオールペア法の特徴を活かすことはできます。
*4:3/5追記:akiyamaさんから直交表の作成について指摘をいただきました。
良い記事なので、きちんと書いてほしいので指摘するね。
— あきやま📒 (@akiyama924) 2025年3月4日
この場合は、直交表L9よりも直交表L8を使います。
(添付の画像をみてね。左から、直交表L8、直交表L8の変形、割付後・・・110のところは任意の値)
あと、最近知ったのですが「L9直交表」とは呼ばず「直交表L9」という順番で呼ぶそうです。 pic.twitter.com/OqsAzr7pNC
直交表の大きさは、各因子の自由度の総和+1なので、今回は「(2+1+1+1)+1=6」なので、直交表L6なんだけど、そんなのはないので直交表L8を使って、時間がなければ、最後の7,8行はテストしないです。(それでもオールペアとなるはず)
— あきやま📒 (@akiyama924) 2025年3月4日
個人的には直交表L9だと無駄(任意の値の部分)が多いなと思っていたので、L8の変形は目から鱗でした!
akiyamaさん、ありがとうございました!