TDD

황의혁·2023년 2월 24일
0

다양한 테스트들이 존재하는 이유가 무엇일까?

테스팅이란 무엇인가?

 software test - 제품 or 서비스의 품질을 확인한다.
 소프트웨어의 버그를 찾는다.
 
 제품이 예상하는 대로 동작하는지 확인.
 (함수, 특정한 기능, ui, 성능, api스펙)
 
 code -> (expectation) -> Test
 		requirements - (함수, 특정한 기능, ui, 성능, api스펙)
        요구사항에 맞게 테스트를 작성한다!
        

언제 테스트를 해야할까?

 예전에 검증팀에서(QA) 검증했다.
 단점 => 하나하나 검증 시간이 오래 걸림 
 코드는 다 짰지만 QA과정에서 병목현상이 일어났다..
 
 해결 => 요즘은 개발하면서 automated QA를 진행한다. 
 장점 => 속도빠르고,쉽게 작성, 높은 커버리지, 더 꼼꼼하게 가능

왜 테스트를 해야할까?

 제품이 원하는대로 동작하는지 확인하는 수단이다..!
 
 1. 기능이 정상 작동하는지 확인한다.
 2. 요구사항에 만족
 3. 이슈에 대한 예측
 4. 버그를 빠르게 발견
 5. 자신감 있게 리팩토링이 가능
 6. 손쉬운 유지 보수
 7. 코드의 품질도 향상
 8. 코드간 의존성을 낮춤
 9. 좋은 문서화가 가능
 10. 시간 절약 가능
 
 정말 많은 장점이 있는데 안쓸이유가 없다고 생각한다..!
 

테스트 피라미드가 무엇인가?

  (https://velog.velcdn.com/images/weihyuk39/post/a481fcdf-372b-4d63-b690-7e4309716c46/image.png)
  Unit Test => 단위 테스트 (함수,모듈,클래스) 자동차로 예로 들면 바퀴!
  Intergration Test => 통합 테스트 (모듈들, 클래스들 상호작용을 잘하나)
  					바퀴 네개를 달고 엔진을 넣엇을때 잘 운행하나확인
  E2E Test => ui테스트, 사용자테스트 자동차 전체, 사용자가 운전했을때
  
  
  etc) 
  contract test
  a/b test
  stress test ..

TDD란?

	Test-driven development
    테스트 주도 개발
    개발 전 테스트 코드를 먼저 작성한다.
    
    순서
    1. 테스트 코드 작성
    2. 실험 돌리면 당연히 코드가 없어서 fail
    3. 테스트 코드를 통과할 수 있을 정도만 코드를 다시 작성.
    
    
    TDD WHY?
    모든 요구 사항에 대해서 점검 => 설계 => TDD

TDD는 필수일까?

  필수는 아니지만, 명백한 사실은 사용자에게 베포하는 코드라면 작성하는게 좋다.
  요구사항이 명확할때, 비지니스 로직, 협업시 명세서 역할, 설계에 대한 고민이 		필요할 때 사용을 한다.
 

CI/CD

참고 자료 :CI/CD 개념 유튜브 영상: https://youtu.be/0Emq5FypiMM
지속적인 통합 CI 

지속적인 베포 CD

TDD
CI/CD의 연관관계

profile
기억보단 기록, 반복

0개의 댓글