teste contínuo de integração e virtualização de serviços

28
© 2013 IBM Corporation Testes Contínuos – Automação/Virtualização Fábio de Souza ([email protected]) Especialista Rational, Software Group, IBM Setembro/2013

Upload: rationalbrasil

Post on 22-Apr-2015

627 views

Category:

Technology


0 download

DESCRIPTION

Mostramos como podemos antecipar os testes de integração entre sistemas distintos (até mesmo entre empresas diferentes) sem a necessidade de esperar até que todas as partes envolvidas estejam disponíveis para teste. Parece impossível, mas não é!

TRANSCRIPT

Page 1: Teste Contínuo de Integração e Virtualização de Serviços

© 2013 IBM Corporation

Testes Contínuos – Automação/Virtualização

Fábio de Souza ([email protected])Especialista Rational, Software Group, IBM

Setembro/2013

Page 2: Teste Contínuo de Integração e Virtualização de Serviços

© 2013 IBM Corporation

Software and Systems Engineering | Rational

2

Agenda

Como garantir melhor Qualidade de Software?

– Do “teste” ao gerenciamento de qualidade inteligente

Solução IBM Rational de Virtualização em Testes

– Rational Test Workbench

– Rational Test Virtualization Server

– Rational Performance Test Server

Referências

– Casos de SucessoRequirementsUma Solução

Inteligente para Gerenciamento de

Qualidade

Page 3: Teste Contínuo de Integração e Virtualização de Serviços

© 2013 IBM Corporation

Software and Systems Engineering | Rational

Hoje, Software conduz inovação para um mundo mais inteligenteTransformando a forma que nós vivemos, trabalhamos, e atuamos

3

Page 4: Teste Contínuo de Integração e Virtualização de Serviços

© 2013 IBM Corporation

Software and Systems Engineering | Rational

Qualidade do software é o principal problema entre todas as indústrias

Software é mais culpado pelos principais problemas nos negócios do que qualquer outro produto fabricado pelo Homem.

Qualidade ruim do software passou a ser um dos tópicos mais caros na história da humanidade

– $150+ bilhões por ano nos EUA.

– $500+ bilhões por anos em todo o mundo.

Projetos cancelados devido a qualidade ruim são 15% mais custosos do que projetos com sucesso do mesmo tamanho e tipo.

Fonte: Capers Jones, 2011Based on 675 companies, 35 government/military groups, 13,500 projects, 50-75 new projects/month, 24 countries, 15 lawsuits

Page 5: Teste Contínuo de Integração e Virtualização de Serviços

© 2013 IBM Corporation

Software and Systems Engineering | Rational

Desequilíbrio entre Qualidade e Velocidade

Crescente Custo da Qualidade

Crescente Complexidade do Desenvolvimento

Custo, complexidade e velocidade tornam a qualidade impraticávelDe 60% a 80% dos custos estimados de desenvolvimento de software está no retrabalho*

* Source:http://www.sei.cmu.edu/about/message/

Mão de obra terceirizada não é um modelo sustentável com o aumento dos salários globais

Complexidade e tamanho do produto e da aplicação

estão crescendo

Produtividade é inibida já que equipes de testes não

podem mais se manter num desenvolvimento ágil

Heterogeneous Environments

Public CloudPrivate Cloud

Data Warehouse MainframeEnterprise

Service Bus

Directory Identity

File systems

Collaboration

Web/Internet

Routing Service

Third-partyServices Portals

ContentProviders

EJB

SharedServices

Archives

Business Partners

Messaging Services

TraditionalTesting

Other costs

Testing costs

Page 6: Teste Contínuo de Integração e Virtualização de Serviços

© 2013 IBM Corporation

Software and Systems Engineering | Rational

Melhor qualidade do software requer novo focoEvoluindo de Testes para Gerenciamento da Qualidade

Uma técnica de investigação feita para expor informação relacionada a qualidade sobre o produto ou serviço sob teste

Gerenciamento da QualidadeTestes

Monitoração sistemática e avaliação dos vários aspectos de um produto ou serviço para maximizar o potencial e atingir padrões de qualidade almejados

“Eu tenho centenas de testadores & muita automação, mas tudo que faço é descobrir mais defeitos.

