[Software

단위 테스트 -> 통합 테스트 -> 기능 테스트 또는 시스템 테스트 또는 E2E 테스트(V-모델 참조)

쉬운 목차

장치 테스트

  • 테스트 단위가 거의 없습니다.

    독립 모듈 테스트
    • E) 클래스, 함수, 컴포넌트, …
  • 각 개발자가 직접 구현한 모듈 테스트
  • 대표적인 단위 테스트 도구: JavaScript(Karma, Jasmine, Jest, Mocha…), Java(JUnit), React(react-testing-library)

통합 테스트

  • 단위 테스트를 통과한 모듈에 대한 테스트
  • 여러 모듈의 상호 작용을 확인하기 위한 테스트(예: 전체적으로 잘 작동하는지 확인하기 위해)
  • 단위 테스트만으로는 충분한 테스트가 아니며 단위 테스트가 불가능한 경우가 있습니다.

  • 개발자 이외의 테스터가 테스트 가능

참고) TDD

  • 테스트 주도 개발. 테스트 주도 개발
    • 애자일 개발 방식 중 하나
  • 개발자는 먼저 테스트 케이스를 생성하여 요구 사항을 확인한 다음 테스트 케이스를 통과하는 코드를 개발합니다.

  • 아래의 과정을 반복
    1. 테스트 코드 작성
    2. 테스트를 통과하기 위한 (최소) 코드 작성
    3. 코드 리팩토링
  • 장점: 코드의 버그와 오류가 적습니다.

    소스 코드는 간결합니다.

  • 단점: 테스트 코드를 작성하는 데 많은 시간이 걸리고 초기 학습 비용이 필요합니다.