일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 징검다리 건너기
- 티스토리
- 트라이
- 알고리즘
- 프로그래머스
- Python
- 가사 검색
- 트라이 #trie #알고리즘
- jdbc
- pycon
- 카카오 인턴
- Spring Boot
- Tistory
- Open API
- 티스토리 open api
- 호텔 방 배정
- trie
- 불량 사용자
- bulk update
- 크레인 인형뽑기 게임
- 보행자 천국
- 튜플
- CleanCode
- Today
- Total
택시짱의 개발 노트
8장. unit test 본문
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(인터페이스)를 테스트하는 것은 물론이고, 운영체제, 파일 시스템, 하드웨어, 시스템간 인터페이스와 같은 시스템의 각기 다른 부분과 상호 연동하는 동작을 테스트하게 된다.
'책 읽고 정리 > 깔끔한 파이썬 탄탄한 백엔드' 카테고리의 다른 글
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 |