Eu não tenho o problema de testar, Eu tenho um problema de qualidade.” –

de um grande banco global

Page 7: Teste Contínuo de Integração e Virtualização de Serviços

© 2013 IBM Corporation

Software and Systems Engineering | Rational

7

Soluções do Passado e Limitações

Custos de Mão de obra, de hardware e software para gerenciar labs de testes e ambientes

Enormes Custos de Lab

Dias/semanas desperdiçados esperando pela disponibilidade de um ambiente de testes

Longos Ciclos de Testes

Disponibilidade de ambientes de testes ocultam a habilidade dos desenvolvedores de testar apropriadamente

Altíssimos Riscos

Muitos recursos do lab de testes sub-utilizados e custosos

Desenvolvimento e QA desperdiçam muito tempo em atividades improdutivas: instalação, configuração, tentativa/erro, etc.

Uma porção significativa dos esforços de testes é impelida para tarde no processo resultando em custos de correção de defeitos na ordem de 10-100x

Page 8: Teste Contínuo de Integração e Virtualização de Serviços

© 2013 IBM Corporation

Software and Systems Engineering | Rational

Tempo/ Prazo

Qualidade

Custo

Risco

Automação deTestes Multicanais

1

Continuous IntegrationTesting & Delivery

2Smarter Testing

3

O que é mandatório para um efetivo Gerenciamento de Qualidade?

Page 9: Teste Contínuo de Integração e Virtualização de Serviços

© 2013 IBM Corporation

Software and Systems Engineering | Rational

9

Significativamente Menos Custos de Labs

• Redução em até 90% dos custos de infra-estrutura do laboratório de testes

• Redução em 80% ou mais dos custos com a mão de obra envolvida na configuração dos ambientes de testes

• Redução ou eliminação dos custos de invocar sistemas de terceiros para uso que não seja de produção, como web services pagos

Reduzidos Ciclos de Testes

• Ambientes de Testes podem ser configurados em minutos versus semanas

• Mais testadores podem estar focados em testes, e não na configuração do ambiente de testes

• Mais testes de regressão podem ser realizados independentemente da interface do usuário final, durante o desenvolvimento

Menores Riscos

• Desenvolvedores tem como testar o software antes no nível do Serviço/API

• Equipes extensas trabalhando em diferentes partes de uma aplicação ou sistema podem efetivamente trabalhar/desenvolver em paralelo, virtualizando diferentes partes do sistema

Solução de Virtualização em Testes da IBM RationalUma Solução Inteligente para Melhor Qualidade

Page 10: Teste Contínuo de Integração e Virtualização de Serviços

© 2013 IBM Corporation

Software and Systems Engineering | Rational

10

Agenda

Como garantir melhor Qualidade de Software?

– Do “teste” ao gerenciamento de qualidade inteligente

Solução IBM Rational de Virtualização em Testes

– Rational Test Workbench

– Rational Test Virtualization Server

– Rational Performance Test Server

Referências

– Casos de SucessoRequirementsUma Solução

Inteligente para Gerenciamento de

Qualidade

Page 11: Teste Contínuo de Integração e Virtualização de Serviços

© 2013 IBM Corporation

Software and Systems Engineering | Rational

11

O que é Virtualização em Testes?

Virtualização em Testes permite a criação de “ serviços virtuais”:

–Serviços Virtuais simulam o comportamento de uma aplicação ou sistema inteiro durante testes

–Serviços Virtuais podem rodar em hardware comoditizado, nuvem privativa, núvem publica

–Cada desenvolvedor, testador pode facilmente ter seus próprios ambientes de testes

–Desenvolvedores e testadores continuam a usar suas próprias ferramentas de testes (Manual, Performance web, automação de testes na Interface do Usuário)

Ca

ptu

ra & M

od

ela

Ca

ptu

ra & M

od

ela

Dependências do sistema são um desafio chave na configuração de ambientes de testes:Indisponível/inacessível: Testes são limitados por agendamentos de produção, restrições de segurança, contenção entre equipes, ou porque eles ainda estão sob desenvolvimento Taxas custosas para acesso a sistemas de terceiros: Desenvolvimento ou testes de serviços baseados em nuvem ou compartilhados podem resultar em taxas de utilização custosasImpraticável virtualização baseada em hardware: Sistemas são ou muito difíceis (mainframes) ou remotos (serviços de terceiros) para replicar via abordagem tradicional de virtualização baseada em hardware

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

