Programming Languages/Python

함수 디버깅과 테스트

newclass 2025. 3. 26. 03:33

함수 디버깅과 테스트

디버깅 기법

print() 문 사용하기

def 문제_함수(a, b):
    print(f"입력값: a={a}, b={b}")
    결과 = a / b
    print(f"결과: {결과}")
    return 결과

# 함수 호출
try:
    문제_함수(10, 0)
except Exception as e:
    print(f"오류 발생: {e}")

예외 처리로 디버깅

def 안전한_나누기(a, b):
    try:
        print(f"a={a}, b={b} 나누기 시도")
        결과 = a / b
        return 결과
    except ZeroDivisionError:
        print("오류: 0으로 나눌 수 없습니다.")
        return None
    except Exception as e:
        print(f"예상치 못한 오류: {e}")
        return None
    finally:
        print("나누기 연산 완료")

단위 테스트

함수의 정확성을 검증하기 위한 단위 테스트를 작성할 수 있습니다.

def 테스트_더하기():
    # 준비
    a, b = 5, 3
    예상_결과 = 8
    
    # 실행
    실제_결과 = 더하기(a, b)
    
    # 검증
    assert 실제_결과 == 예상_결과, f"더하기({a}, {b}) 결과가 {예상_결과}이 아니라 {실제_결과}입니다."
    print("더하기 함수 테스트 통과!")

def 테스트_나누기():
    # 케이스 1: 일반적인 나눗셈
    a, b = 10, 2
    예상_결과 = 5
    실제_결과 = 나누기(a, b)
    assert 실제_결과 == 예상_결과, f"나누기({a}, {b}) 결과가 {예상_결과}이 아니라 {실제_결과}입니다."
    
    # 케이스 2: 0으로 나누기 예외 처리
    a, b = 10, 0
    try:
        나누기(a, b)
        assert False, "0으로 나누기 시 예외가 발생해야 합니다."
    except ValueError:
        # 예상대로 예외 발생
        pass
    
    print("나누기 함수 테스트 통과!")

# 테스트 실행
테스트_더하기()
테스트_나누기()