はじめに
最近、OpenAIのChatGPTを使って、開発を効率化できないか、いろいろと検証をしています。
Karateは、テストスクリプトの内容が、構造化されており、シンプルな内容で記述できるので、
ChatGPTとの相性も良いのではないか、と思って試してみました。
※Karateは、Cucumberと同様のBDD(ビヘイビア駆動開発)を行うためのテストフレームワークであり、Gherkinの文法を自然言語に近い形で記述できるユニットテストツールです。
※Karateについては、以下を参照してください。
ChatGPTでのKarateプロンプト定義
早速、Karateのテストの内容を想定して、自然言語でテストを書いてみます。
あなたは、Test Automation Tool の Karate を利用するテストエキスパートです。
Karateで、以下を行うテストシナリオを生成してください。
# Given
- HTTPリクエストを送信する。
- BodyはJSON形式とする。
# When
- POSTで送信する。
# Then
- HTTPステータス200であること。
- レスポンスに、データが10件あること。
- レスポンスで、ID = 100 のデータが含まれること。
ChatGPTでの出力結果
ChatGPT(GPT-4)を使って、先の内容を問い合わせてみました。
出力結果は、思ったよりも精度が良いです!
キチンとKarate記法を理解してくれています。
また、プロンプトでは記載していない、URLやJSONリクエストの内容なども、補完してくれています。
これは、自動テストの夢が広がりますね!
また、出力結果が読みにくいため、インデントをお願いしてみたところ、
ちゃんと、Given/When/Thenの構成を踏まえて、インデントもしてくれました。
まとめ
KarateとChatGPTは、相性が良さそうです。
このぐらいの精度で出力ができるなら、シナリオテストの内容を書いたテストドキュメントから、
Karateのテストスクリプトも、十分に自動生成できそうです。