[python] 테스트 케이스 작성시 주의해야 할 점
테스트 케이스는 소프트웨어의 안정성과 신뢰성을 보장하기 위해 매우 중요합니다. Python으로 테스트 케이스를 작성할 때는 몇 가지 주의할 점이 있습니다. 본 블로그 포스트에서는 이러한 주의사항에 대해 살펴보겠습니다.
1. 테스트 케이스의 목적을 명확히 정의하기
테스트 케이스를 작성할 때는 그 목적을 명확히 이해하고 있어야 합니다. 각 테스트 케이스가 무엇을 테스트하는지, 어떤 조건을 가정하고 있는지에 대해 명확히 정의해야 합니다.
import unittest
class MyTestCase(unittest.TestCase):
def test_addition(self):
# 목적: 두 숫자를 더하는 함수를 테스트한다
# 조건: 양수 두 개를 더할 때
result = add(3, 5)
self.assertEqual(result, 8)
2. 모든 경로를 고려하기
모든 가능한 경우의 수와 예외 상황을 고려하여 테스트 케이스를 작성해야 합니다. 입력값의 유효성, 경로별 실행 여부, 예외 처리 등을 고려해야 합니다.
import unittest
class MyOtherTestCase(unittest.TestCase):
def test_division(self):
# 목적: 두 숫자를 나누는 함수를 테스트한다
# 조건: 분모가 0이 아닐 때
result = divide(6, 2)
self.assertEqual(result, 3)
def test_division_by_zero(self):
# 목적: 두 숫자를 나누는 함수를 테스트한다
# 조건: 분모가 0일 때
with self.assertRaises(ZeroDivisionError):
divide(6, 0)
3. 가독성과 재사용성 고려하기
테스트 케이스는 다른 개발자들이 이해할 수 있도록 명확하고 간결하게 작성해야 합니다. 또한, 동일한 테스트 케이스를 여러 함수에서 재사용할 수 있도록 일반화하여 작성하는 것이 좋습니다.
import unittest
class MyTestCase(unittest.TestCase):
def test_factorial(self):
# 목적: 팩토리얼을 구하는 함수를 테스트한다
# 조건: 양의 정수일 때
result = factorial(5)
self.assertEqual(result, 120)
def test_factorial_negative_input(self):
# 목적: 팩토리얼을 구하는 함수를 테스트한다
# 조건: 음의 정수일 때
with self.assertRaises(ValueError):
factorial(-5)
효율적인 테스트 케이스 작성을 위해 위의 세 가지 주의사항을 유의하여 Python으로 테스트 케이스를 작성하시기 바랍니다.
참고 문헌:
- “Unittest — 단위 테스트 프레임워크” (https://docs.python.org/ko/3/library/unittest.html)