테스트란

Arong·2024년 4월 29일

테스트란?

테스트는 소프트웨어의 관점에서 정의하면 프로그램을 실행하는 경우에 요구 사항에 맞춰 동작하는지 검증하는 행위이다. 테스트를 통해 제품 또는 서비스의 품질을 확인 할 수 있으며, 소프트웨어의 버그를 찾을 수 있다. 즉, 제품(→ 함수, 특정한 기능, UI, 성능, API 스펙)이 예상하는대로(원하는대로) 동작하는지 확인하고 검증하는 단계이다.

테스트를 왜 해야할까?(장점)

  • 테스트를 통해서 제품이 예상하는대로 동작할 것이라는 자신감을 얻을 수 있다.
  • 기능이 정상적으로 동작하는지 확인 할 수 있다.
  • 요구사항을 만족할 수 있는 확률이 더 높아진다.
  • 이슈에 대해 예측할 수 있다.
  • 버그를 빠르게 발견할 수 있다.
  • 자신감있게 리팩토링 할 수 있다.
  • 손쉬운 유지보수가 가능하다.
  • 코드의 품질을 향상할 수 있다.
  • 코드간 의존성을 낮출 수 있다.
  • 테스트 코드는 좋은 문서화 효과를 가질 수 있다.
  • 개발 시간을 절약할 수 있다.

테스트 종류

→ Unit Test는 비용(비용은 개발적인 효율성도 될 수 있음)이 저렴하고 E2E Test로 올라갈수록 비용이 비싸진다. 테스트를 수행하는 속도는 Unit Test가 빠르고, E2E Test로 올라갈수록 속도가 느리다. 그래서 Unit Test를 많이 작성하고 그다음에 Integration Test를 작성하고, 그다음 E2E Test를 적게 작성한다.

  • 단위 테스트(Unit Test)
    독립적인 하나의 컴포넌트, 함수, 모듈, 클래스 등 하나의 단위를 테스트하는 것이다.
  • 통합 테스트
    여러가지의 단위를 통합했을때(모듈들, 클래스들) 이들이 상호작용을 잘 하는지를 테스트하는 것이다.
  • E2E(End To End) 테스트
    UI 테스트, 사용자 테스트 라고도 한다. 사용자가 실제로 소프트웨어를 사용했을 때 그 플로우(흐름)을 테스트하는 것이다.

위의 대표적인 테스트들 뿐만 아니라 상황과 필요에 따라서 사용할 수 있는 다양한 테스트들(Contract Test, A/B Test, Stress Test 등)이 있기 때문에 상황에 맞는 테스트방법을 사용하면 된다.




출처 : 드림코딩엘리 test 강의
사진출처 : https://velog.io/@xeropise1/%ED%85%8C%EC%8A%A4%ED%8A%B8%EB%9E%80-%EB%8B%A8%EC%9C%84%ED%85%8C%EC%8A%A4%ED%8A%B8-%ED%86%B5%ED%95%A9%ED%85%8C%EC%8A%A4%ED%8A%B8-E2E%ED%85%8C%EC%8A%A4%ED%8A%B8

profile
아롱의 개발일지

0개의 댓글