what is system integration testing
시스템 통합 테스트 란 무엇입니까?
SIT (System Integration Testing)는 여러 하위 시스템으로 구성된 전체 시스템에 대한 전체 테스트입니다. SIT의 주요 목적은 모든 소프트웨어 모듈 종속성이 올바르게 작동하고 전체 시스템의 개별 모듈간에 데이터 무결성이 유지되도록하는 것입니다.
SUT (System Under Test)는 하드웨어, 데이터베이스, 소프트웨어, 하드웨어와 소프트웨어의 조합 또는 인간 상호 작용이 필요한 시스템 (HITL – Human in the Loop Testing)으로 구성 될 수 있습니다.
소프트웨어 엔지니어링 및 소프트웨어 테스트의 맥락에서 SIT는 소프트웨어 시스템이 다른 사람들과 함께 발생하는지 확인하는 테스트 프로세스로 간주 할 수 있습니다.
SIT에는 여러 기본 통합 시스템이 이미 시스템 테스트를 거쳐 통과 한 전제 조건이 있습니다. 그런 다음 SIT는 이러한 시스템간에 필요한 상호 작용을 전체적으로 테스트합니다. SIT의 결과물은 UAT (사용자 승인 테스트)로 전달됩니다.
학습 내용 :
- 시스템 통합 테스트 필요
- SIT의 세분성
- 시스템 통합 테스트를 수행하는 방법?
- 시스템 테스트 대 시스템 통합 테스트
- 시스템 통합 테스트 대 사용자 수락 테스트
- SIT 예
- SIT 기법
- 결론
- 추천 도서
시스템 통합 테스트 필요
SIT의 주요 기능은 서로 다른 시스템 구성 요소 간의 종속성을 테스트하는 것이므로 회귀 테스트는 SIT의 중요한 부분입니다.
협업 프로젝트의 경우 SIT는 STLC (Software Testing lifecycle)의 일부입니다. 일반적으로 사전 SIT 라운드는 고객이 자체 SIT 테스트 사례를 실행하기 전에 소프트웨어 공급자가 수행합니다.
애자일 스프린트 모델을 따르는 IT 프로젝트에서 작업하는 대부분의 조직에서는 매 릴리스 전에 QA 팀이 SIT 라운드를 수행합니다. SIT에서 발견 된 결함은 개발 팀으로 다시 보내지고 수정 작업을 수행합니다.
스프린트의 MVP (Minimum Viable Product) 릴리스는 SIT를 통과 할 때만 진행됩니다.
통합 하위 시스템간에 상호 작용이 발생할 때 발생하는 오류를 노출하려면 SIT가 필요합니다.
시스템에 사용되는 여러 구성 요소가 있으며 개별적으로 단위 테스트를 수행 할 수 없습니다. 장치를 개별적으로 테스트하더라도 하위 시스템이 서로 상호 작용할 때 발생하는 많은 문제가 있기 때문에 시스템에 결합하면 실패 할 가능성도 있습니다.
따라서 SIT는 사용자 측에서 시스템을 배포하기 전에 오류를 노출하고 수정하는 데 매우 많이 필요합니다. SIT는 초기 단계에서 결함을 감지하므로 나중에 수정하는 데 드는 시간과 비용을 절약 할 수 있습니다. 또한 모듈의 수용 가능성에 대한 초기 피드백을받는 데 도움이됩니다.
SIT의 세분성
SIT는 세 가지 수준의 세분화로 수행 할 수 있습니다.
(i) 시스템 내 테스트 : 이것은 통합 시스템을 구축하기 위해 모듈을 통합하는 것을 목표로하는 낮은 수준의 통합 테스트입니다.
(ii) 시스템 간 테스트 : 이것은 독립적으로 테스트 된 시스템을 인터페이스해야하는 높은 수준의 테스트입니다.
(iii) 쌍대 테스트 : 여기서는 전체 시스템에서 한 번에 두 개의 상호 연결된 하위 시스템 만 테스트됩니다. 이는 다른 하위 시스템이 이미 잘 작동하고 있다고 가정하고 함께 결합 될 때 두 하위 시스템이 잘 작동 할 수 있도록하는 것을 목표로합니다.
시스템 통합 테스트를 수행하는 방법?
SIT를 수행하는 가장 간단한 방법은 데이터 기반 방법입니다. 소프트웨어 테스트 도구를 최소한으로 사용해야합니다.
첫째, 데이터 교환 (데이터 가져 오기 및 데이터 내보내기)이 시스템 구성 요소간에 발생하고 개별 레이어 내 각 데이터 필드의 동작이 검사됩니다.
소프트웨어가 통합되면 아래와 같이 데이터 흐름의 세 가지 주요 상태가 있습니다.
# 1) 통합 계층 내의 데이터 상태
통합 레이어는 데이터 가져 오기와 내보내기 사이의 인터페이스 역할을합니다. 이 계층에서 SIT를 수행하려면 스키마 (XSD), XML, WSDL, DTD 및 EDI와 같은 특정 기술에 대한 몇 가지 기본 지식이 필요합니다.
데이터 교환의 성능은 아래 단계를 통해이 계층에서 검사 할 수 있습니다.
- BRD / FRD / TRD (비즈니스 요구 사항 문서 / 기능 요구 사항 문서 / 기술 요구 사항 문서)에 대해이 계층 내의 데이터 속성을 확인합니다.
- XSD 및 WSDL을 사용하여 웹 서비스 요청을 교차 확인하십시오.
- 일부 단위 테스트를 실행하고 데이터 매핑 및 요청의 유효성을 검사합니다.
- 미들웨어 로그를 검토하십시오.
# 2) 데이터베이스 계층 내의 데이터 상태
이 계층에서 SIT를 수행하려면 SQL 및 저장 프로 시저에 대한 기본 지식이 필요합니다.
이 계층에서 데이터 교환의 성능은 아래 단계를 통해 검토 할 수 있습니다.
- 통합 계층의 모든 데이터가 데이터베이스 계층에 성공적으로 도달하고 커밋되었는지 확인합니다.
- BRD / FRD / TRD에 대해 테이블 및 열 속성의 유효성을 검사합니다.
- 비즈니스 사양에 따라 데이터베이스에 적용된 제약 조건 및 데이터 유효성 검사 규칙을 확인합니다.
- 처리 데이터에 대한 저장 프로 시저를 확인하십시오.
- 서버 로그를 검토하십시오.
# 3) 애플리케이션 계층 내의 데이터 상태
아래 단계를 통해이 계층에서 SIT를 수행 할 수 있습니다.
- 모든 필수 필드가 UI에 표시되는지 확인하십시오.
- 긍정적이고 부정적인 테스트 케이스를 실행하고 데이터 속성의 유효성을 검사합니다.
노트 : 데이터 가져 오기 및 데이터 내보내기에 해당하는 많은 조합이있을 수 있습니다. 사용 가능한 시간을 고려하여 최상의 조합을 위해 SIT를 실행해야합니다.
시스템 테스트 대 시스템 통합 테스트
시스템 테스트와 SIT의 차이점 :
SIT (시스템 통합 테스트) | 시스템 테스트 |
---|---|
SIT는 주로 시스템 전체에 통합 될 때 개별 모듈이 서로 상호 작용하는 방식을 확인하기 위해 수행됩니다. | 시스템 테스트는 주로 지정된 요구 사항을 참조하여 전체 시스템이 예상대로 작동하는지 확인하기 위해 수행됩니다. |
단위 테스트 후 수행되며 시스템에 새 모듈이 추가 될 때마다 수행됩니다. | 통합 테스트 완료 후 UAT 용 시스템을 제공하기 직전에 최종 단계에서 수행됩니다. |
낮은 수준의 테스트입니다. | 높은 수준의 테스트입니다. |
SIT 테스트 사례는 시스템 구성 요소 간의 인터페이스에 중점을 둡니다. | 이 경우 테스트 케이스는 실제 시나리오를 시뮬레이션하는 데 중점을 둡니다. |
시스템 통합 테스트 대 사용자 수락 테스트
SIT와 UAT의 차이점은 다음과 같습니다.
SIT (시스템 통합 테스트) | UAT (사용자 수락 테스트) |
---|---|
이 테스트는 모듈 간의 인터페이스 관점에서 이루어집니다. | 이 테스트는 사용자 요구 사항의 관점에서 이루어집니다. |
SIT는 개발자와 테스터가 수행합니다. | UAT는 고객과 최종 사용자가 수행합니다. |
단위 테스트 후 및 시스템 테스트 전에 완료되었습니다. | 이것은 테스트의 마지막 단계이며 시스템 테스트 후에 수행됩니다. |
일반적으로 SIT에서 발견되는 문제는 데이터 흐름, 제어 흐름 등과 관련이 있습니다. | UAT에서 발견 된 문제는 일반적으로 사용자 요구 사항에 따라 작동하지 않는 기능과 같습니다. |
테스트 수준에 대한 아래 이미지는 단위 테스트에서 UAT 로의 흐름을 명확하게 보여줍니다.
5 년 경력의 PHP 인터뷰 질문 및 답변
SIT 예
회사가 클라이언트 세부 정보를 저장하기 위해 소프트웨어를 사용하고 있다고 가정 해 보겠습니다.
이 소프트웨어는 UI에 화면 1과 화면 2의 두 화면이 있으며 데이터베이스가 있습니다. 화면 1과 화면 2에 입력 된 세부 정보는 데이터베이스에 입력됩니다. 현재 회사는이 소프트웨어에 만족합니다.
그러나 몇 년 후 회사는 소프트웨어가 요구 사항을 충족하지 못하고 개선이 필요하다는 사실을 알게되었습니다. 따라서 그들은 Screen 3과 데이터베이스를 개발했습니다. 이제 화면 3과 데이터베이스가있는이 시스템은 기존 / 기존 소프트웨어와 통합됩니다.
이제 통합 후 전체 시스템에서 수행되는 테스트를 시스템 통합 테스트라고합니다. 여기에서는 전체 통합 시스템이 제대로 작동하는지 확인하기 위해 새 시스템과 기존 시스템의 공존을 테스트합니다.
SIT 기법
주로 SIT를 수행하는 방법에는 4 가지가 있습니다.
- 하향식 접근 방식
- 상향식 접근 방식
- 샌드위치 접근
- 빅뱅 접근법
하향식 접근 방식과 상향식 접근 방식은 일종의 증분 접근 방식입니다. 먼저 하향식 접근 방식에 대한 논의를 시작하겠습니다.
# 1) 하향식 접근 방식 :
이 아래에서 테스트는 애플리케이션의 최상위 모듈, 즉 테스트 드라이버로 부르는 UI로 시작됩니다.
기본 모듈의 기능은 스텁으로 시뮬레이션됩니다. 최상위 모듈은 하위 수준 모듈 스텁과 하나씩 통합되고 나중에 기능이 테스트됩니다.
각 테스트가 완료되면 스텁이 실제 모듈로 대체됩니다. 모듈은 너비 우선 방식 또는 깊이 우선 방식으로 통합 할 수 있습니다. 전체 애플리케이션이 빌드 될 때까지 테스트가 계속됩니다.
이 접근 방식의 장점은 드라이버가 필요하지 않으며 시스템 기능 측면에서 테스트 사례를 지정할 수 있다는 것입니다.
이러한 유형의 접근 방식에서 가장 큰 문제는 하위 수준 모듈 기능의 가용성에 대한 종속성입니다. 실제 모듈이 스텁으로 교체 될 때까지 테스트가 지연 될 수 있습니다. 스텁을 작성하는 것도 어렵습니다.
# 2) 상향식 접근 방식 :
하향식 접근 방식의 한계를 제거합니다.
이 방법에서는 먼저 가장 낮은 수준의 모듈이 조립되어 클러스터를 형성합니다. 이러한 클러스터는 애플리케이션의 하위 기능으로 사용됩니다. 그런 다음 테스트 케이스 입력 및 출력을 관리하기위한 드라이버가 생성됩니다. 그 후 클러스터가 테스트됩니다.
클러스터가 테스트되면 드라이버가 제거되고 클러스터가 다음 상위 레벨과 결합됩니다. 이 프로세스는 전체 애플리케이션 구조가 완성 될 때까지 계속됩니다.
이 접근 방식에는 스텁이 필요하지 않습니다. 처리가 위로 이동하고 드라이버의 필요성이 감소함에 따라 단순화됩니다. 이 접근 방식은 객체 지향 시스템, 실시간 시스템 및 엄격한 성능 요구 사항이있는 시스템에 대해 SIT를 수행하는 데 권장됩니다.
그러나이 접근 방식의 한계는 가장 중요한 하위 시스템입니다. 즉, UI가 마지막에 테스트됩니다.
# 3) 샌드위치 접근 방식 :
여기에서는 위에서 설명한 하향식 및 상향식 접근 방식이 함께 결합됩니다.
이 시스템은 세 개의 레이어 (대상 레이어 인 중간 레이어, 타겟 위 레이어 및 타겟 아래 레이어)로 인식됩니다. 테스트는 양방향으로 수행되고 중간에있는 대상 레이어에서 모이며 이는 아래 이미지에 나와 있습니다.
샌드위치 테스트 전략
이 접근 방식의 장점은 시스템의 최상위 계층과 최하위 계층을 병렬로 테스트 할 수 있다는 것입니다. 그러나이 접근 방식의 한계는 통합 전에 개별 하위 시스템을 철저히 테스트하지 않는다는 것입니다.
이러한 제한을 없애기 위해 우리는 스텁과 드라이버를 사용하여 상단, 중간 및 하단 레이어의 통합을 병렬로 테스트하는 샌드위치 테스트를 수정했습니다.
# 4) 빅뱅 접근 방식 :
이 접근 방식에서는 애플리케이션의 모든 모듈이 완전히 준비되면 통합이 수행됩니다. 모든 모듈을 통합 한 후 테스트를 수행하여 통합 시스템이 작동하는지 확인합니다.
증분 테스트와 달리 모든 것이 한 번에 통합되므로이 접근 방식에서 문제의 근본 원인을 찾는 것은 어렵습니다. 이 접근 방식은 일반적으로 한 라운드의 SIT 만 필요할 때 채택됩니다.
결론
이 기사에서는 SIT (시스템 통합 테스트)가 무엇이며이를 수행하는 것이 왜 중요한지 배웠습니다.
우리는 SIT 수행과 관련된 핵심 개념, 기술, 접근 방식 및 방법에 대해 이해했습니다. 또한 SIT가 UAT 및 시스템 테스트와 어떻게 다른지 살펴 보았습니다.
이 훌륭한 기사를 즐기 셨기를 바랍니다 !!