본문 바로가기

단위 테스트10

6장 단위 테스트 스타일 - 스타일 비교 단위테스트 (블라디미르 코리코프) 아래 내용에서 이어지는 글입니다. https://jonghoonpark.tistory.com/43 2. 단위 테스트 스타일 비교 좋은 단위 테스트의 4대 요소를 중심으로 각각의 단위 테스트 스타일 비교 [Note] 좋은 단위 테스트의 4대 요소 는 다음과 같다. - 회귀 방지 - 리팩터링 내성 - 빠른 피드백 - 유지 보수성 2.1 회귀 방지와 피드백 속도 지표로 스타일 비교하기 회귀 방지 지표는 특정 스타일에 따라 달라지지 않는다. 회귀 방지 지표는 다음 세 가지 특성으로 결정된다. - 테스트 중에 실행되는 코드의 양 - 코드 복잡도 - 도메인 유의성 어떤 스타일도 이 부분에서 도움이 되지는 않는다. 따라서 크게 연관이 없다. 다만 통신 기반 스타일의 경우에는 남용하면.. 2023. 7. 12.
6장 단위 테스트 스타일 단위테스트 (블라디미르 코리코프) 단위테스트에는 출력 기반, 상태 기반, 통신 기반이라는 세 가지 테스트 스타일이 있다. 출력 기반 스타일의 테스트가 가장 품질이 좋고, 상태 기반 테스트는 두 번째로 좋은 선택이며, 통신 기반 테스트는 간헐적으로만 사용해야 한다. 안타깝게도 출력 기반 테스트 스타일은 아무데서나 사용할 수 없으며, 순수 함수 방식으로 작성된 코드에만 적용된다. 그러나 걱정할 필요는 없다. 출력 기반 스타일로 변환하는 데 도움이 되는 기법이 있다. 이를 위해 함수형 프로그래밍 원칙을 사용해 기반 코드가 함수형 아키텍처를 지향하게끔 재구성해야 한다. [Note] 순수 함수는 다음 속성을 갖는 함수입니다. - 함수 반환 값은 동일한 인수에 대해 동일합니다 - 함수에는 사이드 이펙트가 없습니다 .. 2023. 7. 11.
5장 목과 테스트 취약성 (1) 단위테스트 (블라디미르 코리코프) 0. 개요 런던파 : 테스트 대상 코드 조각을 서로 분리하고 불변 의존성을 제외한 모든 의존성에 테스트 대역을 써서 격리하자. 고전파 : 단위 테스트를 분리해서 병렬로 실행할 수 있게 하자. 테스트 간에 공유하는 의존성에 대해서만 테스트 대역을 사용하자. 테스트 대역 모든 유형의 비운영 가짜 의존성을 설명하는 포괄적인 단어 * 영화의 스턴트 대역 이라는 개념에서 비롯되었음. double에 대역 이라는 뜻이 있음. 목(mock) 테스트 대상 시스템(SUT)과 그 협력자 사이의 상호 작용을 검사할 수 있는 테스트 대역 목은 리팩토링 내성이 부족한 테스트를 초래할 수도 있지만 목을 사용하는게 바람직한 경우도 있다. 목과 테스트 취약성 사이에는 깊고 불가피한 관련이 있다. 어떻.. 2023. 5. 11.
좋은 테스트란 무엇인가 – 테스트를 평가하는 4가지 요소 * 출처: 단위테스트 (블라디미르 코리코프) 단위 테스트, 통합 테스트, 엔드 투 엔드 테스트 등 자동화 된 테스트를 분석하는 데 사용할 수 있는 네 가지 기본 특성이 있다. 회귀 방지 리팩터링 내성 빠른 피드백 유지 보수성 회귀 방지 회귀 : 코드를 수정한 후 기능이 의도한 대로 작동하지 않는 경우. (= 소프트웨어 버그) 회귀 방지는 테스트가 얼마나 버그(회귀)의 존재를 잘 나타내는지에 대한 척도이다. 테스트가 코드를 더 많이 실행할수록 (여러분의 코드와 프로젝트에서 사용한 라이브러리 및 프레임워크 코드 모두) 테스트에서 버그가 드러날 확률이 더 높아진다. 리팩터링 내성 리팩터링 내성은 테스트가 거짓 양성을 내지 않고 애플리케이션 코드 리팩터링을 유지할 수 있는 정도를 의미한다. 거짓 양성 : 테스트.. 2023. 5. 2.