테스트코드10 더 나은 테스트 전략 수립(테스트 수준/ 테스트 레시피/ 배포 파이프라인) 1. 일반적인 테스트 유형과 수준테스트의 수준이 높아질수록 신뢰도는 올라가지만 더 복잡해지고, 불안정해지며, 느려집니다. 테스트에는 어떠한 유형이 있고, 이들을 어떤 요소들을 기준으로, 얼마만큼 구현해야 하는지를 살펴보도록 하겠습니다.1.1. 테스트 평가 기준어떤 테스트 유형을 사용할지 결정을 내리기 위해서는 먼저 명확한 기준이 필요합니다. 테스트를 평가할 때는 일반적으로 다음 5가지 기준을 사용합니다.기준평가 점수 범위비고점수 평가복잡성(complexity)1-5작성, 디버깅, 읽기 과정이 얼마나 복잡한가낮을수록 좋다불안정성(flakiness)1-5제어할 수 없는 요소(다른 팀의 코드, 네트워크, 데이터베이스, 설정 권한)로 테스트가 실패할 가능성이 얼마나 높은가낮을수록 좋다신뢰도(confidence).. 2025. 3. 28. 좋은 테스트의 조건 - 가독성 가독성을 높인다는 것은 코드를 읽는 사람이 해당 테스트가 무엇을, 어디에서 하는지 쉽게 파악할 수 있다는 것을 말합니다. 가독성을 높이려면 아래 4가지 요소를 잘 다뤄야 하는데, 하나씩 살펴보도록 하겠습니다.단위 테스트 이름변수 이름검증과 실행 단계의 분리초기화 및 설정 해제단위 테스트 이름 짓기테스트를 명확하게 설명하기 위해서는 대상, 상황, 결과에 대한 정보를 표현해야 합니다. 이를 USE전략이라고 부르며, 테스트하려는 대상(Unit), 입력 값이나 상황에 대한 설명(Scenario), 기댓값이나 결과에 대한 설명(Expectation) 3가지 정보를 포함시켜줍니다.이때, 테스트하려는 대상으로는 작업 단위의 진입점 또는 현재 테스트 중인 기능 이름을 기재해줍니다.매직 넘버와 변수 이름매직 넘버란 어떤.. 2025. 3. 28. 좋은 테스트의 조건 - 유지보수성 유지보수성이 좋지 않은 테스트는 프로젝트 일정을 지연시킵니다. 유지 보수성이 테스트를 얼마나 자주 변경해야 하는지 가늠하는 척도라면 그 횟수를 최소화하는 것이 중요합니다. 유지 보수성 측정을 시작한다면, 일정 기간 동안 발생하는 거짓 실패 횟수와 그 원인을 분석하는 것부터 시도해볼 수 있습니다.테스트 실패로 코드 변경실제 실패(true failure)는 테스트가 프로덕션 코드에서 버그를 발견하여 실패하는 경우이고, 거짓 실패(false failure)는 다른 이유로 테스트가 실패하는 경우입니다. 거짓 실패를 만드는 케이스들을 살펴보겠습니다.프로덕션 코드에 새로운 기능 추가기댓값 등이 변경된 요구사항과 맞는지 살펴보고 유효하지 않은 테스트는 삭제해야 합니다.프로덕선 코드의 API 변경함수나 객체를 사용하는.. 2025. 3. 27. 좋은 테스트의 조건 - 신뢰성 좋은 테스트란좋은 테스트는 신뢰성, 유지 보수성, 가독성을 만족해야 합니다. 이번 글을 시작으로 각 조건에 대해 정리를 해보도록 하겠습니다.신뢰성 - 버그가 없고 올바른 대상을 테스트하는 것유지 보수성 - 변경에 대응이 잘 되는 것가독성 - 잘 읽을 수 있고, 잘못된 경우 문제를 파악할 수 있는 것테스트가 실패하는 이유테스트가 실패했다면 그 이유로 타당한 경우는, 실제로 프로덕션 코드에서 버그가 발생했을 때 뿐이어야 합니다. 다른 이유의 실패는 테스트를 신뢰할 수 없게 만드는 원인이 됩니다. 다른 이유들에는 어떤 것들이 있는지 살펴보겠습니다.거짓 실패실제 버그는 없지만 테스트 자체에 버그가 있는 경우입니다.종료점의 예상 결과를 잘못 설정테스트 대상 시스템(SUT, 대상 코드 & 모듈)을 잘못 사용 - e.. 2025. 3. 26. 이전 1 2 3 다음