블로그 이미지
Peter Note
Web & LLM FullStacker, Application Architecter, KnowHow Dispenser and Bike Rider

Publication

Category

Recent Post

2012. 10. 23. 22:20 Testing, TDD/Tools, FitNesse

▶ Batch나 업무 프로세스를 타고 Fit Testing  (Action Fixture)

  - start   : 실행 fixture를 자동화할 클래스 명칭을 얻고 테스트를 시작한다

  - check : 메소드를 수행하여 값을 검증한다

  - enter  : 어떤 테스트도 하지 않고 void 메소드를 수행한다

  - press : 메소드를 수행하고 인수(argument)를 전달한다


  1. word로 위에서 부터 아래로 쭉 실행할 내역을 적는다 (start : BuyActions 란 명칭으로 주고 java파일도 동일하게 작성)

  2. java 파일을 하기와 같이 작성한다  

  3. java 파일 컴파일 하고, java fit.FileRunner TestBuyItems.htm result.html 수행한다

  4. 결과 result.html 을 열어본

▶ Action Fixture를 이용한 Chat Server 테스트 

  

  1. word에서 html 파일 만들기



  2. java로 Fixture 개발 (Fixture-ChatServerActions, 업무 모듈-ChatRoom, User, Room) 

  3. java 파일 컴파일하고, java fix.FileRunner TestChatServer.htm result.html 명령 수행하기 

  4. 결과  result.html 열어보기
 

▶ 예제 파일


TestCase-4.zip


TestCase-5.zip



▶ 참고 

  - Fit 의 Fixture 를 wiki에서 사용하는 방법 및 코드 

  - eclipse에서 Fit을 자동화 테스트 하고 싶을 경우 (luxoft)

  - eclipse FitRunner plug-ins 테스트 하기 


'Testing, TDD > Tools, FitNesse' 카테고리의 다른 글

[JMeter] 성능 테스트툴 간단 사용기-1  (0) 2012.10.26
[테스트 실습-3] FitNesse-2  (0) 2012.10.24
[테스트 실습-3] FitNesse-1  (0) 2012.10.24
[테스트 실습-2] Fit-2  (0) 2012.10.23
[테스트 실습-2] Fit-1  (1) 2012.10.23
posted by Peter Note
2012. 10. 23. 21:58 Testing, TDD/Tools, FitNesse

▶ 다수 인수에 대한 Fit Testing (Column Fixture)


  1. word에서 다음과 같이 fixture를 만들어 본다


  2. java 파일을 코딩한다 



  3. javac *.java 명령으로 컴파일 한다 

  4. java fit.FileRunner CalculateCredit.htm result.html 명령을 수행한다 

  5. result.html 파일을 열어본다 


▶ 인수값 열거형 Fit Testing (Column Fixture)


  1. word에서 열거를 위하여 콤마(,)를 사용한다. TestFirstPhone.htm으로 저장한다 

  2. java 코딩을 하기와 같이 한다


  3. java파일을 컴파일 한다

  4. java fit.FileRunner TestFirstPhone.htm result.html 수행한다 

  5. 결과를 열어본다


열거형등 다양한 타입에 대한 테스트를 수행해 볼 수 있겠다. 


▶ 예제 파일


'Testing, TDD > Tools, FitNesse' 카테고리의 다른 글

[JMeter] 성능 테스트툴 간단 사용기-1  (0) 2012.10.26
[테스트 실습-3] FitNesse-2  (0) 2012.10.24
[테스트 실습-3] FitNesse-1  (0) 2012.10.24
[테스트 실습-2] Fit-3  (0) 2012.10.23
[테스트 실습-2] Fit-1  (1) 2012.10.23
posted by Peter Note
2012. 10. 23. 20:55 Testing, TDD/Tools, FitNesse
▶ Test Framework 갖추기  

  - 형상관리 -> CI (빌드) -> 테스트 서버로 애플리케이션이 배포된 후 애플리케이션에 대한 자동화 테스트 수행

  - 테스트 서버에서 자동 테스트를 위한 Test Framework이 필요

    + DB schema의 최기화/원복 : DBA 하지 말고, DDL 가지고 테이블 관리 

    + 입력 파라미터 공급

    + 테스트 케이스에 대한 오류를 개발자 포털에 자동 등록 및 메일링 : 개발자 feedback 필요 (jira 자동 등록)

    + 테스트 서버 = HW/DB + Real Framework + Test Framework + 애플리케이션 + 테스트 코드 + 테스트 실행 stack이 필요함 


대부분 형상관리서버+빌드시스템까지는 구축하지만 적절한 Test Framework을 갖추는 것이 핵심이다. 



▶ 참조사이트

Using Fit Open Source Framework

Test Frameworks

Fitness


