Software Testing

라빈·2022년 12월 25일

새로운 코드는 무조건 에러가 난다! 제대로 된 소프트웨어를 구현했는가? 소프트웨어를 제대로 개발했는가? 확인하기 위해 필요한 과정.

code ⇒ Expected Result ⇒ Test ⇒ Failure ⇒ Modify & Fix

Why Test?

  • 결함 확인, 사전 방지, 시간 절약, 구조 개선, 품질 개선, 확장성
  • 내가 만든 코드를 내가 만든 테스트 코드로 자동화 테스트
  • 내가 짠 테스트 코드가 오류를 생성해낼지도…? 고로 잘 짜야한다. ⇒ 확장성
  • 올바르게 작동될 때 여러 케이스에 적용해보고 제대로 테스트가 되는지 확인 할 수 있음.

개발문화 변천사

  • WaterFall → Real Time Test(Test Dribble Development)
  • 테스트 코드를 기준으로 나머지 코드를 맞추기…
  • 입사한 회사가 TDD 방식이라면 테스트 코드 뜯어보기 ⇒ API document처럼 파악하기
  • JDD?(프로젝트에서 절대 하면 안되는 …. 반면교사)

Manual Testing

  • 수동 테스팅은 불안정성 증가
  • 인력 소모 증가
  • 비용 증가
  • 테스트 속도 저하

Automation Testing

  • 안정성 증가
  • 인력 소모 절감
  • 비용 절감
  • 테스트 속도 증가

시스템 테스트 전략 3가지

  • End-to-End(E2E) Tests : cypress(프론트엔드 + 백엔드) || 10%
  • Integration Tests(통합 테스트) : postman(톱니바퀴끼리 잘 맞물리는지)/ 모듈간 호환성 검증 || 20%
  • UnitTests(단위 테스트) : 독립적인 기능 단위 테스트(톱니바퀴 자체) ⇒ 각각의 함수가 잘 되는지 || 70%

⇒ %는 중요도! 시간이 이만큼 소요된다…/ 구글에서 만듬

단위테스트 작성 필요성

  • 빠른 문제파악 가능
  • 시간, 비용 절감
  • 리팩토링 시 안정성 확보
  • 코드에 대한 문서로 활용

코드 커버리지

반드시 살피자!

profile
라빈쓰 개발일기

0개의 댓글