what is component testing
소프트웨어 테스트에서 모듈 테스트라고도하는 구성 요소 테스트는 무엇입니까?
구성 요소는 모든 응용 프로그램에서 가장 낮은 단위입니다. 그래서, 구성 요소 테스트; 이름에서 알 수 있듯이 응용 프로그램의 최소 또는 최소 단위를 테스트하는 기술입니다.
구성 요소 테스트는 프로그램 또는 모듈 테스트라고도합니다.
애플리케이션은 많은 작은 개별 모듈의 조합 및 통합으로 생각할 수 있습니다. 전체 시스템을 테스트하기 전에 각 구성 요소 또는 응용 프로그램의 가장 작은 단위를 철저히 테스트해야합니다.
Eclipse에서 Java 파일을 만드는 방법
이 경우 모듈 또는 장치는 독립적으로 테스트됩니다. 각 모듈은 입력을 받고 일부 처리를 수행하고 출력을 생성합니다. 그런 다음 예상되는 기능에 대해 출력의 유효성을 검사합니다.
소프트웨어 응용 프로그램은 본질적으로 거대하며 전체 시스템을 테스트하는 것은 어려운 일입니다. 테스트 범위에 많은 차이가 생길 수 있습니다. 따라서 통합 테스트 또는 기능 테스트로 이동하기 전에 구성 요소 테스트로 시작하는 것이 좋습니다.
또한 읽으십시오=> 단위, 통합 및 기능 테스트 차이
학습 내용 :
- 구성 요소 테스트
- 구성 요소 테스트의 목적
- 구성 요소 수준 테스트에 대한 입력
- 구성 요소 테스트는 누구입니까?
- 구성 요소 테스트에서 무엇을 테스트합니까?
- 구성 요소 테스트가 완료되면?
- 구성 요소 테스트 테스트 전략
- 스텁 및 드라이버
- 예
- 구성 요소 테스트 케이스를 작성하는 방법은 무엇입니까?
- 구성 요소 테스트 대 단위 테스트
- 구성 요소 대 인터페이스 대 통합 대 시스템 테스트
- 결론
- 추천 도서
구성 요소 테스트
일종의 백색 상자 테스트입니다.
따라서 구성 요소 테스트는 버그를 찾고 별도로 테스트 할 수있는 모듈 / 프로그램의 기능을 확인합니다.
구성 요소 테스트를위한 테스트 전략 및 테스트 계획이 있습니다. 그리고 각 구성 요소에 대해 테스트 사례에서 더 세분화되는 테스트 시나리오가 있습니다. 아래 다이어그램은 동일 함을 나타냅니다.
구성 요소 테스트의 목적
구성 요소 테스트의 주요 목적은 테스트 개체의 입력 / 출력 동작을 확인하는 것입니다. 테스트 개체의 기능이 원하는 사양에 따라 올 바르고 완벽하게 작동하는지 확인합니다.
구성 요소 수준 테스트에 대한 입력
구성 요소 수준 테스트에 대한 네 가지 주요 입력은 다음과 같습니다.
- 프로젝트 테스트 계획
- 시스템 요구 사항
- 구성품 사양
- 구성 요소 구현
구성 요소 테스트는 누구입니까?
구성 요소 테스트는 QA 서비스 또는 테스터가 수행합니다.
구성 요소 테스트에서 무엇을 테스트합니까?
구성 요소 테스트는 시스템 구성 요소의 기능적 또는 특정 비 기능적 특성을 확인하는 것을 고려할 수 있습니다.
리소스 동작 테스트 (예 : 메모리 누수 확인), 성능 테스트, 구조 테스트 등이 될 수 있습니다.
구성 요소 테스트가 완료되면?
구성 요소 테스트는 단위 테스트 후에 수행됩니다.
구성 요소는 생성되는 즉시 테스트되므로 테스트중인 구성 요소에서 검색된 결과가 현재 개발되지 않은 다른 구성 요소에 종속 될 가능성이 있습니다.
개발 수명주기 모델에 따라 구성 요소 테스트는 시스템의 다른 구성 요소와 격리되어 수행 될 수 있습니다. 격리는 외부 영향을 방지하기 위해 수행됩니다.
따라서 해당 구성 요소를 테스트하기 위해 스텁 및 드라이버를 사용합니다.소프트웨어 구성 요소 간의 인터페이스를 시뮬레이션합니다.
통합 테스트는 구성 요소 테스트 후에 수행됩니다.
구성 요소 테스트 테스트 전략
테스트 수준에 따라 구성 요소 테스트는 두 부분으로 나뉩니다.
- 소규모 구성 요소 테스트 (ctis)
- 대규모 구성 요소 테스트 (CTIL)
구성 요소 테스트가 다른 구성 요소와 격리되어 수행되는 경우 작은 구성 요소 테스트라고합니다. 이것은 다른 구성 요소와의 통합을 고려하지 않고 수행됩니다.
소프트웨어의 다른 구성 요소와 격리하지 않고 구성 요소 테스트를 수행하면 크게 구성 요소 테스트라고합니다. 이는 구성 요소의 기능 흐름에 의존하여 분리 할 수 없을 때 발생합니다.
종속성이있는 구성 요소가 아직 개발되지 않은 경우 실제 구성 요소 대신 더미 개체를 사용합니다. 이러한 더미 객체는 스텁 (함수라고 함) 및 드라이버 (함수 호출)입니다.
스텁 및 드라이버
스텁 및 드라이버에 대해 간략히 설명하기 전에 구성 요소 테스트와 통합 테스트의 차이. 그 이유는 스텁과 드라이버도 통합 테스트에 사용되므로이 두 테스트 기술간에 약간의 혼동이 발생할 수 있습니다.
통합 테스트 기술은 두 가지 구성 요소를 순차적으로 결합하고 통합 시스템을 함께 테스트하는 기술입니다. 한 시스템의 데이터가 다른 시스템으로 이동되고 통합 시스템에 대해 데이터의 정확성이 검증됩니다.
단일 구성 요소 / 모듈을 다른 구성 요소에 통합하기 전에 철저히 테스트하는 모듈 테스트와 달리. 따라서 통합 테스트 전에 구성 요소 테스트를 수행한다고 말할 수 있습니다.
통합 및 구성 요소 사용 스텁 및 드라이버 .
'운전자' 호출 함수가 존재하지 않는 경우 가장 낮은 모듈의 함수를 호출하는 데 사용되는 더미 프로그램입니다.
“그루터기” 코드는 최상위 모듈의 입력 / 요청을 수락하고 결과 / 응답을 반환하는 스 니펫이라고 할 수 있습니다.
앞에서 설명한 것처럼 구성 요소는 개별적으로 독립적으로 테스트됩니다. 따라서 현재 개발되지 않은 다른 구성 요소에 따라 구성 요소의 일부 기능이있을 수 있습니다. 따라서 이러한 '개발되지 않은'기능으로 구성 요소를 테스트하려면 데이터를 처리하고 호출 구성 요소로 반환하는 몇 가지 자극 에이전트를 사용해야합니다.
이러한 방식으로 개별 구성 요소를 철저히 테스트합니다.
여기에서 우리는 그것을 본다 :
- C1, C2, C3, C4, C5, C6, C7, C8, C9 —————는 구성 요소입니다.
- C1, C2 및 C3은 함께 Subunit 1을 만듭니다.
- C4와 C5는 함께 Sub Unit 2를 만듭니다.
- C6, C7 및 C8은 함께 Sub Unit 3을 만듭니다.
- C9만으로도 소단위 4
- Sub Unit 1과 Subunit 2가 결합하여 Business Unit 1을 만듭니다.
- Sub Unit 3과 Sub Unit 4가 결합하여 Business Unit 2를 만듭니다.
- Business Unit 1과 Business Unit 2가 결합하여 애플리케이션을 만듭니다.
- 따라서이 경우 구성 요소 테스트는 C1에서 C9까지의 개별 구성 요소를 테스트하는 것입니다.
- 그만큼 그물 Sub Unit 1과 Sub Unit 2 사이의 화살표는 통합 테스트 지점을 보여줍니다.
- 마찬가지로 그물 Sub Unit 3과 Sub Unit 4 사이의 화살표는 통합 테스트 지점을 보여줍니다.
- 비즈니스 단위 1과 비즈니스 단위 2 사이의 녹색 화살표는 통합 테스트 지점을 보여줍니다.
따라서 우리는 다음을 수행 할 것입니다.
- 구성 요소 C1 ~ C9 테스트
- 완성 하위 단위와 사업 단위 간의 테스트
- 체계 응용 프로그램 전체 테스트
예
지금까지 우리는 컴포넌트 테스트가 일종의 화이트 박스 테스트 기술 . 글쎄, 그럴 수도 있습니다. 그러나 이것이 블랙 박스 테스트 기법에서이 기법을 사용할 수 없다는 의미는 아닙니다.
자바 배열 복사 방법
로그인 페이지로 시작하는 거대한 웹 애플리케이션을 고려하십시오. 테스터로서 우리는 전체 애플리케이션이 개발되고 테스트 할 준비가 될 때까지 기다릴 수 없었습니다. 시장 출시 시간을 늘리려면 테스트를 일찍 시작해야합니다. 따라서 로그인 페이지가 개발 된 것을 볼 때 우리가 테스트 할 수 있도록 제공해야합니다.
테스트 할 로그인 페이지를 사용할 수있게되면 모든 테스트 케이스 (긍정적 및 부정적)를 실행하여 로그인 페이지 기능이 예상대로 작동하는지 확인할 수 있습니다.
이 시점에서 로그인 페이지를 테스트하면 다음과 같은 이점이 있습니다.
보안 문제에 대해 소프트웨어를 테스트하여 달성 할 수있는 최소한 두 가지를 나열하고 설명합니다.
- UI의 유용성 테스트 (맞춤법 오류, 로고, 정렬, 서식 등)
- 사용해보십시오 부정적인 테스트 기술 인증 및 권한 부여와 같습니다. 이 경우 결함을 찾을 확률이 높습니다.
- SQL 주입과 같은 기술 사용 매우 초기 단계에서 보안 위반을 테스트 할 수 있습니다.
이 단계에서 기록하는 결함은 개발 팀에서 '학습 한 교훈'으로 작용하며 연속 페이지의 코딩에 구현됩니다. 따라서 초기 테스트를 통해 아직 개발되지 않은 페이지의 더 나은 품질을 보장 할 수 있습니다.
다른 연속 페이지는 아직 개발되지 않았기 때문에 로그인 페이지 기능을 확인하려면 스텁이 필요할 수 있습니다. 예를 들면 ,올바른 자격 증명의 경우 '로깅 성공'이라는 간단한 페이지와 잘못된 자격 증명의 경우 오류 메시지 팝업 창이 필요할 수 있습니다.
에 대한 이전 자습서를 진행할 수 있습니다. 통합 테스트 스텁 및 드라이버에 대한 더 많은 통찰력을 얻을 수 있습니다.
구성 요소 테스트 케이스를 작성하는 방법은 무엇입니까?
구성 요소 테스트에 대한 테스트 사례는 소프트웨어 디자인 또는 데이터 모델과 같은 작업 제품에서 파생됩니다. 각 구성 요소는 각 테스트 케이스가 특정 입력 / 출력 조합, 즉 부분 기능을 다루는 일련의 테스트 케이스를 통해 테스트됩니다.
다음은 로그인 모듈에 대한 구성 요소 테스트 사례의 샘플입니다.
다른 테스트 케이스도 비슷하게 작성할 수 있습니다.
구성 요소 테스트 대 단위 테스트
구성 요소 테스트와 단위 테스트의 첫 번째 차이점은 첫 번째 테스트는 테스터가 수행하고 두 번째 테스트는 개발자 또는 SDET 전문가가 수행한다는 것입니다.
단위 테스트는 세분화 된 수준에서 수행됩니다. 반면에 구성 요소 테스트는 응용 프로그램 수준에서 수행됩니다. 단위 테스트에서 개별 프로그램 또는 코드 조각이 지정된대로 실행되고 있는지 확인합니다. 구성 요소 테스트에서 소프트웨어의 각 개체는 시스템의 다른 구성 요소 / 개체와 격리되거나 격리되지 않고 개별적으로 테스트됩니다.
따라서 구성 요소 테스트는 단위 테스트와 매우 유사하지만 더 높은 수준의 통합과 응용 프로그램의 컨텍스트에서 수행됩니다 (단위 테스트에서와 같이 해당 단위 / 프로그램의 컨텍스트에서뿐만 아니라).
구성 요소 대 인터페이스 대 통합 대 시스템 테스트
구성 요소 내가 설명했듯이은 독립적으로 테스트되는 응용 프로그램의 가장 낮은 단위입니다.
안 상호 작용 두 구성 요소의 결합 레이어입니다. 두 구성 요소가 상호 작용하는 플랫폼 또는 인터페이스 테스트를 인터페이스 테스트라고합니다.
이제 인터페이스 테스트는 약간 다릅니다. 이러한 인터페이스는 대부분 API 또는 웹 서비스 , 따라서 이러한 인터페이스의 테스트는 Black Box 기술과 유사하지 않으며, 오히려 API 테스트 또는 웹 서비스 테스트를 사용하여 SOAP UI 또는 다른 도구.
인터페이스 테스트가 완료되면 통합 테스트 .
통합 테스트 중에 테스트 된 개별 구성 요소를 하나씩 결합하고 점진적으로 테스트합니다. 통합 과정에서 개별 구성 요소가 하나씩 결합 될 때 예상대로 작동하며 한 모듈에서 다른 모듈로 이동할 때 데이터가 변경되지 않는지 확인합니다.
모든 구성 요소가 통합되고 테스트되면 우리는 수행 시스템 테스트 전체 애플리케이션 / 시스템을 전체적으로 테스트합니다. 이 테스트는 구현 된 소프트웨어에 대한 비즈니스 요구 사항을 검증합니다.
결론
나는 이렇게 말할 것이다 단위 테스트 구성 요소 테스트는 나란히 수행됩니다.
개발 팀에서 수행하는 단위 테스트와 달리 구성 요소 / 모듈 테스트는 테스트 팀에서 수행합니다. 통합 테스트를 시작하기 전에 항상 구성 요소를 통한 테스트를 수행하는 것이 좋습니다.
구성 요소 테스트가 견고하면 통합 테스트에서 결함이 더 적습니다. 문제가있을 수 있지만 이러한 문제는 통합 환경 또는 구성 문제와 관련이 있습니다. 통합 된 구성 요소의 기능이 제대로 작동하는지 확인할 수 있습니다.
이 튜토리얼이 구성 요소, 통합 및 시스템 테스트를 이해하는 데 도움이 되었기를 바랍니다. 여전히 질문이 있으시면 언제든지 의견을 보내주십시오.