테스트 코드란?
테스트 코드란 말 그대로 우리가 작성한 코드에 문제가 없는지 테스트하기 위해 작성하는 코드입니다.
흔히 테스트 기본 원칙이라고 불리는 "일곱 테스트 원칙"에서는 첫번째 규칙이 아래와 같습니다.
Testing shows the presence of defects, not their absence 테스팅은 결함이 없는것이 아니라, 결함의 존재를 보여주는것이다.
테스트 코드를 작성하는 방법은 앞으로 같이 알아볼것이지만, 여러분이 테스트 코드를 작성하기 전에 반드시 머릿속에 박아두어야 할 말입니다! 테스트 코드를 작성하는 목적은 "내 코드가 멀쩡하다!" 라고 증명하기 위한게 아니고, "내 코드가 멀쩡하다면 이렇게 결과가 나와야 한다!" 라고 생각하셔야 합니다.
하나의 기능을 여러번 수정하다 보면 예상치 못한 결과가 나오기 마련인데요, 테스트 코드를 이용하여 여러분의 코드를 믿고 사용할 수 있도록 해보시길 바랍니다.
아래와 같은 글들도 있으니 꼭 읽어보시길 바랍니다.
테스트 코드의 종류
테스트 코드란, 어떠한 언어에 얽매이지 않고 개념적으로 표현하기도 합니다. 많은 개발자들이 오랜 기간동안 테스트 코드를 작성하며 아래와 같은 테스트 코드의 종류를 정립했으며, 우리는 이 중 가장 작은 기능을 테스트하는 "단위 테스트" 코드를 실제로 작성해볼 예정입니다 🙂
- 단위 테스트 (Unit Test): 가장 작은 규모의 기능을 테스트합니다.
- 통합 테스트 (Integration Test): 여러가지 기능을 합쳤을때 생기는 문제를 방지하기 위한 테스트입니다.
- E2E 테스트 (End-to-end Test): 끝에서 끝(종단 간)을 의미하는 End to end 테스트입니다. 쉽게 말하면 백엔드부터 시작해서 최종적으로 웹 페이지가 원하는대로 동작하며 원하는 데이터를 잘 보여주는지 확인합니다.
이 외에도 수 많은 개발자가 돌연변이 테스트와 같은 다양한 기법들로 자신들의 서비스가 더욱 치밀하고 탄탄한 서비스로 거듭날 수 있도록 노력하고 있습니다.
번외) 넷플릭스는 자신들의 서버가 아무때나 무작위로 다운되도록 해서 자신들의 인프라에 약점이 있는지 찾아내는것을 도와주는 "카오스 몽키"라는 솔루션을 개발해서 사용했습니다. (카오스 엔지니어링) 언제든 서버가 죽더라도 최대한 빠르게 자동으로 서버를 다시 재구성하는 환경으로 운영할 수 있습니다.
'Language > Node.js' 카테고리의 다른 글
[JEST] Supertest (0) | 2022.12.29 |
---|---|
[JEST] 테스팅 프레임워크 JEST (0) | 2022.12.29 |
계층형 아키텍처 패턴 (Layered Architecture Pattern) (0) | 2022.12.27 |
아키텍처 패턴 (Architecture Pattern) (0) | 2022.12.27 |
도메인 (Domain) (0) | 2022.12.27 |