Test early , Fix fast -IBM Rational Test Workbench · (테스트케이스,시나리오,스위트)...

36
Test early , Fix fast - IBM Rational Test Workbench 테스트 자동화 및 서비스 가상화를 통한 끊김 없는 테스트 환경 구축 전략 김홍석 실장 [email protected] Rational Software, 한국IBM

Transcript of Test early , Fix fast -IBM Rational Test Workbench · (테스트케이스,시나리오,스위트)...

Test early , Fix fast

- IBM Rational Test Workbench 테스트 자동화 및 서비스 가상화를 통한끊김 없는 테스트 환경 구축 전략

김홍석 실장

[email protected]

Rational Software, 한국IBM

1

Agenda

� Testing Challenges

� Effective Test and quality mgm’t

� Mobile test automation

� Summary

2

Software Testing 이 필요한 이유 , 품질 = 돈 !

� 소프트웨어는 인간이 만든 어떤 제품보다 비즈니스에 더 큰악영향을 끼칠 수 있다.

� 나쁜 소프트웨어 품질 이슈는 인간 역사상 가장 비싼 이슈이다. (미국에서 연간 1500억 달러이상, 전세계적으로 연간 5000억 달러이상)

� 좋지 않은 소프트웨어 품질로 인해 취소된 프로젝트는 동일규모, 동일유형의 프로젝트보다 15% 이상 더 많은 비용을 사용한다.

� 소프트웨어의 품질을 향상 시키는 것은 모든 산업계에서 가장중요시 되는 문제이다.

� 낮은 품질을 유지하는 경우 코딩 단계까지는 더 낮은 비용이 들지만, 결국 테스트와 유지보수 단계로 가면 더 높은 비용이 들게 된다.

출처 : Capers Jones, 2010

3

효과적인 테스트 기법의 목표는 ?

결함 수정비용은 낮게 , 결함검출은 빨리 !

1. 유형별 분류 :

� Dynamic Test (BlackBox Test)

� Static Test (WhiteBox Test)

2. 단계별 분류 :

� Design Review

� Code Review , Code Inspection

� Unit Testing

� Integration Testing

� System Integration Testing

� User Acceptance Testing

� Operational Acceptance Testing

WhiteBox : 프로젝트초반가능, 낮은결함검출율

BlackBox :

프로젝트후반가능, 높은결함검출율

효과적인 테스트 기법 :

낮은결함수정비용과높은결함검출율의조합

즉, 프로젝트초반에결함을많이검출할수록

가능하면테스트를자동화할수록높은효과

4

테스트 케이스란 무엇인가 ?

실행 조건, 입력 값, 예상결과 값의 조합 !

� 테스트 케이스 ?

IEEE Standard 610 (1990) 의 정의

– “A set of test inputs, execution conditions, and expected results

developed for a particular objective, such as to exercise a particular

program path or to verify compliance with a specific requirement.”

– 테스트 케이스의 주요 요소

• 응용프로그램 또는 시스템의 사전 실행 조건, 상태

• 입력 값

• 예상 결과 값

– 테스트 자동화 의 핵심은 ?

• 예상 결과 값을 아는 것 !

출처 : IBM QSE Workgroup report, 2010

5

Designing automated tests vs Automating manual tests

매뉴얼 테스트케이스

입력값환경

실행 스텝검증 스텝

테스트 케이스

사전 조건입력 값

예상 결과 값

자동화 환경

컴포넌트도구 지원

실행 환경

하드웨어운영체제미들 웨어

출처 : IBM QSE Workgroup report, 2010

6

자동화된 테스트 환경의 컴포넌트 아키텍처

출처 : IBM QSE Workgroup report, 2010

7

효율적인 자동화 테스트 환경을 위한 대 전제재 사용성, 지속성, 확장성 !!

� 응용프로그램 의 변경이 일어나도 테스트를 충분히 하지 못한다.

� 공통 컴포넌트의 경우 전수 테스트가 필요하지만 , 현실적으로불가능하다.

� 다양한 케이스에 대하여 테스트를 하지 못해서 장애를 경험했다.

� 내 쪽에서 응용프로그램을 다 개발 못했는데 대외계 시스템과테스트가 필요하다.

