テスト駆動開発を利用したfibonacciのPythonコード作成
記事の更新日:2026/09/30 評価を加筆 1.概要 本記事は2023年の記事です。TDD(テスト駆動開発)の開発手法を利用して私はプログラムを作成するようになりました。そのきっかけはKent Beckの書籍です。Kent BeckはアジャイルのXP手法の提唱者であり、UnitTestの最初の開発者です。プログラム作成方法を変えた原点なので、備忘録に残すべきと考えました。 開発手法としてKent BeckのTDD(Test-Driven Development)を活用しています。参考書籍ではJavaを利用してfibonacci関数をTDDで開発する手法が紹介されています。ここでは、Pythonを利用してJava版と同じことを最初に実施します。 次に再帰呼出しの問題点を指摘して、再帰呼出しを利用しない方式へTDDで改良します。改良した結果、大きなfibonacciの計算ができるようになります。 TDDはテストコードを作成し、そのテストコードがパスするコードを作成するという作業を続けて、目的とするコードを作成する手法です。アジャイル(XP手法)の1つであり、スクラムなどの開発でも幅広く利用されている方法です。テストコードはUnitテスト方式で作成します。UnitテストはKent Beckが最初にjunitを開発し、様々な言語に波及しました。 私の評価は以下の通りです。 (1) プログラム開発は、開発コードとテストコードをセットで作成します (2) TDDはテストコードを先に作り、開発コードをテストがパスするように作ります (3) テストコードが存在することで、開発コードの修正リスクも減少します (4) TDDは様々な開発言語に適用できるので、活用してください 2.再帰呼出による詳細説明 fibonacci数列は、0,1,1,2,3,5,8,13,.....と継続する数列で、先行する2つの数値を足した値が、次の数値になる無限に続く数列です。初期値と次の値は、0と1になっています。 2.1 【Red】環境のセットアップとテスト失敗(ステップ1〜2) (1) testcode(TestFibonacci.py)を作成 import unittest from fibonacci import Fibonacci class TestFibonacci(unittest.T...