8
Most read
10
Most read
13
Most read
© NEC Corporation 2024
テストケースの自動生成に生成AIの導入を試みた話と
生成AIによる今後の期待
2024年07月24日
日本電気株式会社
坂下 聡
生成AIはどうテストを変えるのか (AI Test Lab vol.1)
◼ はじめに
◼ テストケースの自動生成について
◼ テストケース生成における生成AIの可能性
◼ 生成AIによる今後の期待
本日の発表
※
本発表はソフトウェアテスト自動化カンファレンス2023にて発表した内容を
抜粋し、生成AIによる今後の期待を追加した内容になります
© NEC Corporation 2024
3
自己紹介
坂下 聡(さかした さとし)
日本電気株式会社
ソフトウェア&システムエンジニアリング統括部
スペシャリスト
テストソリューション、テスト自動化推進担当
◆ 経歴
◼ 1993年入社
◼ システムコンサルティングやインフラ構築、テスト
自動化ツールの開発や導入を経て、現在はテスト
全般のソリューション提供とテスト自動化技術の
普及活動を担当
© NEC Corporation 2024
4
本日の内容
◆ 既存の設計書(Excel形式)からテスト仕様書を作成し、テストスクリプトを出力する
テストケースの自動生成ツールの一部に、生成AIの機能を取りこむことができない
かを検討しました
◆ 本内容は、2023年12月時点での試行錯誤状況になります
◆ また、テストプロセスの活動における生成AIの期待についてお話しします
© NEC Corporation 2024
5
テストケースの自動生成について
◆ 7年前に作成したツールの仕組み
◆ このツールの既存課題
◼ 機能設計書の処理仕様が日本語の文章で記載されている場合、機械的に記載内容を判断してテス
トケースを生成することができない(言語処理が必要)
機能設計書
(Excelで記載)
テスト仕様書
(キーワードドリブン形式)
テストスクリプト
確認&追記
解析&変換 解析&変換
今回の検証ターゲット
© NEC Corporation 2024
6
検証例
◆ インプットとなる機能設計書
© NEC Corporation 2024
7
検証例
◆ 既存の設計書(Excel形式)を読み込ませてChatGPT-4でテストケースを作成
テストケース テストステップ キーワード 期待結果 変数の値
初期処理 システム起動 システム起動 システムが起動し、初期画面が表示される なし
予約処理 ログイン状態確認 ログイン状態チェック ログインしていない場合、ログイン促進メッ
セージ表示
ログイン状態=未ログイ
ン
予約処理 日付入力チェック 日付入力 3か月以内の日付であれば次へ進む、そう
でなければエラーメッセージ表示
宿泊日=2023/12/01
予約処理 必須項目入力チェック 必須項目チェック 全ての必須項目が入力されていれば次へ
進む、そうでなければエラーメッセージ表示
宿泊人数=2, 宿泊数=3,
連絡先=メール
予約処理 予約内容確認とページ遷移 ページ遷移 「予約内容を確認する」ボタンをクリック後、
宿泊予約画面(SHP0103)へ遷移
なし
このままだと、テストスクリプトに変換するときに再度処理
ステップにあわせたキーワードに分解する必要があるので、
この時点でテストスクリプトに変換しやすいキーワードにし
ておきたい
© NEC Corporation 2024
8
テストケース生成における生成AIの可能性
◆ 処理仕様の解読について
◼ 表形式のExcelシートをそのままChatGPT-4に読み込ませて解読
◼ 処理仕様の中で、詳細が記載されている部分が判別しやすいように、記載範囲をセル名で指定
◼ 空白行があると、次の行が無いと判断してそこで解読を終了するため、空白行を削除
◆ 解読における工夫点
◼ ChatGPT-4の実施時点の解析能力を確認するために、機能設計書そのものを読み込ませてどの
シートにテストケースを生成するための情報が記載されているかを判断させる
◼ 機能設計書に記載されていない内容を含めてChatGPT-4はテストケースを生成するため、テスト
ケースを生成するために必要な記載がされている部分を指定し、必要が無い記載の部分を除外す
るようにあらかじめ指定する
◼ 連携する情報がセルで分割されている場合は、同じセルに記載することで関連性を高める
◼ 機能設計書に記載が不足している人間の「暗黙知」を前提条件として記載する
© NEC Corporation 2024
9
検証例
◆ ChatGPT-4に指定したキーワードを使って作成したテストケース
キーワード
文字列入力
画面入力
アイテム選択
クリック
文字列確認
キー押下
マウス移動
待機(対象が現れるまで)
待機(対象がなくなるまで)
待機(時間指定)
文字列取得
テストケース テストステップ キーワード 対象 変数の値 期待結果
初期処理 システム起動時の初期化処理の確認 文字列確認 メニュー ログイン システムが正常に起動し、初期画面が表示される
予約処理 ログイン状態の確認 文字列確認 ログイン状態表示領域 ログイン ログインしていない場合、ログイン促進メッセージまたは
画面が表示される
予約処理 必須項目の入力確認 文字列入力 必須項目フィールド 必須項目の状態 必須項目がすべて入力されている
予約処理 宿泊日入力確認 文字列入力 宿泊日入力フィールド 宿泊日=2023/12/01 宿泊日が正しく入力される
予約処理 「このプランで予約」ボタンのクリック クリック このプランで予約 ボタンクリック後、次のステップへ進む
予約処理 タイトル確認 文字列確認 タイトル 宿泊予約 タイトルが「宿泊予約」であることを確認
予約処理 「予約内容を確認する」ボタンのクリックと
ページ遷移の確認
クリック 「予約内容を確認する」ボタン なし ボタンをクリックすると宿泊予約画面(SHP0103)へ正常
に遷移する
ChatGPT-4でテストケースを作成した際の課題
• ログイン有無の条件分岐が解釈できないので、書き方
を考える必要あり
• 入力チェックのチェック項目は、全部バラバラに記載
する必要あり
© 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)へ遷移する
© NEC Corporation 2024
11
AI-Readyなデータを準備することが活用促進のカギ
今後に向けて
◆ 仕様書をAI-Readyなデータとして準備
◆ シート間の連携情報は事前に学習
◆ 自己学習機能の追加は必要
◆ 方眼紙のような仕様書もチャレンジ
© NEC Corporation 2024
12
現在の生成AI活用における向き・不向きなテスト
◆ 得意な分野
◼ 自分の能力でできることを高速で代わりに実施(テストコードの生成)
◼ ドメイン知識を必要としない一般的なシステムにおけるテストケースの設計や作成
◼ 知識を特定のフォーマットに整理し、そこからテストシナリオを生成する手法
◆ 不得意な分野
◼ ルールを守ってテストケースを作成(論理的思考が苦手)
◼ 仕様書を参照せず欠陥を探し出すような人間の直感が必要になるテスト(アドホックテスト、探索的
テスト)
参考:「生成AIを使わない手はない」、GitHub Copilotで単体テストのコードを生成 | 日経クロステック(xTECH) (nikkei.com)
© NEC Corporation 2024
13
今後のテストプロセスにおける生成AIの期待
◆ キーワードはGPT-4oにて抽出
テスト計画 テスト分析 テスト設計 テスト実装 テスト実行
テストのモニタ
リングとコント
ロール
テスト完了
テスト実装・テスト実行
の自動化
テスト実装・テスト実行
の品質評価
テスト結果の分析
テストプロセスの改善
テストケース
の生成
テスト項目の
網羅性評価
テストケース
の生成
発展中の範囲
検証中の範囲
これからの範囲 これからの範囲
抜け漏れチェック
テストケース
の改善
説明上この場所に配置
↓
↑ テスト対象のアプリケーション
要件に関するドキュメントを、
AIが様々な観点からレビューし
チェック・評価を実施する
↑ システム要件やシステムの利用
状況などから、テストすべき項目
の洗い出しと作成をAIが担う
↑ テストケースをもとに、AIがその
テストの自動化を実施
↑ 蓄積されたテストの実行結果を、
AIが分析、レポーティング
SHIFT EVOLVE_テストケースの自動生成に生成AIの導入を試みた話.pdf

