system testing vs end end testing
개요 시스템 테스트 및 종단 간 테스트 :
엔드-투-엔드 테스트와 시스템 테스트는 항상 함께 진행되지만 숙련 된 테스트 전문가조차도 각각이 제공하는 방대한 이점에 대해 혼란스러워하고 하나만 선택할 수 있습니다.
이 기사에서는 End-to-end 테스트와 시스템 테스트 사이에 토론을 시도합니다. 그 차이점을 이해하기 위해 먼저 개발중인 제품이 거치는 여러 단계를 이해합니다.
소프트웨어 산업에서 우리는 항상 빠른 릴리스와 고품질 릴리스 중에서 선택해야하는 딜레마에 처해 있지만 둘 사이에는 항상 균형이 잘 맞습니다. 우리 모두는 속도와 품질을 동시에 기대합니다.
학습 내용 :
- 테스트중인 소프트웨어 제품의 수명
- 시스템 테스트 란 무엇입니까?
- 시스템 테스트가 중요한 이유는 무엇입니까?
- 시스템 테스트를 언제 시작해야합니까?
- 종단 간 테스트 란 무엇입니까?
- 종단 간 테스트가 중요한 이유는 무엇입니까?
- 엔드 투 엔드 테스트를 언제 시작해야합니까?
- 시스템 테스트와 종단 간 테스트의 차이점
- 시스템 테스트 또는 종단 간 테스트 또는 둘 다?
- 결론
- 추천 도서
테스트중인 소프트웨어 제품의 수명
제품의 라이프 사이클은 클라이언트로부터 비즈니스 요구 사항을 확보하면 시작됩니다. 이를 담당하는 관련 팀은 동일한 사항을 철저히 분석하고 기술 사양을 추가로 설계합니다.
이러한 사양은 기술자 또는 개발자가 소프트웨어 개발 작업을 시작하는 데 도움이됩니다. 여기에 포함 된 단계는 이해하기 쉽도록 아래에 설명되어 있습니다.
1 단계: 높은 수준의 제품 설명을 기반으로 소프트웨어 제품은 여러 모듈로 분류 된 다음 구성 요소 또는 단위로 분류됩니다. 이러한 단위는 독립적으로 개발되어 여러 개발자를 참여시켜 개발을 계속할 수 있습니다.
일단 개발되면 이러한 단위는 개별적으로 테스트되며 단위 테스트에 해당합니다.
2 단계: 개별 검증을 통해 시스템의 모든 장치가 기능 및 실행 가능성 측면에서 예상대로 작동하는지 확인합니다. 이러한 구성 요소, 모듈 또는 하위 시스템은 다음 레벨과 통합 된 다음 통합 테스트에서 통합 단위로 테스트됩니다.
3 단계 : 시스템 테스트는이 단계에서 통합 제품이 의사 프로덕션 환경에서 전체적으로 처음으로 테스트되는 그림에 나타납니다. 이 수준의 테스트는 기능 및 비 기능적 비즈니스 요구 사항에 대한 준수 여부를 확인하기 위해 수행됩니다.
4 단계 : 클라이언트의 수용 가능성을 위해 수행되는 테스트 수준이므로 수락 테스트라고합니다. 이는 프로덕션 환경 인 클라이언트에 소프트웨어를 처리하기 직전에 수행됩니다.
시스템 테스트 란 무엇입니까?
시스템 테스트 통합 테스트 후, 사용 가능한 하드웨어 또는 소프트웨어의 수락 테스트 전에 수행됩니다.
시스템 테스트는 품질 표준을 충족하는지 여부를 확인하기 위해 하나의 시스템으로 인접한 구성 요소의 조정을 분석하기 위해 수행됩니다. 주요 초점은 통합 제품에 대해 기능 및 비 기능 테스트를 수행하여 어셈블리 간 결함을 감지하는 것입니다.
비 기능 테스트는 개발중인 제품이 비즈니스 기대치를 충족하는지 여부를 확인하기 위해 수행됩니다. 응용 프로그램의 응답 시간을 결정하거나 호환성을 확인하거나 설치, 성능, 회귀, 확장 성, 보안 및 기타 몇 가지 영역을 처리하기 위해 수행됩니다.
따라서 응용 프로그램은 기능 및 비 기능 수준을 모두 지워야 다른 시장 표준에 부합하는지 여부를 확인해야 회사의 명성이 손상 될 수 있습니다.
Uber와 같은 택시 예약 모바일 애플리케이션의 예를 통해 설명하겠습니다.
Uber는 온라인으로 택시를 예약 할 수있는 기능을 제공하며 위치 추적, 지불 게이트웨이, 택시 요금 및 운전자 프로필과 같은 다양한 모듈을 갖추고 있습니다. 단위 테스트의 일부 .
이러한 모듈이 독립적으로 작동하면 통합되어 테스트하고 서로 작동하는지 확인합니다. 통합 테스트.
또한 고객 요구 사항은 고객이 자신의 위치에서 가장 가까운 택시를 찾을 수 있는지 또는 선택한 지불 방법 등을 사용하여 Uber에 지불 할 수 있는지와 같은 시스템 테스트에서만 검증되기 시작합니다.
이러한 시나리오의 유효성 검사는 시스템 테스트 .
시스템 테스트가 중요한 이유는 무엇입니까?
개발자 / 테스터는 다음 단계로 이동하기 전에 몇 가지 측면을 확인해야하므로 시스템 테스트가 필요합니다.
다음과 같은 몇 가지 측면이 있습니다.
- 하나의 단위로 소프트웨어의 작동을 확인해야합니다.
- 제품이 기능 및 비 기능적 요구 사항을 건너 뛰지 않는지 확인해야합니다.
- 프로덕션과 유사한 환경에서 제품을 테스트해야합니다.
- 생산과 유사한 데이터로 제품을 확인해야합니다.
시스템 테스트에는 비즈니스 위험, 사용 사례 또는 제품 동작에 대한 높은 수준의 설명을 기반으로 한 시나리오가 포함됩니다. 다른 시스템 리소스와의 상호 작용과 관련된 사례도 시스템 테스트의 일부 여야합니다.
따라서 아키텍처 수준과 비즈니스 수준 모두에서 필요한 제품에 대한 완전한 지식을 가진 사람이 수행해야합니다. 코딩 수준의 내부 지식은 필요하지 않지만 테스터에게 시스템 지식은 필수입니다.
일반적으로 시스템 테스트 작업에 별도의 팀이 지정되고 팀은 자체 시스템 테스트 계획 및 시스템 테스트 케이스를 설계합니다. 이는 테스트 범위 측면에서 이전에 수행 한 것과 다릅니다. 필요한 경우 여러 환경에서 시스템 테스트를 여러 번 반복 할 수 있습니다.
시스템 테스트를 언제 시작해야합니까?
시스템 테스트는 다음과 같은 경우에 시작될 수 있습니다.
- 열린 결함없이 모든 장치에 대한 단위 테스트가 성공적으로 종료되었습니다.
- 모든 단위 테스트 구성 요소가 잘 통합되고 통합 테스트가 성공적으로 수행되었습니다.
- 시스템 제품을 테스트하는 데 의사 프로덕션 환경을 사용할 수 있습니다.
- 시스템 테스터는 시스템의 모든 입 / 출력을 인식하고 테스트 아티팩트를 준비합니다.
종단 간 테스트 란 무엇입니까?
소프트웨어 테스트는 Software Quality Assurance의 중요한 매개 변수입니다. 좋은 품질의 제품은 항상 발명가와 구매자 모두에게 더 높은 수준의 만족을줍니다. 즉, 자격을 갖춘 제품이나 프리미엄 제품은 모든 수준에서 결함을 철저히 회귀하고 제거한 결과입니다.
이름 자체에서 설명했듯이 종단 간 테스트 응용 프로그램 흐름이 종속 시스템과 함께 테스트되는 테스트 수준 중 하나입니다. 이는 네트워크 채널을 사용하는 데이터베이스 또는 GUI와 같은 백엔드 및 프런트 엔드 애플리케이션과의 원활한 상호 작용을 보장하기 위해 수행되므로 체인 테스트 게다가.
시스템 테스트와 달리 사용자 인터페이스 테스트는 여기서 중요한 역할을하지 않지만 인터페이스를 작동 모드로 전환하는 기본 데이터에 대한 검사입니다. 엔드 투 엔드 테스트는 일반적으로 제품이 시스템 테스트를 통과하면 수행됩니다.
엔드-투-엔드 테스트 단계에서 Uber의 예를 계속하여 전체 고객 여정을 검증합니다.
사용자 모바일에서 앱 열기-> 입력 한 목적지의 택시 찾기-> 승차 전 또는 승차 중 택시 추적-> 승차를 완료하고 결제 옵션 중 하나를 사용하여 지불-> 마지막으로 운전자 계정에 신용 정산.
이 종단 간 흐름을 실행하면 고객이 자신의 요구 사항을 충족 할 수 있습니다. 이 테스트는 특히 함께 결합되는 여러 시스템과 관련된 고객 경험 문제를 식별하는 데 중요합니다.
종단 간 테스트가 중요한 이유는 무엇입니까?
End-to-End 테스트는 개발 된 제품이 분산 시스템이어야하고 다양한 환경에서 다른 시스템과 함께 작동해야하는 경우 중요한 역할을합니다. 이러한 시나리오에서는 다양한 플랫폼 및 환경에서 정확한 상호 작용을 보장하기 위해 360도 검사가 필요합니다.
종단 간 테스트의 주요 목표는 다음과 같습니다.
휴대폰을위한 최고의 스파이웨어는 무엇입니까
- 개발 된 제품이 당사가 소유하거나 소유하지 않을 수있는 하위 시스템과 잘 조화되도록하기 위해.
- 소스 시스템에서 대상 시스템으로의 모든 시스템 흐름을 확인합니다.
- 최종 사용자 관점에서 요구 사항을 검증합니다.
- 이기종 환경에서 문제를 식별합니다.
필요한 경우 애플리케이션의 상태를 확인하기 위해 반복 가능한 테스트를 수행해야합니다. 때로는 사소한 코드 변경으로 인해 영향을받는 애플리케이션 영역을 이해하기 위해 개발자와 테스터간에 충돌이 발생하는 상황이 발생할 수 있습니다.
개발자는 변경 사항이 미미하다고 생각할 수 있지만 전체 시스템에 대한 엔드 투 엔드 테스트 시나리오를 재실행하기에 충분히 중요합니다. 그러나 이로 인해 배송 날짜가 늘어나고 비용도 증가 할 수 있습니다.
엔드 투 엔드 테스트를 언제 시작해야합니까?
일반적으로 종단 간 테스트가 수행됩니다.
- 제품이 모든 기능적 측면을 다루는 시스템 테스트를 인증하면.
- 종속 환경이 식별되고 흐름 수준 실행을 수행 할 수있는 경우.
- 테스터가 필요한 지식과 테스트 아티팩트를 갖추고있을 때.
- 테스터에게 데이터 흐름을 분석 할 수있는 적절한 도구가있는 경우
시스템 테스트와 종단 간 테스트의 차이점
다음은 시스템 테스트와 종단 간 테스트의 몇 가지 차이점입니다.
시스템 테스트 | 종단 간 테스트 |
---|---|
개발 된 제품은 비즈니스 요구 사항을 기반으로 식별 된 제품 별 기술 요구 사항에 대해 테스트됩니다. | 개발 된 제품은 비즈니스 요구 사항에 따라 종속 시스템과 함께 테스트됩니다. |
테스트의 기능적 측면과 비 기능적 측면을 다룹니다. | 모든 소스 및 대상 시스템을 고려한 인터페이스 수준의 테스트를 다룹니다. |
소프트웨어 개발 수명주기가 끝날 때 수행됩니다. | 제품이 통합 테스트를 통과하면 수행됩니다. |
제품에 구현 된 모든 기능을 면밀히 조사하여 예기치 않은 결과를 발견합니다. | 프로세스 흐름은 프런트 엔드 및 백엔드 및 중간 계층 시스템과 함께 확인됩니다. |
테스터는 개발 된 제품의 기능을 잘 이해하고 있어야합니다. | 테스터는 시스템 내의 데이터 흐름과 작업 흐름을 잘 이해하고 있어야합니다. |
시스템 테스터는 제품 개발 수명주기의 단계에 대해 신경 쓸 필요가 없습니다. | 엔드 투 엔드 테스터는 모든 단계를 이해해야합니다. |
시스템 테스트 또는 종단 간 테스트 또는 둘 다?
종종 시스템 테스트와 종단 간 테스트는 동일한 것으로 간주되지만 사실이 아닙니다. 둘 다 다른 테스트 범위를 가진 다른 형태의 테스트입니다.
End-to-End 테스트는 모든 종속 시스템을 포괄하는 시스템이 끝날 때까지 처음부터 활동 흐름을 확인하는 반면, 시스템 테스트는 응답을 평가하기 위해 다른 입력 세트로 동일한 기능을 확인합니다.
따라서 테스트 범위 두 가지 테스트 유형이 모두 다릅니다.
결론
시스템 테스터는 실제 사용자의 사고 방식을 가져야하는 반면 종단 간 테스터는 업스트림 및 다운 스트림 시스템을 동일하게 이해해야합니다.
위에서 설명한 것처럼 두 가지 유형의 테스트는 제품 개발주기에서 똑같이 중요하므로 서로 다른 범주의 결함을 발견하는 데 필요합니다.
어떤 테스트를 선택해야할지 명확하게 알고 있었으면 좋겠습니까? 한편, 아래 댓글 섹션에서 경험을 자유롭게 공유하십시오.