Software Testing
1. Software Testing
2. Manual Testing vs Automation Testing
3. 시스템 테스트 전략 3가지
Build product right OR Build right product
제대로 된 소프트웨어를 개발했는가? OR 소프트웨어를 제대로 개발했는가?
Why Test?
결함 확인, 사전 방지, 시간 절약, 구조 개선, 품질 개선, 확장성
문제 개선을 하자
manual Testing의 문제점
불안정성이 높다, 인력소모가 크다, 비용도 크다, 테스트 속도가 느리다
###Automation Testing
안정성이 높다, 인력소모가 낮다, 비용이 절감한다, 테스트 속도가 빠르다, 확장성이 높다
시스템 테스트 전략 3가지
End-to-End (E2E) Tests
- 전체적인 Flow(ex. 브라우저상 클릭 후 생기는 변화에 대한 검증)
- 실제로 처음부터 끝까지 프론트엔드와 백엔드 코드를 결합하고 프론트가 작성한 로직, 백엔드가 작성한 로직, 그리고 프론트와 백엔드가 결합한 로직이 정상적으로 잘 동작하는지?
integration Tests(통합 테스트)
- 모듈 간의 호환성 검증(ex. 웹페이지 혹은 Postman을 통한 API 호출 시 올바르게 동작하는지 확인)
- 기능을 호출 했을 때 맞는 결과를 return 하는지?
Unit Tests(단위 테스트)
- 독립적으로 진행되는 가장 작은 단위의 테스트(ex. 하나의 기능 또는 메소드)
단위테스트 작성의 필요성
빠른 문제 파악 가능, 시간과 비용 절감, 리팩토링 시 안정성 확보, 코드에 대한 문서로 활용