� 개발자가 엑셀에 입력한 데이터,시나리오를 기반으로 품질팀에서 수동 테스트를 하는데 시간이 많이 소요

� 입출력 값, 프로그램, 환경들이 바뀌면 기존의 테스트 케이스는무용지물 !

� PMS,TMS 와 같은 관리 솔루션에서 테스트 관리 기능이포함되어야 한다. (테스트 커버리지 , 진행 히스토리, 테스트케이스 관리 등)

� 테스트 관리가 부족해서 품질의 저하를 경험한다.

테스트커버리지확보

다양한환경의지원테스트자동화의필요성

테스트효율성확보

지속적인테스트지원테스트환경구축비용절감

테스트지원및품질관리

테스트자동화및확장성전반적인소프트웨어품질관리

8

1. 테스트 재 사용성의 핵심 – 유지보수

� 자동화된 테스트 환경은 기본적으로 재사용 가능한 서비스로 구성되어야 한다.

� 재활용을 지원하여야 하고, 빠르게 테스트 케이스를 생성 할 수있어야 하며, 이식성이 높아야 하고, 유지보수 가 쉬워야 한다.

� 소프트웨어 개발의 경험 !

소프트웨어 모듈을 작게 쪼개서 만들 수록 재활용성은 높아진다.

너무 작게 쪼개면 유지보수가 어렵고, 새로운 프로그램 개발에 오히려시간이 많이 걸린다.

재 활용성이 높은 소프트웨어를 만들려면 재활용을 염두에 두고 코딩하라.

� 유지보수는 모든 소프트웨어 재사용성의 핵심

9

테스트 재사용 방안 #1. 컴포넌트의 분리 구조

� 논리, 물리, 메시지 스키마를 독립적이면서 유기적으로 분리

10

테스트 재사용 방안 #2. 빠르고 쉬운 테스트 케이스 생성

� 실제 시스템의 메시지를 캡쳐 하고 다양하게 저장하여 테스트 케이스생성

11

테스트 재사용 방안 #3. 유지보수가 쉬운 테스트 케이스 가공

� Drag-Drop 을 통한 테스트 케이스 가공, 다양한 구조의 테스트(테스트케이스,시나리오,스위트) 및 테스트 데이터의 완벽한 분리

� 전문 / 통합테스트 시나리오를 변경 없이 그대로성능 테스트로 확장

12

2. 테스트 지속성의 핵심 – 서비스 가상화

� 불완전한 테스트 환경은 테스터 와 개발자 모두의 발목을 잡는 요소

� 테스트의 지속성이 중요한 이유는 바로 돈과 직결되는 문제이기 때문

� 짧게 개발하고, 길게 버그잡는 과정의 연속인 소프트웨어 개발에서가능한 빨리 테스트해서 많은 버그를 찾아내는 것이 핵심

� 가상화는 모든 다양한 테스트 기법의 완성

- Unit Testing : 개발자가 직접 수행 , 통상 50% 의 효율성(개인의 역량차가 크고 기피하는 경향)

- Inspection / Review : 통상 65% 수준의 효율성 (화이트박스)

- Integration Testing : 일정 수준이상의 단계에서 효율적인 오류검출 90% (블랙박스)

- Virtualization : Test 스케쥴 , 효율성 상승 (95% ~ 99%)

출처 : Capers Jones, 2010

13

서비스 가상화 – Rational Test Virtualization Server

� 테스트 / 서비스 가상화의 엔진, 관리 콘솔

� 개발자는 RTW 만으로도 개인 가상화 실현 (5분 , 1TPS)

테스트 서버

장애장애장애장애

14

가상화란 무엇인가 ?

� 가상화는 본질적으로 지능적인 테스트 케이스

� STUB 은 사용자가 사용할 수 없거나 지원되지 않는 서비스를시뮬레이션 하는데 사용하는 가상화 컴포넌트

Cap

ture & M

ode

lC

ap

ture & M

ode

l

Heterogeneous Environments

Public CloudPrivate Cloud

Data Warehouse MainframeEnterprise

Service Bus

Directory Identity

File systems

Collaboration

App Under TestRouting Service

Third-partyServices Portals

ContentProviders

EJB

SharedServices

Archives

BusinessPartners

Messaging Services

