見出し画像

2023年11月 ChatGPTを使ってCATに登録できるテストケースを作ってみよう


はじめに

こんにちは。株式会社SHIFT CAT 開発室・石井優でございます。

SHIFTの中でCATを専任で開発している本グループ内にて、ユーザーサポート・要件抽出などを担当しております。

弊社のテスト管理ツール「CAT」について、ユーザーの方へ説明しているとき、「え、こんな機能もあったの?」「こういう使い方もできるかも・・・」といった声をいただくことがあります。

CATには、テスト実行やプロジェクト管理を効率化する機能が多数ありますが、たしかに隠れて気づきにくい機能も多くあります。

そこで「それ知らなかった!」「早く言ってよぉ~~~」と言われるような便利な機能や活用方法を紹介することにしました。

現在ご利用中の方、これからご利用予定の方も、CATの機能と活用のイメージをもっと深く知ってお役立ていただければ幸いです。

統合型ソフトウェアテスト管理ツール「CAT」について 現在SHIFTが提供するCATとは、テストの実行管理に主眼を置いた正式名称「CAT TCM(Test Cycle Management)」という製品を指します。ケースと実行結果・エビデンスの管理、及びプロジェクトの進捗管理や品質分析を担うツールです。詳しいご紹介はぜひ製品HPをご確認ください。

ChatGPTが熱いですよね

最近、ChatGPTをはじめとした生成AIが注目を集めてます。テストでの活用を考えた場合、テスト観点やテストケースの作成においても、結構有用なテストケースの元ネタを生成してくれることがわかっています。完璧なものを作成してくれるわけではありませんが、6割から8割程度のテストケースを作成してくれるだけでも、タイピングの量やタイプミスの軽減、自分が思いつかなかったテスト観点の提案などにより、テストケースの作成効率が大幅に向上するかもしれません。

そこで、今回はChatGPTを使用してテストケースの作成とCATへの取り込みのデモを行います。

アプローチ

ChatGPTを使用してテストケースを作成するためには、以下の二つの情報をChatGPTに伝えると良さそうです。

  • CATに取り込み可能なフォーマットの定義 CATには取り込み可能なテストケースのフォーマットがあるため、ChatGPTにこのフォーマットの情報を伝えます。

  • テストする対象とやっておきたいテスト観点 テストする対象のシステムやその挙動、そしてどのようなテストを行いたいかといったテスト観点をChatGPTに伝えます。

これらを二つのポイントをおさえてプロンプトに落とし込んで書いてもらいます。 なお、本デモはChatGTP 4.0を使っています。

準備

まずはChatGPTとの対話において、各役割を決めましょう。

あなたはテストケースを作成するプロの設計者です。
これからお願いする条件を元に、スプレッドシート形式状でテストケースを書いてくれます。
了解しました。テストケースを作成するための条件を教えてください。その条件に基づいて、スプレッドシート形式のテストケースを提示いたします。

テストケースの作成

テストケースの作成において、先述のアプローチに従い、フォーマットの整理と自分が対象とするテストについて以下のように伝えました。それぞれのブロックについて解説を交えながら書いていきます。

※解説を途中に挟んでいますが、基本は一回で、すべてのプロンプトをChatGPTに渡しています。

ありがとうございます。

条件は次のとおりです。書くことはできますか?

<テストフェーズ>
開発側から上がってきたプログラムの結合テストフェーズです。
一般的な観点を元に、テストを書いていきたいと思っています。

文字通りテストのフェーズのことを指します。テストのフェーズによって、テストケースの粒度が変わってくるため、テストフェーズを明確に伝えました。

<テストケースの列名>
 テストケースID
 テスト観点
 テスト対象画面
 テスト対象機能
 操作
 入力データ
 期待値
 結果*
 実施備考&
 設計備考・申し送り事項&

 ※*とか&についてはそのまま出力してください。
  CATというテスト管理ツールに入力するときのショートカットとなります。

CATに登録するテストケースのフォーマットの列挙を行いました。またこの列名からある程度どのような内容を書けばいいかを考慮してくれることを期待しています。

