what is incremental testing
이 기사의 도움으로 중요한 통합 접근 방식 중 하나 인 증분 테스트를 다룰 것입니다.
이 섹션이 끝나면 청중은 다음에 대한 공정한 지식을 갖게됩니다.
- 증분 테스트 란 무엇입니까?
- 목표
- 방법론
- 장점
- 단점
학습 내용 :
증분 테스트 란?
Incremental Integration Testing이라고도하는 Incremental Testing은 통합 테스트의 접근 방식 중 하나이며 기본 개념을 통합합니다.
모듈과 통합을 결합한 테스트와 같습니다. 테스트 전략 .
이 테스트에서는 단위 테스트 단계에서 각 모듈을 개별적으로 테스트 한 다음 모듈을 점진적으로 통합하고 테스트하여 모듈 간의 원활한 인터페이스와 상호 작용을 보장합니다.
이 접근 방식에서는 전체 시스템을 한 번에 통합 한 다음 최종 제품에 대한 테스트를 수행하는 대신 모든 모듈 또는 구성 요소가 논리적으로 추가되어 필요한 응용 프로그램을 만들 때까지 모든 모듈이 점진적으로 결합됩니다. 통합 모듈은 모듈 간의 성공적인 통합 및 데이터 흐름을 보장하기 위해 그룹으로 테스트됩니다.
통합 테스트에서와 마찬가지로이 테스트의 주요 초점은 인터페이스, 통합 링크 및 모듈 간의 정보 흐름을 확인하는 것입니다. 이 프로세스는 모듈이 성공적으로 결합되고 테스트 될 때까지 반복됩니다.
예
예를 들어이 개념을 이해하겠습니다.
시스템 또는 소프트웨어 응용 프로그램은 다음 모듈로 구성됩니다.
증분 통합 테스트 접근 방식
- 각 모듈 (예 : M1, M2, M3 등)은 단위 테스트의 일부로 개별적으로 테스트됩니다.
- 모듈은 하나씩 점진적으로 결합되고 성공적인 상호 작용을 위해 테스트됩니다.
- Fig2에서는 모듈 M1과 모듈 M2가 결합되고 테스트됩니다.
- Fig3에서 모듈 M3이 추가되고 테스트되었습니다.
- Fig4에서는 모듈 M4가 추가되고 모든 것이 성공적으로 작동하는지 테스트가 수행됩니다.
- 나머지 모듈도 각 단계에서 점진적으로 추가되고 성공적인 통합을 위해 테스트됩니다.
Fig2
Fig3
.eps 파일을 보는 방법
그림 4
증분 테스트의 목적
- 통합 후 다른 모듈이 성공적으로 함께 작동하는지 확인하려면
- 초기 및 각 단계에서 결함을 식별합니다. 이를 통해 개발자는 문제가있는 곳을 식별 할 수 있습니다. M1과 M2가 통합 된 후 테스트는 성공하지만 M3이 추가되면 테스트가 실패하는 것과 같습니다. 이것은 개발자가 문제를 분리하는 데 도움이 될 것입니다.
- 많은 재 작업없이 적은 비용으로 문제를 초기 단계에서 수정할 수 있습니다.
증분 통합 테스트 방법론
이 주제를 시작하기 전에 다음에 대해 간략하게 소개하겠습니다. 스텁 및 드라이버 이 용어를 자주 사용할 것이기 때문입니다.
스텁 및 드라이버는 통합 또는 통합에서 사용되는 의사 코드 또는 더미 코드입니다. 구성 요소 테스트 하나 이상의 모듈이 개발되지 않았지만 다른 모듈을 테스트해야 할 때.
스텁 하향식 테스트 방식에 사용되며 '프로그램이라고 함'이라고합니다. 스텁은 사용할 수 없거나 개발되지 않은 하부 레버 모듈 간의 인터페이스를 시뮬레이션하는 데 도움이됩니다.
안드로이드에 APK 파일이 저장된 위치
드라이버 상향식 테스트 접근 방식에 사용되며 '호출 프로그램'이라고합니다. 드라이버는 개발되지 않았거나 사용할 수없는 최상위 모듈 간의 인터페이스를 시뮬레이션하는 데 도움이됩니다.
우리 중 일부에게 발생할 수있는 질문은 테스트를 시작하기 전에 스텁 / 드라이버를 사용하는 대신 모든 애플리케이션 모듈이 개발 될 때까지 기다리지 않는 이유입니다.
간단한 대답은 모든 모듈이 개발 될 때까지 테스터가 유휴 상태에 있기 때문에 프로젝트 실행 시간이 늘어난다는 것입니다. 또한 이는 결함의 근본 분석을 어렵게 만듭니다. 이러한 유형의 테스트 접근 방식을 Big-Bang 통합 테스트라고합니다.
이제 스텁과 드라이버를 다루었으므로 다음으로 넘어가겠습니다. 증분 테스트의 다양한 방법론 :
# 1) 하향식
이름에서 알 수 있듯이 테스트는 위에서 아래로, 즉 중앙 모듈에서 하위 모듈로 진행됩니다. 애플리케이션의 최상위 계층을 구성하는 모듈이 먼저 테스트됩니다.
이 접근 방식은 테스트중인 애플리케이션의 구조적 흐름을 따릅니다. 사용할 수 없거나 개발되지 않은 모듈 또는 구성 요소는 스텁으로 대체됩니다.
예를 들어 이해해 보겠습니다.
- 기준 치수 : 웹 사이트 로그인 일명 L
- 기준 치수 : 주문 일명 O
- 모듈 주문 요약 일명 OS (아직 개발되지 않음)
- 기준 치수 : 지불 일명 P
- 모듈 현금 지불 일명 CP
- 모듈 차변 / 신용 지불 일명 DP (아직 개발되지 않음)
- 모듈 지갑 결제 일명 WP (아직 개발되지 않음)
- 기준 치수: 보고 일명 R (아직 개발되지 않음)
하향식 증분 통합 테스트 접근 방식
다음 테스트 케이스가 파생됩니다.
테스트 사례 1 : 모듈 L과 모듈 O가 통합되고 테스트됩니다.
테스트 Case2 : 모듈 L, O 및 P가 통합되고 테스트됩니다.
테스트 Case3 : 모듈 L, O, P 및 R이 통합되고 테스트됩니다.
그래서 다른 테스트 케이스가 파생됩니다.
계층의 모든 모듈이 먼저 통합되고 테스트되는 이러한 유형의 테스트를 '폭 우선'이라고합니다. 또 다른 범주는 '깊이 우선'입니다.
'깊이 우선'에 대해 다음 테스트 사례가 파생됩니다.
테스트 사례 1 : 모듈 L과 모듈 O가 통합되고 테스트됩니다.
테스트 Case2 : 모듈 L, O 및 OS가 통합되고 테스트됩니다.
테스트 Case3 : 모듈 L, O, OS, P가 통합되고 테스트됩니다.
테스트 Case4 : 모듈 L, O, OS, P, CP가 통합되고 테스트됩니다.
그래서 다른 테스트 케이스가 파생됩니다.
하향식 방법론의 장점
- 아키텍처 결함의 조기 노출
- 초기 단계에서 전체 애플리케이션의 작동을 설명하고 설계 결함을 조기에 공개하는 데 도움이됩니다.
- 주요 제어 지점은 조기에 테스트됩니다.
하향식 방법론의 단점
- 중요한 모듈은주기 후반에 테스트됩니다.
- 테스트 조건을 작성하는 것은 매우 어렵습니다.
- 스텁은 관련 모듈의 완벽한 구현이 아닙니다. 두 모듈 간의 데이터 흐름을 시뮬레이션합니다.
# 2) 상향식
이 접근 방식에서 테스트는 아래에서 위로 진행됩니다. 즉, 맨 아래 계층의 모듈이 먼저 통합되고 테스트 된 다음 위로 올라 가면서 순차적으로 다른 모듈이 통합됩니다. 사용할 수 없거나 개발되지 않은 모듈은 드라이버로 대체됩니다.
더 나은 이해를 위해 아래에 언급 된 예를 살펴 보겠습니다.
모듈 순위, 점수, 백분율 및 스포츠 등급은 아직 개발되지 않았으므로 관련 드라이버로 대체됩니다.
상향식 증분 통합 테스트 접근 방식
다음 테스트 케이스가 파생됩니다.
테스트 사례 1 : 모듈 실용 및 이론의 단위 테스트
테스트 Case2 : 모듈 마크-실용-이론의 통합 및 테스트
테스트 사례 3 : 모듈 백분율 표시-실용 이론의 통합 및 테스트
테스트 Case4 : 모듈 스포츠 등급의 단위 테스트
테스트 Case5 : 모듈의 통합 및 테스트 순위-스포츠 등급-퍼센트-마크-실용 이론
상향식 방법론의 장점
- 이 방법론은 상향식 설계 모델이 사용되는 애플리케이션에 매우 유용합니다.
- 상향식 접근 방식으로 테스트 조건을 만드는 것이 더 쉽습니다.
- 계층의 하위 수준에서 테스트를 시작한다는 것은 초기 단계에서 중요한 모듈 또는 기능을 테스트하는 것을 의미합니다. 이는 오류의 조기 발견에 도움이됩니다.
- 초기 단계에서 인터페이스 결함 감지
상향식 방법론의 단점
- 드라이버는 스텁보다 쓰기가 더 어렵습니다.
- 설계 결함은 후기 단계에서 포착됩니다.
- 이 접근 방식에서는 마지막 모듈이 빌드 될 때까지 작동하는 애플리케이션이 없습니다.
- 드라이버는 관련 모듈의 완전한 구현이 아닙니다. 두 모듈 간의 데이터 흐름을 시뮬레이션 할뿐입니다.
# 3) 샌드위치 테스트
이 접근 방식은 하향식 및 상향식 방법론의 혼합입니다. 스텁과 드라이버는 불완전하거나 개발되지 않은 모듈에 사용됩니다.
테스트 접근법
- 상향식 및 하향식 테스트가 수행되는 중간 계층이 식별됩니다. 이 중간 레이어는 타겟 레이어라고도합니다.
- 대상 계층은 휴리스틱 접근 방식에 따라 식별됩니다. 즉, 스텁 및 드라이버를 최소한으로 사용할 수있는 계층을 선택합니다.
- 하향식 테스트는 중간 계층에서 시작하여 하위 수준 모듈로 이동합니다. 중간 레이어 아래의이 레이어를 하단 레이어라고합니다.
- 상향식 테스트는 또한 중간 계층에서 시작하여 최상위 계층 모듈로 이동합니다. 중간 레이어 위에있는이 레이어를 최상위 레이어라고합니다.
- 스텁 및 드라이버를 사용하여 하위 수준 모듈의 사용자 인터페이스 및 기능을 각각 테스트합니다.
- 결국 최종 테스트 실행을 위해 중간 레이어 만 남습니다.
예:
샌드위치 테스트 전략을 사용하여 다음 테스트 사례를 파생 할 수 있습니다.
도움 데스크 인터뷰 질문 및 답변
테스트 사례 1 : A, X, Y 및 Z를 개별적으로 테스트합니다. 여기서 테스트 A는 최상위 계층 테스트에, 테스트 X, Y 및 Z는 하단 계층 테스트에 포함됩니다.
테스트 Case2 : A, G, H 및 I 테스트
테스트 Case3 : G, X 및 Y 테스트
테스트 Case4 : 테스트 핸드 Z
테스트 Case5 : 테스트 A, G, H, I, X, Y 및 Z
샌드위치 테스트 방법론의 장점
- 다양한 하위 프로젝트가있는 대형 프로젝트에 매우 유용합니다.
- 하향식 및 상향식 테스트 방법은 나란히 실행할 수 있습니다.
샌드위치 테스트 방법의 단점
- 모듈 통합 이전에 하위 시스템과 해당 인터페이스는 철저하게 테스트되지 않습니다.
- 하향식 및 상향식 테스트 방법론의 참여로 인한 비용 증가
- 이러한 유형의 테스트는 모듈이 상호 의존성이 높은 시스템에 권장되지 않습니다.
결론
증분 테스트는 통합 테스트의 범위에 속합니다. 이 테스트 접근 방식에서 통합 테스트는 단위 테스트의 일부로 개별 모듈에 대해 수행되며 다음 단계에서 애플리케이션의 모듈 또는 구성 요소가 점진적으로 통합되고 테스트는 결합 된 모듈에서 그룹으로 수행됩니다.
증분 통합 테스트의 세 가지 방법론 중에서 선택할 방법론의 선택은 애플리케이션의 구조와 고위험 모듈의 위치에 따라 달라집니다.
증분 테스트의 세 가지 방법은 모두 다음과 같은 동작 측면으로 인해 수평 범주에 속합니다.
- 세 가지 방법 모두 계층 테스트에 중점을 둡니다.
- 모두 구조적 또는 계층 적 설계를 고려합니다.
- 모두 계층을 점진적으로 통합합니다.
공적:
이 테스트 접근 방식을 사용하면 결함을 조기에 식별하기가 더 쉽고 개발자가 문제의 원인을 파악하는데도 도움이됩니다. 구조화 된 테스트의 기본을 사용하기 때문에이 테스트 접근 방식은 매우 효과적이고 정확합니다.
단점 :
이러한 유형의 테스트 접근 방식은 스텁 및 드라이버를 사용하기 때문에 시간이 많이 걸립니다. 또한 반복적입니다.
대한 저자: 이 유용한 자습서는 Neha B가 작성했습니다. 그녀는 8 년 이상의 경험을 가진 ISTQB 인증 리드 품질 분석가입니다.
질문 / 제안이 있으면 알려주십시오.