イントロダクション
AIがコードも仕様も書く時代が到来しました。ただし、それは正しいとも信用できるとも限りません。人間によるレビューやテストは欠かせないと言われています。結局、責任を負えるのは人間の側だけだからです。
コード作成のスピードアップにより、相対的にテストやレビューが人間にとって大きな負担となっています。そこで当然、そのテストやレビューもAIにやってもらいたいと思うわけです。指示すればやってくれます。が、再び、その質の評価や確認・判断が人間に回ってきます。そこはどうやっても逃げられません。
そこで、本稿ではテスト設計へのAI活用を前提に、レビューや評価をどうやったら楽にできるようになるか、ひとつの考え方をご紹介します。
テスト設計が話の中心ですが、AIにテストしやすいコードを作らせ、コードの複雑さを抑える対策にもつながる内容となっています。また、バイブコーディングの本質的な問題が何なのかにも触れるので、テスト技術者だけではなく、開発設計者やプログラマーの方にもぜひ読んでいただきたいです。
レビューをしやすくする工夫
レビューをしやすくする方法を2つご紹介します。「モデル図を活用する方法」と「テスト技法を活用する方法」です。「なんだ、従来通りではないか」と思われてしまうかもしれませんが、AIをうまく活用するところが違います。
一般的に図に表現したほうが、内容の正確な理解を容易にすることが期待できます。読み手の持つ知識や情報の量による解釈のばらつきが少なくなります。
モデル化する過程で関心事以外の部分を省略し、注目すべき情報に絞り込み、思考を整理しやすくなります。
わかっているのにモデル化しないのは、図を描くのが面倒だからです。「誰か描いてくれるとよいのに」と、互いに思っていたりします。今はAIに描いてもらえるようになりました。
次に、テスト(設計)技法です。いろいろあるテスト(設計)技法は、基本的に何らかの意味で網羅性を担保するものです。そしてこれらも適切に使えばレビューの手間を大きく削減することができます。簡単な例で確認してみましょう。
ECサイトのある機能の入力因子(パラメータ)と水準(同値クラス)が以下の表のようになっているとしましょう。
【入力】因子・水準表(技法適用時はここだけ確認)
| 因子 | 水準1 | 水準2 | 水準3 | 水準4 |
|---|---|---|---|---|
| 会員種別 | ゲスト | 通常会員 | プレミアム | |
| 配送方法 | 通常 | お急ぎ | ||
| 受け取り方法 | 置き配 | 直接受け取り | コンビニ受取 | |
| 決済方法 | クレジットカード | コンビニ払い | 銀行振込 | 代金引換 |
テスト技法を適用した場合とそうでない場合に、レビュー・評価・説明にどのような差が出るかを以下にまとめてみました。
上記の因子・水準表のすべての組み合わせをテストしたい場合、技法としてデシジョンテーブルを作成すればよいわけです。人手作業やAIに作らせたら、全部の組み合わせが出ているか、間違いないかを、結果の72通りすべてについてレビューなどを通して確認しないといけません。一方、技法やツールを適切に適用すれば、結果の正しさはアルゴリズムが保証してくれるので、入力側が正しいことだけ確認すれば十分です。
技法を使わないと、手間のことだけではなく、肝心なテストの質の説明に一番困ることになります。
以上の説明からわかるように、AIに個々のテストケースを作成させることは得策ではありません。AIには上記のような因子・水準表など、レビューしやすいポイントまでを生成させておき、あとはアルゴリズムに任せるのが合理的です。
