본문 바로가기

test9

목 처리에 대한 모범 사례 - 9장 9장 목 처리에 대한 모범 사례 단위테스트 (블라디미르 코리코프) 9장에서 다루는 내용 목의 가치를 극대화하기 목을 스파이로 교체하기 목 처리에 대한 모범 사례 목은 테스트 대상 시스템과 의존성 간의 상호 작용을 모방하고 검사 하는 데 도움이 되는 테스트 대역이다. 목은 비관리 의존성(외부 애플리케이션에서 식별할 수 있음)에만 적용해야 한다. 다른 것에 목을 사용하면 깨지기 쉬운 테스트(리팩터링 내성이 없는 테스트)가 된다. 이번 장에서는 목에 대해 리팩터링 내성과 회귀 방지를 최대화해서 최대 가치의 통합 테스트를 개발하는 데 도움이 되는 지침을 마저 알아본다. 먼저 일반적인 목 사용법과 그 단점을 알아보고, 단점을 극복할 수 있는 방법을 살펴본다. 9.1 목의 가치를 극대화하기 비관리 의존성에만 목을 .. 2023. 9. 21.
8장 통합 테스트를 하는 이유 (2) : 언제 목을 써야할까? + 예시 8장 통합 테스트를 하는 이유 (2) 단위테스트 (블라디미르 코리코프) 8.2 어떤 프로세스 외부 의존성을 직접 테스트해야 하는가? 통합 테스트는 시스템이 프로세스 외부 의존성과 어떻게 통합하는지를 검증한다. 검증을 구현하는 방식은 두 가지가 있다. 실제 프로세스 외부 의존성을 사용 해당 의존성을 목으로 대체 두 가지 방식을 언제 적용해야 하는지에 대해 알아보자. 8.2.1 프로세스 외부 의존성의 두 가지 유형 모든 프로세스 외부 의존성은 두 가지 범주로 나뉜다. 관리 의존성 (전체를 제어할 수 있는 프로세스 외부 의존성): 이러한 의존성은 애플리케이션을 통해서만 접근할 수 있으며, 해당 의존성과의 상호 작용은 외부 환경에서 볼 수 없다. 대표적인 예로 데이터베이스가 있다. 외부 시스템은 보통 데이터베이.. 2023. 9. 14.
E2E(End-to-End) 테스트 원문: https://microsoft.github.io/code-with-engineering-playbook/automated-testing/e2e-testing/ E2E(End-to-End) 테스트는 여러 하위 시스템으로 구성된 애플리케이션의 기능 및 데이터 흐름을 종합적으로 테스트하는 소프트웨어 테스트 방법론입니다. 하나의 어플리케이션을 개발하지만, 서로 다른 팀 또는 조직으로 나누어 서로 다른 기술 스택으로 개발을 하게 되는 경우가 있습니다. 이러한 경우에는 단일 시스템을 테스트하는 것만으로는 충분하지 않기 때문에 E2E 테스트를 통해 어플리케이션의 모든 구성 요소를 종합적으로 확인해야 합니다. 왜 E2E 테스트를 해야하나요? 최신 소프트웨어들은 여러 하위 시스템들의 연결로 구성되어 있습니다. .. 2023. 9. 13.
인수 테스트 (Acceptance Test) 계획서 작성하기 인수 테스트 (Acceptance Test) 위키피디아에 따르면 인수 테스트의 의미는 다음과 같다. 시스템이 실제 운영 환경에서 사용될 준비가 되었는지 최종적으로 확인하는 단계이다. 검사는 사용자가 평가하고 관리자가 점검한다. 모든 관계자가 새로운 시스템을 만족하면 시스템은 설치를 위해 정식으로 인수된다. QA로 일하면서 인수 테스트에 대해 들어는 보았지만 이번에 처음으로 인수 테스트 계획서를 작성해보게 되었다. 회사 특성상 자체 서비스를 만들다 보니 회사 외부의 다른 이해관계자를 위한 문서를 작성할 일이 크게 없었기에 회사 차원에서도 인수 테스트 를 작성한 것은 처음이였다고 한다. 그래서 회사 내의 양식은 따로 없었고 인터넷을 참고하여서 작성을 하였다. 구체적인 내용은 다른 블로그 들을 참고하면 될 것.. 2023. 9. 5.
6장 단위 테스트 스타일 – 함수형 아키텍처의 단점 이해 + 6장 요약 단위테스트 (블라디미르 코리코프) 아래 내용에서 이어지는 글입니다. https://jonghoonpark.tistory.com/43 https://jonghoonpark.tistory.com/44 https://jonghoonpark.tistory.com/45 https://jonghoonpark.tistory.com/47 안타깝게도 항상 함수형 아키텍처를 이룰 수 있는 것은 아니다. 또한 함수형 아키텍처라고해도, 코드베이스가 커지고 성능에 영향을 미치면서 유지 보수성의 이점이 상쇄된다. 5.1 함수형 아키텍처 적용 가능성 감사 시스템은 결정을 내리기 전에 입력을 모두 미리 수집할 수 있으므로 함수형 아키텍처가 잘 동작했다. 그러나 종종 실행 흐름이 간단하지 않을 수 있다. 의사 결정 절차의 중간 결과에.. 2023. 7. 15.
6장 단위 테스트 스타일 – 함수형 아키텍처와 출력 기반 테스트로의 전환 단위테스트 (블라디미르 코리코프) 아래 내용에서 이어지는 글입니다. https://jonghoonpark.tistory.com/43 https://jonghoonpark.tistory.com/44 https://jonghoonpark.tistory.com/45 두 가지 리팩터링 단계를 거친다. - 프로세스 외부 의존성에서 목으로 변경 - 목에서 함수형 아키텍처로 변경 4.1 감사 시스템 소개 샘플로 사용할 프로젝트는 조직의 모든 방문자를 추적하는 감사 시스템이다. 텍스트 파일을 기반 저장소로 사용한다. 시스템은 가장 최근 파일의 마지막 줄에 방문자의 이름과 방문 시간을 추가한다. 파일당 최대 항목 수에 도달하면 인덱스를 증가시켜 새 파일을 작성한다. 초기 구현은 다음과 같다. 위 코드는 다음과 같은 작업.. 2023. 7. 15.