0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AIに結合試験仕様書をレビューさせてみた。機能間・権限・状態遷移まで見られるのか

0
Posted at

はじめに

前の記事では、Excelで作成した試験仕様書をAIにレビューさせる方法を書きました。

ただ、結合試験になると話が少し変わります。

単純に、

入力
↓
処理
↓
期待結果

を確認するだけではありません。

結合試験では、

機能A
 ↓
機能B
 ↓
承認
 ↓
機能C
 ↓
帳票
 ↓
外部連携

のような機能間のつながりを確認します。

さらに、

  • 権限
  • ステータス
  • 履歴
  • 更新順序
  • 前処理
  • 後処理

なども絡みます。

そこで、

AIに結合試験仕様書をレビューさせた場合、どこまで確認できるのか

整理してみます。


単体のケースレビューとは違う

例えば次のケースがあります。

① 申請登録
② 承認
③ 登録内容照会

それぞれ単独では正しい試験でも、

①のデータを
②で承認し
③で確認する

という流れが確認されていなければ、結合試験として不足する可能性があります。

つまり、

ケース単体ではなく、ケース間の関係を見る必要があります。


最初に機能一覧を作らせる

いきなりPCLや試験仕様書をレビューさせるのではなく、まず設計書から機能を整理させます。

添付した設計書から
今回の試験対象機能を整理してください。

以下の形式にしてください。

|機能ID|機能名|入力|出力|更新テーブル|次に関連する機能|

機能間マトリクスを作る

次に、

機能間の組み合わせ

を作らせます。

例えば、

From / To 登録 変更 承認 照会 取消
登録 - ○ ○ ○ ○
変更 - - ○ ○ ○
承認 - - - ○ ○

この表を作るだけでも、

登録 → 承認はあるが、変更 → 承認のシナリオがない

といった漏れを発見しやすくなります。


権限も別軸で確認する

業務システムでは、

管理者
担当者
一般ユーザー

など、複数権限があります。

全権限 × 全機能を試験すると、ケース数が爆発します。

そこでAIに、

権限ごとの差分を整理してください。

同じロジックを通るものと、
権限固有の動作があるものを分けてください。

と依頼します。

これを元に、

全パターンを試験する必要があるのか

を人間が判断します。


「横展開」の意味をAIに理解させる

結合試験レビューで難しいのが、

横展開確認

です。

例えば、

権限Aで確認済みなので、
権限Bでは代表ケースだけ確認する

という設計があります。

AIはこれを知らないと、

権限Bのケースが不足しています

と大量に指摘します。

そこで、

今回の横展開方針:

- 共通ロジックは代表権限で詳細確認する
- 他権限では利用可否と登録可否を確認する
- 権限固有処理がある場合のみ詳細ケースを追加する

のように、レビュー方針そのものをAIへ渡す必要があります。


状態遷移を作らせる

結合試験では状態遷移も重要です。

例えば、

未申請
 ↓
申請中
 ↓
承認済
 ↓
変更申請中
 ↓
変更承認済

という状態があるとします。

AIには、

設計書からステータスの状態遷移を抽出してください。

以下を作成してください。

|現在状態|操作|遷移後状態|実行可能権限|

と依頼します。

その後、

各状態遷移について、
試験仕様書に対応するケースが存在するか確認してください。

とします。

これは結合試験レビューとかなり相性がよいです。


正常ルートだけでなく「途中変更」を見る

意外と漏れやすいのが、

処理途中でデータが変更された場合

です。

例えば、

申請
↓
承認待ち
↓
マスタ変更
↓
承認

のようなケースです。

登録時には存在したデータが、

承認時には、

  • 無効
  • 削除
  • 有効期限切れ
  • 別状態

になっている可能性があります。

AIには、

シナリオの開始時と終了時の間に、
参照データが変更された場合に影響する箇所を抽出してください。

と依頼します。


CRUDだけでなく副作用を見る

画面上の処理が成功するだけでは不足することがあります。

例えば、

承認

したことで、

DB更新
履歴追加
メール送信
帳票生成
外部連携対象化

が行われるとします。

