Today I Learned

2022년 11월 14일 월요일 TIL

wonderson 2022. 11. 15. 01:08
반응형

TDD : 테스트가 주도하는 개발

  • 테스트 코드를 먼저 작성하는 것부터 시작
  • 레드 그린 사이클
    • 항상 실패하는 테스트를 먼저 작성 (Red)
    • 테스트가 통과하는 프로덕션 코드를 작성 (Green)
    • 테스트가 통과하면 프로덕션 코드를 리팩토링 (Refactor)

단위테스트 : TDD의 첫 번째 단계인 기능 단위의 테스트 코드를 작성

  • TDD와 달리 테스트 코드를 꼭 먼저 작성 해야하는 것도 아니고
  • 리팩토링도 포함되지 않는다. 순수하게 테스트 코드만 작성하는 것을 이야기

단위 테스트 코드를 작성함으로써 얻는 이점

  • 개발단계 초기에 문제를 발견하게 도와준다.
  • 개발자가 나중에 코드를 리팩토링하거나 라이브러리 업그레이드 등에서 기존 기능이 올바르게 작동하는지 확인 할 수 있다. (예 회귀테스트)
    ※ 회귀 테스트 : 이미 테스트된 프로그램의 테스팅을 반복하는 것으로, 결함 수정 이후 변경의 결과로 새롭게 만들어 지거나, 이전 결함으로 인해 발견되지 않았던 또 다른 결함을 발견하는 테스트
  • 기능에 대한 불확실성을 감소시킬 수 있다.
  • 시스템에 대한 실제 문서를 제공한다. 즉, 단위 테스트 자체가 문서로 사용할 수 있다.

테스트 코드 작성을 도와주는 프레임워크들

  • 가장 대중적인 테스트 프레임워크로는 xUnit이 있다. 이는 개발환경(x)에 따라 Unit 테스트를 도와주는 도구라고 생각하면 된다.
    • JUnit - Java / 자바의 테스트 도구인 JUnit은 계속해서 개선 중이며 최근에는 버전5까지 나왔다.
    • DBUnit - DB
    • CppUnit - C++
    • NUnit - .net

Application 클래스는 프로젝트의 메인 클래스

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(ImqaBackOfficeApplication.class, args);
    }

}
  • @SpringBootApplication으로 인해 스프링 부트의 자동 설정, 스프링 Bean 읽기와 생성을 모두 자동으로 설정된다.
  • @SpringBootApplication이 있는 위치부터 설정을 읽어가기 때문에 이 클래스는 항상 프로젝트의 최상단에 위치해야만 한다.
  • main 메서드에서 실행하는 SpringApplication.run으로 인해 내장 WAS(Web Application Server, 웹 애플리케이션 서버)를 실행한다.
    ※내장WAS란 별도로 외부에 WAS를 두지 않고 애플리케이션을 실행할 때 내부에서 WAS를 실행하는 것을 이야기한다.
    • 항상 서버에 톰캣을 설치할 필요가 없게 되고, 스프링 부트로 만들어진 Jar파일(실행 가능한 Java 패키징 파일)로 실행하면 된다.
    • 스프링 부트에서는 내장WAS를 사용하는 것을 권장 - '언제 어디서나 같은 환경에서 스프링 부트를 배포' 할 수 있기 때문이다.

if/else문, switch/case문 성능 차이

https://devmoony.tistory.com/121

 

[Java] if/else문, switch/case문의 성능 차이에 대해

좋은 조건문에 대해 2 - if/else문, switch/case문의 성능 차이 조건문에는 if / else 문도 있지만 switch / case 문도 있다. 개인적으로 이 둘의 '가독성' 차이는 별로 없다고 생각하여 개발자마다 취향 차이

devmoony.tistory.com

 

 

테스트 기본내용 참고

책 '스프링 부트와 AWS로 혼자구현하는 웹 서비스' - 저자 이동욱

 

회귀 테스트 참고

http://jidum.com/jidums/view.do?jidumId=581 

 

지식덤프

I. 확인 테스트 결함이 발견되고 수정된 후에 소프트웨어의 원래의 결함이 성공적으로 제거 되었는지 확인하기 위해 수행하는 테스트 (결함의 원인을 찾거나 결함을 수정하기 위한 디버깅(Debuggi

jidum.com

 

반응형