[python] 테스트 데이터 관리하기

테스트 데이터는 소프트웨어 테스트를 수행할 때 매우 중요한 요소입니다. 테스트 데이터는 예상된 입력과 기대값을 제공하여 코드가 올바르게 작동하는지 확인하는 데 사용됩니다. 이번 블로그 게시물에서는 Python을 사용하여 테스트 데이터를 관리하는 방법을 살펴보겠습니다.

1. 테스트 데이터 생성

테스트 데이터를 생성하는 첫 번째 단계는 입력 데이터를 만드는 것입니다. 이는 테스트를 수행하는 함수 또는 모듈의 요구 사항에 따라 달라질 수 있습니다. 예를 들어, 리스트를 입력으로 받는 함수를 테스트한다고 가정해 봅시다.

def sum_numbers(numbers):
    return sum(numbers)

위 함수는 입력으로 숫자 리스트를 받아서 그 합을 반환합니다. 테스트를 위해 다양한 입력 데이터를 만들어 보겠습니다.

test_data = [
  ([1, 2, 3], 6),
  ([4, 5, 6], 15),
  ([10, 20, 30], 60)
]

위의 test_data 리스트는 각각 숫자 리스트와 기대되는 결과를 포함하고 있습니다. 이렇게 테스트 데이터를 구성하면 다양한 입력과 기대값을 사용하여 함수를 테스트할 수 있습니다.

2. 테스트 데이터 사용

이제 생성한 테스트 데이터를 사용하여 함수 또는 모듈을 테스트해 보겠습니다. 예를 들어, 위에서 생성한 sum_numbers 함수를 테스트하는 코드를 작성해 보겠습니다.

for numbers, expected_result in test_data:
    result = sum_numbers(numbers)
    assert result == expected_result, f"Expected {expected_result}, but got {result}"

위 코드는 test_data 리스트에서 각각의 숫자 리스트와 기대값을 반복하면서 sum_numbers 함수를 호출하고 결과를 기대값과 비교합니다. 만약 결과가 기대값과 다르다면 에러 메시지를 출력합니다.

3. 테스트 데이터 확장

테스트 데이터는 테스트 범위를 확장하는 데에도 매우 유용합니다. 예를 들어, 이전에 작성한 sum_numbers 함수를 음수가 포함된 입력으로도 테스트해 보고 싶다면 테스트 데이터를 확장해야 합니다.

test_data_extended = test_data + [
  ([-1, -2, -3], -6),
  ([-4, -5, -6], -15),
  ([-10, -20, -30], -60)
]

위의 test_data_extended 리스트는 이전 테스트 데이터와 음수가 포함된 추가적인 테스트 케이스를 포함하고 있습니다. 이것을 기존 테스트와 결합하여 함수의 작동 여부를 테스트할 수 있습니다.

마무리

테스트 데이터 관리는 효과적인 소프트웨어 테스트의 핵심 부분입니다. Python을 사용하여 테스트 데이터를 생성하고 사용하는 방법에 대해 알아보았습니다. 이러한 테스트 데이터를 사용하여 소프트웨어의 안정성과 신뢰성을 확보할 수 있습니다.