TDD Junit TDD & Spring Framework 참고자료

Slides:



Advertisements
Similar presentations
Combacsa’s SPARCS Web Seminar. xUnit Framework Python : unittest Other testing tools.
Advertisements

작성자조성웅 작성일자 기본환경 1. Java : Eclipse : Tomcat : 6.0 이상 4. DB : MySQL File System : DFS 6. Framework - Spring : JPA 및 CXF.
수학 7- 가 문자와 식 > 일차방정식의 풀이 > 교과서 p.111 일차방정식의 활용 수업계획수업활동.
3 학년 문제가 남느냐, 내가 남느냐 1. ( 아씨방 일곱 동무 ) 아씨의 방에는 바느질을 위한 친구가 몇 명이 있었나요 ? 정답은 ? 일곱.
㈜유니윌취업연수프로그램. 신성장동력훈련 4 회사소개 1 청년취업아카데미 2 SW 융합 채용연수 사업 3 취업현황 5 Contents.
성공적 취업을 위한 청년취업아카데미 과정 소개 2012 년 4 월 청년취업아카데미 사업 소개 (1) 학부졸업 최소 70% ~100% 취업 최소 70% ~100% 취업 전국 대학의 학부 졸업 후 취업률 약 60% 청년취업아카데미 를 통한 맞춤형 취업교육프로그램.
LG전자-광운대 고용계약형 2015학년도 “SW인력양성을 위한 프로그램” 광운대학교 전자정보공과대학
(4) 우리 나라의 이상과 목표 2. 국가의 중요성과 국가 발전 중학교 2학년 도덕
전남행복수업 design 독서ㆍ토론 수업 지원 자료 활용 목포유달초등학교 김미향.
전남행복수업 design, 독서·토론수업 연구의 개요를 말씀드리겠습니다..
고급자바프로그래밍 (Advanced Java Programming)
Vision System Lab, Sang-Hun Han
UML의 모델링의 본질 다이어그램으로 쉽게 보이는 UML
EXEM ( ) LTW를 활용한 데이터 수집기 김경식.
제5장 산업재해 보상보험 ☞ 목적 : 근로자의 업무와 관련하여 발생한 재해근로자의 재활 및 사회복귀를 촉진시키기 위하여 이에 필요한 보험시설을 설치 운영하며, 피해를 예방하고 근로자의 복지증진을 위한 사업을 행함으로써 근로자의 보호에 이바지함을 목적으로 함. 산재보험은.
최신 소프트웨어 공학 개요 11.1 컴포넌트 기반 소프트웨어 개발 11.2 웹 엔지니어링 11.3 정형적 명세 기법
1. 근접경호의 개념 경호대상의 신변을 보호하기 위하여 지근거리에서 실시하는 호위활동을 말하며 경호행위의 마지막 보루이다.
추석특집: 특별프로 대한민국 NO.1 약사를 찾아서 약사와 함께하는 인터뷰 추석 뉴스.
Unit test with JUnit 실습용
Test-Driven Development
국내 IT인재 일본진출 현황 및 성과 한 국 정 보 통 신 산 업 협 회 부설 한국정보통신인력개발센터.
메소드 호출과 힙 원격 메소드 호출 서블릿 엔터프라이즈 자바 빈즈
IOC, DI 2015 Web Service Computing.
자바 5.0 프로그래밍.
AOP 개념 및 Spring의 AOP 기능.
2018-2학기 캡스톤디자인 실습지원비 사용설명회
Java IT응용시스템공학과 김형진 교수 2장. 자바의 환경 public class SumTest {
DataScience Lab. 박사과정 김희찬 (월)
홈페이지 구축 제안 안내서 서울특별시 노원구 상계동 1267 토마토파르코빌딩 1308호
Eclipse 플러그인을 활용한 자바/JSP 개발.
장애인복지 정책.
운동시뮬레이션 제2주 A First Numerical Problem 컴퓨터시뮬레이션학과 2014년 봄학기 담당교수 : 이형원
AOP (Aspect Oriented Programing)
세금계산서 사용자 매뉴얼 2012년12월 IT사업부 백화점정보팀 상품정보파트 전자세금계산서 매뉴얼.
교육과정과 주요업무.
DataScience Lab. 박사과정 김희찬 (월)
어서와 Java는 처음이지! 제9장 인터페이스, 패키지.
3. Spring 프레임워크의 IoC 컨테이너 개념
Spring 프레임워크의 이해 3. Spring IoC 이해 및 활용.
프로그래밍 개론 Ⅰ 제 1장 . 서론 ①.
모두가 행복한 교육, 미래를 여는 창의인재 2015 개정교육과정 서울숭인초등학교 교사 이소정.
객체지향의 한계를 넘어, AOP 전은영,이재훈 고덕윤.
SpringFramework 중간고사 요약 REST by SpringFramework.
Java Chapter 4 ~ 주차.
myfood.com 상명대 맛집 홈페이지 구축 제안서
Spring DI 이해 및 활용.
Spring Framework 플랫폼개발실 김광욱
백기선 Advising beans 백기선
Ⅳ. 생식과 발생 4. 자손에게 줄 세포 만들기.
“병원 폐기물 소각장” 및 “가축 폐수 처리장” 건축 허가 반대 (2011년 “음식물처리장” 미해결 민원 연관)
제1회 PNU 코딩경진대회 부산대학교 소프트웨어교육센터.
2019-1학기 캡스톤디자인 실습지원비 사용설명회
1장 시스템 개발 과정의 이해 소프트웨어 위기와 소프트웨어 공학 출 현 배경 이해 시스템(소프트웨어)의 개발자들
1. 기술 및 제품 설명 > 제품 개요 발표자료 작성 방법 <발표자료 작성 방법>
Architecture.
2015년 2학년 1반.
컴퓨터 프로그래밍: 실습 1 제 1장 . 서론.
천국 가는 길 천국 가는 길 ♧ 천국 가는 길 ♧ 1. 죄와 사망(지옥) 1) 사람의 3가지 공통점 - 죄인, 죽음, 심판
수학 2 학년 1 학기 문자와 식 > 부 등 식 ( 2 / 2 ) 부등식의 성질 이용 풀기.
교육행정 및 경영 제13장 교육재정 (화) 안 봉 직.
가설검정의 기본원리 Introduction to Hypothesis Testing
1학년 신입생 학부모교실 안내사항 2019년 3월 6일 1학년부장 김희선.
자료구조 강의소개 정성훈 연락처 : 이메일 : 연구실 : 연219호 연락처 : 이메일 : 홈페이지: 정성훈.
“전자구매” 메뉴 접속을 위해 “전자입찰” 메뉴에서 공인인증서 등록
파동의 굴절 알아보기 과 학 1 학년 ⅩⅡ. 파동 > 3. 파동의 전달 ( 8/8 ) [초기 화면]
Java의 정석 제 7 장 객체지향개념 II-3 Java 정석 남궁성 강의
Chapter2 : 자바환경과 자바 프로그램 2.1 자바 개발 환경 2.2 자바 통합개발환경(IDE)
1. 칭찬 및 고발제도 운영(안) 1. 목적 : 칭찬문화의 전사적 확산,전파를 통한 칭찬문화 조성 및 건전한 회사문화 형성
소리의 발생과 전달 과 학 1 학년 ⅩⅡ. 파동 > 2. 소리와 파동 ( 4/8 ) [초기 화면]
소프트웨어 공학 최신 소프트웨어 공학 기술 1.
Presentation transcript:

