가상화를 통한 24x365 기반의 테스트 환경 구축 HongSeok, Kim (hongseok@kr.ibm.com) Rational Software, IBM Korea
Agenda Testing Challenges Test Virtualization Continuous Integration Testing Summary Q&A 2
소프트웨어 품질 : 테스트 환경 구성의 위험요소 증가 소프트웨어 개발 비용의 60 ~ 80 % 는 테스트 중 버그 수정에 따른 재 작업에 의한 것으로 추정 * 품질 관련 비용 증가 테스트 지연과 생산성 저하 품질과 생산성의 조화 Testing costs Public Cloud Routing Web/ Service Internet Collaboration Third-party Services Portals Directory Identity Content Providers Archives File systems Private Cloud EJB Business Partners Shared Services Messaging Services Traditional Testing Other costs Data Warehouse Mainframe Enterprise Service Bus Heterogeneous Environments 지속적인 인건비 상승 및 테스트 환경 구축 비용 상승 블랙박스 테스트, 통합 테스트 지연에 따른 생산성 저하 빅뱅형식의 전통적 테스트 방법의 품질 저하 3 * Source:http://www.sei.cmu.edu/about/message/
현대화된 응용프로그램? 가볍다 신선하다 새롭다 단순하다. 하지만, 20년이상 된 IT Legacy 시스템과의 연동이 불가결의 요소! 4
통합 테스트를 어렵게 만드는 복잡한 환경 Content Providers Business Partners Web/ Internet Portals Shared Services Routing Service Messaging Services Collaboration Third-party Services Application Directory Identity File systems EJB Enterprise Service Bus Data Warehouse Mainframe Archives 5
Testing Challenge 테스트환경구축비용측면 테스트 환경 구축 비용 상승 측면 인건비 / 소프트웨어/ 하드웨어 비용 상승 복잡한 테스트 환경 증가 테스트 환경구성 비용의 상승 인건비 / 소프트웨어 / 하드웨어 비용 상승 : 2009년도 이후 글로벌 하게 인건비가 가파르게 상승 a Fortune 500 에 속하는 회사들은 500만 ~ 3000만 달러의 비용을 테스트환경 구축에 사용b 모 글로벌 금융회사의 경우 지난 13년간 5배 이상의 테스트 환경을 구축 b 자료원 : Aon Hewitt - Annual India Salary Increase Survey 2012 a The Times of India, IT sector to get 12% average salary hike in 2011, TOI Tech & Agencies, Mar 8, 2011. b. IBM customer reference 6
7
8
9
Testing Challenge 개발자 생산성 측면 개발자 생산성 측면 화면과 연관된 서비스가 모두 개발 되어있거나, 백엔드 서비스가 가용한 상태에서만 테스트 통합 테스트 시에 발견되는 버그는 수정에 많은 시간이 소요 테스트 사이클 과 개발자 생산성 개별 프로세스의 자동화에 비해 팀, 조직, 비즈니스 프로세스를 변화 시키는 것이 생산성을 향상 시킴 a Defect 를 줄이는 비율은 개발 시간과 밀접한 연관이 있음 결함제거율 50% 미만인 경우 개발기간이 늘어남 b 결함 검출률은 블랙박스 테스트가 높지만, 수정비용이 10~100배 발생 10 a Implementation costs are per person per year. This data is based on hundreds of client interactions in the IBM Rational services organization, as observed by the Rational VP of services b. IBM Caper Jones,
기존 테스트 방식의 문제점 Requirements Unit Tests Big Bang Quality Gate Sys Tests 다수의 버그가 한꺼번에 발견됨 다수의 잠재적인 문제 보다 큰 리스크 비용 과다 발생 Performance UAT OAT 11
Testing Challenge 제품 품질 측면 제품 품질 향상 측면 (Quality Test) 품질에 신경 쓰지 않는 조직은 실제 수익 저하 현상을 초래 실제 테스트 시간 감소에 따른 품질 저하 현상 테스트 환경이 개발 초기(서비스, 라이브러리) 에는 구축되지 않아 테스트는 뒤로 미뤄짐 잠재 위험 요소의 제거와 품질 향상 Cquality = Cconformance + Cnonconformance Conformance Cost : 테스팅(결함발견) 과 QA (결함예방) nonconformance Cost : 결함수정, 재시험, 불만족 고객응대, 회사 이미지 손상, 사업기회 손실등 a 74% 의 프로젝트가 품질이슈와 함께 프로젝트 딜레이를 경험 b 테스트 시간의 30~50% 는 테스트 환경 구축에 사용 b Balanced Approach Quality Time Risk Cost 단순하게 Defect 를 줄이는 것이 최종 목표가 아님 Correctness / 가용성 / 유지보수성 / 통합성 등의 증진을 포함 잠정적인 위험요소를 제거하고, 사용자의 기대를 만족 서비스 개발 초기 부터 지속적인 테스트 12 a Quality of cost by Juran b. NIST, Planning Report 2002-2003. The Economic Impacts of Inadequate Infrastructure for Software Testing, May 2002.
새로운 테스트 방식의 제안 Requirements Unit Tests Big Bang 테스팅 가속화 결함 수정비용 절감 리스크 감소 Integration Tests Sys Tests Sys Tests UAT OAT Performance 13
테스팅의 종류 The Premier Event for Software and Systems Innovation White box 프로그램 내부 구조의 검토를 통한 테스팅 Grey box 로그, 데이터베이스, 메시지 스키마 등을 함께 Input / Output 의 검토와 함께 진행 Black box 프로그램의 Input / Output 의 검토를 통한 테스팅 INP UT OUT PUT 14
Functional testing The Premier Event for Software and Systems Innovation 15
Stubbing 16
서브 시스템을 가상화 17
전체 대상 응용프로그램 / 레이어를 가상화 18
IBM Rational 테스트 가상화 솔루션 A smarter solution to better quality Rational Test Workbench 테스터 및 개발자가 활용하는 데스크탑 솔루션 : 가상 서비스를 캡쳐 / 모델링 응용프로그램의 화면 (User Interface) 이 구현되기 전에 서비스와 애플리케이션에 대한 통합 테스트를 실시 (SOA, BPM) Rational Performance Test Server Rational Test Workbench 에서 작성된 테스트 스크립트를 이용하여 성능 테스트를 수행 가상 서비스를 조합하여 성능 테스트 수행 시스템 병목 현상을 찾아 내기 위한 프로브 (Probe) 시스템 Rational Test Virtualization Server 가상화 서버 솔루션 : 이질적인 하드웨어, 소프트웨어, 서비스들을 가상화 하여, 24X7 기반의 테스팅 역량을 제공하기 위한 통합 환경을 제공 전통적인 테스팅 환경의 인프라 비용 감소 다양한 종류의 프로토콜을 사용하는 시스템의 인터페이스 정의로 부터 가상화된 서비스를 작성 (HTTP, 웹 서비스, SOA, JMS, TIBCO, IBM WebSphere MQ, Oracle, etc.) Rational Test Workbench Rational Performance Test Server Databases App Under Test Mainframe applications Developers & Testers Third-party Services Packaged apps, messaging services, etc. Rational Test Virtualization Server 19
테스트 개발의 가속화 The Premier Event for Software and Systems Innovation 테스트 프로젝트와 응용프로그램 환경을 동기화 논리적/물리적 아키텍처 수립으로 테스트 대상 자산의 개발 가속화 WSDL, SAP, Oracle Fusion, TIBCO, WebSphere 등의 환경을 지원 20
코딩 없는 테스트 개발 코딩 없이 테스트 자원 개발 실제 운영되는 시스템에서 메시지를 캡쳐 프로젝트 아키텍처에서 정의된 메시지 Requirement 를통해 생성 Form 과 마법사 기반의 UI 프로젝트 고유의 메시지를 처리하기 위한 트랜스포트, 포맷정의 (Formatter) 작성 가능 업계 표준 메시지 포맷 지원 SWIFT, IATA, EDI, HL7, FIX 등 21
유연한 테스트 실행 방법 복합적인 응용 프로그램의 특정 컴포넌트를 분리하여 집중 테스트 오류 처리를 위한 이벤트와 메시지를 실시간으로 모니터링 메시지 검증 후 오류처리를 쉽게 해주는 마법사 기능 지원 외부 시스템 과의 연계를 쉽게 해주는 명령어 기반 인터페이스 (Command Line Interface) 지원 Rational Quality Manger 연동 (HP Quality Center 지원) 22
가상화 테스트 환경 구축 코딩 없이 가상화된 응용프로그램을 생성 하여 테스트 의존성 제거 이미 캡쳐 되거나 작성된 테스트 메시지로 가상화된 서비스 생성 각 환경의 가상화된 응용프로그램을 중앙 집중 관리 방법 제공 테스트 중인 시스템의 변경 없이 가상화 테스트 응용프로그램 변경 개발 전 단계에 걸쳐 보다 빠르고 쉽게 테스팅 23
시스템의 성능 측정 방법의 다양화 전통적인 성능 테스트는 너무 늦은 단계에서야 실행됨 점진적인 통합 테스트에서 작성된 테스트 케이스를 재활용 하여 실제 부하 테스트 시나리오를 수행 가상화된 서비스와의 결합을 통해 점진적인 성능 지수 제공 가상화 서비스에서 사용된 데이터 재사용 기능 테스트에서 도출된 병목현상을 통합 성능 테스트로 확장 24
응용프로그램 테스트 가상화 솔루션 가상의 응용프로그램 테스트로 API 나 함수 수준의 기능 테스트 가능 비용 절감 복잡한 테스트 환경 구축에 필요한 인건비, 하드웨어, 소프트웨어 비용 절감 위험 요소 감소 빅뱅 형식의 개발에 따라 통합의 이슈가 늦게 발견되는 위험요소가 감소 테스트 시간 감소 테스트 환경의 구축과 가용성에의해낭비되는 시간을 획기적으로 감소 Capture / Model 가상화 환경 25
사례 분석 미국 내 대형 통신사 도입 이전 시나리오 고객 현황: 응용프로그램간 상호 의존성이 높아 개발 후반부에서야 테스트 가 가능하고, 이에 따라 테스트 스케쥴의 압박이 심함 테스트 리소스들은 높은 다운타임을 가지며, 이에 따라 테스트 의존성이 높은 응용프로그램들은 대기 할 수 밖에 없는 상황 일부 팀은 50% 다운타임 현상 최종 릴리스는 지연되고, 예산 또한 초과 되었으나, 품질 수준은 기대 이하임 UI HTTP Service WS WS Service Service WS Central App WS Service 중앙에 있는 응용프로그램은 다른 서비스에서 제공하는 메시지에 의존성이 높고, 이에 따라 테스트 스케쥴에 전체적인 영향을 미침 JDBC SP Corba Service Service Service 26
사례 분석 미국 내 대형 통신사 솔루션 IBM 애플리케이션 가상화 서비스: 의존성이 있는 다양한 응용프로그램들을 시뮬레이션 하는 가상화된 테스트 환경 구축 7개의 주요 응용 서비스들에 대해 가상화된 서비스 환경을 구축하고, 한 개의 중요한 응용프로그램을 테스트 자동화 End-to-end ordering / service delivery Joint System Testing (JST) Unit Testing (UT) Developer unit testing Integration Testing (IT) Developer integration testing Functional System Testing (ST) Application testing with virtual services Pairwise System Testing (ST) Application testing with live interfaces Integration System Testing (IST) User Acceptance Testing (UAT) User Certification Testing (UCT) 27 End-to-end Billing
사례 분석 미국 내 대형 통신사 초기 프로젝트 결과 기능 / 시스템 테스트 사이클 타임 평균 22% 감소 30일 안에100% 이상 ROI 달성 시스템 테스트 일정의 단축에 따라 보다 빠른 시점에 많은 테스트를 수행 결함 검출률 증가 와 프로젝트 후반부 테스트 단계에서 결함이 발견되는 비율 감소 예기치 않은 시스템 다운타임에 따른 테스트 중단 없이 지속적인 테스트 가능 개발자가 보다 적은 결함을 가진 소프트웨어를 QA 팀으로 릴리스 하게 됨으로써, 현업 담당자 들이 두단계정도먼저결함을검출할 수 있게되었다. - Delivery Manager Functional Sys Test Avg Cycle Time Reduction 50% 45% 40% 35% 30% 25% 20% 15% 10% 5% 0% Cycle Time Results App1 App2 App3 App4 App5 App6 App7 App8 Avg 32% 32% 19% 19% 4% 3% 42% 26% 28
Solution: 가상화 테스트 환경 테스트환경구축비용절감/ 병렬개발 Team A Team B Team C Team D 인터페이스 인터페이스 인터페이스 인터페이스 UDDI Registry ERP Legacy 가상환경 생성 UDDI Registry ERP Legacy UDDI Registry ERP Legacy UDDI Registry Database Mainframe ERP Legacy Database Mainframe Database Mainframe Database Mainframe 1 2 n Real Environment Virtual Environments 29
Solution: 지속적인 통합 테스트 점진적이고, 지속적인 통합 테스트의 엔진 테스트 가상화 테스트 가상화는 지속적이고, 점진적인 통합 테스트를 가능케 하는 원동력 서비스, 애플리케이션, 시스템 이 각각의 통합 사이클에 따라 순차적으로 우선순위별로 개발 할 수 있도록 통제 가상 서비스는 서비스 스펙 또는 레코딩을 통해 실존하는 트래픽을 캡쳐 가상 서비스를 커스터마이즈 하고, 개발자와 테스터가 사용 할 수 있도록 하여 점진적 테스트를 지원 실제 서비스 / APP 가상 서비스 / APP Integration Integration Incremental Testing Integration Testing Testing Integration Testing 30
Benefit : 새로운 접근법의 비용 절감효과 표준 방법에 의한 오류검출 오류 수정 비용 지속적인 통합테스트를 통한 오류검출 검출된 오류 코딩 단위테스팅 통합 테스팅 End to End 31
Benefit : 새로운접근법의품질개선효과 점진적인 통합 테스트 (Incremental Integration Testing) 일반적인 접근법 Big Bang 품질 (%) 빅뱅 형태의 통합 테스트 이후 수정이 어려워 지고, 테스트 해야 할 케이스가 기하 급수적으로 증가하여, 품질은 매우 저하 됩니다. 시간 32
IBM Rational Test Virtualization Solution 하드웨어,소프트웨어,인건비등 테스트 환경 구성 비용 절감! 테스트 제약성 감소로 개발자 생산성 향상! 빠른 통합 테스트로 제품 품질 향상! 테스트 환경구성 비용의 절감 효과 테스트 사이클 축소와 개발자 생산성 향상 테스트 환경 구축 비용을 90% 까지 절감 가능 (하드웨어 / 소프트웨어) 사용할 때마다 비용을 지불하는 웹서비스 접근에 대한 비용을 절감 테스팅 환경 구축에 사용되는 인건비의 80% 이상을 절감 (인건비) 기대효과 : 테스트 환경 구축 비용 80% 이상 감소, 테스트 인건비 20% 감소 테스트 환경 구성에 장기간 소요 되던 문제가 단기간으로 축소 되면서 원활한 테스트를 지원 UI 개발과 무관하게 개발 중에 반복 테스트 (점진적인 통합테스트) 가 가능해 짐 테스터는 환경구성에 대한 제약이 낮아짐에 따라 보다 테스트 행위 자체에 집중 기대효과 : 테스트 사이클 20% 감소를 통한 생산성 향상 효과 잠재 위험 요소의 제거와 품질 향상 개발자는 소프트웨어를 보다 빨리 통합 테스트 환경에서 검증 할수있게됨(서비스 / API 레벨) 시스템 내의 환경들을 가상화 하여 대형 개발팀의 경우 응용프로그램의 서로 다른 부분 또는 시스템을 병렬로 개발 할 수 있게 됨 기대효과 : 결함 수정비용 20% 향상효과및품질향상 33
Rational Test Virtualization Solution 타의 추종을 불허하는 자동 테스트 기능으로 소프트웨어 품질을 보장 소프트웨어 품질 강화 이질적인 하드웨어, 소프트웨어, 서비스를 가상화 함으로써 24x365 테스팅 역량을 제공 전통적인 테스트 환경의 인프라 비용을 획기적으로 감소 다양한 하드웨어, 소프트웨어, 클라우드 기반에 의존하지 않는 End to End 의 지속적인통합테스트를통해소프트웨어 개발 생산성 증가 민첩한(Agile) 소프트웨어 개발 관행을 개선 개발과, 테스트의 속도를 개선하고 소프트웨어 품질 활동을 가속화 전체 팀간의 소프트웨어 테스트 환경을 공유하고, 나눠쓸수있으므로병렬개발을가능케함 개발 팀간 추적성과 협업 환경을 위한 정보를 공유 34
www.ibm.com/software/rational 35
www.ibm.com/software/rational Copyright IBM Corporation 2012. All rights reserved. The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, these materials. Nothing contained in these materials is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. References in these materials to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in these materials may change at any time at IBM s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. IBM, the IBM logo, Rational, the Rational logo, Telelogic, the Telelogic logo, and other IBM products and services are trademarks of the International Business Machines Corporation, in the United States, other countries or both. Other company, product, or service names may be trademarks or service marks of others. 36