[학습정리] 단위 테스트

김정현·2024년 7월 23일

소프트웨어 테스트?

  • 소프트 웨어 테스트란, 소프트웨어가 예상대로 작동하는지 확인하고, 결함이나 오류를 찾아내어 품질을 보장하는 과정이다.

단위 테스트(Unit Test)

  • SW 테스트의 유형 중 하나로써, 하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위 테스를 말한다.
    ❗여기서의 모듈은 하나의 기능 또는 메소드를 말한다.
  • 예를 들어, 어플리케이션에서 회원가입 메소드에 대한 테스트가 단위(Unit)테스트가 될 수 있다.

단위테스트 (Unit Test)의 필요성

  • 개발 초기 단계에서 오류를 발견하고 수정할 수 있다.
  • 코드의 기능을 변경하지 않고 내부 구조를 개선할 수 있어 리팩토링 과정에서도 중요한 역할을 한다.
  • 요구사항의 변경이나 기능 추가 시 기존 기능에 영향을 주지 않도록 쉽게 검증 할 수 있다.

좋은 단위 테스트 작성법 (FIRST 작성법)

  • Fast
    좋은 단위 테스트는 실행이 빨라야한다.

  • Isolated
    좋은 단위 테스트는 독립적으로 수행되어야 한다.
    -> 하나의 단위(기능)에 대한 테스트를 수행하여야 한다.

  • Repeatable
    좋은 단위 테스트는 반복적으로 수행해도 항상 같은 결과가 나와야 한다.

  • Self-validating
    좋은 단위 테스트는 스스로 검증할 수 있어야 한다.
    -> ex ) Junit의 assert와 같은 검증 코드를 통해 검증 할 수 있다.

  • Timely
    좋은 단위 테스트는 필요할 때 미루지 않고 즉시 작성해야 한다.

JUnit이란?

  • java에서 독립된 단위 테스트를 지원해주는 프레임워크이다
  • 테스트 결과는 TEST Class로 개발자에게 테스트 방법 및 History를 남길 수 있다.
  • 단정(assert)메서드를 통해 테스트 케이스의 결과를 판별한다.
  • Junit4 이후로는 테스트 어노테이션을 제공한다.

테스트 어노테이션

  • @Test
    테스트를 할 메서드를 지정

  • @DisplayName
    테스트 클래스 또는 테스트 메서드의 이름을 지정

  • @Before
    각 테스트 메서드 실행 전에 실행될 메서드를 지정

  • @After
    각 테스트 메서드 실행 후에 실행될 메서드를 지정

Assert 메서드

  • assertEquals(예상, 실제)
    두 값이 동일한지 확인

  • assertTrue(조건)
    해당 조건이 참인지 확인

  • assertFalse(조건)
    해당 조건이 거짓인지 확인

  • assertSame(예상, 실제)
    두 객체가 동일한 객체(참조가 동일)인지 확인

  • assertNull(객체)
    해당 객체가 Null인지 확인

profile
안녕하세요 반갑습니다

0개의 댓글