Business Partners

Messaging Services

Databases Mainframeapplications

App Under Test

Third-partyServices

Packaged apps, messaging services, etc.

Virtual Services

Page 12: Teste Contínuo de Integração e Virtualização de Serviços

© 2013 IBM Corporation

Software and Systems Engineering | Rational

Solução de Virtualização em Testes da IBM RationalUma Solução Inteligente para Melhor Qualidade

Rational Test Workbench é uma solução desktop que possibilita testadores/desenvolvedores a:

– Capturar e modelar serviços virtuais

– Testar serviços e aplicações antesque suas interfaces se tornem disponíveis e fazer testes de sistemas integrados (SOA, BPM)

Rational Test Virtualization Server é uma solução de servidor que:

– Fornece um ambiente central para virtualizar hardware, software e servicços heterogêneos para fornecer capacidades de teste 24x7

– Reduz os custos de infra-estrutura dos ambientes de testes tradicionais

– Serviços virtuais podem ser construidos a partir da definição da interface do sistema para uma variedade ampla de protocolos, incluindo HTTP, web services, SOA, JMS, TIBCO, IBM WebSphere MQ, Oracle, etc.

Rational Performance Test Server permite que os usuários do Rational Test Workbench reusem scripts de testes para conduzir testes de performance

– Pde ser usado combinado com Serviços Virtuais

– Coleta de estatísticas para identificação de gargalos

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

Page 13: Teste Contínuo de Integração e Virtualização de Serviços

© 2013 IBM Corporation

Software and Systems Engineering | Rational

IBM Quality Management Portfolio

Rational Quality ManagerTest Planning

Test Construction

Test Execution

Team Collaboration

Reporting & Dashboard

Gerenciamento de Requisitos

Gerenciamento de Defeitos

Rational Requirements Composer

Rational DOORS

Rational RequisitePro

Rational Team Concert

Rational ClearQuest

Teste Functional e

MobileTeste de

Performance Teste de Integração e Virtualização em Testes

Dados de Testes

Segurança e Conformidade

Rational Test WorkbenchRational [Performance] Test [Virtualization] Server

AppScanOptim

Page 14: Teste Contínuo de Integração e Virtualização de Serviços

© 2013 IBM Corporation

Software and Systems Engineering | Rational

As Aplicações Modernas

•Leves•Atualizadas•Novas•Simples

…mas ainda infelizmente conectadas a

mais de 20 anos de legado de TI

Page 15: Teste Contínuo de Integração e Virtualização de Serviços

© 2013 IBM Corporation

Software and Systems Engineering | Rational

Desafio: Limitações no ciclo de vida de desenvolvimento e de testesAmbiente Físico de Testes

Sistema Sob TesteSistema Sob Teste

Volume Constraints

Volume Constraints

2hr. access window

Maintenance Constraints

Database / JDBCDatabase / JDBC

Server/ Web ServicesServer/ Web Services

Mainframe / MQ/CICSMainframe / MQ/CICS

Smart Device / SD-IOSmart Device / SD-IOProblema:Restrições que penetram no desenvolvimento e limitam a produtividade dos testes

Page 16: Teste Contínuo de Integração e Virtualização de Serviços

© 2013 IBM Corporation

Software and Systems Engineering | Rational

Solução: Virtualização em TestesVirtualização ouve e captura o comportamento e características dos sistemas back-end

Ambiente Físico de Testes

Volume Constraints

Volume Constraints

2hr. access window

Maintenance Constraints

Database / JDBCDatabase / JDBC

Server/ Web ServicesServer/ Web Services

Mainframe / MQ/CICSMainframe / MQ/CICS

Smart Device / SD-IOSmart Device / SD-IO

MQ/CICS

Web Services

Smart Devices

JDBC

Ambiente VirtualAmbiente Virtual

Captura & Modela

Sistema Sob TesteSistema Sob Teste

Ouve / CapturaOuve / Captura

ArmazenaArmazena

Test Case

Repository

Page 17: Teste Contínuo de Integração e Virtualização de Serviços

