pytest로 기능 테스트하기

Python 테스트 입문

Alexander Levin

Data Scientist

기능 테스트란?

기능(Feature)

  • 소프트웨어 시스템의 기능입니다.
  • 특정 사용자 요구를 충족합니다.

기능

  • 유닛보다 범위가 넓습니다.
  • 최종 사용자가 직접 사용합니다.

기능 테스트

  • 소프트웨어 테스트 방법입니다.
  • 특정 기능의 동작을 검증합니다.
  • 예시:
    • 데이터 분포 점검
    • 보고서 생성
Python 테스트 입문

유닛 vs. 기능: 개인용 컴퓨터

유닛:

  • 각 개별 버튼
  • 화면의 픽셀
  • LED 다이오드
  • 디스크 블록

기능:

  • 키보드
  • 화면
  • 조명
  • 파일 시스템
Python 테스트 입문

왜 기능 테스트를 사용하는가

기능 테스트는 다음에 유용합니다:

  • 사용자의 시스템 상호작용 범위에서 테스트합니다.

범위는 유닛보다 넓습니다:

  • 한 유닛이 고장이어도 기능이 반드시 잘못된 것은 아닙니다.

반대로:

  • 모든 유닛이 정상이어도 기능이 반드시 정상이라는 뜻은 아닙니다.
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...