Press "Enter" to skip to content

[태그:] SoapUI

S/W 개발 관리도구 모음

출처 : http://blog.naver.com/PostView.nhn?blogId=wisestone2007&logNo=221105376720&beginTime=0&jumpingVid=&from=search&redirect=Log&widgetTypeCall=true

SW 테스트 지원 도구란?

단순하고 반복적인 테스트 작업을 위해 코드 분석, 테스트 케이스 생성, 테스트 환경 구축 등을 도와 테스트의 효율성을 향상 시키는 도구로써 업무 수행 시 수작업 보다 도구를 사용하여 빠르게 수행 가능하며 테스트 수행 시간을 줄여 감소된 시간을 다른 활동에 활용 할 수 있고, 항상 동일한 테스트가 가능하여 매번 완전하게 결과를 검사 할 수 있는 정확성과 정밀성을 제공 한다. 또한, 시뮬레이션을 이용하여 실제 환경과 비슷한 환경에서 작업을 수행하여 리소스 절감이 가능하고, 테스트 인력과 달리 지속적인 작업 수행이 가능 하도록 지원 하는 도구 이다.

SW 테스트 지원 도구의 종류

도구 유형의미
테스트 관리 도구테스트 관리와 수행된 활동에 대한 전반에 대한 지원 및 관리
결함 추적 관리 도구결함 관리, 결함 추적, 변경 요구 사항 및 작업 할당을 수행
정적 분석 도구SW를 실행 시키지 않고 소스코드에서 실행 시 발생할 수 있는 결함을 관리
성능/부하 테스트 도구가상 사용자를 인위적으로 생성하여 시스템 처리 능력 측정해 주는 도구
형상 관리 도구소스 코드에 대한 Branch 생성, Merge 등의 변경 관리와 다양한 산출물의 버전 및 이력 관리를 할 수 있는 도구
빌드&릴리즈 도구소스 코드를 빌드하여 바이너리를 생성하고 이를 배포해주는 도구
프로젝트 관리 도구요구사항을 충족 시키기 위해 프로젝트 관리 프로세스를 효과적으로 관리
CI 관리 도구자동으로 빌드하여 주기적으로 생산해주는 도구

위에서 도구의 유형별 의미를 확인 해 보았다. 그렇다면 각각의 도구 유형의 기능 및 특성에 대해서 확인하고, 오픈 소스 도구의 종류와 각 특징들을 알아 보자.

SW 테스트 관리 도구란?

테스트 케이스 설계, 테스트 계획 수립, 테스트 케이스 할당, 실행 결과 입력, 리포트 작성 등 테스트 전반을 지원하는 관리 도구로써, 다음 과 같은 활동을 지원 한다.

• 테스트의 관리와 수행된 활동에 대한 지원

• 테스트 실행 도구, 결함 추적 그리고 요구사항 관리도구와의 인터페이스 역할

• 별도의 버전 관리 기능을 가지거나 혹은 다른 형상 관리 툴과의 인터페이스 기능을 가짐

• 테스트, 테스트 결과 그리고 요구사항 명세와 같은 소스 문서에 대한 부가사항에 대한 추적성 지원

• 테스트 결과를 기록하고 진행상황 리포트를 생성

SW 테스트 관리 오픈 소스 도구

TestLinkGanttProjectOpenProjRedmine
라이센스GPL2GPL3CPAL1GPL2
특징• 다양한 언어 지원.
• 다양한 버그 시스템들과 연동 가능.
(Mantis, Trac, Bugzilla)
• 간트 차트, 리소스 차트 지원.
• 작업자 투입율과 연동하여 일정관리 가능.
• 간트 차트, 리소스 차트 지원.
• 작업자 투입율과 연동하여 일정 관리 가능.
• 상용프로그램과 호환 가능.
• 형상관리와 통합.
• 간트 차트와 달력기능 제공.
• 다중 프로젝트 지원
기타http://testlink.orghttp://www.ganttproject.bizhttps://www.openproject.orghttp://www.redmine.org/

결함 추적 관리 도구란?

결함 추적 관리 도구는 테스트 진행 중 발견되는 결함 및 인시던트 리포트 정보를 저장하고 관리하는 도구로써, 다음 과 같은 활동을 지원 한다.

