SlideShare una empresa de Scribd logo
1 de 21
Visual Studio Team System with Agile
엄준일 공성의
향상된 테스팅 방법
엄준일
• 비주얼 스튜디오의 테스트 기술
– 단위 테스트
– PEX 를 이용한 화이트박스 테스팅
– Code Contract 를 통한 명확한 코드 계약
목차
단위 테스트
작은
버그
작은
버그
증식
큰 버그
버그의
증식
재앙
• 최소한의 기능이 동작하는 것을 보장
• 오류로 인한 오류증식 감지
• 로직, 플랫폼, 통합 문제를 식별 가능
단위 테스트의 어려움
데이터 중심 단위 테스트 사용자 중심 단위 테스트
•사용자 동작 시 오류 최소화
•런타임 오류 최소화
Dummy
Stub
Spy
Fake
•테스트 복잡도 증가
•테스트 코드 양의 증가
BDD + Mock
•테스트의 정확도 증가
•소프트웨어 품질 향상
테스트 교육 및
테스트 전문가/팀 필요
테스트의 복잡성을 단순화
•최소한의 런타임 동작을 보장
•관련 있는 컴포넌트간의 연관된 오류 최소화
•컴포넌트간에 자연스럽게 결합도 감소
•데이터의 트랜잭션을 보장 향상
•데이터의 통일성 보장 향상
•데이터의 품질 향상
•데이터베이스의 부하 증가
•더미(Dummy) 데이터의 증가
•테스트 실행 성능 저하
•테스트를 위하여 추상화된 패턴을 강제화
•패턴을 통한 리팩토링 양의 증가로 생산성 저하
단위 테스트를 할 수록…
소프트웨어 품질 향상
시간, 리소스, 비용 증가
PEX
• Microsoft Research 팀에서 진행중인 프로
젝트
• WhiteBox Unit Test
• Parameterized Unit Test
• Code Contract 와의 통합
• 코드 계약을 통해 명시적인 조건을 선언
• 코드 계약을 통해 할 수 있는 것들
– 테스트의 간소화
– 컴파일 시에 코드 정적 검사
– 문서화
Code Contract
• 단위 테스트
• PEX
http://research.microsoft.com/en-us/projects/pex/documentation.aspx
• Code Contract
http://msdn.microsoft.com/en-us/devlabs/dd491992.aspx
참고 자료
Code Review
공성의
• Code Review개요, 장점
• VSTS 2010에서 향상된 Code Review
– 규칙 세트
– 8개의 새로운 Data Flow 규칙
목차
• Code Review는 적은 비용으로, 개발자가
흔히 저지를 수 있는 실수로 인한 버그들을
줄일 수 있는 가장 쉬운 방법 중에 하나입니
다.
Code Review
• 코드리뷰가 제대로 수행된다면, 개발 중에
많은 버그를 미리 탐지해서 해결해낼 수 있
습니다.
Code Review
출처: http://smartbear.com/white-
paper.php?content=docs/articles/Case-For-Code-
Review.html
• Microsoft에서 제안하는 닷넷 프레임워크에서의 디자인 가이드라인
과 성능이나 보안, 신뢰성 등의 요소에 대한 Best Practice 등으로 이
루어진 200개 이상의 Rule을 기반으로 Code를 검사하고 결함을 발견
해 줍니다.
Code Review of VSTS 2010
• Visual Studio Team System 2010에서 코드
리뷰 기능 향상
– 규칙 세트
– 8개의 새로운 Data Flow 규칙
출처: http://blogs.msdn.com/fxcop/archive/2008/10/30/new-code-analysis-
features-in-visual-studio-2010-september-08-ctp.aspx
Code review of VSTS 2010
• 코드 분석 규칙들을 미리 정해진 Set으로 관리할 수 있는 기능입니다.
• 프로젝트에 규칙 세트를 지정하는 것으로 코드 분석을 커스터마이징
할 수 있게 되었습니다.
• Team Foundation Server의 Check-In Policy에도 이 규칙 세트를 적용
가능합니다.
규칙 세트 (Rule Set)
• VSTS2010의 기본 규칙 세트
– Minimum Recommended Rule Set
– Basic Correctness Rule Set
– Basic Design Guideline Rule Set
– Extended Correctness Rule Set
– Extended Design Guideline Rule Set
– Globalization Rule Set
– Security Rule Set
– All Rule Set
규칙 세트 (Rule Set)
• 새롭게 추가된 Data Flow Rules
– CA1062 ValidateArgumentsOfPublicMethods : 함수의 인자 유효성검사 여부
– CA1303 DoNotPassLiteralsAsLocalizedParameters : 문자열 인자의 Globalization
– CA2100 ReviewSqlQueriesForSecurityVulnerabilities : SQL Injection 취약점
– CA2202 DoNotDisposeObjectsMultipleTimes : Dispose를 여러 번 호출하는지
– CA2204 LiteralsShouldBeSpelledCorrectly : 스펠링
– CA2215 DisposeMethodsShouldCallBaseClassDispose : Base 클래스의 Dispose
를 호출하는지
– CA2241 ProvideCorrectArgumentsToFormattingMethods : Format 함수 인자
– CA2000 DisposeObjectsBeforeLosingScope : Dispose를 호출하는지
• 위에서 보는 것처럼, 복잡한 코드 상의 결함을 탐지하는
것이 많기 때문에, 아주 유용한 규칙들입니다.
New Data Flow Rules
• 새롭게 추가된 8개의 Data Flow 규칙들은 실제로
는 예전 VS 2005 에서 존재했던 규칙들입니다.
• 하지만, VS 2008에서는 성능 등의 문제가 발생하
면서 Data Flow 분석 엔진이 빠지면서, 같이 빠지
게 되었습니다.
• 이번 VSTS 2010에서는 새롭게 Data Flow 분석
엔진으로 Phoenix 프레임워크를 탑재하게 되면
서 다시 복귀하게 되었습니다.
New Data Flow Rules
• Phoenix Framework
– 피닉스 프레임워크는 향후 마이크로소프트 컴파일러
기술을 위한 새로운 코드 최적화/분석 프레임워크입니
다.
• https://connect.microsoft.com/Phoenix
• http://research.microsoft.com/en-
us/collaboration/focus/cs/phoenix.aspx
– 피닉스 프레임워크의 탑재로, SQL Injection 취약점과
같은 파악하기 힘든 취약점들의 Review가 더 강화되었
습니다.
New Data Flow Rules
• Phoenix Framework
– 피닉스 프레임워크는 C++/CLI 기반으로 만들
어졌습니다.
– 피닉스 프레임워크를 통해서 할 수 있는 것들
• 컴파일러
• Code Generator, Code Optimizer
• 코드 리뷰와 같은 분석 툴
New Data Flow Rules

