[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으로 테스트 케이스를 작성하시기 바랍니다.

참고 문헌: