1. 소프트웨어 테스트란?
- 제대로 된 소프트웨어를 개발했는가?
- 소프트웨어를 제대로 개발했는가?
2. 테스트를 하는 이유
- 결함 확인
- 사전 방지
- 시간 절약
- 구조 개선
- 품질 개선
- 확장성
3. Manual Testing vs. Automation Testing
1. Manual Testing
사람이 직접 테스트해보는 것
- 불안전성이 높다.
- 인력소모가 많다.
- 비용이 많이 든다.
- 테스트 속도가 느리다.
- 확장성이 낮다.
2. Automation Testing
컴퓨터로 테스트 자동화
- 안정성이 높다.
- 인력소모가 적다.
- 비용이 낮다.
- 테스트 속도가 빠르다.
- 확장성이 높다.
4. 시스템 테스트 전략
- End-to-End (E2E) Tests
전체적인 Flow 테스트
- ex) 브라우저상 클릭 후 생기는 변화에 대한 검증
- 비중: 10%
- Integration Tests (통합 테스트)
모듈 간의 호환성 검증
- ex) 웹페이지나 Postman을 통한 API 호출시 올바르게 동작하는지 확인
- 비중: 20%
- Unit Tests (단위 테스트)
독립적으로 진행되는 가장 작은 단위의 테스트
- ex) 하나의 기능 또는 메소드
- 비중: 70%
5. 단위 테스트 작성의 필요성
- 문제 파악을 빠르게 할 수 있다.
- 시간과 비용 절감
- 리팩토링시 안정성 확보
- 코드에 대한 문서로 활용