4. p 4
Team Foundation Server
팀 프로세스 개선
• 개발과 운영에 적합한 프로세스를 점진적으로 구축하겠습니다.
명확한 작업 관리와 추적
• 모든 작업을 관리/추적하여 개발에 사용되는 모든 자원을 관리하겠습니다.
제품의 품질 유지
• 통합된 테스팅 기능을 이용하여 제품 품질을 꾸준히 향상시키겠습니다.
명확한 보고
• 작업의 진척율이나 결함의 추이를 실시간으로 조회하여 개선하도록 하겠습니다.
자동화 및 통합
• 수작업이 많거나 반복되는 작업은 자동화하여 개발에 더 집중하고 사전에 결함/버그의 발생을 최소한의 줄이겠습니다.
• Team Foundation Server 제품은 제품 개발과 장기적인 유지보수 및 서비스 운영
에 효과적인 솔루션으로, 팀 개발에 최적화하여 사용하겠습니다.
5. p 5
팀 프로세스 강제화/정책화
작업에 필요한 항목이나
형식 정의
작업의 항목/형식 간의 워
크플로우 트랜잭션 정의
필요한 보고서 정의
오피스 연동을 위한 필드
매핑 지원
대시보드 정의 팀 프로젝트 표준화
팀에서 사용하는 방식을
지원하는 프로세스 적용
팀 사이트의 대시보드
기타 보고서 및 대시보드
작업 간의 워크플로우 트랜잭션
6. p 6
프로젝트 관리 및 개발
프로젝트 관리
• 반복적으로 프로젝트를
계획할 수 있고, 개발, 추
적할 수 있습니다.
• 프로젝트 전체적으로 모
니터링을 수행하고, 중앙
집약적으로 프로젝트의
모든 정보를 얻을 수 있
습니다.
• 팀에 적합한 프로세스를
선택하여 적용할 수 있습
니다.
요구사항 관리
• 제품 개발에 필요한 요구
사항을 수집/관리하여 프
로젝트 진행 상황을 추적
합니다.
• 버그/결함을 할당하고 관
리하여 버그의 추적이 용
이합니다.
소스제어
• 요구사항이나 작업/버그
와 연결되는 소스 코드를
체크인/체크아웃 할 수
있습니다.
• 체크인 전에 정책을 설정
하면 유효성을 통과해야
체크인 할 수 있습니다.
• 다중체크아웃/단일체크
아웃 방식으로 선택할 수
있습니다.
• Branch 를 하고 3-way
방식의 Merge 를 사용합
니다.
• 체크인 전에 필요한 경우
임시저장(Shelve) 가 가
능합니다.
테스트케이스 관리
• 단위 테스트, 웹 성능 테
스트 등을 수행할 수 있
습니다.
• 부하 테스트, 코드 검
사, 화면 테스트, 수동 테
스트를 수행하거나 자동
화 할 수 있습니다.
• 전문 테스트 관리 및 수
행 도구가 포함되어 테스
트 관리, 수행, 랩 환경을
지원합니다.
빌드 자동화
• 특정 주기 마다 빌드를
수행하고, 빌드 워크플로
우로 빌드 시나리오를 재
정의할 수 있습니다.
• 빌드 자동화 시에 여러
가지 테스트와 코드 검사
또는 정책 및 규칙 위반
의 유효성을 검증할 수
있습니다.
• 빌드 성공 시 배포 서버
또는 가상화 서버 등으로
배포 시나리오를 재정의
할 수 있습니다.
• 빌드 결과를 여러 경로로
알림을 받을 수 있습니
다.
보고서
• 작업의 진행률, 코드 검
사 결과, 테스트 진행
률, 버그 추세 등 보고서
를 조회할 수 있습니다.
• SQL Server 의
Warehouse 를 통해 팀
의 데이터를 주기적으로
분석하고 Reporting
Services 로 웹을 통해
조회할 수 있습니다.
• 보고서는 웹, 엑셀에서
Warehouse, OLAP 큐브
등을 통해 엑세스할 수
있습니다.
• Business Intelligence 도
구와 엑셀을 이용하여 필
요한 보고서를 만들어 배
포할 수 있습니다.
• 프로젝트 관리와 작업 관리가 편리하고 오피스와 통합되어 프로젝트 전반을 지속
적으로 유지하겠습니다.
• 제품 개발에 테스트를 작성하고, 일일 빌드와 통합 빌드의 자동화를 수행하여 결함
을 조기에 발견하여 품질의 수준을 유지하겠습니다.
• 작업과 품질을 보고서를 통해 명확하게 분석/인지하여 프로젝트 전체의 가시성을
확보하겠습니다.
7. p 7
테스트 가상화 및 엑세스 가능성
문서관리
• 다양한 형태의 문서를 관
리하고 문서의 버전 관리
를 지원합니다.
• 검색 서비스를 통해 다양
한 오피스 문서의 텍스트
를 검색합니다.
• 팀 일정, 토론, 위키 콘텐
트를 팀 사이트를 통해 한
곳에서 관리합니다.
• Office Groove 와
Sharepoint Workspace
를 통해 웹 접속 없이 클
라이언트에서 바로 사이
트의 콘텐트를 엑세스 할
수 있습니다.
오피스 통합
• Office Excel, MS
Project, Outlook 등을 이
용하여 팀의 작업을
Team Foundation Server
와 연동할 수 있습니다.
웹 엑세스
• Visual Studio 를 설치하
지 않고 웹 엑세스를 통해
Team Foundation Server
의 대부분의 정보에 접근
할 수 있습니다.
• 웹을 통해 작업 관리, 소
스 코드, 빌드 등 여러 가
지 정보를 제공합니다.
테스트 가상화
• HYPER-V 와 VMWare
ESX 의 가상화 솔루션을
통해 테스트 환경을 가상
화 할 수 있습니다.
• 테스트의 오류 지점을 스
냅샷(Snapshot) 하여 재
연이 힘든 오류를 원하는
시기에 원하는 지점으로
이동할 수 있습니다.
• 테스트/화면 테스트/매뉴
얼 테스트의 테스트 시스
템의 정보를 저장합니다.
• 테스트를 비디오 녹화하
여 저장하고 비디오를 재
생할 수 있습니다.
크로스 플랫폼 지원
• Visual Studio 를 이용하
여 Team Foundation
Server 에 엑세스 할 수
있습니다.
• 다양한 개발 도구에서
Team Foundation Server
에 엑세스 할 수 있습니다
• 지원하는 개발 도구와 운
영체제는 별첨 슬라이드
를 참고하십시오.
• 솔루션 개발 환경에 적합한 테스트 가상화를 통해 테스트 관리와 수행에 도움이 됩
니다.
• 다양한 OS와 클라이언트를 지원하여 추후 다양한 개발 플랫폼으로 지원받거나 지
원 가능합니다.
8. p 8
물리적으로 배치 시
가상화 배치 시
개발 물리 환경 구축
OS
HARDWAR
E
PC방
클라이언트
HARDWAR
E
OS
HARDWAR
E
PC방
클라이언트
HARDWAR
E
OS
HARDWAR
E
PC방
클라이언트
HARDWAR
E
OS
HARDWAR
E
PC방
클라이언트
HARDWAR
E
Guest OS
DOM-U
HARDWAR
E
PC방
클라이언트
HARDWAR
E
Guest OS
DOM-U
Guest OS
DOM-UPC방
관리프로그
램
Guest OS
DOM-U 기타
클라이언
트
• 개발 환경 및 테스트 환경을 구축하기 위해 복잡한 구성이 필요할 수 있습니다.
• 구축 비용을 고려하지 않더라도 관리와 테스트에 많은 리소스가 필요할 수 있습니다. 하지만,
• 가상화 솔루션을 이용하여 PC방의 여러 물리적인 데스크탑 및 서버 환경을 하나의 가상화 머신에서 실제 환경과 가장 유사한 개발 환경
을 구성하겠습니다.
9. p 9
테스트 가상화 사이클
빌드 서버
빌드 수행
가상 호스트 머신 가상 게스트 머신
배포/테스트 시작 스냅샷 복원
배포 시작 배포 업데이트
배포 후 스냅샷 만들기 테스트 수행
테스트 결과 수집
테스트 성공
테스트 서버 배포
작업 결과 알림
이하 기타 작업
스냅샷 복원
이 작업은 테스트 수행을 위해 OS환경을 Clean-up 하는 작업
에 해당합니다.
예 1) .NET Framework 4.0 만 설치된 스냅샷 지점으로 복원
예 2 아무런 구성요소도 설치되지 않은 깨끗한 OS로 복원
배포 후 스냅샷 만들기
이 작업은 테스트를 수행 중 오류/버그 발생 환경을 스냅샷으
로 기록하여 쉽게 오류/버그 환경으로 전환할 수 있습니다.
예 1) 결제 기능에 오류가 발생하던 스냅샷 지점으로 복원
• 테스트 가상화 환경은 가상화 기능을 이용하여 테스트를 진행하는 방법입니다.
• Test Controller&Agent 로 가상 머신의 테스트를 용이하게 하겠습니다.
• 스냅샷 환경으로 OS의 Clean-up/오류발생환경으로 전환이 용이하게 하겠습니다.
Test Controller&Agent 영역 Lab Agent 영역
10. p 10
로컬 및 원격 단위 테스트 방안
개발자 단위 테스트 빌드 서버 단위 테스트 및 원격 단위 테스트
테스트 코드 작성
로컬 테스트 실행
테스트 결과
완료
테스트 가상화 환경
테스트 컨트롤러
테스트 에이전트
테스트 스크립트(DLL) 배포
원격 머신에서 테스트 실행
빌드 및 테스트 실행
테스트 결과 수집
테스트 결과
테스트 실패 시 통보/작업 할당
완료
• 테스트 컨트롤러 & 에이전트
• 테스트 컨트롤러와 에이전트는 원격 컴퓨팅간에 테스트 제어/동작을 위한 TFS 구성 요소 입니다.
• 테스트 구성 요소로 간단하게 로컬/빌드 머신에서 원격 테스트를 수행하겠습니다.
가상화 배포 및 스냅샷
가상화 환경 빌드 배포 및 스냅샷 작업
11. p 11
로컬 및 원격 화면(UI) 테스트 방안
일반 윈도우 어플리케이션 WPF 어플리케이션
핸들링 Handle 기반 XAML
랜더링 GDI DirectX
구조적 표현 방법 부모/자식 Handle 관계 최상위 윈도우만 Handle 을 가짐
UI 테스트 레코딩 방법 요소의 Handle 을 찾아 기록 요소의 XML 요소를 찾아 기록
UI 테스트 재생 방법 요소의 Handle 을 제어 요소의 XML 요소를 제어
• 윈도우 어플리케이션과 WPF 어플리케이션 UI 테스트 비교
• WPF 어플리케이션 UI 기록 • 화면(UI) 요소 단위 테스트 및 원격 테스트
기록된 화면 테스트는 로컬/원격에서 테스트를 수행
12. p 12
개발 및 테스트 사이클
• 개발 라이프사이클은 프로젝트가 Kickoff 되는 시점부터 적용되는 사이클입니다.
• 작업을 관리/추적하여 프로젝트의 진척율이나 결함 발생 추이 등을 리포팅을 통해 진단하고 개선하겠습니다.
• 반복적으로 수행해야 할 단위테스트/화면테스트/매뉴얼테스트 등을 단계적으로 자동화하고, 필요한 경우 비기능적인 성능/부하테스트로
비기능 요소를 개선하겠습니다.
• (단, 테스트 프로세스에 적용하는 기능의 범위는 변경될 수 있습니다.)
계획 작업 관리
프로젝트 계획
리포팅
로컬 단위 테스트
코드 커버러지
코드 룰 검사
개발및체크
인
프로세스
Iteration Release → Merge Branched → New Iteration Branch
결함/버그시작업등록/할당자동화
Team Foundation Server
릴리즈
프로젝트 관리 및 추적 개발 및 테스트 테스트 및 통합
일일빌드
프로세스
원격 단위 테스트
코드 커버러지
코드 룰 검사
최신 소스코드 획득
통합빌드
프로세스
원격 단위 테스트
성능 테스트
부하 테스트
원격 화면/ 매뉴얼 테
스트
가상 게스트 머신
배포 자동화
구현완료
프로세스를 자동화하는 영역
13. p 13
통합 테스트 사이클
HYPER-V Host Machine
TeamFoundationServer
TeamBuild&
BuildController/Agent
Windows XP x64
Windows XP x86
Windows 7 x86
Windows 7 x64
• 원격 가상 머신에서 단위 테스트
• UI 인터렉션 테스트 자동화
테스트 자동화 작업 결과 등록
• 팀 빌드 계획 • 팀 빌드 수행
• 팀 빌드 컨트롤
• 팀 빌드 수행 결과 수집
HYPER-V Guest Machine
테스터용 배포 서버
개발망 접속 가능 테스터
• 짧은 기간 동안 반복/지속적으로 통합하여 결함을 줄이기 위한 노력을 자동화합니다.
• 장기적으로 Visual Studio 2010 Ultimate 의 비기능 테스트(성능/부하 등) 를 수행하여 실제 사용자 환
경을 고려하고 개선하겠습니다.
• Windows Server 2008 의 HYPER-V 가상화 기능과 Visual Studio 2010 Ultimate 의 테스트 가상화, 테
스트 관리 기능을 이용하여 실제 사용자 환경처럼 테스트를 자동화하고, 다양한 OS 에서 테스트를
자동화 하겠습니다.
14. p 14
테스트 및 지속적 통합
단위테스트
일일 빌드
통합 빌드
Alpha
Release
Beta
Release
RC
Release
RTM
Release
프로세스 최적화
• 테스트 및 지속적 통합 환경을 제공하기 위해 각 단계별로 마일스톤(Milestones) 으로 도식화한 그래프 입니다.
(단, 아래의 마일스톤은 각 단계를 표현하기 위해 임의로 부여된 문서상의 비공식 명칭입니다)
• 단계적으로 논리/물리적인 환경을 구축하기 위해 연계 부서와의 지속적인 협의를 도출하여 테스트/통합 목표를 도출해 내겠습니다.
• 빌드 단계별로 수행되는 작업은 개발 라이프사이클 단원과 프로세스 최적화는 중/장기적 운영 프로세스를 참고하십시오.
15. p 15
단기적 개발 프로세스
선택과 집중을 통해 Features
Driven 방식으로 생산성 있게
제품 계획
프로젝트
관리/추적
신뢰할 수 있는 품질을
유지하기 위해 테스트 수행과
테스트 자동화 구축
점진적으로 제품을 자주
릴리즈하여 제품 개선을 위한
피드백 수렴
개발 코드 중심으로 작업을
추적하고 빌드 시스템을
이용한 통합
개발 릴리즈 운영 프로세스로 전환
• 프로젝트 완료를 목표로 일정을 준수하고 빠른 개발과 품질 유지를 위해 간결한 개발 프로세스를 적용하겠습니다.
16. p 16
중/장기적 운영 프로세스
개발 및 운영 조직
• 심사
• 위험 평가 요청
PC방 웹 서비스 > 고객센터
• 문제
• 서비스 품질
• 요구사항
완료
• 위험 평가/분석
• 검토 릴리즈 계획 및 계획안
• 변경 요청 • 작업/구현
• 테스트 계획
• 테스트 재현
• 테스트 완료
• 검토 및 승인
• 해결/피드백 완료
• 개선 완료
PC방 고객
서비스 지원 및 중재
긴급 복구 계획
• 중/장기적으로 고객의 피드백과 요구사항을 수렴하고 솔루션에 적용/개선하기 위해 프로세스 고도화 작업을 진행하겠습니다.
• MSF(Microsoft Solution Framework) for CMMI 기반의 프로세스를 서비스/개발/연계, 조직에 최적화/개선하여 운영을 위한 전반적인 정보를 공
유하여 고객에게 최상의 서비스를 제공하겠습니다.
• (단, 아래의 프로세스는 팀간의 프로세스 정의 작업이 선행되어야 하고, PC방 웹 서비스와 개발/운영 조직의 연동을 위해 추가적인 프로그래밍
요소가 필요할 수 있습니다.)
Team Foundation Server 작업 등록/
워크플로우 트랜잭션 시작