<テストする対象>
・"全体進捗画面""表示設定""表示期間"をテストしたいです。
 この表示期間というのは次の機能を持っています。
 ・形式はテキスト項目ですが、直接選択はできません。
 ・開始日と終了日を持っています。
 ・テキストフィールドを押すと次のコンテキストメニューが表示されます。
  今日、直近5日、直近9日、直近2週間、直近1ヶ月、カスタム
  →これを選択すると、選択項目に応じた期間が設定されます。
 ・カスタムを押すと、カレンダーが表示され
  開始日と終了日をピッカーから選択できます。

テストするシステムの挙動について記載しました。具体的な挙動に関する情報を提供することで、挙動に沿ったテストケースを作成できるようになります。

<やっておきたいテスト観点>
 ・それぞれのコンテキストメニューを選択したときに、選択したものに沿って
  日付けが表示されるのか?
 ・特に、年、月の変わり目や、閏年の2月と3月の境目などの境界値
 ・あとは、開始日と終了日が逆転した場合、エラーになるかどうか。
 その他おすすめの観点・やるべき観点があれば教えてください。

自分がテストしたい観点を記載しました。観点に基づいたテストケースを出力してくれることを期待しています。

一歩ずつ考えて作ってください。

これはプロンプトのおまじないです。ChatGPTは大量の情報を一気に処理しようとする傾向がありますが、情報量が多いと混乱してしまい、うまく出力してくれないことがあります。そのため、各作業を分解して一歩ずつ考えるように伝えました。このようにすることで、比較的綺麗なアウトプットが得られることが期待できます。

返答はいかに?

これらの情報を元に、ChatGPTからの返答は以下のようになりました。

了解しました。以下にスプレッドシート形式で示された条件に基づいてテストケースを設計します。
テストケースID | テスト観点                                  | テスト対象画面   | テスト対象機能    | 操作                                                      | 入力データ       | 期待値                                                     | 結果*  | 実施備考&  | 設計備考・申し送り事項&   
--------------|---------------------------------------------|-----------------|------------------|----------------------------------------------------------|-----------------|-----------------------------------------------------------|-------|------------|-----------------------------
TC01          | コンテキストメニュー選択 - 今日              | 全体進捗画面    | 表示設定          | 表示期間のテキストフィールドを押して、今日を選択         | 9/27/2023       | 開始日と終了日が9/27/2023になる                           |       |            | 
TC02          | コンテキストメニュー選択 - 直近5| 全体進捗画面    | 表示設定          | 表示期間のテキストフィールドを押して、直近5日を選択      | 9/27/2023       | 開始日が9/23/2023、終了日が9/27/2023になる                |       |            | 
TC03          | コンテキストメニュー選択 - 直近9日           | 全体進捗画面    | 表示設定          | 表示期間のテキストフィールドを押して、直近9日を選択      | 9/27/2023       | 開始日が9/19/2023、終了日が9/27/2023になる                |       |            |
TC04          | コンテキストメニュー選択 - 直近2週間         | 全体進捗画面    | 表示設定          | 表示期間のテキストフィールドを押して、直近2週間を選択    | 9/27/2023       | 開始日が9/14/2023、終了日が9/27/2023になる                |       |            |
TC05          | コンテキストメニュー選択 - 直近1ヶ月         | 全体進捗画面    | 表示設定          | 表示期間のテキストフィールドを押して、直近1ヶ月を選択    | 9/27/2023       | 開始日が8/28/2023、終了日が9/27/2023になる                |       |            |
TC06          | カスタム選択 - 通常選択                      | 全体進捗画面    | 表示設定          | カスタムを選択し、開始日9/10/2023、終了日9/20/2023を選択 | 9/10, 9/20      | 開始日が9/10/2023、終了日が9/20/2023になる                |       |            |
TC07          | カスタム選択 - 月の変わり目                  | 全体進捗画面    | 表示設定          | カスタムを選択し、開始日8/31/2023、終了日9/1/2023を選択  | 8/31, 9/1       | 開始日が8/31/2023、終了日が9/1/2023になる                 |       |            |
TC08          | カスタム選択 - 閏年の2月と3月の境目          | 全体進捗画面    | 表示設定          | カスタムを選択し、開始日2/29/2024、終了日3/1/2024を選択  | 2/29, 3/1       | 開始日が2/29/2024、終了日が3/1/2024になる                 |       |            |
TC09          | カスタム選択 - 開始日と終了日が逆転           | 全体進捗画面    | 表示設定          | カスタムを選択し、開始日9/20/2023、終了日9/10/2023を選択 | 9/20, 9/10      | エラーメッセージが表示される      