• 보고된 인시던트 리포트 간의 우선순위를 정할 수 있음

• 담당자에게 수정하거나 확인 테스트하라는 등의 임무를 할당할 수 있음

• 결함 수정 거부, 수정되어 테스트할 준비 완료, 수정을 다음 릴리즈로 연기 등으로 결함의 상태를 변경하고 귀속할 수 있음

결함 추적 관리 오픈 소스 도구

MantisBugzillaTrac
라이센스GPLMozilla Public LicenseBSD License
특징• 각각의 작업이나 전체 프로젝트에 대해서 작업 진행 상태를 도식화 가능.
• 프로젝트 변경 이력에 대한 추적/관리 및 유지보수.
• 프로젝트 참여자들의 작업 내용을 추가/보고/관리.
• 버그를 지속적으로 관리/참조 가능.
• 버그의 심각도 와 우선순위 지정 가능.
• 엑셀 변환 가능.
• 웹 상에서 게시판 형태로 되어있어 사용하기 쉬움.
• 티켓 발향으로 구성원간 의사소통.
• 마일스톤과 시간이력을 통해 진행 상태를 시각화 하여 제공.
기타https://www.mantisbt.orghttps://www.bugzilla.orghttps://trac.edgewall.org

정적 분석 도구란?

정적 분석 도구는 개발자, 테스터, 그리고 품질 보증 관련자가 동적 테스팅 전에 결함을 발견하는 것을 돕는 도구로써, 다음 과 같은 활동을 지원 한다.

• 코드로부터, 예를 들어 계획이나 위험 분석에 대한 중요한 정보를 줄 수 있는 특성을 계산

• 코딩 표준의 강제

• 구조와 의존성의 분석 (e.g. 링크된 웹 페이지)

• 코드 이해의 지원

정적 분석 오픈 소스 도구

FindBugsCheckStylePMD
라이센스GNULGPLBSD
특징• Java 언어 지원• Java 언어 지원.
• ANT와 결합 가능.
• Java 언어 지원.
• 다양한 플러그인 제공
• 다양한 오픈 소스와 결합 가능.
기타http://findbugs.sourceforge.net/index.htmlhttp://checkstyle.sourceforge.net/https://pmd.github.io/

성능 부하 테스트 도구란?

성능 부하 테스트 도구는 시스템의 응답시간, 처리량, 속도 등에 대해 테스트 수행을 지원 하는 도구로써, 다음 과 같은 활동을 지원 한다.

• 주로 시스템의 부하와 트랜잭션 측정

• 부하 발생을 통해 다수의 사용자 또는 많은 양의 입력 데이터를 모의 테스트

• 테스트 수행 중에 선정된 트랜잭션으로부터 응답시간을 측정 및 기록

• 일반적으로 응답시간에 대한 부하 테스트 로그와 그래프 기반의 리포트 제공

성능부하 테스트 오픈 소스 도구

JMeterSoapUISelenium
라이센스ApacheLGPLApache
특징• HTTP를 사용하여 사이트의 부하를 테스트.
• 다양한 서버 타입 지원. (HTTP, HTTPS, SOAP, LDAP, JMS 등)
• 완벽한 멀티 쓰레딩 프레임워크를 지원하여 다수의 쓰레드가 동시에 데이터를 추출할 수 있음.
• 기능, 리그레이션, 부하 테스트 가능.
• 다양한 오픈 소수와 결합 가능. (Maven, Hudson, Junit, ANT)
• 다양한 리포트 기능 지원. (PDF, DOC, HTML)
• 다양한 플러그인. (IntelliJ, NetBeans, Eclipse)
• 상용버전인 SoapUI Pro 존재.
• 기록 및 재생.
• 지능형 필드 선택. (ID, 이름, Xpath)
• 디버그 및 중단지점 설정.
• 테스트 저장.
• 웹 브라우저 플러그인 지원.
기타http://jmeter.apache.org/ https://www.soapui.org/ http://www.seleniumhq.org

형상 관리 도구란?

형상 관리 도구는 시스템 형상 요소(개발소스, 산출물 문서 등)의 기능적 특성이나 물리적 특성을 문서화 하고 소스코드나 문서의 버전관리, 이력관리, 추적 등 변경 사항을 체계적으로 관리할 수 있는 기능을 제공하는 도구로써, 다음 과 같은 활동을 지원 한다.