Databases Mainframeapplications

App Under Test

Third-partyServices

Packaged apps, messaging services, etc.

Virtual Services

� 응용프로그램 에뮬레이션� 복수의 테스트 환경 지원� 동일한 테스트 도구 이용

테스팅 : Test Early , Often 개발자 : No Mockup , simulation 시스템 : No Additional HW, SW,

15

지속적인 통합 테스트 – 가상화

� 점진적이고, 지속적인 통합테스트의 엔진 – 테스트 가상화

� 높은 우선순위의 애플리케이션을 먼저 개발하고 점진적으로 통합

Integration Testing

Integration Testing

실제 서비스 / APP

가상 서비스 / APP

Integration Testing

Integration Testing

Integration Testing

Integration Testing

Incremental Integration Testing Incremental Integration Testing

16

3. 통합 테스트의 확장성 - 품질관리의 고도화

� 품질관리 솔루션 도입의 목적은 품질 산출물의 추적성과 전사가시성, 프로세스 강제성

� 솔루션의 안정적인 확장성은 유지보수의 위험성을 사전에 제거

� 새로운 기능의 추가는 제품의 로드맵에 의해 제공되어야 안정적인운영이 가능

� 필요에 따라 제품을 수정하는 것은 향후 유지보수 위험성을 증가

� PMS , TMS 와 같은 관리 솔루션과의 연계를 위한 확장성을제공해야 함.

17

솔루션 확장성 #1. 변경,품질,권한,형상관리 소프트웨어 연계

� Atlassian Jira, TeamFoundation Server, OSLC 등 변경 관리자 지원

� IBM RQM, HP QC 등 품질 관리 소프트웨어 지원

� 권한관리를 위해 LDAP , Active Directory 지원

� Rational Test Control Panel – REST API 지원

18

솔루션 확장성 #2. 명령행 인터페이스 , 명령행 실행

� 명령행 인터페이스는 외부 도구와의 연계를 쉽게 할 수 있도록 지원

� 테스트 케이스 내부에서 명령행 실행을 지원하며 SSH 지원시 원격명령어 지원

19

솔루션 확장성 #3. 이클립스 플러그인 기반 기능 확장

� 이클립스 기반의 플러그인으로 확장가능성이 무한

� Custom Function 은 Java 기반으로 개발 하며, 간단한 프로그램에서복잡한 기능의 추가까지 단일화된 방식으로 제공

20

IBM Rational Test Workbench – end to end Test

automation

스크립트 없는 테스트 자동화

분산 환경에서 다양한 미들웨어와 데이터 베이스에서구동되는 복잡한 애플리케이션을 정확히 캡처 합니다.

UI 가 없어서 테스트가 어려운 웹 서비스, 전문테스트, 다양한 메시지 포맷을 스크립트 없이 간단한 조작만으로 테스트 할 수 있도록 지원합니다.

UI (웹, 윈도우,모바일) 에 대한 기능 테스트 지원

가상화를 통한 지속적인 테스트

작은 단위의 API, 라이브러리, 컴포넌트의 가상화는물론, 좀더 큰 의미의 테스트 시스템, 데이터 베이스의가상화를 지원 합니다.

개발자나, 품질 관리 조직은 테스트 환경의 가용성과무관하게 복제된 환경에서 언제나 테스트를 할 수있습니다.

성능 테스트 확장 및 품질 관리 프로세스와 연계

기능 테스트에서 구성한 환경과, 테스트 케이스를재활용 하므로, 성능 테스트를 위해 별도의 스크립트가필요하지 않습니다.

다수의 품질관리 도구 또는 In-House 로 개발된시스템과의 연계를 위해 명령행 인터페이스를 지원합니다.

Databases Mainframe

applications

App Under Test

Third-partyServices

Packaged apps, messaging services, etc.

Rational Test Virtualization Server

Rational Test Workbench

Developers & Testers

Rational Performance Test Server

21

보다 완벽한 End to End 테스트를 위한 제안 –

모바일 테스트 자동화

� 전체 개발자의 약 90% 는 엔터프라이즈 애플리케이션을 모바일로확장하는 일을 하고 있거나, 조만간 모바일 개발에 참여 할 것으로예상