© 2013 IBM Corporation

Software and Systems Engineering | Rational

Solução de Virtualização em Testes possibilita a implantação de

serviços virtuais em múltiplos ambientes

MQ/CICS

Web Services

Smart Devices

JDBC

AV - SITAV - SIT

Captura & Modela

Sistema Sob TesteSistema Sob Teste

Modela e implantaModela e implanta

Physical Test Environment

Volume Constraints

Volume Constraints

2hr. access window

Maintenance Constraints

Database / JDBC

Server/ Web Services

Mainframe / MQ/CICS

Smart Device / SD-IO

MQ/CICS

Web Services

Smart Devices

JDBC

AV - FTEAV - FTE

Captura & Modela

MQ/CICS

Web Services

Smart Devices

JDBC

AV - UATAV - UAT

Captura & Modela

Real / VirtualReal / Virtual

Repositório de Test Cases

Page 18: Teste Contínuo de Integração e Virtualização de Serviços

© 2013 IBM Corporation

Software and Systems Engineering | Rational

Testes de Integração – Contínuos e Incrementais

Interface do Usuário

Lógica deNegócio

CamadaTécnicaServiço

Backend/Bases de

Dados

TestDriver

Detecta defeitos antes e de forma mais barata Acelera a resolução Simplifica questões de regressão (criação de defeitos, priorização) Abordagem completa para desenvolvimento paralelo de componentes

com um mínimo de problemas de integração

Page 19: Teste Contínuo de Integração e Virtualização de Serviços

© 2013 IBM Corporation

Software and Systems Engineering | Rational

Define-se sistemas com restrições e serviços para virtualização

Integration OperabilityUser AcceptanceSystem IntegrationSystemUnit Integration OperabilityUser AcceptanceSystem IntegrationSystemUnit

Performance

Desenvolvedor usa serviços virtuais para testes unitários do código na sua workstation – nenhum ambiente elaborado é requerido

Equipes de Desenvolvimento e de Testes usam serviços virtuais cedo para testes avançados

O sistema todo ou componentes do sistema podem ter a performance testada bem cedo no ciclo.

Serviços virtuais podem ser usados quando componentes não estiverem disponíveis

Mais tarde no ciclo, versões finais de pré-produção dos serviços são trocados a medida que se tornam disponíveis. Os testes finais são feitos utilizando os serviços reais

Solução de Virtualização em Testes fornece benefícios através do ciclo de vida de entrega de software

Page 20: Teste Contínuo de Integração e Virtualização de Serviços

© 2013 IBM Corporation

Software and Systems Engineering | Rational

Incrementalmente Testando a IntegraçãoIncrementalmente Testando a Integração

Serviço/App Real

Serviço/App Virtual

Virtualização habilita Teste Contínuos de Integração

Serviços, aplicações, sistemas são introduzidos dentro do ciclo de integração contínua de forma priorizada, controlada.

Solução de Virtualização em Testes tem papel chave para os Testes Contínuos de Integração

Page 21: Teste Contínuo de Integração e Virtualização de Serviços

© 2013 IBM Corporation

Software and Systems Engineering | Rational

21

Testes de Performance com Solução de Virtualização em TestesConfigure &

ControlExecute Virtualize

Analyse

1700 New Orders Type A per second

5 Cancelled Orders per

second

50 Order Edits per second

1 Heartbeat per second

750 New Orders Type B

per second

Page 22: Teste Contínuo de Integração e Virtualização de Serviços

© 2013 IBM Corporation

Software and Systems Engineering | Rational

Ambiente e Tecnologias Suportados

• ActiveMQ

• Email (SMTP, IMAP)

• Files

• FTP/S

• HTTP/SJMS (JBOSS et al)IBM WebSphere MQ

• JBoss MQ

• SAP IDoc, BAPI, RFC & XI/PI

• Software AG’s IB & IS

• Solace

• Sonic MQ

• TCPTIBCO Rendezvous, Smart Sockets & EMS

• Custom

• CentraSite

• Oracle Fusion

• SCA Domain

• Software AG IS, BPMS

• Sonic ESB

• TIBCO ActiveMatrix

• UDDI

• Web Services

• WebSphere RR

• WSDL

• BPM

• Databases

