반응형

@notepad_jj2

츄르사려고 코딩하는집사입니다.


소프트웨어를 테스트하는 유형은 여러 가지가 있다. 소프트웨어 테스트 방법은 유형, 목적, 방법 등에 따라 최적화된 테스트 방법을 채택해야 한다. 그 중에서도, 가장 많이 사용되고 있는 단위 테스트(Unit Test), 통합 테스트(Integration Test) 2개를 정리한다.

 

1. 단위 테스트(Unit Test)

단위 테스트(Unit Test)는 프로그램에서 테스트를 할 수 있는 가장 작은 단위를 실행하여 단위가 정상적으로 흘러가는지를 테스트하는 것을 말한다. 단위 테스트(Unit Test)의 기준은 정해져 있지는 않지만, 대체적으로 메소드(Method)를 기준으로 많이 단위 테스트(Unit Test)를 진행한다. 단위 테스트(Unit Test)의 크기가 줄어 들면, 단위(Unit)의 복잡도가 줄어들기 때문에, 최소한 단위(Unit)는 가장 작은 크기로 진행을 한다.

 

일반적으로, 어떤 프로그램을 개발 할 때 고객의 요구사항을 기준으로 먼저 개발한 다음에 테스트 케이스(테스트 데이터)를 만들어 단위 테스트(Unit Test)를 진행한다. 이 경우보다는 테스트케이스(테스트 데이터)를 먼저 만든 후에, 개발을 하는 것이 단위 테스트(Unit Test)의 효율성을 더욱 증가시킨다.

 

이 단위 테스트(Unit Test)를 정확하게 한다면, 어떠한 기능을 만들 때 에러 없는 기능을 만들어 낼 수 있는 확률이 커지고, 코드 리팩토링의 횟수를 줄일 수 있다. 때에 따라, 단위 테스트(Unit Test)로 각 메소드(Method)의 에러 발생률도 낮출 수 있다.

 

그래서, 단위 테스트(Unit Test)는 코드의 리팩토링도 진행할 수 있고, 기능의 에러율을 낮출 수도 있다. 

 

2. 통합 테스트(Integration Test)

통합 테스트(Integration Test)는 단위 테스트(Unit Test)보다 큰 개념으로, 이제는 외부 환경까지 고려한 것들을 테스트한다.

 

예를 들어, 어떤 수식을 계산하여 값을 리턴하고, 리턴한 값을 DB에 저장해야 하는 경우가 있다. 이 경우에는 어떤 수식을 계산하여 값을 리턴하는 것을 단위 테스트(Unit Test)라고 하고, 이 단위 테스트(Unit Test)에 리턴한 값을 DB에 저장하는 경우까지를 고려한 것이 통합 테스트(Integration Test)라고 할 수 있다.

 

단위 테스트(Unit Test)를 하지 않고 통합 테스트(Integration Test)를 먼저 하게 되면, 어디에서 에러가 발생하는지 쉽게 찾을 수 없고, 코드 리팩토링 하는데 시간이 많이 소요가 된다.

 

그래서, 통합 테스트(Integration Test)는 여러 개의 단위 테스트(Unit Test)를 합쳐 정상적으로 작동하는지를 테스트하는 단계라고 할 수 있다.

 

통합 테스트(Integration Test)의 방법은 빅뱅 통합 테스트점진적 통합 테스트 방법이 있다.

 

빅뱅 통합 테스트는 여러 개의 단위 테스트(Unit Test)를 다 합친 다음에, 통합 테스트를 진행하는 방법을 말한다. 이 방법의 경우에는 위의 내용처럼 어디에서 에러가 발생하는지 쉽게 찾을 수 없고, 코드 리팩토링 하는데 시간이 많이 소요가 된다.

 

점진적 통합 테스트는 빅뱅 통합 테스트 방법과 다르게, 1개의 단위 테스트(Unit Test)씩 합치면서 통합 테스트를 진행하는 방법을 말한다. 점진적 통합 테스트는 하향식상향식이 있는데, 하향식은 위에서부터 하나씩 합치면서 통합 테스트를 진행하고, 상향식은 아래의 하위 단위 테스트(Unit Test)부터 합쳐서 위로 올라간다. 하향식 통합 테스트는 빠르게 테스트를 해야할 때 적용하는 것이 좋다. 상향식 통합 테스트는 점진적으로 단계별로 진행을 할 수 있지만, 상위에 있는 테스트가 다른 단위 테스트(Unit Test)와 합쳐질 때 오류가 발생할 경우 아래의 하위 단위 테스트(Unit Test)를 다시 체크해야 하므로, 시간이 오래 걸릴 수 있다는 단점을 가지고 있다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기