상세 컨텐츠

본문 제목

테스트 코드-목표, 수행시점, 의견

개발/방법론

by 화천사장 2024. 1. 13. 17:18

본문

반응형

테스트 코드는 소프트웨어의 품질을 향상하는 데 매우 중요한 역할을 합니다. 

테스트 코드를 통해 예상치 못한 버그를 사전에 발견하고 이를 수정함으로써 소프트웨어의 신뢰성을 높입니다. 

테스트 코드의 주요 목적은 소프트웨어의 품질을 보장하고 개발자가 작성한 코드가 기대한 대로 동작하는지 확인하는 것입니다. 

 

[목차]

목표

  • 버그의 신속한 발견
    • 테스트 코드를 통해 버그를 빠르게 발견하고 수정함으로써 소프트웨어의 안정성을 유지합니다.
  • 기능 변경의 안정성 보장
    • 새로운 기능을 추가하거나 기존의 코드를 변경할 때 테스트 코드를 통해 기존 기능에 영향을 미치지 않도록 보장합니다.

수행 시점

  1. 단위 테스트 
    • 목적 
      • 개발자가 작성한 개별 모듈, 함수, 또는 클래스와 같은 작은 단위의 코드가 의도한 대로 동작하는지 확인합니다. 
    • 수행 시점
      • 코드를 작성하고 변경한 직후에 개발자가 수행하는 것이 일반적이며, 코드를 수정할 때마다 주기적으로 수행됩니다. 
  2. 통합 테스트 
    • 목적 
      • 다수의 모듈이나 컴포넌트가 함께 동작할 때 발생하는 문제를 식별하고, 다른 부분과의 통합에서 나타나는 버그를 찾습니다.
    • 수행 시점 
      • 주로 빌드 및 배포 파이프라인에서 자동으로 수행되며, 코드가 통합된 후 또는 일정 기간마다 실행됩니다. 
  3. E2E 테스트 
    • 목적 
      • 소프트웨어의 종단 기능을 테스트하여 사용자 시나리오를 시뮬레이션하고 실제 환경에서 소프트웨어가 기대한 대로 동작하는지 확인합니다. 
    • 수행 시점 
      • 일반적으로 빌드 및 배포 파이프라인의 마지막 단계에서 실행되며, 시스템이 실제로 배포되어 사용 가능한 상태일 때 수행됩니다. 

의견

몇 가지 주의사항 

1. 테스트 커버리지 : 가능한 많은 코드를 테스트하는 것이 중요합니다. 

2. 자동화 : 모든 테스트를 자동화되어야 하며, 자주 수행되어야 합니다. 

3. 작은 단위의 테스트 : 작은 단위의 테스트는 버그를 신속하게 찾을 수 있도록 도와주고, 테스트 코드가 수정한 코드의 의도를 명확히 이해하는 데도 도움이 됩니다. 

 

개인적으로도 매우 중요하다고 강조하는 부분입니다. 

개발 조직 첫 시작부터 권장하여 운영해야 하나의 문화로 자리 잡을 텐데 그렇지 않은 조직이 대부분이 것 같습니다. 

그렇다고 시작하지 않으면 서비스가 방대해질수록 개발자의 발목을 잡는 버그가 너무 많아집니다. 

그래서, 아래와 같이 추천드립니다. 

1. E2E부터 시작한다. 

2. 중요한 기능부터 시작한다. 

3. 테스터에게 맡기지 말고 개발자가 직접 한다. 

4. 꼭 자동화 되도록 한다. 

5. 배포와 테스트 결과는 반드시 리포트 하도록 한다.

 

작은 함수나 모듈의 테스트 코드부터 시작하려고 하면, 너무 오랜 시간이 걸립니다. 

개발자가 테스트 코드만 만들고 있을 만큼 여유롭지도 않으니, 언제 제대로 동작될지 예측도 되지 않습니다. 

E2E 테스트 코드를 테스터에게 전담시키는 경우도 있는데, 이는 권장하지 않습니다. 동작되는 테스트 코드가 없는 상태에서 시작은 어렵습니다. 따라서 어느 정도 정착이 될 때까지는 개발자가 만들고, 유지하는 것이 좋습니다. 

그나마, 이렇게 해야 자동화 테스트의 효과도 빨리 볼 수 있고, 효과를 봐야 테스트 코드의 중요성을 인지할 수 있어서 조금 더 깊은 테스트 코드를 만들 수 있습니다. 

 

별도로, 커버리지는 최대한 올리는게 좋지만 무리하지 마십시오. 

반응형

관련글 더보기