Upgrade to Pro — share decks privately, control downloads, hide ads and more …

テストケースの自動生成に生成AIの導入を試みた話と生成AIによる今後の期待

 テストケースの自動生成に生成AIの導入を試みた話と生成AIによる今後の期待

2024/7/24 生成AIはどうテストを変えるのか (AI Test Lab vol.1)
https://shiftevolve.connpass.com/event/322911/
日本電気株式会社 ソフトウェア&システムエンジニアリング統括部
プロフェッショナル 坂下 聡 氏

SHIFT EVOLVE

July 25, 2024
Tweet

More Decks by SHIFT EVOLVE

Other Decks in Technology

Transcript

  1. ◼ はじめに ◼ テストケースの自動生成について ◼ テストケース生成における生成AIの可能性 ◼ 生成AIによる今後の期待 本日の発表 ※

    本発表はソフトウェアテスト自動化カンファレンス2023にて発表した内容を 抜粋し、生成AIによる今後の期待を追加した内容になります
  2. © NEC Corporation 2024 3 自己紹介 坂下 聡(さかした さとし) 日本電気株式会社

    ソフトウェア&システムエンジニアリング統括部 スペシャリスト テストソリューション、テスト自動化推進担当 ◆ 経歴 ◼ 1993年入社 ◼ システムコンサルティングやインフラ構築、テスト 自動化ツールの開発や導入を経て、現在はテスト 全般のソリューション提供とテスト自動化技術の 普及活動を担当
  3. © NEC Corporation 2024 5 テストケースの自動生成について ◆ 7年前に作成したツールの仕組み ◆ このツールの既存課題

    ◼ 機能設計書の処理仕様が日本語の文章で記載されている場合、機械的に記載内容を判断してテス トケースを生成することができない(言語処理が必要) 機能設計書 (Excelで記載) テスト仕様書 (キーワードドリブン形式) テストスクリプト 確認&追記 解析&変換 解析&変換 今回の検証ターゲット
  4. © NEC Corporation 2024 7 検証例 ◆ 既存の設計書(Excel形式)を読み込ませてChatGPT-4でテストケースを作成 テストケース テストステップ

    キーワード 期待結果 変数の値 初期処理 システム起動 システム起動 システムが起動し、初期画面が表示される なし 予約処理 ログイン状態確認 ログイン状態チェック ログインしていない場合、ログイン促進メッ セージ表示 ログイン状態=未ログイ ン 予約処理 日付入力チェック 日付入力 3か月以内の日付であれば次へ進む、そう でなければエラーメッセージ表示 宿泊日=2023/12/01 予約処理 必須項目入力チェック 必須項目チェック 全ての必須項目が入力されていれば次へ 進む、そうでなければエラーメッセージ表示 宿泊人数=2, 宿泊数=3, 連絡先=メール 予約処理 予約内容確認とページ遷移 ページ遷移 「予約内容を確認する」ボタンをクリック後、 宿泊予約画面(SHP0103)へ遷移 なし このままだと、テストスクリプトに変換するときに再度処理 ステップにあわせたキーワードに分解する必要があるので、 この時点でテストスクリプトに変換しやすいキーワードにし ておきたい
  5. © NEC Corporation 2024 8 テストケース生成における生成AIの可能性 ◆ 処理仕様の解読について ◼ 表形式のExcelシートをそのままChatGPT-4に読み込ませて解読

    ◼ 処理仕様の中で、詳細が記載されている部分が判別しやすいように、記載範囲をセル名で指定 ◼ 空白行があると、次の行が無いと判断してそこで解読を終了するため、空白行を削除 ◆ 解読における工夫点 ◼ ChatGPT-4の実施時点の解析能力を確認するために、機能設計書そのものを読み込ませてどの シートにテストケースを生成するための情報が記載されているかを判断させる ◼ 機能設計書に記載されていない内容を含めてChatGPT-4はテストケースを生成するため、テスト ケースを生成するために必要な記載がされている部分を指定し、必要が無い記載の部分を除外す るようにあらかじめ指定する ◼ 連携する情報がセルで分割されている場合は、同じセルに記載することで関連性を高める ◼ 機能設計書に記載が不足している人間の「暗黙知」を前提条件として記載する
  6. © NEC Corporation 2024 9 検証例 ◆ ChatGPT-4に指定したキーワードを使って作成したテストケース キーワード 文字列入力

    画面入力 アイテム選択 クリック 文字列確認 キー押下 マウス移動 待機(対象が現れるまで) 待機(対象がなくなるまで) 待機(時間指定) 文字列取得 テストケース テストステップ キーワード 対象 変数の値 期待結果 初期処理 システム起動時の初期化処理の確認 文字列確認 メニュー ログイン システムが正常に起動し、初期画面が表示される 予約処理 ログイン状態の確認 文字列確認 ログイン状態表示領域 ログイン ログインしていない場合、ログイン促進メッセージまたは 画面が表示される 予約処理 必須項目の入力確認 文字列入力 必須項目フィールド 必須項目の状態 必須項目がすべて入力されている 予約処理 宿泊日入力確認 文字列入力 宿泊日入力フィールド 宿泊日=2023/12/01 宿泊日が正しく入力される 予約処理 「このプランで予約」ボタンのクリック クリック このプランで予約 ボタンクリック後、次のステップへ進む 予約処理 タイトル確認 文字列確認 タイトル 宿泊予約 タイトルが「宿泊予約」であることを確認 予約処理 「予約内容を確認する」ボタンのクリックと ページ遷移の確認 クリック 「予約内容を確認する」ボタン なし ボタンをクリックすると宿泊予約画面(SHP0103)へ正常 に遷移する ChatGPT-4でテストケースを作成した際の課題 • ログイン有無の条件分岐が解釈できないので、書き方 を考える必要あり • 入力チェックのチェック項目は、全部バラバラに記載 する必要あり
  7. © NEC Corporation 2024 10 再検証 処理仕様の条件による記載も空白行と空白列を対象外に する指示をするだけで反映されるようになった! テストケースID テスト項目

    キーワード 変数 実施するテスト 期待される結果 TC-01 ログイン有無チェック 文字列確認 ログイン状態: ログオフ ログイン状態で画面を表示 氏名の項目に会員名が表示される TC-02 ログイン有無チェック 文字列確認 非ログイン状態: ログイン 非ログイン状態で画面を表示 氏名の項目に何も表示されない TC-03 日付チェック 文字列確認 明日の日付: YYYY/MM/DD 画面を開いた際に宿泊日を確認 宿泊日の項目に翌日の年月日が表示されている TC-04 入力チェック 文字列入力 宿泊日 宿泊日に3か月以内の日付を入力 正しい日付が受け入れられる TC-04 入力チェック 文字列確認 宿泊日 宿泊日に3か月以内の日付を入力 正しい日付が受け入れられる TC-05 入力チェック 文字列入力 宿泊日 宿泊日に3か月を超える日付を入力 エラーメッセージが表示される TC-05 入力チェック 文字列確認 宿泊日 宿泊日に3か月を超える日付を入力 エラーメッセージが表示される TC-06 入力チェック 文字列入力 各項目 各項目に適切な文字を入力 入力した文字が受け入れられる TC-06 入力チェック 文字列確認 各項目 各項目に適切な文字を入力 入力した文字が受け入れられる TC-07 入力チェック 文字列入力 必須項目 必須項目を空白で入力 エラーメッセージが表示される TC-07 入力チェック 文字列確認 必須項目 必須項目を空白で入力 エラーメッセージが表示される TC-08 ボタンクリック処理 クリック 予約内容を確認するボタン 「予約内容を確認する」をクリック 宿泊予約画面(SHP0103)へ遷移する
  8. © NEC Corporation 2024 11 AI-Readyなデータを準備することが活用促進のカギ 今後に向けて ◆ 仕様書をAI-Readyなデータとして準備 ◆

    シート間の連携情報は事前に学習 ◆ 自己学習機能の追加は必要 ◆ 方眼紙のような仕様書もチャレンジ
  9. © NEC Corporation 2024 12 現在の生成AI活用における向き・不向きなテスト ◆ 得意な分野 ◼ 自分の能力でできることを高速で代わりに実施(テストコードの生成)

    ◼ ドメイン知識を必要としない一般的なシステムにおけるテストケースの設計や作成 ◼ 知識を特定のフォーマットに整理し、そこからテストシナリオを生成する手法 ◆ 不得意な分野 ◼ ルールを守ってテストケースを作成(論理的思考が苦手) ◼ 仕様書を参照せず欠陥を探し出すような人間の直感が必要になるテスト(アドホックテスト、探索的 テスト) 参考:「生成AIを使わない手はない」、GitHub Copilotで単体テストのコードを生成 | 日経クロステック(xTECH) (nikkei.com)
  10. © NEC Corporation 2024 13 今後のテストプロセスにおける生成AIの期待 ◆ キーワードはGPT-4oにて抽出 テスト計画 テスト分析

    テスト設計 テスト実装 テスト実行 テストのモニタ リングとコント ロール テスト完了 テスト実装・テスト実行 の自動化 テスト実装・テスト実行 の品質評価 テスト結果の分析 テストプロセスの改善 テストケース の生成 テスト項目の 網羅性評価 テストケース の生成 発展中の範囲 検証中の範囲 これからの範囲 これからの範囲 抜け漏れチェック テストケース の改善 説明上この場所に配置 ↓ ↑ テスト対象のアプリケーション 要件に関するドキュメントを、 AIが様々な観点からレビューし チェック・評価を実施する ↑ システム要件やシステムの利用 状況などから、テストすべき項目 の洗い出しと作成をAIが担う ↑ テストケースをもとに、AIがその テストの自動化を実施 ↑ 蓄積されたテストの実行結果を、 AIが分析、レポーティング