통합 테스트

통합 테스트(Integration Test)는 소프트웨어 각 모듈 간의 인터페이스 관련된 오류와 결함을 찾아 내기 위해서 사용되는 테스트 기법입니다. 

 

통합 테스트는 어떨게 통합이 되는지에 따라 두가지로 분류가 됩니다. 

 

첫번째 통합 테스트 기법은 하향식 통합(Top Down)입니다. 하향식 통합은 메인으로 부터 아래 방향으로 이동하며 깊이 우선 또는 너비우선 방식으로 하향식으로 통합됩니다.

이때 통합되는 모듈과 모든 하위 컴포넌트를 대신하기 위해 더미 모듈인 스텁(Stub)을 이용하여 하위 모듈의 반환 값을 전달하며 통합을 진행하게 됩니다.

 

두번째 통합 테스트 기법은 상향식 통합(Bottom Up)입니다. 상향식 통합은 최하위 레벨의 모듈이나 컴포넌트로 부터 시작해서 위쪽으로 이동해가며 구축을 통해 테스트를 진행하는 방식입니다.

이때 상향식 통합에서는 상위 모듈의 입력과 출력을 확인하기 위해 사용되는 더미 모듈인 드라이버(Driver)와 하위 모듈의 기능을 수행하는 클러스터(Cluster)를 이용해 통합을 진행합니다.

 

 

 

테스트 커버리지

테스트 커버리지(Test Coverage)는 주어진 테스트 케이스에 의해 수행되는 소프트웨어 테스트의 범위를 측정하는 기준이 됩니다.

또다른 테스트 커버리지의 역할로는 테스트의 정확성과 신뢰도를 향상시키는 역할도 하고 있습니다. 

 

테스트 커버리지는 3가지 기법으로 분류 됩니다.

 

- 기능 기반 커버리지: 기능 기반 커버리지는 테스트를 실행할 애플리케이션의 모든 기능을 두고 100% 달성을 목표한 뒤 실제 테스트가 수행된 기능의 수를 측정하는 방법입니다.

 

- 라인 커버리지: 라인 커버리지는 애플리케이션의 전체 소스 코드의 라인 수를 이용하여 시나리오가 수행한 소스 코드의 라인 수를 측정하는 방법입니다.

 

- 코드 커버리지: 코드 커버리지는 소스 코드의 구문과 조건 등 구조 코드가 얼마나 테스트 되었는지 측정하기 위해 사용됩니다.

 

 

 

코드 커버리지 유형

테스트 커버리지 중 구조 코드가 얼마나 테스트 되었는지 측정하는 코드 커버리지에 대해 더욱 자세하게 설명하겠습니다. 

 

첫번째로 구문 커버리지입니다. 구문 커버리지는 프로그램 내의 모든 명령문을 적어도 한 번 수행하는 커버리지입니다.

구문 커버리지의 다른 특징으로는 조건문의 결과와 상관없이 구문 실행 수로 계산이 됩니다.

 

두번째 테스트 커버리지는 결정 커버리지입니다. 프로그램 내에서 전체 결정문이 적어도 한 번은 참과 거짓 결과를 수행하는 커버리지입니다. 
예를 드러 if A and B라는 조건이 있다고 생각해봅시다. 이때 테스트 커버리지는 A와 B의 각 값의 결과가 아닌 전체 조건식인 A and B의 결과가 참과 거짓이 나오도록 실핼시키는 것을 말합니다.

 

세번째는 조건 커버리지입니다. 조건 커버리지는 결정 명령문 내에서 각 조건이 적어도 한 번 참과 거짓의 결과가 되도록 수행하는 커버리지 입니다.
결정 커버리지의 예와  같이 if A and B라는 조건이 있다고 봅시다. 이때는 A and B의 결과가 아닌 각 값의 결과를 확인 해야합니다. 즉, A의 결과로 참과 거짓이 나오고 B의 결과로도 참과 거짓이 되도록 수행시켜야합니다.

 

네번째는 조건/결정 커버리지입니다. 조건/결정 커버리지는 조건 커버리지와 결정 커버리지의 최소한의 조합으로 전체 조건식도 참과 거짓이 나와야 하며 개별 조건식도 참과 거짓이 나와야합니다.

 

다음은 변경 조건/결정 커버리지입니다.  변경 조건/결정 커버리지는 개별 조건식이 다른 조건식에 영향 받도록 구성해 전체 조건식에 독립적으로 영향을 주도록 변형시킨 커버리지입니다.

 

마지막 테스트 커버리지는 다중 조건 커버리지입니다. 다중 조건 커버리지는 결정 조건 내에서 모든 개발 조건식의 모든 가능성 있는 조합을 보장하는 커버리지입니다.

 

 

+ Recent posts