� 향후 1년간 77% 의 개발자들은 직,간접적으로 하이브리드 형태의애플리케이션 개발에 투입될 계획을 가지고 있음

� 대부분의 기업은 향후 2년 내 25개 이상의 모바일 애플리케이션을개발/배포할 예정임

Source: Evans Data Mobile Developer Survey Mobile Development Report 2012 Volume

Source: Business Insider (September 2012)

22

모바일 애플리케이션 테스팅은 다릅니다.

� 테스트 해야 하는 디바이스와 구성의 조합이 너무 많고, 지속적으로

증가 합니다.

– iOS, Android, 블랙베리, Windows Phone, Symbian 등..

– 화면 해상도, 다양한 기종

– 수백개의 제조사별, 수천개의 환경

– 새로운 디바이스는 지속적으로 증가

� 테스트 해야 할 기능이 늘어남

– 카메라, GPS, 음성, 방향 센서 등

� 네트워크 고려사항

– 다수의 통신사

– 다양한 성능 / 네트워크 속도

– 네트워크 오프라인 모드

– 네트워크 스위칭

23

모바일 테스트에 필요한 고려사항

� 테스트 관리

– 플래닝, 추적성 등

– 수동 테스트 지원

– 보다 넓은 범위의 라이프사이클 통합 지원

� 테스트 자동화

– 디바이스별 테스트 자동화

– 멀티타겟 테스트 케이스

– 디바이스 특정 기능의 테스트

– 미들티어 , 백엔드 시스템 서비스 가상화

� 디바이스의 다양한 설정에 대한 접근

– 플랫폼 (iOS, Android..)

– 제조사 (Samsung, LG, Apple..)

– 폼 팩터 (Display, Size..)

– 통신사 (SK, LG, KT.. )

Rational Quality Manager

(RQM)

Ratioanl Test Workbench

(RTW)

Third-party mobile device-

cloud services

24

Rational mobile capabilities and the development

lifecycle

Design

Requirements

Design

Requirements

Review and

Approval

Review and

Approval

UI StoryboardUI Storyboard

Test Plan

Optimization

Test Plan

Optimization

Visual Editors/

Source Editors

Visual Editors/

Source EditorsDistributed

Build

Distributed

Build

Automated

Functional Test

Automated

Functional Test

Manual Test

Management

Manual Test

Management

Integration

w/DeviceClouds

Integration

w/DeviceClouds

Automated

Functional Test

Automated

Functional TestManual Test

Management

Manual Test

Management

Automated

Functional Test

Automated

Functional Test

Manual Test

Management

Manual Test

Management

Simulators

Debuggers

Simulators

Debuggers

Task

Legend:

DeployTestDesign Develop

Project Vision

Bus. objectives

App Design

UI Design

Test

Planning

Code

construction

Build

Unit Testing

Test Script

Creation

Functional

Testing

System

TestingDeployment

Capabilities

CapabilityCapability RTW

Capability

RTW

Capability

Integration

w/Worklight

Integration

w/Worklight

25

IBM Rational Test Workbench for Mobile

� 모바일 테스트 자동화

– 기반의 모바일 디바이스에 탑재된 모바일 애플리케이션(Native , Hybrid)

– 수동으로 진행되는 모바일 테스트를 자동화하여 테스트 시간을 단축하고 품질을개선

� 이클립스 클라이언트 통합

– 모바일 테스트 자동화

– Selenium/Web GUI 테스트 자동화

– IBM Worklight 모바일 플랫폼과 통합

� End-to-End 모바일 테스트

– 미들티어,백엔드 서비스 통합

– 가상화 서비스 지원

– 인프라 통합 성능 테스트 지원

26

IBM Rational Test Workbench Mobile Client (Device)

� 모바일 디바이스에 대한 테스트레코딩과 플레이 관리용 앱

– RTW 에서 레코딩/플레이가필요한 앱을 업로드

– 높은 수준의 UI 제스쳐 와 디바이스

이벤트를 캡쳐

– 디바이스/에뮬레이터/RTW 를 통해자동화된 테스트를 플레이

– 상세한 수준의 재생 리포트 생성

– 테스트 완료시 실행 리포트를 RTW 로 전송

27

IBM Rational Test Workbench Mobile Client (PC)

