이중시험
Test double컴퓨터 프로그래밍과 컴퓨터 과학에서 프로그래머와 개발자들은 소프트웨어의 품질을 향상시키기 위해 자동화된 단위 시험이라고 불리는 기술을 사용한다.종종 최종 릴리스 소프트웨어는 최종 결과를 만들기 위해 서로 상호작용하는 복잡한 객체 또는 절차 집합으로 구성된다.자동화된 단위 시험에서, 릴리스된 단위 시험과 같이 보이고 동작하지만 실제로는 복잡성을 줄이고 시험을 용이하게 하는 단순화된 버전인 물체나 절차를 사용해야 할 수 있다.시험 이중(test double)은 이러한 물체나 절차에 사용되는 일반적인 (meta) 용어다.
시험복식
제라드 메사로스는[1] 자신이 "시험 복식"이라고 부르는 몇 가지 용어를 확인했다.그의 어휘를 사용한다면, 시험 복식에는 적어도 다섯 가지 종류가 있다.
- 테스트 스텁 - 테스트된 코드를 "간접 입력"으로 제공하는 데 사용된다.
- Mock object - 테스트된 코드가 실행되기 전에 먼저 기대치를 정의하여 테스트된 코드의 "간접 출력"을 확인하는 데 사용된다.
- 테스트 스파이 - 테스트된 코드가 실행되기 전에 기대치를 정의하지 않고 나중에 기대치를 주장함으로써 테스트된 코드의 "간접 출력"을 확인하는 데 사용된다.생성된 간접 객체에 대한 정보를 기록하는 데 도움이 된다.
- 가짜 개체 - 실제 데이터베이스 액세스를 수행하는 대신 테스트에서 인메모리 데이터베이스를 사용하는 등 보다 간단한 구현으로 사용된다.
- 더미 객체 - 매개변수가 시험 방법에 필요하지만 실제로 매개변수를 사용할 필요는 없을 때 사용된다.
서비스 지향 아키텍처 시스템 또는 마이크로서비스의 수동 및 자동화된 블랙박스 테스트 모두에 대해 소프트웨어 개발자와 테스터는 네트워크 프로토콜을 통해 테스트 중인 시스템과 통신하는 테스트 복식을 사용한다.[2][3]이러한 테스트 복식은 공구 공급업체에 따라 다른 이름으로 불린다.일반적으로 사용되는 용어는 서비스 가상화다.다른 이름으로는 API 시뮬레이션, API mock,[4] HTTP stub, HTTP mock, wire test double[5] 을 사용한다.[6]
또 다른 형태의 테스트 더블은 검증된 짝퉁으로, 확인된 짝퉁과 실제 구현 모두에 대해 실행되는 테스트를 사용하여 실제 개체와 일치하는 동작을 검증한 짝퉁이다.[7]
시험 2중과 다양한 유형에 대한 개방형 표준은 없지만, 이러한 방식으로 이러한 용어를 계속 사용할 수 있는 모멘텀이 있다.마틴 파울러는 메사로스의 책을 언급하면서 Mocks Aren't Stubs라는[8] 글에서 이러한 용어를 사용했다.마이크로소프트는 또한 "시험의 연속성"이라는 제목의 기사에서 같은 용어와 정의를 사용했다.[9]
참고 항목
참조
- ^ Meszaros, Gerard (2007). xUnit Test Patterns: Refactoring Test Code. Addison-Wesley. ISBN 978-0-13-149505-0.
- ^ Clemson, Toby "Microservice Architecture에서의 테스트 전략", martinfowler.com, 2014년 11월 18일.2017년 12월 7일에 회수됨.
- ^ 비야스, 브랜든.MEAP 매닝 출판사 "Mountebank와 함께 마이크로 서비스 테스트"는 2017년 3월에 시작되었다.ISBN 9781617294778.2017년 12월 7일에 회수됨.
- ^ 2016년 8월 16일 InfoQ, Daniel "API Mocking Tool WireMock v2 향상된 요청 일치 및 스텁 관리로 릴리즈"2017년 12월 7일에 회수됨.
- ^ ThinkWorks "Technology Radar, Tools: Mountebank", ThoughtWorks, 2015년 11월.2017년 12월 7일에 회수됨.
- ^ Bulaty, Wojciech, InfoQ, 2016년 2월 19일 "테스트 및 개발 팀을 위한 스텁빙, 조롱 및 서비스 가상화 차이점"2017년 12월 7일에 회수됨.
- ^ Turner-Trauring, Itamar (2019). "Fast tests for slow services: why you should use verified fakes". Retrieved 2019-01-21.
- ^ Fowler, Martin (2007). "Mocks Aren't Stubs". Retrieved 2010-12-29.
- ^ Seemann, Mark (2007). "Exploring The Continuum Of Test Doubles". Retrieved 2010-12-29.
외부 링크
제라드 메사로스:
마틴 파울러:
- TestDouble, 2006년 1월 17일
오픈 소스:
- ELF 스파이 - 가짜와 스파이 인 C++
- FakeIt - C++에서 Mocks, Fake 및 Spypers
- Google Mock - C++에서 조롱
- jMock - Mock을 사용한 테스트 기반 개발
- Mockito - Java를 위한 Mocking Framework
- unittest.mock - Python으로 조롱하기