ChatGPTを使用した自動テスト

Ari Mahpour
|  投稿日 2023/05/3, 水曜日  |  更新日 2024/09/24, 火曜日
ChatGPTを使用した自動テスト

ニュースで取り上げられており、まだ耳にしていない方は、今こそOpenAIのChatGPTをチェックする時です。これは人工知能を搭載した非常に強力なツールです。ほぼ何でも尋ねたり、任意のタスクを与えたりすると、理論上は正しい答えを返したり、タスクを完了したりするというコンセプトです。例えば、人々はそれを使ってスピーチを書いたり、メールを作成したり、トピックを調査したり、さらにはコードを書いたりしています。このモデルが完璧に近いわけではありませんが、それでも非常に印象的で、多くの良い情報を含んでいます。私たち自身のMark Harrisが最近、自動テスト用の機器を制御するシンプルなスクリプトでこの能力を私に示しました。私はこの興味深い分野に飛び込み、ChatGPTと自動テストを実験することにしました。この記事では、ChatGPTを使い始める方法、質問の仕方を学び、そして最も重要なこととして、求めている結果を得るために必要な正しい質問が何かを理解する方法を説明します。

ChatGPTの使い始め

使い始める前に、ChatGPTとそれが提供するものについて慣れ親しんでおくことをお勧めします。まず、chat.openai.com にアクセスしてアカウントでサインアップするかログインしてください。この記事を書いている時点では、ツールは無料で提供されていたので、すぐに始めることができるはずです。「1 + 1は何ですか?」や「空の色は何色ですか?」などの基本的な質問から始めてみてください。その後、エッセイを作成したり、メールを下書きしたり、ソフトウェアで簡単な関数を書いたりするようなタスクを与えることができます。インターフェースはクリーンでシンプルで、下部にあるメッセージボックスに入力して、送信ボタンをクリックするか(またはエンターキーを押す)だけです。

 

Using ChatGPT, Automated Testing, AI, Machine Learning, Embedded Software, Altium
図1: ChatGPTを使ったメッセージボックス

ソフトウェアライブラリの作成

ChatGPTとの会話に慣れたら、コード生成を試みることができます。「C言語で2つの数を加算する関数を書いて」といった基本的なリクエストは、簡単に処理できる些細なタスクです。リクエストに詳細を追加すると、複雑になり始めます。私はコードを整然とした小さなクラスにまとめることを好むので、ChatGPTに特定の作業を行うクラスを作成するように明示的に指示します。ここに例があります:

Test Automation, Chatbot Testing, Software Testing
図2: クラス生成のリクエスト

 

また、Pytestを使用してテストを生成するように依頼したことにも気づくでしょう。このリクエストも処理しましたが、残念ながらコードにはいくつかのバグがあり、修正がやや難しいものでした。それでも、コードとユニットテストの構造を見る良いプロセスでした。自分ではしなかった方法でコードを生成するのを見ることで、確かに一つや二つのことを学びました。

ChatGPTで指導的なコードを生成する

上記で説明されたアプローチの一つは、AIにツール(つまりソフトウェアライブラリ)を手渡してもらい、製品(つまりテストスクリプト)を構築できるようにすることです。もう一つのアプローチは、ChatGPTに具体的なテスト仕様を与え、コードを生成してもらうことです。これは、セットアップやテストケースを調整する前に、素早く簡単なテストスクリプトを生成するのに適しています。例を見てみましょう。

次の非常にシンプルな指示セットをChatGPTに提供して、スイッチング電源コンバーターをテストしました:

Pytestを使用してPythonでスクリプトを書いて、以下の操作を行ってください:

1. Rigol DP832電源をオンにして、チャンネル1で5Vと2Aに設定する

2. Rigol DL3021電子負荷をオンにして、負荷を1.5Aの定電流で3分間設定する

3. DP832とDL3021をオフにする

この場合、特定のテストを組み込んでいません。私がしたいのは、DC-DCコンバーターが1.5Aの負荷を3分間扱えるかを観察することだけです。生成されたコードはかなりまともでしたが、時々修正が少し難しいバグが出てきました。ChatGPTに特定のアサーションを組み込むように指示したり、特定の失敗に対してテストするように言うこともできますが、私はAIアプリを使って基本的なテストにのみ興味がありました。さらに、コードを検証するためのテストクラス(モックありまたはなし)を書いてもらうように要求することもできます。しかし、すべてが完璧に整っていたわけではありません。コード自体とテストクラスをマッサージして、完璧に機能するようにする必要がありました。 

結論

全体として、ChatGPTとの実験は良い経験でした。手作業をせずに、またはウェブ上で例を探すことなく、いくつかの概念をコードにまとめる「アグリゲーター」を持っているのは良かったです。完璧ではありませんが、それでも役に立ち、実験するのは楽しかったです。この記事をレビューした後、あなたは以下のことを理解しているはずです:

  1. ChatGPTにアクセス
  2. 基本的な質問をする
  3. リクエストに基づいてソフトウェアライブラリを作成する
  4. リクエストに基づいてテスト実行コードを作成する

この記事で提供した例を実行するか、あなた自身のものを試してみることを強くお勧めします。ChatGPTは技術的にはまだベータ版であることを念頭に置いて、期待を高く設定しすぎないでください。忍耐強く、間違いを犯したときはそれを指摘して、「学習」できるようにしてください。ハッピーコーディング!

筆者について

筆者について

Ariは、設計、デバイスパッケージ、テスト、および電気、機械、およびソフトウェアシステムの統合において幅広い経験を持つエンジニアです。彼は、設計/デザイン、検証、テストのエンジニアをまとめて団結したグループとして機能させることに情熱を注いでいます。

関連リソース

ホームに戻る
Thank you, you are now subscribed to updates.