📌 테스트 코드란?
- 소프트웨어의 기능과 동작을 테스트하는 데 사용되는 코드
- 즉, 기대한 입력값과 출력값을 반환하는지 확인하는 과정
📌 테스트 코드의 종류
- 모든 테스트는 기대한 입력값과 출력값을 반환하는지 확인하는 것은 같지만 테스트 대상의 범위에 따라 다음과 같이 구분됨
- 단위 테스트(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
코드잇 스프린트 과정 이후에 취업을 하신건지 궁급합니다!