• 이전 리 버전이나 버전에 대한 정보를 언제든지 접근할 수 있어야 함 (이력 정보의 필요성)

• 불필요한 사용자가 소스를 수정할 수 없도록 해야 함 (개발 환경의 보안)

• 동일한 프로젝트에 대해서 여러 개발자가 동시에 개발 할 수 있어야 함 (동시 개발의 예)

• 에러가 발생했을 경우 빠른 시간 내에 FIX할 수 있어야 함(생명 주기의 자동화)

• 사용자의 요구에 따라 적시에 최상의 소프트웨어를 공급 할 수 있어야 함 (적시에 소프트웨어 공급)

형상 관리 오픈 소스 도구

TortoiseSVNGitSubversion (SVN)Mercurial
라이센스GPLGPL2APL2GPL2
특징• Windows Explorer에서 바로 Subversion를 사용하여 버전 컨트롤 가능.
• 특정 파일의 변경 로그 확인 가능.
• Git사용자가 Git 저장소를 보유하고 원격과 동기화.
• 거의 모든 명령을 로컬에서 수행하며, branch의 생성/전환/폐기가 빠름.
• 파일이나 디렉토리를 이동해도 이력 보존.
• CVS에 비해 빠른 속도.
• Gzip압축을 통한 저장 공간 절약.
• 크로스 플랫폼, 서버가 불필요, 분산 버전 관리 시스템.
• 원격 저장소와 작업 디렉토리의 구분이 없음.
기타https://tortoisesvn.net/https://git-scm.com/https://subversion.apache.org/https://www.mercurial-scm.org

빌드&릴리즈 관리 도구란?

빌드&릴리즈 관리 도구는 소스코드를 빌드 하여 바이너리를 생성하고 이를 배포해주는 도구로써, 다음 과 같은 활동을 지원 한다.

• 소스코드 파일을 컴퓨터에서 실행할 수 있는 독립 소프트웨어 가공물로 변환하는 과정을 말하거나 그에 대한 결과물을 의미

• 소프트웨어의 빌드/릴리즈의 자동화를 도와주는 도구

• 개발 완료된 소프트웨어를 모두 결합하여 고객 또는 테스트 팀에게 전달/인도 하기

• 빌드&릴리즈는 형상 관리 영역의 한 부분

빌드&릴리즈 오픈 소스 도구

AntGradleMaven
라이센스APL2APL2APL2
특징• Build 자동화 (컴파일, Javadoc 생성, 실행, FTP SCP, SFTP 연결, CVS연동, 다른 공학 도구와 연동), 배포, 유닛 테스트(Junit활용, HTML등) 테스트 결과 보고서 작성.• ANT의 유연성과 기능을 Maven의 의존성 관리와 조합하여 보다 효과적인 빌드 자동화 실현.
• Groovy에 기반한 DSL을 통해 모든 종료의 빌드를 선언적 방식으로 처리할 수 있고, 많은 부분 적절한 Default값이 제공되어 편리한 적용 가능.
• 프로젝트에 필요한 라이브러리를 POM 파일 만으로 쉽게 구성 가능.
• Convention over Configuration 개념으로 관례적인 프로젝트 폴더 구조 사용.
• Jenkins 같은 CI 도구와 연계하여 빌드 과정 자동화 가능.
기타http://ant.apache.org/ https://gradle.org/https://maven.apache.org/

프로젝트 관리 도구란?

프로젝트 요구사항을 충족시키기 위해 지식, 기술, 도구, 기법 등을 프로젝트 활동에 적용하는 것으로 이러한 지식을 적용하기 위해서 프로세스를 효과적으로 관리해 주는 도구로써, 다음 과 같은 활동을 지원 한다.

• 잠재적인 비즈니스 또는 프로젝트 관련 위험 및 문제를 방지, 식별 및 최소화 하는 기능 제공

• 사용 가능한 리소스를 확인하고 팀을 구성하고 리소스 참여를 요청 할 수 있는 기능 제공

• 일정 진행 상태를 추적하고 변경내용을 관리 하는 기능 제공

프로젝트 관리 오픈 소스 도구

