본문 바로가기

교육 및 세미나/전자정부 표준 프레임워크

3장 테스트 도구, 형상관리, CI

1.테스트도구

*테스트(TEST)

테스트 대상에 입력값을 넣었을 때 그 결과가 성공 혹은 실패의 결과를 내는 것이다.

*수동테스트&자동테스트

수동테스트 장점: 쉽다, 간편하다, 테스트 불가능한 상황이 별로 없다

수동테스트 단점: 휘발성, 테스트 항목이 늘어난다면,다른 사람에게 테스트 내용을 설명하기 어려움, 재현하기 어려움

자동테스트 장점: 언제든지 같은 테스트를 여러 번 수행 가능, 기존 테스트는 새 테스트를 작성하는 발판이 된다(지식축적), 빠르므로 자주 돌려볼 수 있다, 개발자가 코드 개선 활동을 수행할 때에도 회귀테스트(Regression Test)를 자주할 수 있다.

자동테스트 단점: 코드로 작성해야 한다.(기술, 노하우가 필요하다, 코드로 테스트를 작성할 수 없는 상황이 있다, 테스트도 관리 대상이다), 모듈화가 잘 되어 있어야 한다.(디자인의 개선 필요, Legac y Code의 어려움)

* 개요

테스트 도구는 Unit Test, Mock, DB Test Framework을 통해 TestCase 작성을 지원하고, T
est Automation, Test Coverage, Test Reporting 등의 기능을 제공함

2.형상관리

  • 소스 버전관리 도구는 시스템 형상 요소(소스 및 데이터)를 문서화하고 변경을 소스 버전관리 절차에 따라 관리하고, 효율적으로 처리하기 위한 통제환경을 의미
  • 소스 버전관리 도구의 특징 및 기능
    • 형상요소(소스 및 데이터)에 대한 변경 사항을 관리
    • 버전 관리를 수행하고, 배포도구를 통해 변경사항을 배포
    • 일정 주기에 백업 도구를 통해 백업을 수행
  • 소스 버전관리 도구의 구성요소 및 관계도

*Subversion 개요

Subversion(SVN)의 배경

-CVS의 단점을 개선하고 CVS를 대체할 목적으로 개발되었음

-오픈소스 기반의 소스 버전관리 도구 (http://subversion.tigris.org)

CVS 대비 Subversion의 특장점

  • CVS와 거의 동일한 사용법. CVS 사용자는 누구나 쉽게 사용할 수 있음
  • Commit 단위: CVS는 개별 파일별로 리비전 관리, SVN은 변경이 발생하는 체인지셋(Change Set) 별로 리비전 관리
  • Atomic Commit: 여러 파일 커밋시, 어느 하나의 파일에서 커밋이 실패할 경우, CVS는 해당 파일 앞의 경우는 커밋되고, 뒷 파일은 그대로 남아있지만, SVN은 모두 이전 상태로 롤백
  • 트리별, 파일별 접근 제어 리스트 지원
  • 파일에 대한 이름변경/이동, 디렉터리 버전 관리도 지원
  • CVS에 비해 빠른 동작 속도(Update/Branching/Tagging Time)

SVN 클라이언트 – Eclipse 플러그인

3.CI 서버

*CI(Continuous Integration) 정의: 여러 명으로 구성된 팀이 작업한 것을 자주-각 팀원이 하루에 한 번 이상, 매일 여러 번-통합하는 것을 가리키는 소프트웨어 개발 Practice로, 개발자, 버전 관리 저장소, 통합 빌드 머신 등으로 구성 됨

ci_server.PNG