pytest での機能テスト

Pythonによるテスト入門

Alexander Levin

Data Scientist

機能テストとは

機能 (Feature)

  • ソフトウェアの機能性。
  • 特定のユーザー要件を満たす。

機能

  • ユニットより範囲が広い。
  • エンドユーザーが直接使う。

機能テスト

  • ソフトウェアテスト手法。
  • 特定機能の挙動を検証。
  • :
    • データ分布の確認
    • レポート作成
Pythonによるテスト入門

ユニット vs. 機能: パソコン

ユニット:

  • 各ボタン
  • 画面のピクセル
  • LED ダイオード
  • ディスク上のブロック

機能:

  • キーボード
  • 画面
  • イルミネーション
  • ファイルシステム
Pythonによるテスト入門

なぜ機能テストを使うのか

機能テストでできること:

  • ユーザー操作の範囲でシステムを検証。

範囲はユニットより広い:

  • 1つのユニットが不調でも、機能がNGとは限らない。

逆もあり:

  • すべてのユニットが正常でも、機能がOKとは限らない。
Pythonによるテスト入門

機能テスト例: セットアップ

セットアップと機能コードの定義:

# Setup
import pandas as pd
import pytest

df = pd.read_csv('laptops.csv')

# Filter feature
def filter_data_by_manuf(df, manufacturer_name):
    filtered_df = df\
        [df["Manufacturer"] == manufacturer_name]
    return filtered_df
Pythonによるテスト入門

機能テスト例: テスト

テストコード:

# 機能テスト関数
def test_unique():
    manuf_name = 'Apple'
    filtered = filter_data_by_manuf(df, manuf_name)
    assert filtered\
        ['Manufacturer'].nunique() == 1
    assert filtered\
        ['Manufacturer'].unique() == [manuf_name]
Pythonによるテスト入門

まとめ

機能テスト — 特定の機能の挙動を検証するソフトウェアテスト手法。

機能ユニットより広い概念:

  • ボタンがユニットなら、キーボードは機能。

機能テストの目的: ユーザーが期待どおりの結果を得られることを保証。

機能テストの作成にはテストケースを定義する。

設計の要点: 対象システムの機能を正しく把握すること。

Pythonによるテスト入門

練習してみましょう!

Pythonによるテスト入門

Preparing Video For Download...