본문 바로가기
Computer Science/Software Engineering

[Software Engineering] Chapter 11. 테스트

by song.ift 2023. 2. 25.

Unit Test -> Integration Test -> Functional Test or System Test or E2E Test (V 모델 참고)

 

단위 테스트(Unit Test)

  • 가장 적은 테스트 단위. 하나의 독립적인 모듈을 테스트함
    • 에) class, function, component, ...
  • 각 개발자가 구현한 모듈을 직접 테스트
  • 대표적인 단위 테스트 툴 : JavaScript(Karma, Jasmine, Jest, Mocha ...), Java(JUnit), React(react-testing-library)

 

통합 테스트(Integration Test)

  • 단위 테스트를 통과한 모듈을 대상으로 하는 테스트
  • 여러 모듈의 상호작용을 확인하기 위한 테스트 (즉, 전체적으로 잘 동작하느지를 확인)
  • 단위 테스트만으로는 충분한 테스트라고 하기 어려우며, 단위 테스트가 불가능한 경우도 존재
  • 개발자 이외의 제 3자 테스터에 의한 테스트가 이루어질 수도 있음

 

참고) TDD

  • Test Driven Developement. 테스트 주도 개발
    • 애자일한 개발 방법론 중 하나
  • 개발자는 요구사항을 검증하기 위한 테스트 케이스를 먼저 작성하고, 그 테스트 케이스를 통과하기 위한 코드를 이후에 개발한다.
  • 아래 과정을 반복
    1. 테스트 코드 작성
    2. 테스트를 통과하도록 (최소한의) 코드 작성
    3. 코드 리펙토링
  • 장점 : 코드의 버그와 오류가 줄어든다. 소스 코드가 간결해진다.
  • 단점 : 테스트 코드를 작성하는 시간이 많이 들고, 초기 학습 비용이 필요하다.

 

댓글