SpringBoot #2.1.1 Test - 소프트웨어 테스팅

텐저린티·2023년 6월 26일
0

데브코스

목록 보기
13/41

  • Unit Test
    • 각 모듈 단위별로 테스트 수행하는거
    • Domain 단위테스트, Repository 단위테스트, etc
  • Integration Test
    • 외부 (데이터베이스 등)와 연결하는 인터페이스 부분 테스트
    • JDBC 테스트 같은 거
  • Component Test
    • 내부 컴포넌트만 가지고 테스트를 수행
    • 외부 컴포넌트로의 영향을 줄여서 테스트 해야 함.
  • Contract Test
    • 외부 서비스와의 영향을 확인하는 테스트
  • End-to-End Test
    • 전체 시스템을 테스트
    • 외부 요구사항과 목적 달성이 이뤄지는지 확인

단위 테스트

  • 프로그램의 기본 단위인 모듈을 테스트 하는 것
  • 개별 모듈이 제대로 구현돼, 정해진 기능을 정확히 수행하는지 테스트
  • 주로 모듈 내부 구조를 구체적으로 들여다볼 수 있는 화이트박스 테스트(구조적 테스트) 사용
  • 상위나 하위 모듈이 미개발된 상태인 경우에는 가상모듈 필요
    • 테스트 드라이버
      • 상위 모듈 역할
      • 필요한 데이터를 인자로 전달하고, 결과를 반환받음
    • 스텁 (stub)
      • 하위 모듈 역할
      • 테스트할 모듈이 호출할 때 인자를 통해 받은 값을 수행하고 반환하는 역할

  • SUT (System Under Test)
    • 테스트 대상 (테스트 단위)
    • 클래스 → 내부에 메소드 존재 → 기능에 대한 테스트 가능
    • SUT가 다른 객체를 의존(협력)하는 경우, 테스트 객체를 만들어서 해결해줌 → 가상 모듈 적용
  • 테스트 더블
    • 의존 구성요소(다른 객체, 모듈)를 사용할 수 없을때 테스트 대상코드와 상호작용하는 객체
    • Mock, Test Driver, Stub
  • given - when - then

통합테스트 (Integration Test)

  • SUT (System Under Test) 와 외부 클래스 모두를 테스트 하는 것
  • DataBase, 다른 클래스 등등

End-to-End 테스트

  • 통합테스트 + (API / UI / PAYMENT / etc)
profile
개발하고 말테야

0개의 댓글

관련 채용 정보