1. 테스트의 종류
- 매뉴얼 테스트 : 사람이 직접 실행
장점 : 누구나 직관적으로 계획없이 가능
단점 : 실행 속도가 느리고 시간이 오래걸림. 자주 하기가 힘들고 정확도가 떨어진다. - 테스트 자동화 : 반복적이고 자주 실행될 수 있도록 함
2. 테스트 방법
- UI test / End-To-End test : 사용자가 실제로 사용하는 방식과 동일하게 시스템의 UI를 통해서 테스트한다.
- 단점 : 프론트엔드에서 백엔드 까지 모든 시스템을 실행해야 할 수 있음. 시간이 많이 걸리며 속도도 느리다.
화면 렌더링을 모두 자동화 시키기 까다롭다. -> 자동화에 어려움이 있다. - integration test : 테스트 하는 서버를 실제로 실행하며 테스트 HTTP 요청이나 서버 실행 요청 명령 등을 실행하여 테스트
- 미니터 API 구현하며 했던 방식
- 테스트 하고자 하는 해당 시스템만 실행시켜 테스트 함
- UI 테스트보다 설정이나 실행 시간이 짧고 간단하다.
- 실제로 시스템을 실행 후 테스트해야 하므로 실행 속도가 어쩔 수 없이 느리다. - unit test : 실제 실행해야 하는 코드를 코드로 작성해서 테스트
- unit : 테스트가 가능한 코드의 단위를 테스트. 주로 함수나 메소드가 됨 -> 결과값을 확인하는 코드를 실행
- 코드로 테스트 진행 -> 자동화 100% 가능
- 언제든지 반복적으로 실행, 속도도 빠르다.
- 함수 단위로 테스트 -> 디버깅이 쉽고 문제 파악이 비교적 수월하다.
- 단점 : 함수단위 테스트이기 때문에 전체를 테스트 하기엔 제한적임. 모든 함수가 테스트를 통과하더라도 하나의 서비스로 정상 작동 하는지 확신이 어려움.
- 단점 보완을 위해 UI test(10%), integration test(20%)와 함께 진행
3. pytest
파이썬의 unittest라는 라이브러리도 있지만 pytest가 직관적이고 사용하기 편리하다.
- 파일명 앞의 test_ 라고 명시된 파일만 테스트 파일로 인식하고 실행
- 함수도 마찬가지로 test_ 라고 되어있는 함수만 실행
- test_mulli_by_two.py 라는 파일을 만들어 실행해본다.
def multi_by_two(x):
return x * 2
def test_multi_by_two():
assert multi_by_two(4) == 7
터미널에 pytest 파일명을 입력하면 다음과 같이 나온다.
어떤 부분이 틀렸는지 잘 보여준다. 틀린 부분을 수정하면 잘 나온다. (코드 중 7을 8로 수정)
성공했다고 나온닷!
'Python > Flask' 카테고리의 다른 글
[미니터] unit-test 시 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 오류 (0) | 2022.08.01 |
---|---|
[미니터] test - 미니터 unit test (0) | 2022.07.19 |
[미니터] 인증 구현시 ValueError : Invalid salt과 AttributeError: 'str' object has no attribute 'decode'에러 (0) | 2022.07.18 |
[미니터] 인증 - tweet, follow, unfollow에 decorator 추가 (0) | 2022.07.15 |
[미니터] 인증 - 인증 decorator 함수 (0) | 2022.07.15 |