PR CENTER

뉴스룸     |     료실

mobile background

PR CENTER

FrontEnd영역 자동화 테스트 도구 선정

관리자
2024-10-21
조회수 108
□ 테스트의 의미와 종류

1. 테스트란?

  • 애플리케이션이 요구 사항에 맞게 동작 하는지를 검증하는 행위
  • 테스트 주도 개발이 대중화 되면서, 테스트는 개발 단계의 일부로 자리 잡았고 그로 인해, 개발자가 테스트 코드를 직접 작성하게 되면서 더 적극적으로 리팩토링 등의 코드 개선을 할 수 있어 코드 품질이 향상되며, 테스터와의 불필요한 커뮤니케이션 비용이 감소한다.

 

2. 테스트의 종류

테스트 종류

장점

단점

단위 테스트

- 세밀한 부분까지 테스트 가능

- 통합 테스트에 비해 빠른 테스트 수행

- 모의 객체 사용으로 상호 작용 검증 불가

- 사소한 API 변경에 민감하여 리팩토링 시 깨질 수 있음

통합 테스트

- 모듈 간의 연결에서 발생하는 에러 검증 

가능

- 넓은 범위의 API 변경에 덜 민감함

- 복잡한 알고리즘 테스트 시 번거로움

- 테스트 중복 발생 확률 높음

E2E 테스트

- 실제 사용자 환경에서 테스트 가능

- 큰 범위의 리팩토링에도 깨지지 않음

- 실행 속도가 느려 빠른 피드백 어려움

- 다양한 상황 조합 고려해야 하여 작성 어려움

- 중복 발생 가능성 있음

 

□ E2E 테스트 도구 선정

1. E2E 자동화 테스트 도구의 종류

종류

장점

단점

Selenium

- 다양한 브라우저와 플랫폼 지원

- 커뮤니티와 문서가 풍부하여 학습 자료가 많음

- 설정 및 유지보수가 복잡할 수 있음

- 속도가 느릴 수 있음

Playwright

- 여러 브라우저 지원 (CHromium, Firefox, WebKit)

- 강력한 API와 빠른 속도

- 상대적으로 새로운 도구로, 커뮤니티와 자료가 적음

Puppeteer

- Chrome 전용으로 최적화되어 있어 빠른 속도

- 간단한 API로 사용이 용이

- Chrome 전용이므로 다른 브라우저 지원이 필요할 경우 추가 작업이 필요함

Cypress

- 실시간 테스트 실행 및 디버깅 기능 제공

- 설정이 간단하고 사용이 쉬움

- 여러 탭이나 브라우저 창 간의 테스트가 어려움

- 같은 도메인에서만 테스트 가능

 

    2. E2E 자동화 테스트 도구 선정 기준과 “Cypress”

  • 자동화 테스트 도구 선정 기준

        - 설정이 간단하고 사용이 쉬워야한다.

        - 개발자의 경우 E2E 테스트를 코드로 작성할 수 있지만 비슷한 코드들 반복적으로 작성해야 하기

           때문에 테스트 케이스 수만큼 코드 작성 시간이 오래 걸리는 점을 보완할 수 있는 도구

        - 비개발자의 경우 E2E 테스트하기 위해서 프로그래밍을 배워야 하는 러닝 커브를 보완할 수 있는 도구

  •  선정 기준에 부합한 “Cypress”

        - 비 개발자도 쉽게 사용 및 테스트 코드 작성이 가능한 Cypress Studio 기능 제공

        - npm 패키지 제공

          ; Cypress는 npm 패키지로 제공되어 npm install을 통해 설치가 가능하다.

          ; React 프로젝트 내에 설치 후 cypress open 이라는 명령어를 통해 쉽게 실행 가능하며, 패키지와 함께 형상관리에 적합하다.

        - 실시간 테스트 및 디버깅

          ; 실시간 테스트 실행 및 디버깅 기능을 제공하여, 개발자가 코드를 작성하면서 즉시 결과를 확인할 수 있는 점도 큰 장점이다. 이러한 기능은 개발              속도를 높이고, 버그를 조기에 발견할 수 있도록 도와준다.

 

□ 결론

- Cypress는 현대적인 웹 애플리케이션을 위한 강력한 E2E 테스트 도구로, 다음과 같은 주요 장점을 제공한다.

  • 간편한 설정과 사용자 친화적인 인터페이스
  • 실시간 테스트 실행 및 디버깅 기능
  • 개발자와 비개발자 모두가 비교적 쉽게 사용할 수 있는 Cypress Studio 기능
  • npm 패키지로 제공되어 쉬운 설치와 프로젝트 통합

이러한 특징들로 인해 Cypress는 개발 프로세스를 개선하고, 테스트 작성 및 유지보수를 용이하게 만들어 준다. 결과적으로 더 안정적이고 높은 품질의 개발할 수 있게 도와준다.

 

□ 적용사례

    - OOOOO 프로젝트에 Cypress를 UI 테스트형태로 적용하였을 때 느낀 점

      ; Studio 기능을 사용해도 테스트 코드 작성에 걸리는 시간이 상당히 걸리지만 작성이 완료되면 그 이후 테스트를 수행하는 시간이 획기적으로 단축되기에 충분히 도입해볼만 하다고 생각한다.     


                                                                                                                                                                                                      ⭐ 발표자 : 이선우님


0 0

페이지 바로가기

@2024 K2SYSTEMS. All rights reserved.

HOME       |       ABOUT US       |       SOLUTION       |       PR CENTER       |       CONTACT       |       인재채용       |       kakao i cloud 고객센터  

@2024 K2SYSTEMS. All rights reserved.