▶ Fit Test 하기 

  1. PC Local에 JDK 설치한다. 

  2. JDK bin 디렉토리는 환경변수 path에 설정한다. 

  3. Fitness를 다운로드한다. :  http://fit.c2.com/wiki.cgi?DownloadNow  -> JavaPlatform

  4. fit-java-1.1.zip파일 압축을 풀면 폴더안에 : fit.jar 파일이 있다. 

  5. fit.jar 파일을 환경변수에 classpath = .;<directory>\fit.jar  설정을 한다. (설정하지 않으면 java 수행시 -classpath를 늘 잡아준다)

  6. word를 열어서 다음과 같이 표를 만들어 .htm으로 저장한다 

  7. java 파일을 하기와 같이 만든다. (주의:htm파일 내역중 fixture명칭 CalculateDiscount 명칭과 java파일 명칭과 일치해야함)

  8. eclipse에 만든 *.java 파일을 TestDiscount.htm 파일이 있는 곳에 위치 시킨다. 예) d:/Test_framework/fit_testing/TestCase-1

  9. d:/Test_framework/fit_testing/TestCase-1 > javac *.java  명령으로 java 파일을 컴파일 한다. 
  10. d:/Test_framework/fit_testing/TestCase-1 > java fit.FileRunner TestDiscount.htm result.htm 명령을 수행한다.



  11. 결과 result.htm 파일을 열어본다. 

  12. 1000에서 결과값을 0.00 으로 기대했지만 50.0 값이 나왔고, 밑에도 50.51을 기대했지만 50.5가 나와서 amount라는 인수값을 discount()라는 메소드에 대입하였을 때 인수 테스트 2개에 오류 (2 wrong)가 있었음을 result.htm 결과 화면에 표현해 준다. 


▶ 결과 파일 


'Testing, TDD > Tools, FitNesse' 카테고리의 다른 글

[JMeter] 성능 테스트툴 간단 사용기-1  (0) 2012.10.26
[테스트 실습-3] FitNesse-2  (0) 2012.10.24
[테스트 실습-3] FitNesse-1  (0) 2012.10.24
[테스트 실습-2] Fit-3  (0) 2012.10.23
[테스트 실습-2] Fit-2  (0) 2012.10.23
posted by Peter Note
2012. 10. 22. 19:51 Testing, TDD
▶ 테스트의 일반적인 사항
  • 테스트 : 결함을 찾아 내는 것 (정치적으로 이용하게 되면 회비용 도구가 될 수도 있다)
  • QA : 기능상 정상 작동함을 증명 
  • 설계:개발:테스트 = 30:30:40 노력 분포도 
  • 테스트는 개발 초기에 수행
  • 1시간 이상 테스트에 몰두 하지 말라 (살충제 패러독스 : 결함에 내성이 생겨서 못찾는다. 쉬면서 또는 동료검토)
  • QC가 테스트와 비슷하고 QA와 테스트는 틀리다. 즉, QC & 테스트는 개발자나 PMO가 진행할 수 있다. 
  • UI 테스트 말고 핵심 로직에 대한 테스트를 얼마나 효과적으로 하는가가 중요함 
  • 단위 테스트 -> 통합 테스트 -> 시스템 테스트 -> 인수 테스트 -> 설치 테스트 : 단위 테스트가 제일 중요하다. 



'Testing, TDD' 카테고리의 다른 글

On Going Reliability Test란 무엇인가?  (0) 2012.08.17
posted by Peter Note
2012. 10. 21. 21:13 Middleware, Cloud/DBMS

org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Listener refused the connection with the following error:

ORA-12505, TNS:listener does not currently know of SID given in connect descriptor

 )

        at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)

        at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)

        at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)



위와 같은 메세지가 나오면 다음과 같이 수정하여 Listener를 restart 시킨다. 


  • ORA-12505, TNS:listener does not currently know of SID given in connect descriptor 이 메세지 구글링 해보면 lsnrctl services 수행해서 SID가 잘 나오는지 확인해 보라고 하는데 백날 해봐야 SID 안나오고 UNKNOWN 이라고 나온다. 
  • 그럼 listener.ora 파일을 열어보자. 하기와 같이 나올 것이다. 

SID_LIST_LISTENER =

  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
      (PROGRAM = extproc)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )

DEFAULT_SERVICE_LISTENER = (XE)

  • 위의 문구를 하기와 같이 수정한다. 
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = XE)
      (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
      (SID_NAME  = XE)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )

DEFAULT_SERVICE_LISTENER = (XE)

  • 서비스에서 Listener를 restart 해보고, lsnrctl services 명령어 날려보자. 하기 빨간색 문구가 새롭게 나온다. 
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:0 refused:0
         LOCAL SERVER
Service "XE" has 1 instance(s).
  Instance "XE", status UNKNOWN, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:3 refused:0
         LOCAL SERVER
The command completed successfully

기술적인 부분은 구글링해 보자.

'Middleware, Cloud > DBMS' 카테고리의 다른 글

MySQL 에 데이터베이스 만들고 테이블 만들기  (0) 2012.11.27
posted by Peter Note