• Log Files

• .Net Objects

• Bytes

• COBOL Copybook

• ebXML

• EDI

• Fixed Width

• HL7

• IATA

• Java Objects

• MIME

• OAG

• SOAP

• Software AG Broker Docs

• SWIFT

• TIBCO ActiveEnterprise

• XML (DTD, XSD, WSDL)

• Custom

Protocolos de Mensagens SOA, ESB, Outros Formatos de

Mensagens

Nota : Suporte a protocolo customizado pode ser desenvolvido

Page 23: Teste Contínuo de Integração e Virtualização de Serviços

© 2013 IBM Corporation

Software and Systems Engineering | Rational

23

Tipos de Aplicações Virtuais

Simples Resposta Hard-coded retornada para qualquer entrada

Não-determinísticos Uma-de-várias respostas hard-coded

Data driven

Dado de entrada e/ou saída especificado numa fonte de dados externa (Excel, arquivo, banco de dados)

Model driven, stateful Dado de entrada e/ou saída mantido num modelo de dados com relacionamentos complexos. Suporta CRUD e outros comportamentos com estado

Comportamental Estende model-driven para fornecer funcionalidade pré- empacotada, p.ex.: carrinho de compras, feed de dados em tempo real, trocas, ordenação

Page 24: Teste Contínuo de Integração e Virtualização de Serviços

© 2013 IBM Corporation

Software and Systems Engineering | Rational

24

Workflow da Solução de Virtualização em Testes

Usando Rational Integration Tester (parte do Rational Test Workbench)

– Define-se a arquitetura do sistema na “architecture school”

– Define-se protocolos

• Importa-se especificações, p.ex.:. WSDL para web services

• Grava-se conversas/comunicações

– Define-se stubs e dados

• Dados capturados durante gravação ou fornecidos em arquivo ou banco de dados

– Publica-se os stubs para o Rational Test Virtualization Server (RTVS)

Dinamicamente configura-se roteamento de mensagens pelo console web do RTVS

Testa-se usando sistemas virtuais a partir de qualquer ferramenta

Page 25: Teste Contínuo de Integração e Virtualização de Serviços

© 2013 IBM Corporation

Software and Systems Engineering | Rational

Solução de Virtualização em Testes: Como tudo se encaixa…

Page 26: Teste Contínuo de Integração e Virtualização de Serviços

© 2013 IBM Corporation

Software and Systems Engineering | Rational

26

Agenda

Como garantir melhor Qualidade de Software?

– Do “teste” ao gerenciamento de qualidade inteligente

Solução IBM Rational de Virtualização em Testes

– Rational Test Workbench

– Rational Test Virtualization Server

– Rational Performance Test Server

Referências

– Casos de SucessoRequirementsUma Solução

Inteligente para Gerenciamento de

Qualidade

Page 27: Teste Contínuo de Integração e Virtualização de Serviços

© 2013 IBM Corporation

Software and Systems Engineering | Rational

Solução de Virtualização em Testes da IBM Rational tem provido resultados mensuráveis e valor ao negócio

Major telecom carrier

Multiple test releases required additional test resources, increasing testing costs Solution: Virtualized services and created

reusable test cases across multiple environments

Results: Reduced testing time by 50%, saving $800K over 3 years

A leading global financial services firm with assets of over $2 trillion

Many disparate legacy format to be migrated to next gen payments system Solution: Virtualized third-party systems

otherwise unavailable for testing Results: Reduced manual testing from 10 days

to 10 minutes, saving over $7 million to date

Major U.S. insurer

Recognized manual efforts insufficient for complex SOA and web services Solution: Agile middleware solution created

to match the legacy systems’ functionality Results: Reduced testing by 95% to 2 hours;

reduced ‘rate filing’ validation by 94% to 320 hours

Global manufacturer acquires competitor

Migrate off rented infrastructure onto company’s standardized middleware platform Solution: Virtualized critical, unavailable systems

during migration Results: Fully integrated in 6 months – 2 months

ahead of schedule; saved significant rental costs and dependencies on third-party systems

Page 28: Teste Contínuo de Integração e Virtualização de Serviços

© 2013 IBM Corporation

Software and Systems Engineering | Rational

28

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

www.ibm.com/software/rational