pytest によるユニットテスト

Pythonによるテスト入門

Alexander Levin

Data Scientist

ユニットテストとは

ユニット ー テスト可能な最小の動作部分。

  • ユニット例: 関数、メソッド、クラス、モジュールなど

$$

ユニットテスト ー ソフトウェアテスト手法。

  • ユニットの正しさを詳細に確認できる。

$$

テストケース ー ユニットの入力と期待出力の集合。

  • テストケースは問題の一部を要約する。
Pythonによるテスト入門

なぜユニットテストを使うか

ユニットテスト は、ソフトウェアの「大局」の検証の土台。

使用場面:

  • バグ発見時
  • 開発中
  • 変更後
Pythonによるテスト入門

ユニットテストの作り方

手順:

  1. テストするユニットを決める
  2. テストケースを定義(創造的作業):
    • 「可能な出力は?」
    • 「どのように使われるか?」
    • 「各場合の期待動作は?」
  3. 各テストケースのコードを書く
  4. テストを実行して結果を分析
Pythonによるテスト入門

ユニットテストの作成: 例

テスト対象のユニット:

# 配列要素の合計を返す関数
def sum_of_arr(array:list) -> int:
    return sum(array)

テストケース:

  1. 入力が想定どおり数値リスト ー sum を返す
  2. 入力が空リスト ー 0 を返す
  3. 入力が数値を1つ含むリスト ー その number を返す
Pythonによるテスト入門

ユニットテストの作成: コード

# テストケース1: 通常の配列
def test_regular():
    assert sum_of_arr([1, 2, 3]) == 6
    assert sum_of_arr([100, 150]) == 250
# テストケース2: 空リスト
def test_empty():
    assert sum_of_arr([]) == 0
# テストケース3: 要素が1つ
def test_one_number():
    assert sum_of_arr([10]) == 10
    assert sum_of_arr([0]) == 0
Pythonによるテスト入門

まとめ

ユニットテスト ー ユニットが期待どおり動くかを検証するテスト。

テストケース ー 問題の一部を要約した入力と出力。

使用場面:

  • バグ発見時
  • 開発中
  • 変更後

テストケースの定義 ー 創造性が必要。

Pythonによるテスト入門

練習してみましょう!

Pythonによるテスト入門

Preparing Video For Download...