エクセルで取り込むためには、一旦CSV形式に変換する必要があるので、CSV形式に変えてもらいました。

ありがとうございます。CSV形式に変換できますか?
"テストケースID","テスト観点","テスト対象画面","テスト対象機能","操作","入力データ","期待値","結果*","実施備考&","設計備考・申し送り事項&"
"TC01","コンテキストメニュー選択 - 今日","全体進捗画面","表示設定","表示期間のテキストフィールドを押して、今日を選択","9/27/2023","開始日と終了日が9/27/2023になる","","",""
"TC02","コンテキストメニュー選択 - 直近5日","全体進捗画面","表示設定","表示期間のテキストフィールドを押して、直近5日を選択","9/27/2023","開始日が9/23/2023、終了日が9/27/2023になる","","",""
"TC03","コンテキストメニュー選択 - 直近9日","全体進捗画面","表示設定","表示期間のテキストフィールドを押して、直近9日を選択","9/27/2023","開始日が9/19/2023、終了日が9/27/2023になる","","",""
"TC04","コンテキストメニュー選択 - 直近2週間","全体進捗画面","表示設定","表示期間のテキストフィールドを押して、直近2週間を選択","9/27/2023","開始日が9/14/2023、終了日が9/27/2023になる","","",""
"TC05","コンテキストメニュー選択 - 直近1ヶ月","全体進捗画面","表示設定","表示期間のテキストフィールドを押して、直近1ヶ月を選択","9/27/2023","開始日が8/28/2023、終了日が9/27/2023になる","","",""
"TC06","カスタム選択 - 通常選択","全体進捗画面","表示設定","カスタムを選択し、開始日9/10/2023、終了日9/20/2023を選択","9/10, 9/20","開始日が9/10/2023、終了日が9/20/2023になる","","",""
"TC07","カスタム選択 - 月の変わり目","全体進捗画面","表示設定","カスタムを選択し、開始日8/31/2023、終了日9/1/2023を選択","8/31, 9/1","開始日が8/31/2023、終了日が9/1/2023になる","","",""
"TC08","カスタム選択 - 閏年の2月と3月の境目","全体進捗画面","表示設定","カスタムを選択し、開始日2/29/2024、終了日3/1/2024を選択","2/29, 3/1","開始日が2/29/2024、終了日が3/1/2024になる","","",""
"TC09","カスタム選択 - 開始日と終了日が逆転","全体進捗画面","表示設定","カスタムを選択し、開始日9/20/2023、終了日9/10/2023を選択","9/20, 9/10","エラーメッセージが表示される","","",""

いい感じにできました。

取り込んでみる

いい感じである。これをエクセルに変換して少しスタイルを整えたものがこちら。

これをアップロードすると・・・。

できました!

今回は一部のサンプル的なテストケースのみを取り上げましたが、テスト観点をさらに増やすことで、他のテストケースも作成することができると考えています。また、ChatGPTを使用してディスカッションしながら観点を出していくアプローチも有効です。

テストケースの作成においてなかなか未来が見えてきたと感じます。面白いですね。

いかがでしたか?次回も引き続き、CATの便利な活用方法などをお届けします。

※本記事は2023年11月時点の仕様を元に記載しています。記載後のバージョンアップにより、上記の説明した仕様と異なる場合があります。


執筆者プロフィール:石井 優
倉庫事業企業のシステム部門にて、基幹システムの開発・保守・導入及び大規模基幹システム移行への参画を経験し、2015年SHIFTへ入社。 CAT開発チーム内でユーザーサポートとして、ユーザーと開発メンバーのブリッジを行いユーザーの課題分析や新機能提案などを日々実施している。

お問合せはお気軽に

SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/

SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/

SHIFTの導入事例
https://service.shiftinc.jp/case/

お役立ち資料はこちら
https://service.shiftinc.jp/resources/

SHIFTの採用情報はこちら