[Weekly Paper20] - 테스트 코드 작성에 대해

YUYONI·2024년 4월 7일
1

코드잇 스프린트 3기

목록 보기
31/31

📌 테스트 코드란?

  • 소프트웨어의 기능과 동작을 테스트하는 데 사용되는 코드
  • 즉, 기대한 입력값과 출력값을 반환하는지 확인하는 과정

📌 테스트 코드의 종류

  • 모든 테스트는 기대한 입력값과 출력값을 반환하는지 확인하는 것은 같지만 테스트 대상의 범위에 따라 다음과 같이 구분됨
    • 단위 테스트(Unit Testing)
    • 통합 테스트(Integration Testing)
    • 시스템 테스트(System Testing)
    • 사용자 인수 테스트(User Acceptance Testing)
  • 일반적으로 개발자는 단위 테스트, 통합 테스트와 관련된 테스트 코드를 주로 다룸

단위 테스트(Unit Test)

  • 소프트웨어 개발에서 일반적으로 사용되는 테스트 중 하나로, 개별적인 코드 단위(보통 함수, 메서드)가 의도한 대로 작동하는지 확인하는 과정
  • 테스트 케이스를 작성하여, 각각의 코드 단위가 정확한 입력값과 출력값을 반환하는지 확인함
  • 단위 테스트 작성을 위해서 다양한 라이브러리와 프레임워크를 제공함 ex) java의 Junit

통합 테스트(Integration Test)

  • 통합 테스트는 서로 다른 모듈들 간의 상호작용을 테스트하는 과정
    ex) 신규로 개발한 API 서버 내의 DB 호출 함수가 데이터베이스의 데이터를 잘 호출하고 있는지 테스트

  • 보통 모듈 간 인터페이스 테스트, 시스템 레벨 테스트 등의 방법으로 수행됨

  • 통합 테스트를 수행할 때는 단위 테스트보다 더 많은 리소스와 시간이 필요하며, 오류를 발견하고 수정하는데 보다 많은 노력이 필요함

  • GUI 환경에서 사용할 수 있는 대표적인 도구 Selenium, Postman, Apache JMeter 등이 있음 (Junit, Jest, Pytest 등 테스트 라이브러리를 이용해 코드 기반으로 작성할 수도 있음)



📌 테스트 코드를 작성하는 이유


  • 테스트 코드를 통해 버그를 사전에 찾아내고 수정할 수 있으므로 소프트웨어의 품질을 향상시킬 수 있음
  • 코드 변경이나 업데이트 시, 기존 기능이 올바르게 작동하는지 확인할 수 있으므로 의도치 않은 결과나 버그를 빠르게 발견하고 수정할 수 있음
  • 테스트 코드를 통해 코드의 예상 동작을 이해하는 데 도움이 되는 문서로 작용할 수 있어 개발자 간의 커뮤니케이션 향상에도 도움
  • 테스트 코드를 통해 리팩토링 후에도 기능이 정상적으로 작동하는지 확인할 수 있기 때문에 코드 수정이나 구조 변경에 대한 두려움을 줄일 수 있음



참고 - 테스트 코드는 왜 만들까? | 요즘IT

profile
기본기와 원리, 개념 철처하게 다지기!

2개의 댓글

comment-user-thumbnail
2024년 5월 17일

코드잇 스프린트 과정 이후에 취업을 하신건지 궁급합니다!

1개의 답글