본문 바로가기

테스트15

5장 목과 테스트 취약성 (3) 단위테스트 (블라디미르 코리코프) 5장 목과 테스트 취약성 (1) 5장 목과 테스트 취약성 (2) 에서 이어지는 글입니다. 2. 식별할 수 있는 동작과 구현 세부 사항 테스트에 거짓 양성이 있는 (리팩터링 내성에 실패하는) 주요 이유는 코드의 구현 세부 사항과 결합돼 있기 때문이다. 이러한 강 결합을 피하기 위해서는 최종 결과(식별할 수 있는 동작)를 검증하고 구현 세부 사항과 테스트를 가능한 한 떨어뜨려야 한다. 테스트는 “어떻게”가 아니라 “무엇”에 중점을 둬야한다. 2.1 식별할 수 있는 동작은 공개 API와 다르다 모든 제품 코드는 2차원으로 분류할 수 있다. - 공개 API 또는 비공개 API - 식별할 수 있는 동작 또는 구현 세부 사항 코드의 공개성은 private, public, inter.. 2023. 5. 12.
5장 목과 테스트 취약성 (2) 단위테스트 (블라디미르 코리코프) 5장 목과 테스트 취약성 (1) 에서 이어지는 글입니다. 1.2 도구로서의 목과 테스트 대역으로서의 목 Mock은 두가지 의미가 있다. 목 라이브러리(mocking library)의 클래스도 목으로 부르며 테스트 대역으로서의 목 도 있다. 1.3 스텁으로 상호 작용을 검증하지 말라 테스트에서 거짓 양성을 피하고 리팩터링 내성을 향상시키는 방법은 구현 세부 사항이 아니라 최종 결과(이상적으로 비개발자들에게 의미가 있어야 함)를 검증하는 것 뿐이다. 최종결과가 아닌 사항을 검증하는 것을 과잉 명세(overspecification)이라고 부른다. 1.4 목과 스텁 함께 쓰기 같이 사용할 수 있다. 1.5 목과 스텁은 명령과 조회에 어떻게 관련돼 있는가? 명령 조회 분리 (CQ.. 2023. 5. 12.
좋은 테스트란 무엇인가 – 테스트를 평가하는 4가지 요소 * 출처: 단위테스트 (블라디미르 코리코프) 단위 테스트, 통합 테스트, 엔드 투 엔드 테스트 등 자동화 된 테스트를 분석하는 데 사용할 수 있는 네 가지 기본 특성이 있다. 회귀 방지 리팩터링 내성 빠른 피드백 유지 보수성 회귀 방지 회귀 : 코드를 수정한 후 기능이 의도한 대로 작동하지 않는 경우. (= 소프트웨어 버그) 회귀 방지는 테스트가 얼마나 버그(회귀)의 존재를 잘 나타내는지에 대한 척도이다. 테스트가 코드를 더 많이 실행할수록 (여러분의 코드와 프로젝트에서 사용한 라이브러리 및 프레임워크 코드 모두) 테스트에서 버그가 드러날 확률이 더 높아진다. 리팩터링 내성 리팩터링 내성은 테스트가 거짓 양성을 내지 않고 애플리케이션 코드 리팩터링을 유지할 수 있는 정도를 의미한다. 거짓 양성 : 테스트.. 2023. 5. 2.