테스트 종류
단위 테스트(Unit Test)
- 소프트웨어의 각 기능이나 모듈이 의도한 대로 동작하는지를 검증하는 테스트
- 소프트웨어 변경 시 예상치 못한 부작용을 최소화
- 코드의 작은 부분(함수, 메서드, 클래스 등)을 개별적으로 검증
- 빠른 시간 안에 수행할 수 있어 개발 과정에서 가장 많이 사용됨
- 대표적인 단위 테스트 프레임워크로는 JUnit, pytest, unittest 등이 있음
- 모든 테스트가 서로 독립적(sateless)
통합 테스트(Integration Test)
- 각 기능이 모두 연결되어 잘 작동하는지를 검증하는 테스트
- 각 모듈이 단위 테스트에서 검증된 후, 모듈들 간의 상호작용을 검증함
- 대표적으로 스프링 프레임워크에서 사용되는 스프링 부트 테스트가 있음
E2E(End-to-End) 테스트
- 전체 시스템을 대상(DB, 서버, 클라이언트 등)으로 수행하는 테스트
- 사용자의 관점에서 시스템이 어떻게 동작하는지를 검증
- 사용자가 시스템을 사용할 때 발생할 수 있는 문제를 대상으로 검증
- 자동화가 어려우므로 많은 시간과 비용이 소요
통합 테스트와 E2E 테스트 차이
| 통합 테스트 | E2E 테스트 |
| 개별 모듈의 동작 확인에 중점 | 사용자 경험에 초점 |
| 모듈 간의 상호작용을 검증 | 전체 시스템을 대상으로 수행 |
시스템 테스트(System Test)
- 전체 시스템의 기능, 성능, 안전성을 검증
- E2E 테스트를 포괄하는 테스트
- 시스템이 예상한대로 동작하며 사용자 요구사항을 충족시키는지를 확인함
- 수행 방식에는 수동 테스트와 자동화된 테스트가 있음
'Python > Django' 카테고리의 다른 글
| [DRF] 16. setUpTestData (0) | 2023.04.30 |
|---|---|
| [DRF] 15. setUp, @classmethod, @staticmethod (0) | 2023.04.27 |
| [DRF] 14. 테스트 코드란? (0) | 2023.04.27 |
| [DRF] 13. 개인페이지 (Q객체, F객체) (0) | 2023.04.27 |
| [DRF] 12. 좋아요, 팔로우 (1) | 2023.04.26 |