제대로 된 소프트웨어를 개발했는가
소프트웨어를 제대로 개발했는가
--> '제대로' : 오류 없이 돌아가는 것 뿐만 아니라 내가 만들고 있는 이 제품을 어떻게 제대로 만들고 있는가와 같은 본질에 대한 고찰
End-to-End(E2E) Test (처음부터 끝까지 테스트)
FE와 BE가 처음부터 끝까지 통신을 해본다
@배포단계에서 전체적인 flow를 확인해보는 것
예) FE는 cypress를 통해 해볼 수 있음. 링크 ▶︎ cypress
Integration Test (통합 테스트)
postman : 가상의 클라이언트라고 보자
httpie
모듈 간의 호환성을 검증해본다 (각각의 api를 확인해볼 수 있다)
Unit Test (단위 테스트)
하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트
모듈:하나의 기능/메서드 like signIn 메서드
함수 하나하나를 unit이라고 본다면, 그것을 확인해보는 것
빠른 문제 파악이 가능
시간 비용 절감
리팩토링 시 안정성 확보
코드에 대한 문서로 활용
<unit test 는 하나하나 다 확인해봐야하니까 그게 더 복잡하다고 봐야함>
테스트가 코드를 얼마나 커버하는지에 대한 정도를 나타내는 지표
테스트 코드를 할 때 커버리지를 계속 확인해야한다
100%로 맞춰줘야한다 !!!!!
함수커버리지(%) Function Coverage
= 실행된 함수 / 총 함수 개수 * 100
구문 커버리지(%) Statment Coverage
= 실행된 구문 수 / 전체 구문 수 * 100
조건 커버리지(%) Condition Coverage
= 각 조건마다 true or false 한번의 개수 / (전체 조건 수 ^ 2) * 100
분기 커버리지(%) Line Coverage
= 실행된 분기 수 / 총 분기 개수 * 100 
얘네들을 다 100%로 맞춰야한다는 거죠?
나중에 링크 여기를 참고해보자