1 분 소요

project

오늘 한 일(회고)

  • 프로젝트 피드백 정리
  • 테스트 코드 공부

테스트 코드 공부

테스트 코드가 중요한 이유?
  • 장점?
    • 제품의 안정성을 높임.
    • 기능 추가 및 수정으로 인한 부작용(side-effect)를 줄임
    • 불안감 없이 코드 작성을 할 수 있으며 생산성을 높여줌.
    • 디버깅을 쉽게 할 수 있게 도와줌.
    • 개발 과정에서 반복적인 작업들을 하지 않도록 도와줌.
    • 깔끔하고 재사용성이 좋은 코드작성을 가능하게 함
테스트 기본 원칙
  • 단위 테스트(Unit Test)
  • 통합 테스트(Integration Test)
  • 승인 테스트(Acceptance Test)
일곱 테스트 원칙
  1. 테스는 결함이 있는 것만 증명한다.
    • 테스트를 통해 소프트웨어에 남은, 발견하지 못한 결함은 찾아내는 것은 가능하지만, 결함을 찾아내지 못한 상태라도 그것이 문제없다고 말할 수는 없다.
  2. 모든 테스트는 불가능하다.
    • 전수 테스트를 하는 대신 리스크나 우선순위를 고려하여 테스트의 관점을 다시 확인하고 집중하는 것이 필요함.
  3. 초기 테스트를 해야한다.
    • 테스트는 SDLC(software development lifeCycle, 소트프트웨어 개발 생명주기)에서 상위 단계부터 실시해야한다.
    • 실제 개발이 완료된 후 찾아내는 결함을 수정하는 비용보다 훨씬 더 절약하여 결함을 수정가능.
  4. 결함의 편재
    • 결함의 모든 것을 확인하는 것은 불가능.
  5. 살충제의 패러독스
    • 벌레들에게 살충제를 뿌리면 내성이 생기는 것처럼 테스트 코드도 집중적으로 같은 테스트 방법으로 진행하면 개발자도 이것을 알아채 해당 테스트에 익숙해짐. 테스트는 주기적으로 확인해서 수정할 필요가 있음
  6. 테스트는 상황에 따라 다르다.
    • 테스트 조건이 바뀌면 테스트하는 방법이나 케이스도 달라져야만 함.
  7. 오류-부재의 궤변(결함 제로의 함정)
    • 결함이 없다는 것이 고품질 소프트웨어라고 직결되지 않음.
    • 결함을 찾아 수정하여도 결국 시스템을 사용할 수 없게 되거나 유저 요건이나 기대를 충족시키지 못하는 소프트웨어는 별 쓸모가 없다
테스트 코드 연습하기

파일이 tests or test.js로 끝나는 파일을 자동으로 테스트 파일로 인식. 만약 직접 파일을 선택하고 싶으면 npm 뒤에 파일명 또는 경로 입력.

내일 할일

  • 프로젝트 ppt 만들기

참고자료 및 블로그

  • https://velog.io/@dahunyoo/7-Principles-of-Testing-%ED%85%8C%EC%8A%A4%ED%8A%B8%EC%9D%98-7%EC%9B%90%EC%B9%99

  • https://ssowonny.medium.com/%EC%84%A4%EB%A7%88-%EC%95%84%EC%A7%81%EB%8F%84-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%BD%94%EB%93%9C%EB%A5%BC-%EC%9E%91%EC%84%B1-%EC%95%88-%ED%95%98%EC%8B%9C%EB%82%98%EC%9A%94-b54ec61ef91a