본문 바로가기
IT/Knowledge

Test에서 Stub이란?

by 성준하이 2022. 12. 10.
반응형

사전적인 의미는 토막, 꽁초, 남은 부분 등의 의미를 가지고 있는 이 stub이라는 단어는 it에서 개발 테스트 할때는 어떤 의미를 지니고 있는지 확인해보려고 한다.

 

위키에서의 사전적 의미는 다음과 같다.

고급 다형성 컴퓨터 과학에서 테스트 스텁 은 테스트 중인 모듈이 의존하는 소프트웨어 구성 요소(또는 모듈)의 동작을 시뮬레이션하는 프로그램입니다. 테스트 스텁은 테스트 중에 이루어진 호출에 대한 미리 준비된 답변 을 제공하며 일반적으로 테스트를 위해 프로그래밍된 것 이외의 항목에는 전혀 응답하지 않습니다. [1] 증분 테스트의 하향식 접근 방식 에 주로 사용됩니다 . 스텁은 소위 유역 모듈을 임시로 대체하고 실제 제품이나 소프트웨어와 동일한 출력을 제공하는 컴퓨터 프로그램입니다.

https://en.wikipedia.org/wiki/Test_stub

 

Test stub - Wikipedia

In advanced polymorphism computer science, test stubs are programs that simulate the behaviours of software components (or modules) that a module undergoing tests depends on. Test stubs provide canned answers to calls made during the test, usually not resp

en.wikipedia.org

 

즉, 실제 준비는 되지 않았지만 원활한 테스트 동작을 위해서 미리 정해진 답으로 셋팅을 해두고 테스트를 진행하는것이다.

 

특징은 다음과 같다.

  • dummy객체가 실제로 동작하는 것처럼 보이게 만들어 놓은 객체
  • 실제 코드나 아직 준비되지 못한 코드의 행동을 가장하는 행위
  • 호출자를 실제 구현물로 부터 격리시키는 목적으로 사용가능
  • 인터페이스 or 기본클래스가 최소한으로 구현된 상태
  • 테스트에서 호출된 요청에 대해 미리 준비해둔 결과를 제공

 

다음과 같은 경우에 사용이 된다.

  • 구현이 되지않은 함수나, 라이브러리에서 제공하는 함수를 사용하고자 할때
  • 함수가 반환하는 값을 임의로 생성하고 싶을 때
  • 복잡한 논리 흐름을 가지는 경우, 테스트를 단순화 하고 싶을 때
  • 의존성을 가지는 유닛의 응답을 모사하여 독립적인 시험 수행을 하고자 할 때

 

그러면서 개발자는 연동 테스트를 할때 상대를 고려하지 않고 독립적으로 개발 테스트를 할수 있게 된다.

반응형

'IT > Knowledge' 카테고리의 다른 글

nvm이란?  (8) 2023.01.18
Redis vs Memcached  (9) 2023.01.02
kubernetes. Skaffold  (32) 2022.12.07
[Beacon] 근거리 데이터 통신 > 비콘  (44) 2022.11.15
run / debug 차이  (29) 2022.11.10

댓글