28

Test 케이스 생성 – 이벤트 캡쳐 / 레코딩

� 모바일 앱에서 실행된 앱의 이벤트를 캡쳐 하여 자동 테스트 케이스 생성

29

테스트 케이스 가공 – 검증 포인트 작성

� 다양한 검증 포인트 지원을 통해응답코드 및 응답문자열 체크를통한 서비스 가용성 점검 기능제공

30

테스트 케이스 실행 리포트

� 모바일 디바이스와 워크벤치에서 동일한 스타일과 포맷으로 제공

� 실행 내용이 리포트 상에 디스플레이 됨

� 각 스텝별 내용과 실행 상태가 표시

� 표준 어댑터를 이용하여 RQM (Rational Quality Manager) 에서 실행

31

End to End 모바일 애플리케이션 테스팅

� 미들티어, 백엔드 서비스의 테스트 , 가상화

– 프로토콜과 메시지를 통합하여end-to-end 검증

– 통합테스트에서 작성한 테스트 케이스를재사용하여 미들웨어,서비스 인프라 통합에 따른 확장성을 검증

– 지속적인 통합테스트를 위해 가상화환경을 활용하여 보다 빨리 테스트 하고, 애플리케이션 통합의 리스크를 제거

– Ratioanl Test Workbench 의 확장성 높은테스트 기능을 활용하여 non-모바일 기능을함께 검증

클라이언트

미들티어

서비스

백엔드 데이터 서비스

가상화

컴포넌트,

서비스

32

Testing 을 수행하는 것은 보험에 드는 것과 같습니다.

� 제대로 된 테스팅을 수행하는 것은 보험에 가입하는 것과 유사한 행위.

� 보험 : 사고로 인한 심각한 재정상의 위험 발생 요소를 완화

� 테스팅 : 품질로 인한 재정상의 위험요소를 완화

위험 요소 완화를 위한 행위 (보험 / 테스팅)을 수치화 하면,

- 보험의 예상 지불액 = 손실 가능성 * 손실 비용

- 테스트의 예상 지불액 = 오류 가능성 * 손실 비용

� 테스팅의 숨겨진 효과

- 보험을 들어서 얻게 되는 비용적인 효과와 유사

예 : 성능문제 1억원 ,10% 확률, 기능문제 500만원, 50% 확률, 보안문제 2억원 * 5% 확률 = 1억원 * 0.1 + 500만원 * 0.5 + 2억원 * 0.05 = 2250만원

- 실제로 버그이지만, 반드시 수정하지는 않아도 되는 경우 도출

예: 기술지원 센터 응대시간 10분감소 , 1일 5회,인건비 3만원/시간= 30,000*(10/60) * 5 = 25,000원

- Non Conformance cost 의 일부 비용 감소 효과

- 프로젝트 실패확률 감소에 따른 비용효과 (테스트비용 + 프로젝트비용) * 확률

예 : ( 테스트비용 1억원 + 프로젝트 비용 10억원 ) * 실패확률 5% 감소 = 5500만원

33

IBM Rational Solutions for Test Automation

� 테스트가 곧 품질 향상을 의미하지는 않지만, 품질과 생산성,비용 절감을 위해서는제대로 된 테스트 방법을 강구해야 합니다.

� 테스트의 숨겨진 효과는 언제나 기대 이상입니다.

� 마법과 같이 품질을 향상 시키는 도구는 이 세상 어디에도 존재하지 않습니다.

효과적인 테스트 기법 –점진적인 통합

• 프로젝트 초기부터 적극적으로 통합 테스트

• 블랙박스,화이트박스의 적절한 조합

• 낮은 비용과 높은 오류검출을 꾀하라

자동화 테스트 요건 -재사용,지속,확장성

• 테스트의 재사용과 가상화를 통한 지속적이고점진적인 통합 테스트

• 테스트 초기 부터 재사용을 고려하라

종합 테스트 솔루션 –Rational Test Workbench

• UI, 전문, 성능테스트 자동화에서 모바일까지

• End to End 테스트 와 라이프 사이클 확장지원

• 소프트웨어 개발의 수능시험 -테스트

34

35

© Copyright IBM Corporation 2013. 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, 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.

www.ibm.com/software/rational