리팩토링 자바스크립트, 3장 테스트

Jake_Young·2020년 9월 15일
0
post-thumbnail

😁 용어 정리

  1. 커버리지 (코드 커버리지 또는 테스트 커버리지)
    • 테스트로 측정되며 테스트 코드에서 쓰는 유용한 측정 범위
  2. 고수준 및 저수준
    • 일반 코드와 마찬가지로 테스트는 광범위할 수도 있고, 세부 사항과 관련될 수도 있다.
    • 고수준은 종단 간 테스트에 해당하고, 저수준은 단위 테스트에 해당한다.
  3. 복잡성
    • 코드 경로들의 측정 결과
    • 순환 복잡성 혹은 복잡성
  4. 확신
    • 완전한 테스트 커버리지는 우리가 테스트하는 이유
  5. 실행
    • 테스트 군에 의해 코드가 실행되면, 해당 코드는 커버리지를 갖게 된다.
  6. 기술적 부채
    • 확신과 신뢰가 없어서 더 많은 생각과 더 느린 개발 결과를 가져오는 상황
  7. 피드백 루프
    • 코드를 작성하는 것과 제대로 작성되었는지 사이의 간극
  8. 목업과 스텁 (mockup & stub)
    • 테스트를 모형으로 대체하여 기능을 직접 행사하는 것을 피하는 두 가지 방법
    • 목업은 Assertion(테스트의 통과 및 실패 부분)을 생성하는 반면 스텁은 안한다.

🤣 여러가지 테스트 방법

테스트의 공통된 세 가지 단계

  1. 설치 (setup)
  2. 어설션 (assertion)
  3. 해체 (teardown)

수동 테스트

  • 직접 console.log를 찍어보는 것
  • 웹 브라우저를 통해 결과물을 확인하는 것

문서화된 수동 테스트

  • 테스팅 QA 계획을 설립하는 것
  • 코드 경로를 실행하는 상세한 단계를 작성하는 것

승인 테스트

  • ... (어렵다 글은 읽지만 무슨 이야기를 하는 것인지 상상이 잘 되지 않는다)

종단 간 테스트

마침내 괜찮은 테스트를 하나 소개합니다.

  • 이 테스트는 수동 테스터가 최종 사용자에게 제공되는 환경이다.
  • 웹과 앱에서 가입, 버튼 클릭, 웹 쪽 보기, 파일 내려받기 등을 의미한다.

단위 테스트

  • 단위란 '주로 클래스나 클래스의 함수들'을 의미한다.
  • 자바스크립트에서는 파일, 모듈, 클래스, 객체, 패키지로 볼 수 있다.
  • 단위테스트는 각 단위에 대한 함수의 입력과 출력 동작에 초점을 둔다.

비기능적 테스트

  • 접근성 테스트
  • 보안 테스트
  • 현지화 테스트

짝 프로그래밍

  • 두 명이 서로 번갈아 코드를 작성하는 방식
  • 서로의 지식과 노하우를 교환할 수 있어서 매우 좋은 방식
  • 한 명이 코드를 작성하는 동안 다른 사람이 테스트를 준비할 수 있다.

품질 도구

  1. 버전관리
  2. 테스트 프레임워크
  3. 어설션, 기대 구문 라이브러리
  4. 특정 분야의 라이브러리
  5. 팩토리와 픽스처
  6. 목업과 스터빙 라이브러리
  7. 빌드, 작업, 패키지 도구
  8. 로더와 와처
  9. 테스트 병렬 실행기
  10. 지속적 통합 서비스
  11. 커버리지 관찰자
  12. 린터, 스타일 검토 도구
  13. 디버거와 로거
  14. 준비 단계와 QA 서버
profile
자바스크립트와 파이썬 그리고 컴퓨터와 네트워크

0개의 댓글