소프트웨어 검증junit 5조dslab.konkuk.ac.kr/class/2010/10sv/practice/1... ·...
TRANSCRIPT
![Page 1: 소프트웨어 검증JUnit 5조dslab.konkuk.ac.kr/Class/2010/10SV/Practice/1... · JunitJunit사용법사용법–Test Case TestCase를상속받아클래스를작성 Public class](https://reader035.vdocuments.site/reader035/viewer/2022071114/5feb3279b344a005d84ba05f/html5/thumbnails/1.jpg)
소프트웨어 검증 발표 1
- JUnit -JUnit
5조200511350 장범석
BS&JWBS&JW
200511350 장범석200511330 서재원
![Page 2: 소프트웨어 검증JUnit 5조dslab.konkuk.ac.kr/Class/2010/10SV/Practice/1... · JunitJunit사용법사용법–Test Case TestCase를상속받아클래스를작성 Public class](https://reader035.vdocuments.site/reader035/viewer/2022071114/5feb3279b344a005d84ba05f/html5/thumbnails/2.jpg)
JunitJunit이란이란??
JUnit은 자바 애플리케이션의 단위테스트 자동화를 위한 프레임워크JUnit은 자바 애플리케이션의 단위테스트 자동화를 위한 프레임워크
BS&JWBS&JW
![Page 3: 소프트웨어 검증JUnit 5조dslab.konkuk.ac.kr/Class/2010/10SV/Practice/1... · JunitJunit사용법사용법–Test Case TestCase를상속받아클래스를작성 Public class](https://reader035.vdocuments.site/reader035/viewer/2022071114/5feb3279b344a005d84ba05f/html5/thumbnails/3.jpg)
단위단위(Unit)(Unit)테스트란테스트란??
BS&JWBS&JW
![Page 4: 소프트웨어 검증JUnit 5조dslab.konkuk.ac.kr/Class/2010/10SV/Practice/1... · JunitJunit사용법사용법–Test Case TestCase를상속받아클래스를작성 Public class](https://reader035.vdocuments.site/reader035/viewer/2022071114/5feb3279b344a005d84ba05f/html5/thumbnails/4.jpg)
단위단위(Unit)(Unit)테스트란테스트란??
JUnitJUnit
BS&JWBS&JW
![Page 5: 소프트웨어 검증JUnit 5조dslab.konkuk.ac.kr/Class/2010/10SV/Practice/1... · JunitJunit사용법사용법–Test Case TestCase를상속받아클래스를작성 Public class](https://reader035.vdocuments.site/reader035/viewer/2022071114/5feb3279b344a005d84ba05f/html5/thumbnails/5.jpg)
JunitJunit
BS&JWBS&JW
![Page 6: 소프트웨어 검증JUnit 5조dslab.konkuk.ac.kr/Class/2010/10SV/Practice/1... · JunitJunit사용법사용법–Test Case TestCase를상속받아클래스를작성 Public class](https://reader035.vdocuments.site/reader035/viewer/2022071114/5feb3279b344a005d84ba05f/html5/thumbnails/6.jpg)
JunitJunit 사용법사용법 –– Test CaseTest Case
TestCase를 상속받아 클래스를 작성
Public class HelloWorld{public String getCurrentVersion(){
예제코드
public String getCurrentVersion(){return “version 1.0”;
}}
테스트코드
Import junit.framework.TestCase;
Public class HellowWorldTest extends TestCase{
li id t tG tC tV i (){puvlic void testGetCurrentVersion(){HelloWorld hw = new HelloWorld();assertEquals(hw.getCurrentVersion();
}}
BS&JWBS&JW
}
![Page 7: 소프트웨어 검증JUnit 5조dslab.konkuk.ac.kr/Class/2010/10SV/Practice/1... · JunitJunit사용법사용법–Test Case TestCase를상속받아클래스를작성 Public class](https://reader035.vdocuments.site/reader035/viewer/2022071114/5feb3279b344a005d84ba05f/html5/thumbnails/7.jpg)
JunitJunit 사용법사용법 –– Test SuiteTest Suite
특정메소드만 실행
import junit.frame.work.Test;import junit.frame.work.TestCase;import junit.frame.work.TestSuite;
테스트코드
p j ;
public class HelloWorldTest extends TestCase{public void testGetCurrentVersion(){
HelloWorld hw = new HelloWorld();hi l h C i i 1 0this.assertEquals(hw.getCurrentVersion(), "version 1.0");
}public void testGetCurrentVersion2(){
HelloWorld hw = new HelloWorld();this asserEquals(hwgetCurrentVersion() "version 2 0");this.asserEquals(hw.getCurrentVersion(), version 2.0 );
}public HelloWorldTest(String method){
super(method);}}public static Test suite(){
TestSuite suite = new TestSuite();suite.addTest(new HelloWorldTest("testGetCurrentVersion2"));return suite();
BS&JWBS&JW
}}
![Page 8: 소프트웨어 검증JUnit 5조dslab.konkuk.ac.kr/Class/2010/10SV/Practice/1... · JunitJunit사용법사용법–Test Case TestCase를상속받아클래스를작성 Public class](https://reader035.vdocuments.site/reader035/viewer/2022071114/5feb3279b344a005d84ba05f/html5/thumbnails/8.jpg)
JunitJunit 사용법사용법 –– Assertion Assertion 사용사용
메소드
assertEquals(primitive expected, primitive actual)
assertEquals(Object expected, Object actual)
assertSame(Object expected, Object actual)
assertNotSame(Object expected, Object actual)
assertNull(Object object)
assertNotNull(Object object)assertNotNull(Object object)
assertTrue(boolean condition)
assertFalse(boolean condition)( )
BS&JWBS&JW
![Page 9: 소프트웨어 검증JUnit 5조dslab.konkuk.ac.kr/Class/2010/10SV/Practice/1... · JunitJunit사용법사용법–Test Case TestCase를상속받아클래스를작성 Public class](https://reader035.vdocuments.site/reader035/viewer/2022071114/5feb3279b344a005d84ba05f/html5/thumbnails/9.jpg)
JunitJunit 사용법사용법 –– SetUpSetUp과과 TearDownTearDown
BS&JWBS&JW
![Page 10: 소프트웨어 검증JUnit 5조dslab.konkuk.ac.kr/Class/2010/10SV/Practice/1... · JunitJunit사용법사용법–Test Case TestCase를상속받아클래스를작성 Public class](https://reader035.vdocuments.site/reader035/viewer/2022071114/5feb3279b344a005d84ba05f/html5/thumbnails/10.jpg)
JunitJunit 사용법사용법 –– 예외처리예외처리
Fail()메소드 실행
import junit.frame.work*;
bli l E ti T t t d T tC {
테스트코드
public class ExceptionTest extends TestCase{public void testtestMyException(){
try{
throw new Exception(“your exception”);throw new Exception( your exception );}Catch( Exception e){
fail(“your exception”);y p}
}}
BS&JWBS&JW
![Page 11: 소프트웨어 검증JUnit 5조dslab.konkuk.ac.kr/Class/2010/10SV/Practice/1... · JunitJunit사용법사용법–Test Case TestCase를상속받아클래스를작성 Public class](https://reader035.vdocuments.site/reader035/viewer/2022071114/5feb3279b344a005d84ba05f/html5/thumbnails/11.jpg)
JunitJunit 사용법사용법 –– 통합된통합된 테스트테스트 환경환경
BS&JWBS&JW
![Page 12: 소프트웨어 검증JUnit 5조dslab.konkuk.ac.kr/Class/2010/10SV/Practice/1... · JunitJunit사용법사용법–Test Case TestCase를상속받아클래스를작성 Public class](https://reader035.vdocuments.site/reader035/viewer/2022071114/5feb3279b344a005d84ba05f/html5/thumbnails/12.jpg)
JunitJunit 사용법사용법 –– 통합된통합된 테스트테스트 환경환경
BS&JWBS&JW
![Page 13: 소프트웨어 검증JUnit 5조dslab.konkuk.ac.kr/Class/2010/10SV/Practice/1... · JunitJunit사용법사용법–Test Case TestCase를상속받아클래스를작성 Public class](https://reader035.vdocuments.site/reader035/viewer/2022071114/5feb3279b344a005d84ba05f/html5/thumbnails/13.jpg)
JunitJunit 사용법사용법 –– 통합된통합된 테스트테스트 환경환경
BS&JWBS&JW
![Page 14: 소프트웨어 검증JUnit 5조dslab.konkuk.ac.kr/Class/2010/10SV/Practice/1... · JunitJunit사용법사용법–Test Case TestCase를상속받아클래스를작성 Public class](https://reader035.vdocuments.site/reader035/viewer/2022071114/5feb3279b344a005d84ba05f/html5/thumbnails/14.jpg)
JunitJunit 사용법사용법 –– 통합된통합된 테스트테스트 환경환경
BS&JWBS&JW
![Page 15: 소프트웨어 검증JUnit 5조dslab.konkuk.ac.kr/Class/2010/10SV/Practice/1... · JunitJunit사용법사용법–Test Case TestCase를상속받아클래스를작성 Public class](https://reader035.vdocuments.site/reader035/viewer/2022071114/5feb3279b344a005d84ba05f/html5/thumbnails/15.jpg)
JunitJunit 사용법사용법 –– 통합된통합된 테스트테스트 환경환경
BS&JWBS&JW
![Page 16: 소프트웨어 검증JUnit 5조dslab.konkuk.ac.kr/Class/2010/10SV/Practice/1... · JunitJunit사용법사용법–Test Case TestCase를상속받아클래스를작성 Public class](https://reader035.vdocuments.site/reader035/viewer/2022071114/5feb3279b344a005d84ba05f/html5/thumbnails/16.jpg)
JunitJunit 사용법사용법 –– 통합된통합된 테스트테스트 환경환경
BS&JWBS&JW
![Page 17: 소프트웨어 검증JUnit 5조dslab.konkuk.ac.kr/Class/2010/10SV/Practice/1... · JunitJunit사용법사용법–Test Case TestCase를상속받아클래스를작성 Public class](https://reader035.vdocuments.site/reader035/viewer/2022071114/5feb3279b344a005d84ba05f/html5/thumbnails/17.jpg)
JunitJunit 사용법사용법 –– 통합된통합된 테스트테스트 환경환경
BS&JWBS&JW
![Page 18: 소프트웨어 검증JUnit 5조dslab.konkuk.ac.kr/Class/2010/10SV/Practice/1... · JunitJunit사용법사용법–Test Case TestCase를상속받아클래스를작성 Public class](https://reader035.vdocuments.site/reader035/viewer/2022071114/5feb3279b344a005d84ba05f/html5/thumbnails/18.jpg)
JunitJunit 사용법사용법 –– 통합된통합된 테스트테스트 환경환경
BS&JWBS&JW
![Page 19: 소프트웨어 검증JUnit 5조dslab.konkuk.ac.kr/Class/2010/10SV/Practice/1... · JunitJunit사용법사용법–Test Case TestCase를상속받아클래스를작성 Public class](https://reader035.vdocuments.site/reader035/viewer/2022071114/5feb3279b344a005d84ba05f/html5/thumbnails/19.jpg)
BS&JWBS&JW
![Page 20: 소프트웨어 검증JUnit 5조dslab.konkuk.ac.kr/Class/2010/10SV/Practice/1... · JunitJunit사용법사용법–Test Case TestCase를상속받아클래스를작성 Public class](https://reader035.vdocuments.site/reader035/viewer/2022071114/5feb3279b344a005d84ba05f/html5/thumbnails/20.jpg)
실전에는실전에는 얼마나얼마나 쓰일까쓰일까??실전에는실전에는 얼마나얼마나 쓰일까쓰일까??
BS&JWBS&JW
![Page 21: 소프트웨어 검증JUnit 5조dslab.konkuk.ac.kr/Class/2010/10SV/Practice/1... · JunitJunit사용법사용법–Test Case TestCase를상속받아클래스를작성 Public class](https://reader035.vdocuments.site/reader035/viewer/2022071114/5feb3279b344a005d84ba05f/html5/thumbnails/21.jpg)
Geospatial Developer Survey
Utah GIS Portal. 2008
BS&JWBS&JW
![Page 22: 소프트웨어 검증JUnit 5조dslab.konkuk.ac.kr/Class/2010/10SV/Practice/1... · JunitJunit사용법사용법–Test Case TestCase를상속받아클래스를작성 Public class](https://reader035.vdocuments.site/reader035/viewer/2022071114/5feb3279b344a005d84ba05f/html5/thumbnails/22.jpg)
why you were not doing more unit testingwhy you were not doing more unit testing.
BS&JWBS&JW
![Page 23: 소프트웨어 검증JUnit 5조dslab.konkuk.ac.kr/Class/2010/10SV/Practice/1... · JunitJunit사용법사용법–Test Case TestCase를상속받아클래스를작성 Public class](https://reader035.vdocuments.site/reader035/viewer/2022071114/5feb3279b344a005d84ba05f/html5/thumbnails/23.jpg)
BS&JWBS&JW
![Page 24: 소프트웨어 검증JUnit 5조dslab.konkuk.ac.kr/Class/2010/10SV/Practice/1... · JunitJunit사용법사용법–Test Case TestCase를상속받아클래스를작성 Public class](https://reader035.vdocuments.site/reader035/viewer/2022071114/5feb3279b344a005d84ba05f/html5/thumbnails/24.jpg)
Fail이다…..악!! 관련된 클래스가 100만개라니!!
Unit
BS&JWBS&JW
![Page 25: 소프트웨어 검증JUnit 5조dslab.konkuk.ac.kr/Class/2010/10SV/Practice/1... · JunitJunit사용법사용법–Test Case TestCase를상속받아클래스를작성 Public class](https://reader035.vdocuments.site/reader035/viewer/2022071114/5feb3279b344a005d84ba05f/html5/thumbnails/25.jpg)
객체간의 의존성이 단위테스트의 가장 큰 적!!!
BS&JWBS&JW
![Page 26: 소프트웨어 검증JUnit 5조dslab.konkuk.ac.kr/Class/2010/10SV/Practice/1... · JunitJunit사용법사용법–Test Case TestCase를상속받아클래스를작성 Public class](https://reader035.vdocuments.site/reader035/viewer/2022071114/5feb3279b344a005d84ba05f/html5/thumbnails/26.jpg)
예제코드
import org.apache.hadoop.mapred.JobClient;import org.apache.hadoop.mapred.JobConf;...public class LogDailyAnalyzeJob {public class LogDailyAnalyzeJob {
public void analyze(String[] parameters) throws Exception {JobConf conf = new JobConf(LogDailyAnalyzeJob.class);...conf setJobName("LogDailyAnalyzer : " + parameters[0] +" for " + parameters[1]);conf.setJobName( LogDailyAnalyzer : + parameters[0] + for + parameters[1]);conf.setMapperClass(BasicMapper.class);conf.setCombinerClass(BasicCombiner.class);conf.setReducerClass(analyzer.getReducerClass());...String year = parameters[1].substring(0,4);String month = parameters[1].substring(4,6);String day = parameters[1].substring(6);String path = "/"+year+"/"+month+"/"+day;String path = / +year+ / +month+ / +day;conf.setInputPath(new Path("/user/statlogs" + path));conf.setOutputPath(new Path("/user/result" + path +"/"+parameters[0]+"/daily"));parameters[0]+ /daily ));...JobClient.runJob(conf);
}}
BS&JWBS&JW
}
![Page 27: 소프트웨어 검증JUnit 5조dslab.konkuk.ac.kr/Class/2010/10SV/Practice/1... · JunitJunit사용법사용법–Test Case TestCase를상속받아클래스를작성 Public class](https://reader035.vdocuments.site/reader035/viewer/2022071114/5feb3279b344a005d84ba05f/html5/thumbnails/27.jpg)
단위테스트를 위해서 객체를 최대한 고립시켜야 한다.
BS&JWBS&JW
단위테스트를 위해서 객체를 최대한 고립시켜야 한다.
![Page 28: 소프트웨어 검증JUnit 5조dslab.konkuk.ac.kr/Class/2010/10SV/Practice/1... · JunitJunit사용법사용법–Test Case TestCase를상속받아클래스를작성 Public class](https://reader035.vdocuments.site/reader035/viewer/2022071114/5feb3279b344a005d84ba05f/html5/thumbnails/28.jpg)
BS&JWBS&JW
![Page 29: 소프트웨어 검증JUnit 5조dslab.konkuk.ac.kr/Class/2010/10SV/Practice/1... · JunitJunit사용법사용법–Test Case TestCase를상속받아클래스를작성 Public class](https://reader035.vdocuments.site/reader035/viewer/2022071114/5feb3279b344a005d84ba05f/html5/thumbnails/29.jpg)
BS&JWBS&JW
![Page 30: 소프트웨어 검증JUnit 5조dslab.konkuk.ac.kr/Class/2010/10SV/Practice/1... · JunitJunit사용법사용법–Test Case TestCase를상속받아클래스를작성 Public class](https://reader035.vdocuments.site/reader035/viewer/2022071114/5feb3279b344a005d84ba05f/html5/thumbnails/30.jpg)
BS&JWBS&JW
![Page 31: 소프트웨어 검증JUnit 5조dslab.konkuk.ac.kr/Class/2010/10SV/Practice/1... · JunitJunit사용법사용법–Test Case TestCase를상속받아클래스를작성 Public class](https://reader035.vdocuments.site/reader035/viewer/2022071114/5feb3279b344a005d84ba05f/html5/thumbnails/31.jpg)
BS&JWBS&JW
![Page 32: 소프트웨어 검증JUnit 5조dslab.konkuk.ac.kr/Class/2010/10SV/Practice/1... · JunitJunit사용법사용법–Test Case TestCase를상속받아클래스를작성 Public class](https://reader035.vdocuments.site/reader035/viewer/2022071114/5feb3279b344a005d84ba05f/html5/thumbnails/32.jpg)
BS&JWBS&JW