what is thread testing software testing
이 자습서에서는 스레드 테스트가 무엇인지, 언제, 어떻게 수행하는지, 스레드 기반 테스트 유형 및 직면 한 과제를 설명합니다.
스레드 테스트는 클라이언트 서버 기반 응용 프로그램을 테스트하는 데 사용되는 소프트웨어 테스트 기술입니다.
스레드 기반 테스트는 통합 테스트의 초기 단계에서 수행되어야 특정 작업 / 프로그램 또는 스레드에 대해 주요 기능을 테스트 / 검증 할 수 있습니다.
학습 내용 :
최고의 무료 Windows 10 레지스트리 클리너
스레드 테스트를하는 이유
구성 요소가 통합되면 시스템이 예상대로 작동하는지 여부와 모든 트랜잭션이 요구 사항에 따라 발생하는지 여부를 확인해야합니다. 따라서 스레드 기반 테스트는 동일한 테스트를 수행합니다.
이 테스트는 하위 시스템에서 전체 시스템, 즉 전체 시스템에 이르는 모든 수준에서 스레드를 점진적으로 통합하여 수행됩니다. 모든 시스템 활동은 스레드만으로 진행됩니다.
스레드 정의는 개발자와 개발자간에 기능적 배경 및 스레드 실행 세부 정보를 테스터와 공유하는 데 도움이됩니다.
스레드 정보
스레드는 프로세스의 제어 흐름입니다. 실행할 수있는 시스템의 가장 작은 작업입니다.
예
웹 브라우저에는 viz를 실행하는 하나 이상의 스레드가있을 수 있습니다. 하나의 스레드는 이미지와 텍스트를 표시하고 다른 스레드는 데이터를 검색합니다. 어떤 경우에는 모든 프로세스를 처리하기 위해 단일 애플리케이션이 필요합니다.
다중 스레드를 생성하는 것이 동일한 솔루션에 대한 최상의 솔루션입니다. 그렇지 않으면 클라이언트가 여러 요청을 서버로 보내고 요청을 하나씩 확인하는 데 시간이 걸립니다. 다중 스레드는 요청에 동시에 응답하는 데 도움이됩니다.
스레드 테스트가 수행되는시기와 방법
시스템 통합 테스트의 초기 단계에서 수행해야합니다.
통합 테스트는 계획된 방식으로 여러 모듈을 통합하여 수행됩니다. 통합 계획은 전체 시스템을 만들기 위해 모듈이 통합되는 순서를 지정하는 것과 동일하게 따릅니다.
다음은 통합 테스트를 실행하는 기술입니다.
- 빅뱅 접근
- 하향식 접근 방식
- 상향식 접근 방식
- 혼합 접근법
각 기법을 자세히 살펴 보겠습니다.
# 1) 빅뱅 접근
빅뱅 방식은 모든 모듈이 한 번에 통합되고 테스트되기 때문에 소규모 시스템에만 사용됩니다.
이 접근 방식에서 발견 된 모든 문제는 통합 모듈에서 발생할 수 있으므로 현지화하기가 어렵습니다. 따라서 발견 된 디버깅 문제는이 접근 방식에서 수정하는 데 비용이 많이 듭니다.
# 2) 하향식 접근 방식
하향식 접근 방식은 스텁을 사용하여 수행됩니다. 즉, 최상위 모듈이 테스트되면 즉각적인 서브 루틴이 통합되고 테스트됩니다.
스텁은 하위 수준 루틴의 효과를 시뮬레이션하는 프로그램이며 테스트중인 루틴에 의해 호출됩니다. 스레드 테스트는 하향식 접근 방식을 사용합니다.
# 3) 상향식 접근
상향식 접근 방식에서는 모든 하위 시스템을 개별적으로 테스트 한 다음 전체 시스템을 테스트합니다. 모든 하위 시스템을 개별적으로 테스트하는 이유는 하위 시스템의 일부인 모든 모듈 간의 인터페이스를 테스트하기 위해서입니다.
이 기술에는 테스트 드라이버, 즉 다른 모듈을 호출하고 실제 제품과 동일한 출력을 제공하는 프로그램이 필요합니다.
# 4) 혼합 통합 테스트
이 기술은 하향식 및 상향식 접근 방식의 조합입니다. 따라서이를 혼합 통합 테스트라고합니다.
스레드 기반 테스트를 수행하기위한 요점
- 스레드 테스트를 수행하는 동안 스레드 또는 작은 기능이 통합되고 테스트됩니다. 수행 된 테스트는 하위 시스템 수준에서 증분 테스트 한 다음 전체 시스템으로 수행됩니다.
- 초기 단계 자체에서 통합 테스터는 추가 테스트에 대한 좋은 아이디어와 지식을 얻습니다.
- 통합 테스터는 스레드 경계 내에서만 긍정 및 부정 시나리오를 적용하고 실행해야합니다. 예외적 인 사례와 경계 사례를 다루기 위해 따라야 할 스레드 테스트 접근 방식을 결정해야합니다.
- 개발자가 테스터에게 제공 한 스레드 정의는 통합 자 테스터가 그에 따라 스레드를 테스트하는 데 도움이됩니다. 테스터가 요구하는 추가 정보는 스레드 검토 프로세스에서 답변 할 수 있습니다.
- 스레드 프로세스는 전체 개발 프로세스가 아닌 통합 프로세스를 위해 작동합니다.
- 다중 스레드 기능을 테스트하려면 테스트 할 응용 프로그램 또는 프로그램의 여러 인스턴스를 동시에 활성화하십시오.
- 다른 하드웨어에서 다중 스레드 프로그램을 실행하십시오.
- 스레드 테스트는 세션이 스레드로 구성되는 세션 테스트의 한 형태입니다. 형성된 스레드가 세션 일 필요는 없습니다.
스레드 기반 테스트의 유형
두 가지 유형의 스레드 기반 테스트가 수행됩니다.
- 단일 스레드 테스트
- 다중 스레드 테스트
# 1) 단일 스레드 테스트
단일 스레드 테스트는 한 번에 하나의 트랜잭션을 테스트합니다. 클라이언트가 요청에 대한 응답을 받기까지의 대기 시간은 한 번에 한 클라이언트에게 서비스를 제공하거나 응답 할 수 있기 때문에 약간 더 길 수 있습니다.
최고의 YouTube 비디오 변환기는 무엇입니까
이 테스트는 테스터가 프로그램 또는 작성된 코드의 논리를 이해하고 테스트하는 데 도움이됩니다.
# 2) 다중 스레드 테스트
다중 스레드 테스트는 여러 활성 트랜잭션을 동시에 테스트합니다. 이 경우 클라이언트의 요청에 대해 별도의 스레드가 생성됩니다. 요청이있을 때마다 스레드가 서비스에 생성되거나 요청에 응답합니다.
단일 스레드 테스트에서 제대로 작동하던 트랜잭션은 다중 스레드에서 테스트하는 동안 실패 할 수 있으며 다른 스레드 및 기능을 방해하여 예상대로 작동하지 않을 수도 있습니다.
다중 스레드 접근 방식이 단일 스레드 접근 방식보다 낫습니까?
다중 스레드 응용 프로그램은 응용 프로그램의 성능을 향상시키기 때문에 단일 스레드보다 낫습니다. 다중 스레딩을 사용하면 여러 리소스가 동시에 문제 / 요청에 대해 작업 할 수 있습니다.
스레드 기반 테스트를 수행하는 동안의 과제
스레드 기반 테스트를 수행하는 동안 테스터는 테스트의 성능, 시간 및 비용에 영향을 미치는 몇 가지 문제에 직면합니다.
- 다중 스레드 코드에 대한 단위 테스트 케이스를 작성하는 것은 어렵습니다.
- 다중 스레드 테스트가 다른 하드웨어에서 수행되는 경우 크기, 저장 용량, 메모리, 문제 등에 따라 다릅니다.
- 단일 스레드와 다중 스레드에 대한 테스트 시나리오는 다릅니다.
- 다중 스레드 테스트에서는 단위 테스트를위한 재현 가능한 테스트를 프로그래밍해야합니다.
멀티 스레딩의 장점 / 단점
멀티 스레딩에는 많은 장점과 단점이 있습니다. 테스터로서 같은 것을 아는 것은 그에 따라 테스트 프로세스를 테스트하고 중단하는 데 도움이됩니다.
장점
- 멀티 스레딩은 사용자에 대한 응답 성을 높입니다. 응용 프로그램의 일부가 차단 된 경우에도 응용 프로그램이 프로그램을 실행하도록 할 수 있습니다.
- 스레드가 관련되거나 속한 프로세스의 리소스를 공유하므로 리소스 공유는 또 다른 이점입니다.
- 스레드를 생성하면 스레드가 속한 리소스를 공유하므로 경제적입니다.
단점
- 복잡한 테스트 프로세스
- 결과는 매우 예측할 수 없습니다.
- 프로그램 작성이 더 어려워집니다.
- 교착 상태 발생.
교착 상태 란?
멀티 스레딩이 완료되면 리소스를 사용할 수없는 경우 스레드는 대기 상태가됩니다.
요청 된 리소스가 다른 대기 스레드에 의해 유지되므로 스레드에 대해 대기 상태가 변경되지 않을 수 있습니다. 이러한 상황이 발생하면이를 Deadlock이라고합니다.
스레드와 프로세스의 차이점
스레드와 프로세스의 차이점을 이해하겠습니다.
여러 YouTube 비디오를 mp3로 변환
S. 아니 | 실 | 방법 |
---|---|---|
7 | 스레드는 더 이상 나눌 수 없습니다. | 프로세스에는 여러 스레드가있을 수 있습니다. |
1 | 스레드는 경량 프로세스입니다. | 이 프로세스는 무거운 프로세스입니다. |
두 | 서버 스레드가 차단되면 동일한 작업의 두 번째 스레드가 실행되어 프로세스를 완료 할 수 있습니다. | 서버 프로세스가 차단되면 차단 된 서버 프로세스가 차단 해제 될 때까지 다른 프로세스를 실행할 수 없습니다. |
삼 | 스레드는 분리되지 않고 메모리를 공유합니다. | 프로세스가 격리됩니다. |
4 | 스레드 생성, 컨텍스트 전환, 종료는 스레드에서 시간이 덜 걸립니다. | 스레드 생성, 컨텍스트 전환, 종료는 프로세스에서 더 많은 시간이 걸립니다. |
5 | 스레드는 프로세스의 특정 작업을 나타냅니다. | 프로세스는 모든 프로그램의 실행을 나타냅니다. |
6 | 사용되는 리소스는 스레드에서 매우 적습니다. | 프로세스에 활용되는 리소스가 더 많습니다. |
스레드 기반 테스트와 사용자 기반 테스트의 차이점
S. 아니. | 스레드 기반 테스트 | 사용 기반 테스트 |
---|---|---|
1 | 스레드는 통합되고 개별적으로 테스트됩니다. | 테스트는 서로 의존하지 않는 즉 독립적 인 클래스로 시작됩니다. |
두 | 회귀 테스트는 영향을받지 않는지 확인하기 위해 수행됩니다. | 독립 클래스 테스트가 완료되면 종속 클래스가 테스트됩니다. 부양 가족은 독립 클래스에 의존하는 것입니다. 이 시리즈는 완전한 시스템이 구축 될 때까지 계속됩니다. |
삼 | 스레드 기반 테스트는 시스템의 입력 또는 이벤트를 확인하는 데 필수적인 클래스를 통합합니다. | 사용 기반 테스트는 사용 사례에 응답하거나 확인하는 데 필수적인 클래스를 통합합니다. |
자주 묻는 질문
Q # 1) 스레드 테스트 란 무엇입니까?
대답: 스레드 기반 테스트는 통합 테스트의 초기 단계에서 수행되는 방법론입니다. 스레드 또는 프로그램은 하위 시스템에서 점진적으로 통합되고 테스트 된 다음 전체 시스템으로 테스트됩니다.
Q # 2) 어떤 테스트를 먼저 수행합니까?
대답 : 일반적으로 상향식 테스트를 먼저 수행 한 다음 하향식 테스트를 수행합니다.
Q # 3) 하향식 테스트 란 무엇입니까?
대답: Top-down은 스텁을 사용하여 테스트를 수행하는 통합 테스트 기술입니다.
결론
스레드 기반 통합 테스트는 주요 기능이나 특정 작업 또는 스레드를 테스트하는 데 중요한 역할을합니다. 이 방법론은 클라이언트 서버 기반 아키텍처에 가장 적합합니다.
스레드 테스트를 수행하는 동안 테스터는 많은 문제에 직면해야하지만 수행하기 쉽고 신뢰할 수있는 많은 장점도 있습니다. 테스터가 모든 트랜잭션을 테스트하고 요구 사항에 따라 예상대로 작동하는지 확인할 수 있습니다.
스레드 테스트를 완료하기 위해 모든 트랜잭션 / 이벤트를 테스트하는 것은 불가능하기 때문에 단일 스레드 유형과 다중 스레드 유형으로 구분됩니다.