파이썬 테스트 소개

Python 테스트 입문

Alexander Levin

Data Scientist

왜 테스팅이 중요한가?

일반적인 문제:

  • 버그와 오류
  • 하드웨어 고장
  • 예기치 않거나 예측 불가한 동작

이런 문제들은 수정 비용의 큰 증가로 이어질 수 있습니다.

테스팅은 다음에 도움이 됩니다:

  • 결함, 버그, 오류 식별
  • 소프트웨어 실패 위험 감소
  • 신뢰성, 기능, 성능 향상
Python 테스트 입문

테스팅이란?

  • 테스팅 - 시스템 또는 소프트웨어를 평가하는 과정
  • 요구사항을 충족하는지 보장하려면 테스팅이 필요합니다.

  • 테스트 - 소프트웨어나 시스템의 정확성을 검증하는 절차

Python 테스트 입문

수강 전제 지식

  • 고급 파이썬 프로그래밍
  • assert
  • 데코레이터
  • OOP 개념(클래스, 메서드, 상속)
Python 테스트 입문

일상 속 테스팅

비행기를 떠올려 보십시오:

  • 육안 점검
  • 전자·기계 점검
  • 연료 점검
  • 승객 점검
  • 기상 확인
  • 관제사의 이륙 허가

위 모든 것이 테스트이며, 안전을 위해 필요합니다.

이륙 전 비행기

Python 테스트 입문

파이썬의 assert

  • assert condition - conditionTrue인지 검사합니다.
  • conditionFalse이면 AssertionError가 발생합니다.
Python 테스트 입문

pytest로 테스트하기 - 간단 예시

pytest - 파이썬의 대표적인 테스트 프레임워크로, 테스트를 쉽게 작성할 수 있습니다.

파이썬에서 pytest로 작성한 "assert" 테스트 예:

import pytest

# A function to test
def squared(number):
    return number * number

# A test function always starts with "test"
def test_squared():
    assert squared(-2) == squared(2)
Python 테스트 입문

컨텍스트 매니저 복습

  • 컨텍스트 매니저 - with 문으로 사용하는 파이썬 객체
  • 임시 컨텍스트의 설정과 해제를 위해 사용합니다.
# 파일 쓰기 예시
with open("hello_world.txt", 'w') as hello_file:
    hello_file.write("Hello world \n")
Python 테스트 입문

pytest 알아보기: raises

pytest.raises - 테스트에서 Exception 발생을 예상할 때 사용합니다.

import pytest

# A function to test
def division(a, b):
    return a / b

# A test function
def test_raises():
    with pytest.raises(ZeroDivisionError):
        division(a=25, b=0)
Python 테스트 입문

요약

테스트란:

  • 소프트웨어가 기대대로 동작하는지 평가하는 과정
  • 일상에서도 존재함
  • 개발 과정의 과제를 해결하는 데 필수적
  • 문제를 올바르게 처리하도록 도움

테스트 구현:

  • pytest - 테스트를 단순화하는 강력한 파이썬 프레임워크
  • assert - 조건을 검증해 기본 테스트를 만드는 파이썬 키워드
  • pytest.raises - Exception 발생이 예상되는 테스트에 쓰는 컨텍스트 매니저
Python 테스트 입문

연습해 봅시다!

Python 테스트 입문

Preparing Video For Download...