LoginSignup
18
10

More than 1 year has passed since last update.

ChatGPTを使ってプログラム実行、リファクタリング、テストをやってみた

Last updated at Posted at 2023-03-25

この記事は何

記事投稿キャンペーン「ChatGPTなどの活用方法を発信しよう!」の参加記事です。

ChatGPTの可能性を色々模索している中で試したことを記事としてまとめました。

ChatGPTとは

ChatGPTについてはすでに多くの記事が投稿されていますので、割愛します。
以下の記事などをご参考ください。

思ったこと

の記事を読み、「ChatGPTはコンピュータの処理のエミュレートもできるのでは?」と考えました。
つまり、ChatGPT上でプログラムの実行も行えそうです。

実際に試した

ChatGPT上でプログラムが実行できそうか、試してみました。

まずはRuby。今回はフィボナッチ数列のプログラムが実行できるか試してみました。
ちなみにコードは https://qiita.com/zooootech/items/d8ca1e9d8cfde5646591 の記事のものを実行しています。

スクリーンショット 2023-03-25 9.02.19.png

できていそうです!
では次はPython。
https://qiita.com/dovedove/items/3456c4f317a5c680f437 の記事のコードを試してみます。

スクリーンショット 2023-03-25 9.06.07.png

同じくできていそうです!

最後にC言語です。
こちらんのプログラムは https://qiita.com/keitean/items/18d667db7030c8add8c4 のコードを参考にしました。

スクリーンショット 2023-03-25 9.10.39.png

実行できました。

どこまで可能なのかはわからないですが、フィボナッチぐらいの処理であればChatGPT上でエミュレートできることがわかりました。

リファクタリングをしてみる

最近ChatGPTの利用方法として「要件に合わせたプログラムを生成してもらう」事例をよくみます。
しかしその逆の渡したプログラムのエミュレートをしてもらうことができることもわかりました。
これだけでも簡単なスクリプトであれば環境構築をせずとも実行できてしまう、とても画期的なものですが、
今回はこのエミュレートできる特性を用いて以下のことをChatGPTだけでやってみたいと思います。

  1. コードのリファクタリング
  2. リファクタリングしたコードが正しいかテストをする

今回は先ほど用いたRubyのフィボナッチ数列のコードのリファクタリングをしてみます。

スクリーンショット 2023-03-25 9.18.12.png

できました!

テストをしてみる。

前項でリファクタリングができたことは確認できましたが、本当にリファクタリング前後で同じ処理をしているかも検証したいです。

とりあえず以下のようなプロンプトを投げてみました。

スクリーンショット 2023-03-25 9.19.37.png

ただしそうです。
ただ、これだけだと本当に検証をしているのか(適当に言っていないか)わからないので、少し意地悪をしてみます。

関数の処理は同じだが出力する文字列の表現が違う。

リファクタリング後のコードの出力から「第」を消してみます。

スクリーンショット 2023-03-25 9.21.55.png

ちゃんと認識できていそうです。

余計な処理を入れてみる

フィボナッチ数列の処理に関わるところは同じですが、二つの目のプログラムに最後余計な出力を出してみます。

スクリーンショット 2023-03-25 9.23.29.png

ちゃんと認識できていそうです。

結果は変わらないけど余計な処理を入れる

結果自体はかわらない状態で、使っていない不要なメソッドを追加してみます。

スクリーンショット 2023-03-25 9.24.44.png

これも認識されていそうです。

まとめ

今回はChagGPTでコードの実行→リファクタリング→テスト
を行ってみました。
どれだけ精度が出るかはわかりませんが、今回のユースケースぐらいであればかなりの精度で処理を行えそうです。
現在でもこれだけのことができるということは、本当に近い将来いまの開発体験の常識が変わっていきそうです。

※なお、この記事のタイトルとタグはChatGPTに生成してもらいました。

18
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
10