TDD Junit TDD & Spring Framework 참고자료 스프링 오픈 프레임워크 스터디 #6 자바카페 12기 스프링 2팀 김기배 TDD Junit TDD & Spring Framework 참고자료

TDD (TEST DRIVEN DEVELOPMENT)

TDD (TEST DRIVEN DEVELOPMENT) TFD (Test First Development(Design)) 1. 테스트 작성 Test First Design에서는 테스트의 작성을 시작으로 개발이 시작된다. 테스트 작성시 개발자는 요구사항 및 특징들을 정확이 파악하고 있어야 한다. 요구사항과 예외발생 조건 등의 내용을 담은 Use Cases 등을 이용하여 테스트 코드를 작성 할 수 있다. 2. 테스트 실행 테스트 코드를 테스트 한다. 테스트 할 대상코드가 없으므로 모든 테스트는 ‘실패’ 하여야 하며, 그렇지 않은 경우에는 테스트 코드의 작성에 문제가 있는 것이므로 수정한다. 3. 코드 작성 및 테스트 실행 코드 작성시에는 작성한 테스트 코드를 만족시키는 최소한의 코드만을 작성하도록 한다. 그 이상의 어떤 ‘무엇인가’를 미리 짐작하여 그 ‘무엇인가’를 수행할 수 있는 코드가 되지 않도록 한다.

