본문 바로가기

스터디-공부/테스트15

5장 목과 테스트 취약성 (2) 단위테스트 (블라디미르 코리코프) 5장 목과 테스트 취약성 (1) 에서 이어지는 글입니다. 1.2 도구로서의 목과 테스트 대역으로서의 목 Mock은 두가지 의미가 있다. 목 라이브러리(mocking library)의 클래스도 목으로 부르며 테스트 대역으로서의 목 도 있다. 1.3 스텁으로 상호 작용을 검증하지 말라 테스트에서 거짓 양성을 피하고 리팩터링 내성을 향상시키는 방법은 구현 세부 사항이 아니라 최종 결과(이상적으로 비개발자들에게 의미가 있어야 함)를 검증하는 것 뿐이다. 최종결과가 아닌 사항을 검증하는 것을 과잉 명세(overspecification)이라고 부른다. 1.4 목과 스텁 함께 쓰기 같이 사용할 수 있다. 1.5 목과 스텁은 명령과 조회에 어떻게 관련돼 있는가? 명령 조회 분리 (CQ.. 2023. 5. 12.
5장 목과 테스트 취약성 (1) 단위테스트 (블라디미르 코리코프) 0. 개요 런던파 : 테스트 대상 코드 조각을 서로 분리하고 불변 의존성을 제외한 모든 의존성에 테스트 대역을 써서 격리하자. 고전파 : 단위 테스트를 분리해서 병렬로 실행할 수 있게 하자. 테스트 간에 공유하는 의존성에 대해서만 테스트 대역을 사용하자. 테스트 대역 모든 유형의 비운영 가짜 의존성을 설명하는 포괄적인 단어 * 영화의 스턴트 대역 이라는 개념에서 비롯되었음. double에 대역 이라는 뜻이 있음. 목(mock) 테스트 대상 시스템(SUT)과 그 협력자 사이의 상호 작용을 검사할 수 있는 테스트 대역 목은 리팩토링 내성이 부족한 테스트를 초래할 수도 있지만 목을 사용하는게 바람직한 경우도 있다. 목과 테스트 취약성 사이에는 깊고 불가피한 관련이 있다. 어떻.. 2023. 5. 11.
좋은 테스트란 무엇인가 – 테스트를 평가하는 4가지 요소 * 출처: 단위테스트 (블라디미르 코리코프) 단위 테스트, 통합 테스트, 엔드 투 엔드 테스트 등 자동화 된 테스트를 분석하는 데 사용할 수 있는 네 가지 기본 특성이 있다. 회귀 방지 리팩터링 내성 빠른 피드백 유지 보수성 회귀 방지 회귀 : 코드를 수정한 후 기능이 의도한 대로 작동하지 않는 경우. (= 소프트웨어 버그) 회귀 방지는 테스트가 얼마나 버그(회귀)의 존재를 잘 나타내는지에 대한 척도이다. 테스트가 코드를 더 많이 실행할수록 (여러분의 코드와 프로젝트에서 사용한 라이브러리 및 프레임워크 코드 모두) 테스트에서 버그가 드러날 확률이 더 높아진다. 리팩터링 내성 리팩터링 내성은 테스트가 거짓 양성을 내지 않고 애플리케이션 코드 리팩터링을 유지할 수 있는 정도를 의미한다. 거짓 양성 : 테스트.. 2023. 5. 2.