FE코크
탄산 가득 시원한 개발일지
FE코크
전체 방문자
오늘
어제
  • 분류 전체보기 (43)
    • 우아한테크코스 (22)
      • 우아한테크코스4기 (4)
      • 우아한테크코스3 (10)
      • 회고록 (8)
    • Web (0)
      • HTTP 웹 기본지식 (0)
    • JavaScript (2)
    • React.js (12)
    • 알고리즘 풀이 (2)
    • HTML, CSS (4)
    • 기타 (1)
      • 일상 (0)
      • 후기 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 우아한테크코스 3기
  • 프론트엔드
  • 알고리즘
  • react
  • 우테코
  • 회고
  • 레벨1회고
  • Props
  • 회고록
  • 리액트
  • createRoot
  • prop drilling
  • 재택하고싶은데
  • 우테코4기
  • 프리코스
  • 개발자
  • 우아한테크코스
  • JavaScript
  • CSS
  • 자바스크립트
  • 노마드코더
  • jsx
  • 백준
  • state
  • 코어자바스크립트
  • React.DOM
  • 주간회고
  • 4기
  • react.js
  • Reactjs

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
FE코크

탄산 가득 시원한 개발일지

우아한테크코스/우아한테크코스4기

E2E테스트, Cypress, TDD

2022. 2. 18. 18:02

안녕하세요 우아한테크코스 4기 프론트엔드에서 시원한 콜라를 제공하고있습니다.


내가 만든 애플리케이션은 잘 작동 하는 걸까?

  • 그동안 프로그램을 개발하면서 테스트 코드를 작성하고 테스트 프레임워크를 사용한 적은 없었습니다.
  • 이번에 우테코에서 E2E테스트에 대해 학습 하면서 테스트의 중요성과 테스트 프레임워크의 한 종류인 Cypress에 대해 간략히 기록해 보겠습니다.

E2E 테스트

E2E(End to End)테스트는 사용자의 입장에서 테스트를 하는 것을 말한다. 사용자가 버튼을 클릭 할 경우, 올바른 동작이 작동 되는지 등을 테스트한다.

왜 E2E를 해야 하나요?

  • E2E테스트를 하면 사용자의 입장에서 동작을 생각하게 되므로 자연스러운 사용자 경험을 제공할 수 있다
  • 테스트를 자동화 함으로써 테스트하는 시간을 줄일 수 있다.
  • 리팩토링을 한 후 예상하지 못한 사이드 이펙트를 빠르게 체크할 수 있다.

E2E 테스트 프레임워크

E2E테스트를 할 수 있는 프레임워크는 Cypress, Selenium, TestCafe 등이 있지만, 이번에 배운 Cypress에 대해 간략히 알아 보겠습니다.

Cypress

https://docs.cypress.io/guides/overview/why-cypress

  • E2E테스트, 통합테스트, 단위테스트 등 다양한 테스트를 할 수 있다.
  • 프론트엔트 개발자가 빠르고 간편하게 테스트를 시도 할 수 있다.
  • 지원하는 브라우저가 제한적이만 안정적인 자동화 테스트가 가능하다.

TDD

  • Test Driven Development 테스트 주도 개발
  • 문제를 정의하고, 그 해답을 찾아가는 과정!!!
  • 테스트 코드를 작성할 뒤에 실제 코드를 작성한다.

TDD 방법

  1. 테스트 코드를 먼저 작성한다.(실제가 코드가 없기 때문에 테스트는 실패함)
  2. 테스트를 통과하는 실제 코드를 작성한다.
  3. 리팩터링

TDD 장점

  • 명확한 요구사항을 코드로 작성하기 때문에 불필요한 설계를 피할수 있다.
  • 테스트 되는 것만 코드를 작성하기 때문에 코드가 방대해지지 않는다.
  • 명확한 요구사항을 충족시키기 위해 코드를 작성하다 보니 버그가 줄어든다.
  • 추가 구현이 용이하다.(유지보수 개선)

TDD 단점

  • 평소 개발 방식을 바꿔야 함으로 개발하기 힘들다
  • TDD에 숙달되지 않은 상태도 개발을 하면 개발 일정이 늘어난다.

BDD

  • Behaviour Driven Development
  • TDD에서 파생된 개발 방법이다.
  • 테스트케이스 자체가 요구사양이 되도록 하는 개발방법이다.
  • 즉 BDD는 테스트 대상의 상태 변화를 테스트 하는 것 이다.
  • BDD가 따르는 시나리오 템플릿 
    • Given: 특정 값이 주어지고,
    • When: 어떤 이벤트가 발생했을 때,
    • Then: 그에 대한 결과를 보장해야 한다,

마무리

  • 우테코 Level1 자동차경주 미션을 하면서 알게된 내용을 다시 한번 생각해 보자는 생각으로 글을 작성했습니다.
  • 사용자 입장에서 테스트 코드를 작성하고 테스트 주도 개발을 한다는 것은 신선한 경험이었습니다. 테스트 코드를 작성 하는 것도 TDD를 하는것도 처음 이지만 좀더 알아보고 친해져 볼 생각입니다.
  • 추후 Cypress 사용법에 대한 글을 포스팅 할 예정 입니다.

 


참고

https://wooaoe.tistory.com/33

'우아한테크코스 > 우아한테크코스4기' 카테고리의 다른 글

[우테코] 로또 미션 step1 리뷰 모음  (0) 2022.03.02
webpack, babel 프론트엔드 개발환경 세팅  (0) 2022.02.22
우아한테크코스 4기 합격  (0) 2022.01.26
    '우아한테크코스/우아한테크코스4기' 카테고리의 다른 글
    • [우테코] 로또 미션 step1 리뷰 모음
    • webpack, babel 프론트엔드 개발환경 세팅
    • 우아한테크코스 4기 합격
    FE코크
    FE코크
    공부한 내용을 적는 블로그

    티스토리툴바