TDD (TEST DRIVEN DEVELOPMENT) Refactoring 정의 S/W Engineering 에서의 Refactoring이란 소스코드의 외부동작은 그대로 유지하면서 내부의 구조를 변경하는 행위를 말한다. 버그를 수정한다거나 새로운 기능의 추가가 아니지만, 코드의 이해도를 높이고, 구조 및 디자인을 변경하며 불필요한 코드들의 삭제를 의미한다. 관리 및 확장 측면에서 볼 때 아주 유용한 기술이다. Refactoring & (Automated) Testing 테스트 코드는 Refactoring후의 코드가 정상 작동하는지의 여부를 확인 시켜 준다. 테스트 하는 과정이 자동화 되어 있어야 좋다 (필수라고 봐야 함). X2 – x – 2 --(refactoring)--> (x+1)(x-2)

TDD (TEST DRIVEN DEVELOPMENT) TDD = TFD + Refactoring 4. 소스코드 리팩터링 오직 테스트 코드를 ‘통과’하기 위해서 작성했던 소스코드를 리팩터링을 통해 구조 변경, 불필요한 코드 제거 등의 작업을 한다. 이전 프로세스에서 작성했던 테스트 코드를 이용해서 리팩터링 작업 이후에 소스코드의 외부동작에 변함이 없음을 테스트 한다. 장점 개발자가 생각해야 할 부분의 범위가 좁아진다. 작은 크기의 단위로 개발이 진행되어서 관리 및 테스트, 버그 수정 등의 측면에서 볼 때 매우 효율적이다. 디버깅 코드의 사용이 줄어들게 된다. CVS와 함께 사용시에는 (대부분의 경우가 되겠지만) 디버깅을 할 일이 없을 정도! (예상치 못한 문제 발생시 모든 테스트를 통과했던 최종 버전으로 돌리면 그만이다..) 코딩 시간이 줄어든다. TDD시에는 추가적인 테스트 코드 작성으로 코딩량이 많아 지지만, 한편으로는 이러한 테스트코드로 인해 불필요하거나 잘못 짜여지는 코드의 양이 상대적으로 줄어 들게 되므로 개발 시간이 단축된다.

Junit (xUnit) JUnit JAVA 프로그래밍 언어를 위한 단위 테스팅 프레임워크 public class HelloWorld extends TestCase { public void testMultiplication() // Testing if 3*2=6: assertEquals ("Multiplication", 6, 3*2); } public class HelloWorld { @Test public void testMultiplication() // Testing if 3*2=6: assertEquals ("Multiplication", 6, 3*2); }

Junit (xUnit) Junit (Cont) Test Driven Development와의 밀접한 관계가 있다.

TDD & Spring Framework Spring Framework POJO Beans AOP Aspect의 사용으로 인하여 실제 로직이 수행되는 메소드는 대부분 로직 수행을 위한 코드로만 이루어지게 된다. 로그 작성, 예외 처리등을 Aspect를 이용하여 일괄적으로 처리 할 수 있으므로, 코드 테스트 이후에 로그 작성, 예외 처리를 위해 필요한 코딩의 양이 줄어들게 된다.

참고자료 Introduction to Test Driven Design (TDD) Refactoring Home Page http://www.agiledata.org/essays/tdd.html Refactoring Home Page http://www.refactoring.com/ Testdriven.com http://www.testdriven.com Junit.org http://www.junit.org/index.htm