要望や要件からGherkin記述のシナリオを考えて作成するのが手間なので出力をフォーマット化したらうまくできるのは?という実験の備忘録。
2025.03.06時点、まだ結果は出てない。
職場からQiitaにログインはできないが、記事を閲覧することは可能なので情報を連携も目的。
手前が作成してプロンプトに対して、chatgpt o3 mini-highで七里式プロンプトの観点を取り入れてプロンプトの品質を向上させてみている。
<背景>
本システムは、テスト駆動開発(TDD)におけるGherkin記述のベストプラクティス(シンプルな表現、Given/When/Then形式、一貫した用語使用)を活用し、ユーザーが具体的なシナリオを容易に作成できるよう支援するために設計されています。
</背景>
<目的>
ユーザーが提供する機能概要、ユーザーストーリー、前提条件、実行アクション、期待結果に基づき、明確で再現性のあるGherkin形式のシナリオを生成する。
</目的>
<対象>
このプロンプトは、テスト駆動開発におけるシナリオ作成を必要とする開発者、テスター、ビジネスアナリストなど、幅広い関係者を対象とする。
</対象>
<手順>
1. ユーザーから以下の情報を収集する:
- 機能概要および背景
- ユーザーストーリー(誰が、何を、なぜ行うか)
- 前提条件(Given)
- 実行する操作やアクション(When)
- 期待される結果(Then)
2. 収集した情報を論理的に整理し、各要素を明確に区分する。
3. 整理した内容をGherkin記述形式に沿って構造化する。
</手順>
<出力形式>
- シナリオは「Given(前提)」「When(アクション)」「Then(期待結果)」の順で記述する。
- 各シナリオは1つの機能に焦点を絞り、簡潔かつ明瞭な表現を用いること。
- 専門用語は必要最小限にとどめ、全体として誰にでも理解可能な言葉を使用する。
</出力形式>
<条件>
- 用語の一貫性を保つこと。
- 各ステップは具体的かつ短く、再現性のある内容で記述すること。
- ユーザーからのフィードバックに基づき、シナリオは柔軟に更新できるようにすること。
</条件>
<評価>
出力されたシナリオが、テスト駆動開発プロセスに沿い明確かつ実践的であるかを評価する。必要に応じ、関係者(開発者、テスター、ビジネスアナリスト)からのレビューとフィードバックを受け、継続的な改善を実施する。
</評価>
Gemini 2.0 flashに、プロンプトは七里式に従っているか?を確認したら以下コメントをもらったので、期待している。
評価結果
このプロンプトは、七里式の構成要素を網羅しており、非常に質の高いプロンプトと言えます。各要素が明確かつ具体的に記述されており、AIに対する指示が的確に伝わるように設計されています。
各要素の評価
* 背景:
* テスト駆動開発(TDD)におけるGherkin記述のベストプラクティスを活用するという、システムの目的と背景が明確に記述されています。
* 目的:
* ユーザーが提供する情報からGherkin形式のシナリオを生成するという、具体的な目的が設定されています。
* 対象:
* 開発者、テスター、ビジネスアナリストなど、対象ユーザーが明確に定義されています。
* 手順:
* 情報の収集、整理、構造化という、具体的な手順が示されています。
* 出力形式:
* Gherkin形式での出力、簡潔な表現、専門用語の制限など、出力形式が詳細に指定されています。
* 条件:
* 用語の一貫性、ステップの具体性、シナリオの柔軟性など、守るべき条件が明確に示されています。
* 評価:
* テスト駆動開発プロセスへの適合性、関係者からのフィードバックなど、評価基準が設定されています。
特に優れている点
* 明確な指示:
* 各ステップが具体的かつ明確に記述されており、AIが何をすべきかを正確に理解できます。
* 出力形式の詳細な指定:
* Gherkin形式での出力、簡潔な表現、専門用語の制限など、出力形式が詳細に指定されており、ユーザーの意図が反映されやすくなっています。
* 評価基準の設定:
* 評価基準が設定されていることで、出力されたシナリオの品質を客観的に評価できます。
改善点
* 提示されたプロンプトは非常に完成度が高く、改善点は見当たりません。
総評
このプロンプトは、七里式の原則に忠実に従い、AIに対して明確かつ具体的な指示を与えることで、高品質なGherkin形式のシナリオ生成を可能にするものです。テスト駆動開発におけるシナリオ作成の効率化と品質向上に大きく貢献するでしょう。
実際に使ってみると、give/when/thenを入力する必要がある。
改めてプロンプトを確認してみると、ユーザに求める情報と列挙しているので、当たり前である。
私が望んでいるのは、機能概要および背景だけで自動生成してほしいものなので、chatgpt-4.5にお願いしてみる。
<背景> 本システムは、テスト駆動開発(TDD)におけるGherkin記述のベストプラクティス(シンプルな表現、Given/When/Then形式、一貫した用語使用)を活用し、ユーザーが具体的なシナリオを容易に作成できるよう支援するために設計されています。 </背景>
<目的> ユーザーが提供する「機能概要および背景」に基づき、明確で再現性のあるGherkin形式のシナリオを生成する。 </目的>
<対象> このプロンプトは、テスト駆動開発におけるシナリオ作成を必要とする開発者、テスター、ビジネスアナリストなど、幅広い関係者を対象とする。 </対象>
<手順>
ユーザーから「機能概要および背景」のみを収集する。 収集した「機能概要および背景」をもとに、以下の情報を作成する。その際、「シンプルさ」「具体性」「再現性」の観点を意識して記述する。 ユーザーストーリー(誰が、何を、なぜ行うか) 前提条件(Given) 実行する操作やアクション(When) 期待される結果(Then) 作成した内容をGherkin記述形式に沿って構造化する。
<出力形式>
シナリオは「Given(前提)」「When(アクション)」「Then(期待結果)」の順で記述する。 各シナリオは1つの機能に焦点を絞り、簡潔かつ明瞭な表現を用いること。 専門用語は必要最小限にとどめ、全体として誰にでも理解可能な言葉を使用する。
<条件>
用語の一貫性を保つこと。 各ステップは具体的かつ短く、再現性のある内容で記述すること。 作成した「ユーザーストーリー」「前提条件」「実行アクション」「期待結果」は、ユーザーからのフィードバックをもとにAIが柔軟に再生成や修正を行えるようにする。
<評価> 出力されたシナリオがテスト駆動開発プロセスに即しており、「簡潔である」「誰が見ても内容が明確である」「再現性が担保されている」という観点で評価する。必要に応じ、関係者(開発者、テスター、ビジネスアナリスト)からのレビューとフィードバックを受け、継続的な改善を実施する。