Más contenido relacionado

La actualidad más candente

Apache JMeter로 웹 성능 테스트 방법
Apache JMeter로 웹 성능 테스트 방법Apache JMeter로 웹 성능 테스트 방법
Apache JMeter로 웹 성능 테스트 방법Young D
 
Advanced nGrinder 2nd Edition
Advanced nGrinder 2nd EditionAdvanced nGrinder 2nd Edition
Advanced nGrinder 2nd EditionJunHo Yoon
 
111 n grinder-deview_day1_track1_session_1_ver_2
111 n grinder-deview_day1_track1_session_1_ver_2111 n grinder-deview_day1_track1_session_1_ver_2
111 n grinder-deview_day1_track1_session_1_ver_2NAVER D2
 
Performance Testing using Loadrunner
Performance Testingusing LoadrunnerPerformance Testingusing Loadrunner
Performance Testing using Loadrunnerhmfive
 
오픈 소스 도구를 활용한 성능 테스트 방법 및 사례
오픈 소스 도구를 활용한 성능 테스트 방법 및 사례오픈 소스 도구를 활용한 성능 테스트 방법 및 사례
오픈 소스 도구를 활용한 성능 테스트 방법 및 사례MinWoo Byeon
 
[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance TuningJi-Woong Choi
 
Performance test using_j_meter_ver1.2
Performance test using_j_meter_ver1.2Performance test using_j_meter_ver1.2
Performance test using_j_meter_ver1.2Tommy Lee
 
[Hello world 오픈세미나]n grinder helloworld발표자료_저작권free
[Hello world 오픈세미나]n grinder helloworld발표자료_저작권free[Hello world 오픈세미나]n grinder helloworld발표자료_저작권free
[Hello world 오픈세미나]n grinder helloworld발표자료_저작권freeNAVER D2
 
Online service 계층별 성능 모니터링 방안
Online service 계층별 성능 모니터링 방안Online service 계층별 성능 모니터링 방안
Online service 계층별 성능 모니터링 방안중선 곽
 
500.JBoss Troubleshooting Essential
500.JBoss Troubleshooting Essential500.JBoss Troubleshooting Essential
500.JBoss Troubleshooting EssentialOpennaru, inc.
 
속도의 필요성
속도의 필요성속도의 필요성
속도의 필요성민욱 이
 

La actualidad más candente (12)

Apache JMeter로 웹 성능 테스트 방법
Apache JMeter로 웹 성능 테스트 방법Apache JMeter로 웹 성능 테스트 방법
Apache JMeter로 웹 성능 테스트 방법
 
Advanced nGrinder 2nd Edition
Advanced nGrinder 2nd EditionAdvanced nGrinder 2nd Edition
Advanced nGrinder 2nd Edition
 
111 n grinder-deview_day1_track1_session_1_ver_2
111 n grinder-deview_day1_track1_session_1_ver_2111 n grinder-deview_day1_track1_session_1_ver_2
111 n grinder-deview_day1_track1_session_1_ver_2
 
Performance Testing using Loadrunner
Performance Testingusing LoadrunnerPerformance Testingusing Loadrunner
Performance Testing using Loadrunner
 
오픈 소스 도구를 활용한 성능 테스트 방법 및 사례
오픈 소스 도구를 활용한 성능 테스트 방법 및 사례오픈 소스 도구를 활용한 성능 테스트 방법 및 사례
오픈 소스 도구를 활용한 성능 테스트 방법 및 사례
 
[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning
 
Performance test using_j_meter_ver1.2
Performance test using_j_meter_ver1.2Performance test using_j_meter_ver1.2
Performance test using_j_meter_ver1.2
 
Program team rule
Program team ruleProgram team rule
Program team rule
 
[Hello world 오픈세미나]n grinder helloworld발표자료_저작권free
[Hello world 오픈세미나]n grinder helloworld발표자료_저작권free[Hello world 오픈세미나]n grinder helloworld발표자료_저작권free
[Hello world 오픈세미나]n grinder helloworld발표자료_저작권free
 
Online service 계층별 성능 모니터링 방안
Online service 계층별 성능 모니터링 방안Online service 계층별 성능 모니터링 방안
Online service 계층별 성능 모니터링 방안
 
500.JBoss Troubleshooting Essential
500.JBoss Troubleshooting Essential500.JBoss Troubleshooting Essential
500.JBoss Troubleshooting Essential
 
속도의 필요성
속도의 필요성속도의 필요성
속도의 필요성
 

Destacado

디미특 발표자료
디미특 발표자료디미특 발표자료
디미특 발표자료승현 이
 
Win-Win-Win with fx.Platform 2.0
Win-Win-Win with fx.Platform 2.0Win-Win-Win with fx.Platform 2.0
Win-Win-Win with fx.Platform 2.0mosaicnet
 
CAD 기술의 미래
CAD 기술의 미래CAD 기술의 미래
CAD 기술의 미래mosaicnet
 
모바일 플랫폼의 진화와 마켓 트렌드
모바일 플랫폼의 진화와 마켓 트렌드모바일 플랫폼의 진화와 마켓 트렌드
모바일 플랫폼의 진화와 마켓 트렌드mosaicnet
 
ICT를 통한 유엔새천년개발목표 접근 (ICT-facilitated UN Millennium Development Goals: Values...
ICT를 통한 유엔새천년개발목표 접근 (ICT-facilitated UN Millennium Development Goals: Values...ICT를 통한 유엔새천년개발목표 접근 (ICT-facilitated UN Millennium Development Goals: Values...
ICT를 통한 유엔새천년개발목표 접근 (ICT-facilitated UN Millennium Development Goals: Values...Jeongtae Kim
 
세바시 15분 김봉진 우아한형제들 대표 - 사장이 되는 방법
세바시 15분 김봉진 우아한형제들 대표 - 사장이 되는 방법세바시 15분 김봉진 우아한형제들 대표 - 사장이 되는 방법
세바시 15분 김봉진 우아한형제들 대표 - 사장이 되는 방법cbs15min
 
영어 발음 규칙 55개
영어 발음 규칙 55개영어 발음 규칙 55개
영어 발음 규칙 55개Youngjin Lee
 
Ms powerpoint design sourcebook v5
Ms powerpoint design sourcebook v5Ms powerpoint design sourcebook v5
Ms powerpoint design sourcebook v5kys0479
 
정보중심 IT인프라 확충을 위한 데이터관리 시스템 고도화 방안
정보중심 IT인프라 확충을 위한 데이터관리 시스템 고도화 방안정보중심 IT인프라 확충을 위한 데이터관리 시스템 고도화 방안
정보중심 IT인프라 확충을 위한 데이터관리 시스템 고도화 방안Jinsung Son
 
카톡, CGV, 네이버 등 히트 앱 UI/UX 쪼개기(분석)
카톡, CGV, 네이버 등 히트 앱 UI/UX 쪼개기(분석)카톡, CGV, 네이버 등 히트 앱 UI/UX 쪼개기(분석)
카톡, CGV, 네이버 등 히트 앱 UI/UX 쪼개기(분석)mosaicnet
 
모바일 웹/앱 UI & UX 설계 이론(2)
모바일 웹/앱 UI & UX 설계 이론(2)모바일 웹/앱 UI & UX 설계 이론(2)
모바일 웹/앱 UI & UX 설계 이론(2)mosaicnet
 
Open source apm scouter를 통한 관제 관리 jadecross 정환열 수석
Open source apm scouter를 통한 관제  관리 jadecross 정환열 수석Open source apm scouter를 통한 관제  관리 jadecross 정환열 수석
Open source apm scouter를 통한 관제 관리 jadecross 정환열 수석uEngine Solutions
 
클라우드 서비스운영 플랫폼 가루다 Open cloudengine_패스트캣_cto 송상욱
클라우드 서비스운영 플랫폼 가루다 Open cloudengine_패스트캣_cto 송상욱클라우드 서비스운영 플랫폼 가루다 Open cloudengine_패스트캣_cto 송상욱
클라우드 서비스운영 플랫폼 가루다 Open cloudengine_패스트캣_cto 송상욱uEngine Solutions
 
안정적인 서비스 운영 2014.03
안정적인 서비스 운영   2014.03안정적인 서비스 운영   2014.03
안정적인 서비스 운영 2014.03Changyol BAEK
 
Open source APM Scouter로 모니터링 잘 하기
Open source APM Scouter로 모니터링 잘 하기Open source APM Scouter로 모니터링 잘 하기
Open source APM Scouter로 모니터링 잘 하기GunHee Lee
 
수미온 휴대폰 본인확인 Mcerti 표준제안서
수미온 휴대폰 본인확인 Mcerti 표준제안서수미온 휴대폰 본인확인 Mcerti 표준제안서
수미온 휴대폰 본인확인 Mcerti 표준제안서SeungBeom Ha
 
[오픈소스컨설팅]Zabbix Installation and Configuration Guide
[오픈소스컨설팅]Zabbix Installation and Configuration Guide[오픈소스컨설팅]Zabbix Installation and Configuration Guide
[오픈소스컨설팅]Zabbix Installation and Configuration GuideJi-Woong Choi
 
오픈소스 모니터링비교
오픈소스 모니터링비교오픈소스 모니터링비교
오픈소스 모니터링비교sprdd
 
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)Ji-Woong Choi
 

Destacado (20)

디미특 발표자료
디미특 발표자료디미특 발표자료
디미특 발표자료
 
Win-Win-Win with fx.Platform 2.0
Win-Win-Win with fx.Platform 2.0Win-Win-Win with fx.Platform 2.0
Win-Win-Win with fx.Platform 2.0
 
CAD 기술의 미래
CAD 기술의 미래CAD 기술의 미래
CAD 기술의 미래
 
모바일 플랫폼의 진화와 마켓 트렌드
모바일 플랫폼의 진화와 마켓 트렌드모바일 플랫폼의 진화와 마켓 트렌드
모바일 플랫폼의 진화와 마켓 트렌드
 
ICT를 통한 유엔새천년개발목표 접근 (ICT-facilitated UN Millennium Development Goals: Values...
ICT를 통한 유엔새천년개발목표 접근 (ICT-facilitated UN Millennium Development Goals: Values...ICT를 통한 유엔새천년개발목표 접근 (ICT-facilitated UN Millennium Development Goals: Values...
ICT를 통한 유엔새천년개발목표 접근 (ICT-facilitated UN Millennium Development Goals: Values...
 
세바시 15분 김봉진 우아한형제들 대표 - 사장이 되는 방법
세바시 15분 김봉진 우아한형제들 대표 - 사장이 되는 방법세바시 15분 김봉진 우아한형제들 대표 - 사장이 되는 방법
세바시 15분 김봉진 우아한형제들 대표 - 사장이 되는 방법
 
영어 발음 규칙 55개
영어 발음 규칙 55개영어 발음 규칙 55개
영어 발음 규칙 55개
 
Ms powerpoint design sourcebook v5
Ms powerpoint design sourcebook v5Ms powerpoint design sourcebook v5
Ms powerpoint design sourcebook v5
 
정보중심 IT인프라 확충을 위한 데이터관리 시스템 고도화 방안
정보중심 IT인프라 확충을 위한 데이터관리 시스템 고도화 방안정보중심 IT인프라 확충을 위한 데이터관리 시스템 고도화 방안
정보중심 IT인프라 확충을 위한 데이터관리 시스템 고도화 방안
 
카톡, CGV, 네이버 등 히트 앱 UI/UX 쪼개기(분석)
카톡, CGV, 네이버 등 히트 앱 UI/UX 쪼개기(분석)카톡, CGV, 네이버 등 히트 앱 UI/UX 쪼개기(분석)
카톡, CGV, 네이버 등 히트 앱 UI/UX 쪼개기(분석)
 
모바일 웹/앱 UI & UX 설계 이론(2)
모바일 웹/앱 UI & UX 설계 이론(2)모바일 웹/앱 UI & UX 설계 이론(2)
모바일 웹/앱 UI & UX 설계 이론(2)
 
Open source apm scouter를 통한 관제 관리 jadecross 정환열 수석
Open source apm scouter를 통한 관제  관리 jadecross 정환열 수석Open source apm scouter를 통한 관제  관리 jadecross 정환열 수석
Open source apm scouter를 통한 관제 관리 jadecross 정환열 수석
 
클라우드 서비스운영 플랫폼 가루다 Open cloudengine_패스트캣_cto 송상욱
클라우드 서비스운영 플랫폼 가루다 Open cloudengine_패스트캣_cto 송상욱클라우드 서비스운영 플랫폼 가루다 Open cloudengine_패스트캣_cto 송상욱
클라우드 서비스운영 플랫폼 가루다 Open cloudengine_패스트캣_cto 송상욱
 
안정적인 서비스 운영 2014.03
안정적인 서비스 운영   2014.03안정적인 서비스 운영   2014.03
안정적인 서비스 운영 2014.03
 
Open source APM Scouter로 모니터링 잘 하기
Open source APM Scouter로 모니터링 잘 하기Open source APM Scouter로 모니터링 잘 하기
Open source APM Scouter로 모니터링 잘 하기
 
수미온 휴대폰 본인확인 Mcerti 표준제안서
수미온 휴대폰 본인확인 Mcerti 표준제안서수미온 휴대폰 본인확인 Mcerti 표준제안서
수미온 휴대폰 본인확인 Mcerti 표준제안서
 
사용자 중심의 소프트웨어 개발을 위한 UI/UX 참조모델 가이드
사용자 중심의 소프트웨어 개발을 위한 UI/UX 참조모델 가이드사용자 중심의 소프트웨어 개발을 위한 UI/UX 참조모델 가이드
사용자 중심의 소프트웨어 개발을 위한 UI/UX 참조모델 가이드
 
[오픈소스컨설팅]Zabbix Installation and Configuration Guide
[오픈소스컨설팅]Zabbix Installation and Configuration Guide[오픈소스컨설팅]Zabbix Installation and Configuration Guide
[오픈소스컨설팅]Zabbix Installation and Configuration Guide
 
오픈소스 모니터링비교
오픈소스 모니터링비교오픈소스 모니터링비교
오픈소스 모니터링비교
 
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
 

Similar a Visual studio team system with agile tech days 2010

오픈 소스를 활용한 게임 배치 플랫폼 개선 사례
오픈 소스를 활용한 게임 배치 플랫폼 개선 사례오픈 소스를 활용한 게임 배치 플랫폼 개선 사례
오픈 소스를 활용한 게임 배치 플랫폼 개선 사례형석 김
 
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)Sungmin Kim
 
[오픈소스컨설팅]Performance Tuning How To
[오픈소스컨설팅]Performance Tuning How To[오픈소스컨설팅]Performance Tuning How To
[오픈소스컨설팅]Performance Tuning How ToJi-Woong Choi
 
[오픈소스컨설팅]소프트웨어테스팅전략
[오픈소스컨설팅]소프트웨어테스팅전략[오픈소스컨설팅]소프트웨어테스팅전략
[오픈소스컨설팅]소프트웨어테스팅전략Ji-Woong Choi
 
테스트자동화와 TDD
테스트자동화와 TDD테스트자동화와 TDD
테스트자동화와 TDDSunghyouk Bae
 
VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리Gyuwon Yi
 
Opensource APM SCOUTER in practice
Opensource APM SCOUTER in practiceOpensource APM SCOUTER in practice
Opensource APM SCOUTER in practiceGunHee Lee
 
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)중선 곽
 
Giip bp-giip connectivity1703
Giip bp-giip connectivity1703Giip bp-giip connectivity1703
Giip bp-giip connectivity1703Lowy Shin
 
NETSCOUT nGeniusPULSE for Client/Branch/SaaS/Cloud
NETSCOUT nGeniusPULSE for Client/Branch/SaaS/CloudNETSCOUT nGeniusPULSE for Client/Branch/SaaS/Cloud
NETSCOUT nGeniusPULSE for Client/Branch/SaaS/CloudJay Hong
 
투비웨어 AgitarOne Junit 단위테스트자동화 솔루션소개_201608_v1.2
투비웨어 AgitarOne Junit 단위테스트자동화 솔루션소개_201608_v1.2투비웨어 AgitarOne Junit 단위테스트자동화 솔루션소개_201608_v1.2
투비웨어 AgitarOne Junit 단위테스트자동화 솔루션소개_201608_v1.2tobeware
 
Opensource apm scouter in practice
Opensource apm scouter in practiceOpensource apm scouter in practice
Opensource apm scouter in practicedonghoonlee18659041
 
05. it정보화전략-어플리케이션 프레임워크
05. it정보화전략-어플리케이션 프레임워크05. it정보화전략-어플리케이션 프레임워크
05. it정보화전략-어플리케이션 프레임워크InGuen Hwang
 
Istqb 1-소프트웨어테스팅기초-2015
Istqb 1-소프트웨어테스팅기초-2015Istqb 1-소프트웨어테스팅기초-2015
Istqb 1-소프트웨어테스팅기초-2015Jongwon Lee
 
한대희 Web proxy_개발_2006년11월_pas_ktf
한대희 Web proxy_개발_2006년11월_pas_ktf한대희 Web proxy_개발_2006년11월_pas_ktf
한대희 Web proxy_개발_2006년11월_pas_ktfDaehee Han
 
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례if kakao
 
테스트 자동화와 TDD(테스트 주도 개발방법론)
테스트 자동화와 TDD(테스트 주도 개발방법론)테스트 자동화와 TDD(테스트 주도 개발방법론)
테스트 자동화와 TDD(테스트 주도 개발방법론)KH Park (박경훈)
 
Talk IT_ Oracle_한혜영_110720
Talk IT_ Oracle_한혜영_110720Talk IT_ Oracle_한혜영_110720
Talk IT_ Oracle_한혜영_110720Cana Ko
 

Similar a Visual studio team system with agile tech days 2010 (20)

Cygnus unit test
Cygnus unit testCygnus unit test
Cygnus unit test
 
오픈 소스를 활용한 게임 배치 플랫폼 개선 사례
오픈 소스를 활용한 게임 배치 플랫폼 개선 사례오픈 소스를 활용한 게임 배치 플랫폼 개선 사례
오픈 소스를 활용한 게임 배치 플랫폼 개선 사례
 
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)
 
[오픈소스컨설팅]Performance Tuning How To
[오픈소스컨설팅]Performance Tuning How To[오픈소스컨설팅]Performance Tuning How To
[오픈소스컨설팅]Performance Tuning How To
 
[오픈소스컨설팅]소프트웨어테스팅전략
[오픈소스컨설팅]소프트웨어테스팅전략[오픈소스컨설팅]소프트웨어테스팅전략
[오픈소스컨설팅]소프트웨어테스팅전략
 
테스트자동화와 TDD
테스트자동화와 TDD테스트자동화와 TDD
테스트자동화와 TDD
 
VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리
 
Opensource APM SCOUTER in practice
Opensource APM SCOUTER in practiceOpensource APM SCOUTER in practice
Opensource APM SCOUTER in practice
 
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
 
Giip bp-giip connectivity1703
Giip bp-giip connectivity1703Giip bp-giip connectivity1703
Giip bp-giip connectivity1703
 
NETSCOUT nGeniusPULSE for Client/Branch/SaaS/Cloud
NETSCOUT nGeniusPULSE for Client/Branch/SaaS/CloudNETSCOUT nGeniusPULSE for Client/Branch/SaaS/Cloud
NETSCOUT nGeniusPULSE for Client/Branch/SaaS/Cloud
 
투비웨어 AgitarOne Junit 단위테스트자동화 솔루션소개_201608_v1.2
투비웨어 AgitarOne Junit 단위테스트자동화 솔루션소개_201608_v1.2투비웨어 AgitarOne Junit 단위테스트자동화 솔루션소개_201608_v1.2
투비웨어 AgitarOne Junit 단위테스트자동화 솔루션소개_201608_v1.2
 
Opensource apm scouter in practice
Opensource apm scouter in practiceOpensource apm scouter in practice
Opensource apm scouter in practice
 
Opensource apm scouter in practice
Opensource apm scouter in practiceOpensource apm scouter in practice
Opensource apm scouter in practice
 
05. it정보화전략-어플리케이션 프레임워크
05. it정보화전략-어플리케이션 프레임워크05. it정보화전략-어플리케이션 프레임워크
05. it정보화전략-어플리케이션 프레임워크
 
Istqb 1-소프트웨어테스팅기초-2015
Istqb 1-소프트웨어테스팅기초-2015Istqb 1-소프트웨어테스팅기초-2015
Istqb 1-소프트웨어테스팅기초-2015
 
한대희 Web proxy_개발_2006년11월_pas_ktf
한대희 Web proxy_개발_2006년11월_pas_ktf한대희 Web proxy_개발_2006년11월_pas_ktf
한대희 Web proxy_개발_2006년11월_pas_ktf
 
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
 
테스트 자동화와 TDD(테스트 주도 개발방법론)
테스트 자동화와 TDD(테스트 주도 개발방법론)테스트 자동화와 TDD(테스트 주도 개발방법론)
테스트 자동화와 TDD(테스트 주도 개발방법론)
 
Talk IT_ Oracle_한혜영_110720
Talk IT_ Oracle_한혜영_110720Talk IT_ Oracle_한혜영_110720
Talk IT_ Oracle_한혜영_110720
 

Más de 준일 엄

Understanding open api service 엄준일
Understanding open api service 엄준일Understanding open api service 엄준일
Understanding open api service 엄준일준일 엄
 
배포 아키텍처_2011-09-16_엄준일
배포 아키텍처_2011-09-16_엄준일배포 아키텍처_2011-09-16_엄준일
배포 아키텍처_2011-09-16_엄준일준일 엄
 
배포 프로세스_퀵스타트_20111027_엄준일
배포 프로세스_퀵스타트_20111027_엄준일배포 프로세스_퀵스타트_20111027_엄준일
배포 프로세스_퀵스타트_20111027_엄준일준일 엄
 
.NET 장애 개선 로드맵
.NET 장애 개선 로드맵.NET 장애 개선 로드맵
.NET 장애 개선 로드맵준일 엄
 
.NET 장애 개선 로드맵
.NET 장애 개선 로드맵.NET 장애 개선 로드맵
.NET 장애 개선 로드맵준일 엄
 
Umc.Core Frameworks
Umc.Core FrameworksUmc.Core Frameworks
Umc.Core Frameworks준일 엄
 
Build Team Foundation Architecture
Build Team Foundation ArchitectureBuild Team Foundation Architecture
Build Team Foundation Architecture준일 엄
 
Understanding Open Api Service
Understanding Open Api ServiceUnderstanding Open Api Service
Understanding Open Api Service준일 엄
 
엄준일 04일차 HTML/Javascript 교육
엄준일 04일차 HTML/Javascript 교육엄준일 04일차 HTML/Javascript 교육
엄준일 04일차 HTML/Javascript 교육준일 엄
 
컨설팅 프로세스
컨설팅 프로세스컨설팅 프로세스
컨설팅 프로세스준일 엄
 
Umc 와 함께하는 asp.net 해킹하기 (1)
Umc 와 함께하는 asp.net 해킹하기 (1)Umc 와 함께하는 asp.net 해킹하기 (1)
Umc 와 함께하는 asp.net 해킹하기 (1)준일 엄
 
개발자가 알아야 할 .NET Framework 하이라이트 2.0 에서 3.5 SP1 까지…
개발자가 알아야 할 .NET Framework 하이라이트 2.0 에서 3.5 SP1 까지… 개발자가 알아야 할 .NET Framework 하이라이트 2.0 에서 3.5 SP1 까지…
개발자가 알아야 할 .NET Framework 하이라이트 2.0 에서 3.5 SP1 까지… 준일 엄
 
Visual Studio 2008 SP1
Visual Studio 2008 SP1Visual Studio 2008 SP1
Visual Studio 2008 SP1준일 엄
 
Visual Studio 해부학
Visual Studio 해부학Visual Studio 해부학
Visual Studio 해부학준일 엄
 
[GAT/GAX] Guidance Automation Extensions
[GAT/GAX] Guidance Automation Extensions[GAT/GAX] Guidance Automation Extensions
[GAT/GAX] Guidance Automation Extensions준일 엄
 
[Visual studio camp #1] Enterprise Software Testing
[Visual studio camp #1] Enterprise Software Testing[Visual studio camp #1] Enterprise Software Testing
[Visual studio camp #1] Enterprise Software Testing준일 엄
 
Managed Extensibility Framework
Managed Extensibility FrameworkManaged Extensibility Framework
Managed Extensibility Framework준일 엄
 
Testing 엄준일의 slide_share
Testing 엄준일의 slide_shareTesting 엄준일의 slide_share
Testing 엄준일의 slide_share준일 엄
 

Más de 준일 엄 (18)

Understanding open api service 엄준일
Understanding open api service 엄준일Understanding open api service 엄준일
Understanding open api service 엄준일
 
배포 아키텍처_2011-09-16_엄준일
배포 아키텍처_2011-09-16_엄준일배포 아키텍처_2011-09-16_엄준일
배포 아키텍처_2011-09-16_엄준일
 
배포 프로세스_퀵스타트_20111027_엄준일
배포 프로세스_퀵스타트_20111027_엄준일배포 프로세스_퀵스타트_20111027_엄준일
배포 프로세스_퀵스타트_20111027_엄준일
 
.NET 장애 개선 로드맵
.NET 장애 개선 로드맵.NET 장애 개선 로드맵
.NET 장애 개선 로드맵
 
.NET 장애 개선 로드맵
.NET 장애 개선 로드맵.NET 장애 개선 로드맵
.NET 장애 개선 로드맵
 
Umc.Core Frameworks
Umc.Core FrameworksUmc.Core Frameworks
Umc.Core Frameworks
 
Build Team Foundation Architecture
Build Team Foundation ArchitectureBuild Team Foundation Architecture
Build Team Foundation Architecture
 
Understanding Open Api Service
Understanding Open Api ServiceUnderstanding Open Api Service
Understanding Open Api Service
 
엄준일 04일차 HTML/Javascript 교육
엄준일 04일차 HTML/Javascript 교육엄준일 04일차 HTML/Javascript 교육
엄준일 04일차 HTML/Javascript 교육
 
컨설팅 프로세스
컨설팅 프로세스컨설팅 프로세스
컨설팅 프로세스
 
Umc 와 함께하는 asp.net 해킹하기 (1)
Umc 와 함께하는 asp.net 해킹하기 (1)Umc 와 함께하는 asp.net 해킹하기 (1)
Umc 와 함께하는 asp.net 해킹하기 (1)
 
개발자가 알아야 할 .NET Framework 하이라이트 2.0 에서 3.5 SP1 까지…
개발자가 알아야 할 .NET Framework 하이라이트 2.0 에서 3.5 SP1 까지… 개발자가 알아야 할 .NET Framework 하이라이트 2.0 에서 3.5 SP1 까지…
개발자가 알아야 할 .NET Framework 하이라이트 2.0 에서 3.5 SP1 까지…
 
Visual Studio 2008 SP1
Visual Studio 2008 SP1Visual Studio 2008 SP1
Visual Studio 2008 SP1
 
Visual Studio 해부학
Visual Studio 해부학Visual Studio 해부학
Visual Studio 해부학
 
[GAT/GAX] Guidance Automation Extensions
[GAT/GAX] Guidance Automation Extensions[GAT/GAX] Guidance Automation Extensions
[GAT/GAX] Guidance Automation Extensions
 
[Visual studio camp #1] Enterprise Software Testing
[Visual studio camp #1] Enterprise Software Testing[Visual studio camp #1] Enterprise Software Testing
[Visual studio camp #1] Enterprise Software Testing
 
Managed Extensibility Framework
Managed Extensibility FrameworkManaged Extensibility Framework
Managed Extensibility Framework
 
Testing 엄준일의 slide_share
Testing 엄준일의 slide_shareTesting 엄준일의 slide_share
Testing 엄준일의 slide_share
 

Visual studio team system with agile tech days 2010

  • 1. Visual Studio Team System with Agile 엄준일 공성의
  • 3. • 비주얼 스튜디오의 테스트 기술 – 단위 테스트 – PEX 를 이용한 화이트박스 테스팅 – Code Contract 를 통한 명확한 코드 계약 목차
  • 4. 단위 테스트 작은 버그 작은 버그 증식 큰 버그 버그의 증식 재앙 • 최소한의 기능이 동작하는 것을 보장 • 오류로 인한 오류증식 감지 • 로직, 플랫폼, 통합 문제를 식별 가능
  • 5. 단위 테스트의 어려움 데이터 중심 단위 테스트 사용자 중심 단위 테스트 •사용자 동작 시 오류 최소화 •런타임 오류 최소화 Dummy Stub Spy Fake •테스트 복잡도 증가 •테스트 코드 양의 증가 BDD + Mock •테스트의 정확도 증가 •소프트웨어 품질 향상 테스트 교육 및 테스트 전문가/팀 필요 테스트의 복잡성을 단순화 •최소한의 런타임 동작을 보장 •관련 있는 컴포넌트간의 연관된 오류 최소화 •컴포넌트간에 자연스럽게 결합도 감소 •데이터의 트랜잭션을 보장 향상 •데이터의 통일성 보장 향상 •데이터의 품질 향상 •데이터베이스의 부하 증가 •더미(Dummy) 데이터의 증가 •테스트 실행 성능 저하 •테스트를 위하여 추상화된 패턴을 강제화 •패턴을 통한 리팩토링 양의 증가로 생산성 저하
  • 6. 단위 테스트를 할 수록… 소프트웨어 품질 향상 시간, 리소스, 비용 증가
  • 7. PEX • Microsoft Research 팀에서 진행중인 프로 젝트 • WhiteBox Unit Test • Parameterized Unit Test • Code Contract 와의 통합
  • 8. • 코드 계약을 통해 명시적인 조건을 선언 • 코드 계약을 통해 할 수 있는 것들 – 테스트의 간소화 – 컴파일 시에 코드 정적 검사 – 문서화 Code Contract
  • 9. • 단위 테스트 • PEX http://research.microsoft.com/en-us/projects/pex/documentation.aspx • Code Contract http://msdn.microsoft.com/en-us/devlabs/dd491992.aspx 참고 자료
  • 11. • Code Review개요, 장점 • VSTS 2010에서 향상된 Code Review – 규칙 세트 – 8개의 새로운 Data Flow 규칙 목차
  • 12. • Code Review는 적은 비용으로, 개발자가 흔히 저지를 수 있는 실수로 인한 버그들을 줄일 수 있는 가장 쉬운 방법 중에 하나입니 다. Code Review
  • 13. • 코드리뷰가 제대로 수행된다면, 개발 중에 많은 버그를 미리 탐지해서 해결해낼 수 있 습니다. Code Review 출처: http://smartbear.com/white- paper.php?content=docs/articles/Case-For-Code- Review.html
  • 14. • Microsoft에서 제안하는 닷넷 프레임워크에서의 디자인 가이드라인 과 성능이나 보안, 신뢰성 등의 요소에 대한 Best Practice 등으로 이 루어진 200개 이상의 Rule을 기반으로 Code를 검사하고 결함을 발견 해 줍니다. Code Review of VSTS 2010
  • 15. • Visual Studio Team System 2010에서 코드 리뷰 기능 향상 – 규칙 세트 – 8개의 새로운 Data Flow 규칙 출처: http://blogs.msdn.com/fxcop/archive/2008/10/30/new-code-analysis- features-in-visual-studio-2010-september-08-ctp.aspx Code review of VSTS 2010
  • 16. • 코드 분석 규칙들을 미리 정해진 Set으로 관리할 수 있는 기능입니다. • 프로젝트에 규칙 세트를 지정하는 것으로 코드 분석을 커스터마이징 할 수 있게 되었습니다. • Team Foundation Server의 Check-In Policy에도 이 규칙 세트를 적용 가능합니다. 규칙 세트 (Rule Set)
  • 17. • VSTS2010의 기본 규칙 세트 – Minimum Recommended Rule Set – Basic Correctness Rule Set – Basic Design Guideline Rule Set – Extended Correctness Rule Set – Extended Design Guideline Rule Set – Globalization Rule Set – Security Rule Set – All Rule Set 규칙 세트 (Rule Set)
  • 18. • 새롭게 추가된 Data Flow Rules – CA1062 ValidateArgumentsOfPublicMethods : 함수의 인자 유효성검사 여부 – CA1303 DoNotPassLiteralsAsLocalizedParameters : 문자열 인자의 Globalization – CA2100 ReviewSqlQueriesForSecurityVulnerabilities : SQL Injection 취약점 – CA2202 DoNotDisposeObjectsMultipleTimes : Dispose를 여러 번 호출하는지 – CA2204 LiteralsShouldBeSpelledCorrectly : 스펠링 – CA2215 DisposeMethodsShouldCallBaseClassDispose : Base 클래스의 Dispose 를 호출하는지 – CA2241 ProvideCorrectArgumentsToFormattingMethods : Format 함수 인자 – CA2000 DisposeObjectsBeforeLosingScope : Dispose를 호출하는지 • 위에서 보는 것처럼, 복잡한 코드 상의 결함을 탐지하는 것이 많기 때문에, 아주 유용한 규칙들입니다. New Data Flow Rules
  • 19. • 새롭게 추가된 8개의 Data Flow 규칙들은 실제로 는 예전 VS 2005 에서 존재했던 규칙들입니다. • 하지만, VS 2008에서는 성능 등의 문제가 발생하 면서 Data Flow 분석 엔진이 빠지면서, 같이 빠지 게 되었습니다. • 이번 VSTS 2010에서는 새롭게 Data Flow 분석 엔진으로 Phoenix 프레임워크를 탑재하게 되면 서 다시 복귀하게 되었습니다. New Data Flow Rules
  • 20. • Phoenix Framework – 피닉스 프레임워크는 향후 마이크로소프트 컴파일러 기술을 위한 새로운 코드 최적화/분석 프레임워크입니 다. • https://connect.microsoft.com/Phoenix • http://research.microsoft.com/en- us/collaboration/focus/cs/phoenix.aspx – 피닉스 프레임워크의 탑재로, SQL Injection 취약점과 같은 파악하기 힘든 취약점들의 Review가 더 강화되었 습니다. New Data Flow Rules
  • 21. • Phoenix Framework – 피닉스 프레임워크는 C++/CLI 기반으로 만들 어졌습니다. – 피닉스 프레임워크를 통해서 할 수 있는 것들 • 컴파일러 • Code Generator, Code Optimizer • 코드 리뷰와 같은 분석 툴 New Data Flow Rules