この場合、

承認できた

だけではなく、

承認
├ DB
├ 履歴
├ メール
├ 帳票
└ 連携

まで確認する必要があります。


結合試験レビュー用プロンプト

あなたは業務システムの
結合試験レビュー担当です。

添付資料:

- 基本設計書
- 詳細設計書
- 結合試験仕様書

# 目的

機能単体ではなく、
機能間の連携を含めて
試験シナリオの不足を確認すること。

# レビュー観点

1. 機能間連携
2. 状態遷移
3. 権限
4. 登録→変更→削除
5. 申請→承認→取消
6. 履歴
7. 前後処理
8. メール
9. 帳票
10. バッチ
11. 外部連携
12. エラー後の状態
13. 処理途中で参照データが変更された場合

# 手順

1. 対象機能一覧を作る
2. 機能間マトリクスを作る
3. 状態遷移を作る
4. 権限差を整理する
5. 試験仕様書と対応付ける
6. 未確認パターンを抽出する

# 指摘ルール

単純に全組み合わせを
不足として指摘しないでください。

既存ケースで確認済みの場合は、
そのケースIDを提示してください。

根拠がない場合は
「要確認」としてください。

# 出力

## 共通指摘

複数ケースに共通する指摘。

## 個別指摘

|No|重要度|ケースID|観点|指摘|根拠|追加案|

## 未確認シナリオ

|From|To|権限|状態|既存ケース|判定|

## 要確認事項

設計書だけでは判断できないもの。

「既レビューケース」を渡す

AIレビューを繰り返す場合、

以前指摘した内容を毎回指摘される問題があります。

そこで、

既レビュー結果

もコンテキストに含めます。

例えば、

CASE-001についてはレビュー済み。

CASE-020〜030は
CASE-001と同じ共通処理を利用しているため、
同一観点は確認済みとして扱う。

とします。

これによりレビュー結果のノイズを減らせます。


共通指摘と個別指摘を分ける

例えば30ケースすべてで、

期待結果にDB更新内容を記載してください

という問題があった場合、

30件出されても困ります。

そこで、

同一原因による指摘は
「共通指摘」にまとめてください。

とします。


AIが特に役立つところ

結合試験レビューでAIが役立つのは、

大量の対応関係を保持すること

です。

人間が、

CASE-001
CASE-002
CASE-003
...
CASE-080

をレビューしていると、

これ、どこかで確認したっけ?

となります。

AIに、

仕様
↕
シナリオ
↕
ケースID

の対応表を作らせるだけでもレビューがかなり楽になります。


一方で、AIだけでは難しい部分

結合試験では、

このシステムでは
このパターンは業務上発生しない

という暗黙知が多くあります。

AIは設計書に書かれていなければ分かりません。

そのため、

理論上可能

と、

業務上必要

を区別する必要があります。

ここは人間の判断が重要です。


おすすめの役割分担

AI
│
├ 機能一覧作成
├ 機能間マトリクス
├ 状態遷移
├ ケース紐付け
├ 重複検出
├ 漏れ候補
└ 横展開候補
      ↓
人間
│
├ 業務上必要か判断
├ リスク判断
├ 試験範囲決定
└ 最終レビュー

AIをレビュアーそのものにするのではなく、

レビュアーの補助者として使う

イメージです。


まとめ

AIに結合試験仕様書をレビューさせてみると、

  • 機能間マトリクス
  • 状態遷移
  • 権限差
  • シナリオ間の関係
  • 既存ケースとの重複
  • 仕様とケースの対応付け

で力を発揮します。

一方、

  • 業務上あり得るか
  • どこまで試験すべきか
  • リスクを許容できるか
  • 横展開で十分なのか

といった判断は、人間が行う必要があります。

結合試験レビューを完全自動化するというより、

数十〜数百ケースを頭の中で紐付ける作業をAIに手伝ってもらう

という使い方が、現状ではかなり実用的だと感じています。

そして一番重要なのは、

AIに試験ケースを見せるだけではなく、設計書・レビュー方針・既レビュー結果までコンテキストとして渡すこと

です。

参考資料

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?