More Related Content

PPTX
STAC2023 テストケースの自動生成に生成AI導入を検討してみた STAC2023
PDF
Tomorrow's software testing for embedded systems ~明日にでも訪れてしまう組込みシステムのテストの姿~
PPTX
ChatGPT Impact - その社会的/ビジネス価値を考える -
PDF
GDC2018報告会AI分野
PDF
テスト自動化のこれまでとこれから
PPTX
ICST 2015 まるわかりDay! -Model
PDF
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
PDF
テスト自動化クロニクル (JaSST 東海 2016)
STAC2023 テストケースの自動生成に生成AI導入を検討してみた STAC2023
Tomorrow's software testing for embedded systems ~明日にでも訪れてしまう組込みシステムのテストの姿~
ChatGPT Impact - その社会的/ビジネス価値を考える -
GDC2018報告会AI分野
テスト自動化のこれまでとこれから
ICST 2015 まるわかりDay! -Model
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
テスト自動化クロニクル (JaSST 東海 2016)

Similar to SHIFT EVOLVE_テストケースの自動生成に生成AIの導入を試みた話.pdf (20)

PPTX
JaSST Kansai 2017 AIとテストパターン - AI and Testing Pattern-
PPTX
Shizuoka.py #6 WebTestでWeb APIのテスト & Pythonメタプログラミングでテストの自動生成
PPTX
事例からわかる!テスト自動化導入パターン
PDF
KANSAIAIPUB 20180724 「テスト×AI」
PPTX
テスト自動化の現場で困ること SI-Toolkitが解決すること
PDF
コンピューティングおよびソフトウェア工学の潮流: IEEE-CS技術予測&SWEBOK Guideに基づくAI・アジャイル・サステナビリティの展望
PDF
超スマート社会時代のシステム&ソフトウェア品質知識体系 - SQuBOK 2020 における AI、IoT、クラウド、オープンソース、アジャイル、DevO...
PDF
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
PPTX
How to introduce test automation in VeriServe Test Automation Talk #2
PDF
テスト観点に基づくテスト開発方法論 VSTePの概要
PDF
自然言語処理の発展がもたらす未来(電気通信協会調査会での講演)
PDF
はこだてIKA 第4回勉強会 単体テスト
PDF
第4回勉強会 単体テストのすすめ
PDF
テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】
PPTX
Continuous delivery chapter4
PDF
日本における組み合わせテスト - 歴史、適用状況、技法、ツール -
PDF
生成AIの実利用に必要なこと-Practical Requirements for the Deployment of Generative AI
PDF
ソフトウェアテストを助ける発想支援ツール
PDF
Swarm Testing (ISSTA 2012) 輪講会用資料
PPTX
ICST 2015 まるわかりDay! "Test Selection and Prioritization Track"
JaSST Kansai 2017 AIとテストパターン - AI and Testing Pattern-
Shizuoka.py #6 WebTestでWeb APIのテスト & Pythonメタプログラミングでテストの自動生成
事例からわかる!テスト自動化導入パターン
KANSAIAIPUB 20180724 「テスト×AI」
テスト自動化の現場で困ること SI-Toolkitが解決すること
コンピューティングおよびソフトウェア工学の潮流: IEEE-CS技術予測&SWEBOK Guideに基づくAI・アジャイル・サステナビリティの展望
超スマート社会時代のシステム&ソフトウェア品質知識体系 - SQuBOK 2020 における AI、IoT、クラウド、オープンソース、アジャイル、DevO...
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
How to introduce test automation in VeriServe Test Automation Talk #2
テスト観点に基づくテスト開発方法論 VSTePの概要
自然言語処理の発展がもたらす未来(電気通信協会調査会での講演)
はこだてIKA 第4回勉強会 単体テスト
第4回勉強会 単体テストのすすめ
テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】
Continuous delivery chapter4
日本における組み合わせテスト - 歴史、適用状況、技法、ツール -
生成AIの実利用に必要なこと-Practical Requirements for the Deployment of Generative AI
ソフトウェアテストを助ける発想支援ツール
Swarm Testing (ISSTA 2012) 輪講会用資料
ICST 2015 まるわかりDay! "Test Selection and Prioritization Track"
Ad

