택시짱의 개발 노트

8장. unit test 본문

책 읽고 정리/깔끔한 파이썬 탄탄한 백엔드

8장. unit test

택시짱 2020. 10. 27. 18:23

unit test의 중요성

어떠한 기능을 개발하는데 총 10시간이 걸린다면 5시간은 실제 개발에 사용하고, 나머지 5시간은 unit test를 구현하는데 사용하는게 좋다.

 

- 시스템을 테스트하는 방법에는 크게 3가지가 있다.

    - UI test

    - intergration test

    - unit test

 

- 전체 테스트 중 UI test는 10%, intergration test는 20%, 그리고 나머지 70%는 unit test로 구성하는 것을 권장한다.

 

- 파이썬에서 unit test 구현을 도와주는 라이브러리 중 하나는 pytest다.

 

- test 파일의 이름은 test_로 시작해야 하며, 마찬가지로 test 함수도 test_로 시작되어야 한다.

 

- pytest.fixture decorator를 사용하여 test 함수에 필요한 인자들을 제공할 수 있다.

 

- setup_function과 teardown_function을 사용하여 각 test 함수들이 실행되기 전에 필요한 test 데이터들을 생성할 수 있고, 또한 각 test 함수들이 실행 종료된 후 test 데이터들을 삭제해 줄 수 있다.

    - 각 test 함수들은 서로에게 영향받지 않고 독립적으로 실행되어야 하기 때문에 test 데이터들을 삭제해 주는 것이          중요하다.

 

- Flask의 test_client 함수를 통해 엔드포인트 함수들에 가상의 HTTP 요청(request)을 보내고 응답(response)을 받을 수 있다. 그러므로 test_client 함수를 사용해 unit test를 구현하면 unit test이지만 어느정도 integration test를 실행하는 효과도 볼 수 있다.

 

 

##

 - intergration test란 (통합 테스트)

통합테스트는 모듈을 통합(Intergate)하는 단계에서 수행하는 테스트이다. 단위 테스트를 우선 수행하여 모듈들이 각각 정상적으로 작동이 되는 것을 확인했다면 이제 이 모듈들을 연동하여 테스트를 수행하게 되는데 이것이 통합 테스트이다.

 

단위 테스트에서 찾지 못하는 연동시 발생하는 버그 등을 찾을 수 있으며, 다른 모듈들과 동시 다발적으로 테스트를 수행해야 하기 때문에 단위 테스트와 다르게 일반적으로 테스트를 교육 받은 전문적인 테스터와 함께 수행하게 된다.

 

테스트 시 컴포넌트간의 I/F(인터페이스)를 테스트하는 것은 물론이고, 운영체제, 파일 시스템, 하드웨어, 시스템간 인터페이스와 같은 시스템의 각기 다른 부분과 상호 연동하는 동작을 테스트하게 된다.

 

출처 : needjarvis.tistory.com/443

반응형

'책 읽고 정리 > 깔끔한 파이썬 탄탄한 백엔드' 카테고리의 다른 글

10장. API 아키텍처  (0) 2020.11.04
7장. 인증  (0) 2020.10.25
6장. 데이터베이스  (0) 2020.10.25
5장. 본격적으로 API 개발하기  (0) 2020.10.25
4장. HTTP의 구조 및 핵심 요소  (0) 2020.10.25
Comments