Spring

[Spring Boot] 01. Spring Boot Core (4) - Test와 Logging

Joo.v7 2024. 11. 24. 15:38

10. Spring Boot Test

  • Testing 이란?
  • 테스팅의 종류
  • Spring Boot Testing

11. 로깅


10. Spring Boot Test

Testing 이란?

  • Java로 작성된 SW의 각 부분이 제대로 동작하는지 확인하는 과정.
  • 일바적으로 SW가 동작하길 기대하는 방식을 Given/When/Then 패턴으로 작성.
    • Given: 어떠한 데이터가 주어질때.
    • When: 어떠한 기능을 실행하면.
    • Then: 어떠한 결과를 기대한다.

 

테스팅의 종류

  • 단위 테스트 (Unit Testing)
    • 함수나 메소드의 기능을 검증하는 테스트이다.
    • 각 기능이 독립적으로 올바르게 동작하는지 확인하기 위해 사용.
  • 통합 테스트 (Integration Testing)
    • 단위 테스트를 통과한 개별 Component나 Class가 서로 올바르게 협력하는지를 검증한다.
    • 다양한 Module이나 서비스가 통합될 때 발생할 수 있는 interface의 결함을 찾아낸다.
  • 시스템 테스트 (System Testing)
    • 완성된 SW 시스템이 전체적으로 요구사항을 만족하는지 검증한다.
    • SW와 HW가 포함된 전체 시스템이 사용자의 의도대로 작동하는지 평가한다.
  • 인수 테스트 (Acceptance Testing)
    • 실제 사용 환경에서 SW가 사용자의 요구 사항을 만족하는지 확인하는 테스트이다.
    • 보통 최종 사용자나 고객이 참여하여 SW가 '수용 가능한' 수준인지 결정한다.
  • 회귀 테스트 (Regression Testing)
    • SW에 변경이 이루어진 후에도 기존 기능들이 여전히 올바르게 작동하는지 확인하기 위한 테스트이다.
    • 코드를 수정하거나 업데이트 할 때 발생할 수 있는 새로운 버그나 오류를 찾아내는 데 유용하다.

 

Spring Boot Testing

pom.xml에 의존성 추가.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>
 
spring-boot-starter-test 로 제공하는 라이브러리.
구분 설명
JUnit5 Java 애플리케이션 단위 테스트의 산업계 표준(de-facto standard)
Spring Test & Spring Boot Test Spring Boot 애플리케이션 테스트 지원용 유틸리티와 통합 테스트 지원 도구
AssertJ Assertion 라이브러리
Hamcrest Matcher 객체용 라이브러리
Mockito Mocking framework
JSONassert JSON Assertion 용 라이브러리

 

11. 로깅