[TIL] 3.17 : Unit Test, CI/CD

HYl·2022년 3월 17일
0

TIL

목록 보기
1/3

Unit Test

  • Code -> expectation (requirements) -> Test -> pass or fail
  • Test Runner (테스트를 실행 후 결과 생성) : Code -> expectation 과정을 뜻한다.
  • Assertion (테스트 조건, 비교를 통한 테스트 로직) : Test -> pass or fail 과정을 뜻한다.
  • Jest : Test Runner + Assertion
  • ui코드는 tdd를 하지 않는다
  • when tdd ?
    • 요구사항이 명확할 때, 비지니스 로직, 협업시 명세서(문서) 역할, 설계에 대한 고민이 필요
  • why tdd ?
    • 사용자 입장에서 코드를 작성, 코드의 퀄리티 향상, 모든 요구 사항(목표)에 대해 점검, 요구 사항 분석 및 이해 -> 설계, 시스템 전반적인 설계 향상, 개발 집중력 향상
  • why software test ?
    • 기능이 정상 동작, 요구 사항 만족, 이슈에 대해 예측, 버그를 빠르게 발견, 자신감 있게 리팩토링, 손쉬운 유지 보수, 코드의 품질 향상, 코드간 의존성을 낮춤, 좋은 문서화, 시간을 절약

CI/CD

  • 테스트 코드가 있을 때, 200%의 효과를 볼 수 있다.
  • CI (Continuous Integration) : 지속적인 통합
      1. 코드 변경사항을 주기적으로 빈번하게 머지해야 한다.
        ( 이때, 코드의 변경사항은 테스트 코드를 포함한 것을 의미한다. )
      1. 통합을 위한 단계 (빌드, 테스트, 머지)의 자동화
        ( 빌드 단계에서 오류는 없는지, 테스트 코드는 모두 통과가 되는지 등등 확인이 되어야 함. )
    • 1, 2 자동적으로 되어야 한다.
    • 장점 : 코드의 퀄리티 향상, 개발 생산성 향상, 버그 수정 용이, 문제점을 빠르게 발견 (테스트 코드 있다는 것을 가정하에 이루어짐)
  • CD (Continuous Deployment) : 지속적인 배포
  • CI/CD 의 과정
    • CODE -> BUILD -> TEST -> RELEASE -> DEPLOY
profile
꾸준히 새로운 것을 알아가는 것을 좋아합니다.

0개의 댓글