© 2013 IBM Corporation
Testes Contínuos – Automação/Virtualização Fábio de Souza ([email protected]) Especialista Rational, Software Group, IBM Setembro/2013
© 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 Sucesso
Requirements Uma Solução
Inteligente para Gerenciamento de
Qualidade
© 2013 IBM Corporation
Software and Systems Engineering | Rational
Hoje, Software conduz inovação para um mundo mais inteligente Transformando a forma que nós vivemos, trabalhamos, e atuamos
3
© 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, 2011
Based on 675 companies, 35 government/military groups, 13,500 projects, 50-75 new projects/month, 24 countries, 15 lawsuits
© 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ável
De 60% a 80% dos custos estimados de desenvolvimento de software está no retrabalho*
*
Source:http://www.sei.cmu.edu/about/m
essage/
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 Cloud Private Cloud
Data Warehouse Mainframe Enterprise
Service Bus
Directory
Identity
File
systems
Collaboration
Web/
Internet Routing
Service
Third-party
Services Portals
Content
Providers EJB
Shared
Services Archives
Business
Partners
Messaging
Services
Traditional
Testing
Other costs
Testing costs
© 2013 IBM Corporation
Software and Systems Engineering | Rational
Melhor qualidade do software requer novo foco Evoluindo 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 Qualidade Testes
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
© 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
© 2013 IBM Corporation
Software and Systems Engineering | Rational
Tempo/ Prazo
Qualidade
Custo
Risco
Automação de Testes Multicanais
1
Continuous Integration Testing & Delivery
2 Smarter Testing
3
O que é mandatório para um efetivo Gerenciamento de Qualidade?
© 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 Rational Uma Solução Inteligente para Melhor Qualidade
© 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 Sucesso
Requirements Uma Solução
Inteligente para Gerenciamento de
Qualidade
© 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)
Cap
tura
& 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 custosas
Impraticá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 Cloud Private Cloud
Data Warehouse Mainframe Enterprise
Service Bus
Directory
Identity
File
systems
Collaboration
App Under Test Routing
Service
Third-party
Services Portals
Content
Providers EJB
Shared
Services Archives
Business
Partners
Messaging
Services
Databases Mainframe
applications
App Under Test
Third-party
Services Packaged apps, messaging services, etc.
Virtual Services
© 2013 IBM Corporation
Software and Systems Engineering | Rational
Solução de Virtualização em Testes da IBM Rational Uma 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-party
Services Packaged apps, messaging services, etc.
Rational Test Virtualization Server
Rational Test Workbench
Developers & Testers
Rational Performance Test Server
© 2013 IBM Corporation
Software and Systems Engineering | Rational
IBM Quality Management Portfolio
Rational Quality Manager
Test 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
Mobile Teste de
Performance Teste de Integração e Virtualização em Testes
Dados de Testes
Segurança e Conformidade
Rational Test Workbench Rational [Performance] Test [Virtualization] Server
AppScan Optim
© 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
© 2013 IBM Corporation
Software and Systems Engineering | Rational
Desafio: Limitações no ciclo de vida de desenvolvimento e de testes Ambiente Físico de Testes
Sistema Sob Teste
Volume Constraints
Volume Constraints
2hr. access window
Maintenance Constraints
Database / JDBC
Server/ Web Services
Mainframe / MQ/CICS
Smart Device / SD-IO Problema:
Restrições que penetram no desenvolvimento e limitam a produtividade dos testes
© 2013 IBM Corporation
Software and Systems Engineering | Rational
Solução: Virtualização em Testes Virtualizaçã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 / JDBC
Server/ Web Services
Mainframe / MQ/CICS
Smart Device / SD-IO
MQ/CICS
Web Services
Smart Devices
JDBC
Ambiente Virtual
Captura & Modela
Sistema Sob Teste
Ouve / Captura
Armazena
Test Case
Repository
© 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 - SIT
Captura & Modela
Sistema Sob Teste
Modela 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 - FTE
Captura & Modela
MQ/CICS
Web Services
Smart Devices
JDBC
AV - UAT
Captura & Modela
Real / Virtual
Repositório de Test Cases
© 2013 IBM Corporation
Software and Systems Engineering | Rational
Testes de Integração – Contínuos e Incrementais
Interface do Usuário
Lógica de Negócio
Camada Técnica Serviço
Backend/ Bases de
Dados
Test Driver
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
© 2013 IBM Corporation
Software and Systems Engineering | Rational
Define-se sistemas com restrições e serviços para virtualização
Integration Operability User Acceptance System Integration System Unit Integration Operability User Acceptance System Integration System Unit
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
© 2013 IBM Corporation
Software and Systems Engineering | Rational
Incrementalmente 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
© 2013 IBM Corporation
Software and Systems Engineering | Rational
21
Testes de Performance com Solução de Virtualização em Testes Configure &
Control
Execute 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
© 2013 IBM Corporation
Software and Systems Engineering | Rational
Ambiente e Tecnologias Suportados
• ActiveMQ
• Email (SMTP, IMAP)
• Files
• FTP/S
• HTTP/S JMS (JBOSS et al) IBM WebSphere MQ
• JBoss MQ
• SAP IDoc, BAPI, RFC & XI/PI
• Software AG’s IB & IS
• Solace
• Sonic MQ
• TCP TIBCO 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
© 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
© 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
© 2013 IBM Corporation
Software and Systems Engineering | Rational
Solução de Virtualização em Testes: Como tudo se encaixa…
© 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 Sucesso
Requirements Uma Solução
Inteligente para Gerenciamento de
Qualidade
© 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
© 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