GanttProjectMylynOpenProjRedmine
라이센스GPLEPLCPAL1GPL2
특징• 상용 프로젝트 관리 도구와는 다르게 간단한 인터페이스로 쉽게 사용.
• 작성한 Gantt Chart를 PERT Chart로 쉽게 전환 가능.
• 프로젝트 관리.
• 버그 및 이슈관리.
• 새 기능 관리.
• 저장소와 통합.
• 복잡한 상용 프로젝트 관리 도구와는 다르게 간단한 인터페이스로 쉽게 사용가능,
• 작성한 Gantt Chart를 PERT Chart로 쉽게 전환.
• 다양한 OS지원.
• 유연한 이슈 및 버그 추적,
• 간트 차트와 달력 기능 제공.
• 다중 프로젝트 지원.
• 형상 관리 소프트웨어와의 통합.
기타http://www.ganttproject.bizhttp://www.eclipse.org/mylyn/https://www.openproject.orghttp://www.redmine.org/

CI 관리 도구란?

CI (Continuous Integration) 지속적인 통합이라는 뜻으로 형상관리 시스템에 있는 Source 파일을 읽어 들여 자동으로 빌드하여 실행할 수 있는 결과물 (exe, jar, apk or war등) 형태로 주기적으로 생산해 주는 도구로써, 다음 과 같은 활동을 지원 한다.

• 프로젝트 관리, 버전관리, 시스템에 연결하여 변경사항 인지, 빌드 스크립트 실행, 실행 결과 확인

• 특정 이벤트 발생 시 빌드 스크립트 실행

• 프로젝트 빌드 후 생성되는 산출물과 연동할 수 있는 기능

• 빌드 스크립트의 실행 결과를 구성원에게 피드백 할 수 있는 기능

CI 관리 오픈 소스 도구

Cruise ControlHudsonJenkins
라이센스BSDEPLMIT License
특징• 다양한 Plug-in 제공, 설치 용이, 사용자 커뮤니티의 활성화.• 쉽고 빠르게 설치가능.
• 웹 기반의 UI로 Client에서는 별도의 SW설치가 필요 없음.
• 동시에 여러 project Build가능 / 팀 단위 통합 Build 기능 제공.
• 쉬운 설치 및 웹 기반으로 된 쉬운 UI 제공.
• 여러 Project 동시 Build 제공.
• 다양한 언어/OS 지원.
기타http://cruisecontrol.sourceforge.net/http://hudson-ci.org/https://jenkins.io/

오픈 소스 위주의 각각의 테스트 지원 도구들을 살펴 보았고, 이러한 오픈 소스의 테스트 지원 도구 도입 시 발생할 수 있는 업무 효율의 장점과 함께 단점들도 발생 할 수 있으며 그 내용은 아래와 같다.

장점으로는

• 오픈 소스 사용 시 비용이 절감되고, 많은 정보들이 인터넷상에 공개 되어 있음

• 프로젝트 상황에 맞는 도구를 도입하여 사용이 가능 함

• 프로그래밍 능력이 있는 경우, 원하는 대로 변형하여 사용이 가능 함

• 더 좋은 제품이 나올 경우 새롭게 도입하는데 부담이 적음

단점으로는

• 초기 환경 구축 및 테스트를 수행 하기 위해 많은 시간, 비용, 노력이 요구 됨

• 문제 발생시 기술지원이 되지 않고, 상황에 따라 추가 버전의 개발이 중단 될 수 있음

• 동일한 기능의 상용 도구 보다 기능 범위가 작을 수 있음

• 오픈 소스 도구로 수행한 결과물이 신뢰성을 인정 받지 못하는 경우가 있을 수 있음

테스트 지원 도구는 반복적인 업무를 자동화 하여 테스트 수행 시간을 줄여 주는 효과와 더불어 효율적으로 테스트를 할 수 있다는 것 이다. 그리고 누가, 언제 테스트 해도 똑같은 결과를 얻을 수 있고 프로젝트에 적합한 도구로 만들어가기 위해서는 지속적인 관리, 내부 교육, 유지보수와 같은 노력과 시간을 들여 프로젝트 전반에 걸쳐 체계적으로 적용 될 수 있도록 도입 이후 관리가 필요하다.

참고 Website

http://www.oss.kr/oss_intro13

https://www.swbank.kr/helper/tool/toolMain.do

https://ko.wikipedia.org/wiki