SHIFT EVOLVE_テストケースの自動生成に生成AIの導入を試みた話.pdf

  • 1. © NEC Corporation 2024 テストケースの自動生成に生成AIの導入を試みた話と 生成AIによる今後の期待 2024年07月24日 日本電気株式会社 坂下 聡 生成AIはどうテストを変えるのか (AI Test Lab vol.1)
  • 2. ◼ はじめに ◼ テストケースの自動生成について ◼ テストケース生成における生成AIの可能性 ◼ 生成AIによる今後の期待 本日の発表 ※ 本発表はソフトウェアテスト自動化カンファレンス2023にて発表した内容を 抜粋し、生成AIによる今後の期待を追加した内容になります
  • 3. © NEC Corporation 2024 3 自己紹介 坂下 聡(さかした さとし) 日本電気株式会社 ソフトウェア&システムエンジニアリング統括部 スペシャリスト テストソリューション、テスト自動化推進担当 ◆ 経歴 ◼ 1993年入社 ◼ システムコンサルティングやインフラ構築、テスト 自動化ツールの開発や導入を経て、現在はテスト 全般のソリューション提供とテスト自動化技術の 普及活動を担当
  • 4. © NEC Corporation 2024 4 本日の内容 ◆ 既存の設計書(Excel形式)からテスト仕様書を作成し、テストスクリプトを出力する テストケースの自動生成ツールの一部に、生成AIの機能を取りこむことができない かを検討しました ◆ 本内容は、2023年12月時点での試行錯誤状況になります ◆ また、テストプロセスの活動における生成AIの期待についてお話しします
  • 5. © NEC Corporation 2024 5 テストケースの自動生成について ◆ 7年前に作成したツールの仕組み ◆ このツールの既存課題 ◼ 機能設計書の処理仕様が日本語の文章で記載されている場合、機械的に記載内容を判断してテス トケースを生成することができない(言語処理が必要) 機能設計書 (Excelで記載) テスト仕様書 (キーワードドリブン形式) テストスクリプト 確認&追記 解析&変換 解析&変換 今回の検証ターゲット
  • 6. © NEC Corporation 2024 6 検証例 ◆ インプットとなる機能設計書
  • 7. © NEC Corporation 2024 7 検証例 ◆ 既存の設計書(Excel形式)を読み込ませてChatGPT-4でテストケースを作成 テストケース テストステップ キーワード 期待結果 変数の値 初期処理 システム起動 システム起動 システムが起動し、初期画面が表示される なし 予約処理 ログイン状態確認 ログイン状態チェック ログインしていない場合、ログイン促進メッ セージ表示 ログイン状態=未ログイ ン 予約処理 日付入力チェック 日付入力 3か月以内の日付であれば次へ進む、そう でなければエラーメッセージ表示 宿泊日=2023/12/01 予約処理 必須項目入力チェック 必須項目チェック 全ての必須項目が入力されていれば次へ 進む、そうでなければエラーメッセージ表示 宿泊人数=2, 宿泊数=3, 連絡先=メール 予約処理 予約内容確認とページ遷移 ページ遷移 「予約内容を確認する」ボタンをクリック後、 宿泊予約画面(SHP0103)へ遷移 なし このままだと、テストスクリプトに変換するときに再度処理 ステップにあわせたキーワードに分解する必要があるので、 この時点でテストスクリプトに変換しやすいキーワードにし ておきたい
  • 8. © NEC Corporation 2024 8 テストケース生成における生成AIの可能性 ◆ 処理仕様の解読について ◼ 表形式のExcelシートをそのままChatGPT-4に読み込ませて解読 ◼ 処理仕様の中で、詳細が記載されている部分が判別しやすいように、記載範囲をセル名で指定 ◼ 空白行があると、次の行が無いと判断してそこで解読を終了するため、空白行を削除 ◆ 解読における工夫点 ◼ ChatGPT-4の実施時点の解析能力を確認するために、機能設計書そのものを読み込ませてどの シートにテストケースを生成するための情報が記載されているかを判断させる ◼ 機能設計書に記載されていない内容を含めてChatGPT-4はテストケースを生成するため、テスト ケースを生成するために必要な記載がされている部分を指定し、必要が無い記載の部分を除外す るようにあらかじめ指定する ◼ 連携する情報がセルで分割されている場合は、同じセルに記載することで関連性を高める ◼ 機能設計書に記載が不足している人間の「暗黙知」を前提条件として記載する
  • 9. © NEC Corporation 2024 9 検証例 ◆ ChatGPT-4に指定したキーワードを使って作成したテストケース キーワード 文字列入力 画面入力 アイテム選択 クリック 文字列確認 キー押下 マウス移動 待機(対象が現れるまで) 待機(対象がなくなるまで) 待機(時間指定) 文字列取得 テストケース テストステップ キーワード 対象 変数の値 期待結果 初期処理 システム起動時の初期化処理の確認 文字列確認 メニュー ログイン システムが正常に起動し、初期画面が表示される 予約処理 ログイン状態の確認 文字列確認 ログイン状態表示領域 ログイン ログインしていない場合、ログイン促進メッセージまたは 画面が表示される 予約処理 必須項目の入力確認 文字列入力 必須項目フィールド 必須項目の状態 必須項目がすべて入力されている 予約処理 宿泊日入力確認 文字列入力 宿泊日入力フィールド 宿泊日=2023/12/01 宿泊日が正しく入力される 予約処理 「このプランで予約」ボタンのクリック クリック このプランで予約 ボタンクリック後、次のステップへ進む 予約処理 タイトル確認 文字列確認 タイトル 宿泊予約 タイトルが「宿泊予約」であることを確認 予約処理 「予約内容を確認する」ボタンのクリックと ページ遷移の確認 クリック 「予約内容を確認する」ボタン なし ボタンをクリックすると宿泊予約画面(SHP0103)へ正常 に遷移する ChatGPT-4でテストケースを作成した際の課題 • ログイン有無の条件分岐が解釈できないので、書き方 を考える必要あり • 入力チェックのチェック項目は、全部バラバラに記載 する必要あり
  • 10. © 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)へ遷移する
  • 11. © NEC Corporation 2024 11 AI-Readyなデータを準備することが活用促進のカギ 今後に向けて ◆ 仕様書をAI-Readyなデータとして準備 ◆ シート間の連携情報は事前に学習 ◆ 自己学習機能の追加は必要 ◆ 方眼紙のような仕様書もチャレンジ
  • 12. © NEC Corporation 2024 12 現在の生成AI活用における向き・不向きなテスト ◆ 得意な分野 ◼ 自分の能力でできることを高速で代わりに実施(テストコードの生成) ◼ ドメイン知識を必要としない一般的なシステムにおけるテストケースの設計や作成 ◼ 知識を特定のフォーマットに整理し、そこからテストシナリオを生成する手法 ◆ 不得意な分野 ◼ ルールを守ってテストケースを作成(論理的思考が苦手) ◼ 仕様書を参照せず欠陥を探し出すような人間の直感が必要になるテスト(アドホックテスト、探索的 テスト) 参考:「生成AIを使わない手はない」、GitHub Copilotで単体テストのコードを生成 | 日経クロステック(xTECH) (nikkei.com)
  • 13. © NEC Corporation 2024 13 今後のテストプロセスにおける生成AIの期待 ◆ キーワードはGPT-4oにて抽出 テスト計画 テスト分析 テスト設計 テスト実装 テスト実行 テストのモニタ リングとコント ロール テスト完了 テスト実装・テスト実行 の自動化 テスト実装・テスト実行 の品質評価 テスト結果の分析 テストプロセスの改善 テストケース の生成 テスト項目の 網羅性評価 テストケース の生成 発展中の範囲 検証中の範囲 これからの範囲 これからの範囲 抜け漏れチェック テストケース の改善 説明上この場所に配置 ↓ ↑ テスト対象のアプリケーション 要件に関するドキュメントを、 AIが様々な観点からレビューし チェック・評価を実施する ↑ システム要件やシステムの利用 状況などから、テストすべき項目 の洗い出しと作成をAIが担う ↑ テストケースをもとに、AIがその テストの自動化を実施 ↑ 蓄積されたテストの実行結果を、 AIが分析、レポーティング