- 開発技術
ChatGPTを使ったユニットテストコード作成について
- #AI
はじめに
【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc. 詳細はこちらから>
チャットGPTを活用してユニットテストコードを作成する方法について解説します。
昨今チャットGPTを使った効率的に開発することは日に日に重要性を増しています。
その中で特に面倒で時間がかかる事が多いユニットテストコードをチャットGPTで作るようにできれば、かなり楽になるのではと思いました。
ここではそのチャットGPTを使ったユニットテストコードの作成を紹介したいと思います。
ユニットテストとは?
ユニットテストは、プログラムの最小単位である「ユニット」(通常は関数やメソッド)の動作を検証するテストです。
これにより、コードの品質を高め、バグの早期発見と修正が可能になります。
チャットGPTを使ったユニットテストの作成手順
ステップ1:テスト対象のコードを準備
まず、ユニットテストを行いたいコードを用意します。例えば、以下のようなシンプルな関数を考えてみましょう。
1 2 3 4 5 |
def add(a, b): return a + b def subtract(a, b): return a - b |
これをcode.pyとして保存します。
ステップ2:チャットGPTにユニットテストの作成を依頼
次に、チャットGPTにユニットテストの作成を依頼します。例えば、以下のように依頼します。
1 |
Pythonのunittestモジュールを使って、add関数とsubtract関数のユニットテストコードを作成してください。 |
すると、チャットGPTは以下のようなコードを生成してくれます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import unittest class TestMathFunctions(unittest.TestCase): def test_add(self): self.assertEqual(add(1, 2), 3) self.assertEqual(add(-1, 1), 0) self.assertEqual(add(-1, -1), -2) def test_subtract(self): self.assertEqual(subtract(2, 1), 1) self.assertEqual(subtract(2, 2), 0) self.assertEqual(subtract(2, 3), -1) if __name__ == '__main__': unittest.main() |
しかし、これだけだと実行時に参照エラーとなってしまいます。
以下のコードを追加して参照を追加して保存します。(例:test_math_functions.pyとして保存)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import unittest import code # 参照を追加 class TestMathFunctions(unittest.TestCase): def test_add(self): self.assertEqual(add(1, 2), 3) self.assertEqual(add(-1, 1), 0) self.assertEqual(add(-1, -1), -2) def test_subtract(self): self.assertEqual(subtract(2, 1), 1) self.assertEqual(subtract(2, 2), 0) self.assertEqual(subtract(2, 3), -1) if __name__ == '__main__': unittest.main() |
ステップ3:生成されたテストコードを実行
生成されたテストコードを実行してみましょう。以下のコマンドを実行することで、ユニットテストを実行できます。
1 |
python -m unittest test_math_functions.py |
実行された結果を確認して修正等を行ってください。
まとめ
サンプルでは簡単なユニットテストコードを自動作成を示しましたが、多くの命令を追加すればもっと複雑なテストコードも作成できます。
ぜひいろいろ試してやってみてください。
【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>