티스토리 뷰

*️⃣ Static Test
정적 테스트란 코드를 실행시키지 않고 테스트를 하는 것을 의미한다.
✧ Typescript
TypeScript는 정적 타입 검사를 제공하여 코드의 안전성을 높이고 개발자가 코드를 더욱 안정적으로 유지할 수 있다.
✧ ESLint
ESLint는 코드 스타일 및 일반적인 프로그래밍 오류를 검사하여 코드의 일관성과 품질을 향상시킨다.
*️⃣ Unit Test
단위 테스트는 프로그래밍을 할 때 소스코드의 특정 모듈(메서드)이 의도된 대로 정확히 작동하는지 검증하는 절차이다.
툴: Jest, Jasmine, Karma, Mocha
✧ Jest
Jest는 코드가 제대로 동작하는 지 확인하는 test case 를 만드는 테스팅 프레임워크
- 기능

- 사용법
jest docs:https://jestjs.io/docs/getting-started
*️⃣ Integration Test
통합 테스트는 두 개 이상의 모듈을 연결하여 테스트하는 것을 의미한다. 단위 테스트 보다 넓은 범위에서 테스트하여 단위 테스트와 달리 리팩토링에도 쉽게 깨지지 않는다.
프론트엔드의 경우 API와 상호작용이 올바르게 일어나는지, 또는 상태에 따라 UI가 잘 변경되는지를 테스트할 수 있다.
툴: jest, testing library, msw
✧ MSW(Mock Service Worker)
API Mocking 라이브러리로, 서버향의 네트워크 요청을 가로채서 모의 응답(Mocked response)을 보내주는 역할을 한다. 따라서, Mock Service Worker(MSW) 라이브러리를 통하면, Mock 서버를 구축하지 않아도 API를 네트워크 수준에서 Mocking 할 수 있다.
자세한 설명은 아래 글을 참고하자.
https://tech.kakao.com/2021/09/29/mocking-fe/
*️⃣ E2E(End to End) Test
E2E 테스트는 애플리케이션의 흐름을 처음부터 끝까지 테스트하는 것을 의미한다. 유닛 테스트나 통합 테스트는 모듈의 무결성을 증명할 수 있는 강력한 테스트이지만, 모듈의 무결성이 애플리케이션 동작의 무결성까지는 증명해 줄 수 없다. 그래서 E2E 테스트 과정에서는 실제 사용자의 시나리오를 테스트함으로써 애플리케이션 동작을 테스트하게 되고, 이 테스트를 통과함으로써 애플리케이션의 무결성을 증명할 수 있게 된다.
툴: Cypress, TestCafe, Puppeteer, Nightwatch.js, Playwright
✧ Cypress
- Time Travel: Cypress는 테스트가 실행되는 동안 스냅샷을 캡처한다. 명령 로그에서 명령을 가리키면 각 단계에서 정확히 무엇이 발생했는지 볼 수 있다.
- Debuggability: 테스트가 실패하는 이유를 추측하지 않아도 됩니다. 개발자 도구와 같은 익숙한 도구에서 직접 디버깅할 수 있다. 읽기 쉬운 오류 및 스택 추적은 디버깅을 빠르게 해준다.
- Automatic Waiting: 테스트에 대기 시간이나 슬립을 추가할 필요가 없다. Cypress는 명령 및 어설션을 자동으로 대기하고 넘어간다. 더 이상 비동기적인 문제가 없다.
- Spies, Stubs, and Clocks: 함수, 서버 응답 또는 타이머의 동작을 검증하고 제어할 수 있다. 단위 테스트에서 좋아하는 기능이 여기서도 사용할 수 있다.
- Network Traffic Control: 서버를 거치지 않고도 네트워크 트래픽을 쉽게 제어하고 테스트할 수 있다. 원하는대로 네트워크 트래픽을 스텁화할 수 있다.
- Consistent Results: Cypress의 아키텍처는 Selenium이나 WebDriver를 사용하지 않습니다. 빠르고 일관되며 신뢰할 수 있는 테스트이다.
- Screenshots, Videos, and Test Replay: 실패할 때 자동으로 캡처된 스크린샷이나, 활성화된 경우 CLI에서 전체 테스트 스위트의 동영상을 보실 수 있습니다. Cypress Cloud로 녹화하여 테스트 실행 중에 테스트를 재생하여 구성 없이 디버깅할 수 있다.
- Cross Browser Testing: 로컬로 Firefox 및 Chrome 계열 브라우저(Edge 및 Electron 포함)에서 테스트를 실행하고 지속적인 통합 파이프라인에서 최적화할 수 있다.
- Smart Orchestration: Cypress Cloud로 녹화할 수 있는 경우 테스트 스위트를 쉽게 병렬화하고, 우선순위가 지정된 스펙을 먼저 실행하고, 오류 발생 시 자동 취소하여 빠른 피드백 루프를 제공할 수 있다.
- Flake Detection: Cypress Cloud의 'Flaky test management'를 통해 신뢰할 수 없는 테스트를 발견하고 진단할 수 있다.
사용법
cypress docs: https://learn.cypress.io/tutorials
*️⃣ UI Test with Storybook
✧ Storybook
- 사용법
storybook docs: https://storybook.js.org/docs/get-started
- 테스트 기능

- 이점
- 더 견고한 UI 개발
- 더 적은 노력과 플레이크 없이 UI 테스트
- 팀이 재사용할 UI 문서화
- UI 작동 방식 공유
- UI 워크플로우 자동화
참고: https://fe-developers.kakaoent.com/2023/230209-e2e/
'Programming' 카테고리의 다른 글
큐, 스택, 트리 (0) | 2023.12.11 |
---|---|
[JavaScript] Math 메소드 정리 + 예제 (2) | 2023.12.05 |
[Sass project] 4. @mixin (0) | 2023.11.23 |
[Sass project] 3. CSS 유용한 사이트 모음 (0) | 2023.11.23 |
[Sass project] 2. 변수 Variable (0) | 2023.11.13 |
- Total
- Today
- Yesterday
- 이브와ICT멘토링
- Network
- web
- prettier
- AI Challeng for Biodiversity
- Next.js
- Firebase
- 네트워크
- git
- 패키지 매니저
- react-query
- 무한스크롤
- React Query
- style-lint
- Tanstack Query
- github
- zustand
- 핀터레스트
- sass
- 쓰로틀링
- react
- 디바운싱
- 티스토리챌린지
- 캡스톤디자인
- 최적화
- Masonry 레이아웃
- eslint
- 오블완
- Tanstack-Query
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |