안녕하세요 우아한테크코스 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 방법
- 테스트 코드를 먼저 작성한다.(실제가 코드가 없기 때문에 테스트는 실패함)
- 테스트를 통과하는 실제 코드를 작성한다.
- 리팩터링
TDD 장점
- 명확한 요구사항을 코드로 작성하기 때문에 불필요한 설계를 피할수 있다.
- 테스트 되는 것만 코드를 작성하기 때문에 코드가 방대해지지 않는다.
- 명확한 요구사항을 충족시키기 위해 코드를 작성하다 보니 버그가 줄어든다.
- 추가 구현이 용이하다.(유지보수 개선)
TDD 단점
- 평소 개발 방식을 바꿔야 함으로 개발하기 힘들다
- TDD에 숙달되지 않은 상태도 개발을 하면 개발 일정이 늘어난다.
BDD
- Behaviour Driven Development
- TDD에서 파생된 개발 방법이다.
- 테스트케이스 자체가 요구사양이 되도록 하는 개발방법이다.
- 즉 BDD는 테스트 대상의 상태 변화를 테스트 하는 것 이다.
- BDD가 따르는 시나리오 템플릿
- Given: 특정 값이 주어지고,
- When: 어떤 이벤트가 발생했을 때,
- Then: 그에 대한 결과를 보장해야 한다,
마무리
- 우테코 Level1 자동차경주 미션을 하면서 알게된 내용을 다시 한번 생각해 보자는 생각으로 글을 작성했습니다.
- 사용자 입장에서 테스트 코드를 작성하고 테스트 주도 개발을 한다는 것은 신선한 경험이었습니다. 테스트 코드를 작성 하는 것도 TDD를 하는것도 처음 이지만 좀더 알아보고 친해져 볼 생각입니다.
- 추후 Cypress 사용법에 대한 글을 포스팅 할 예정 입니다.
참고
'우아한테크코스 > 우아한테크코스4기' 카테고리의 다른 글
[우테코] 로또 미션 step1 리뷰 모음 (0) | 2022.03.02 |
---|---|
webpack, babel 프론트엔드 개발환경 세팅 (0) | 2022.02.22 |
우아한테크코스 4기 합격 (0) | 2022.01.26 |