Testes Contínuos Automação/Virtualização Fábio de Souza (fabiossa@br.ibm.com) Especialista Rational, Software Group, IBM Setembro/2013
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 2
Hoje, Software conduz inovação para um mundo mais inteligente Transformando a forma que nós vivemos, trabalhamos, e atuamos 3
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
Custo, complexidade e velocidade tornam a qualidade impraticável De 60% a 80% dos custos estimados de desenvolvimento de software está no retrabalho* Crescente Custo da Qualidade Crescente Complexidade do Desenvolvimento Desequilíbrio entre Qualidade e Velocidade Testing costs Other costs Routing Service Public Cloud Collaboration Third-party Services Data Warehouse Web/ Internet Portals Directory Identity Content Providers Archives File systems Mainframe Private Cloud EJB Enterprise Service Bus Heterogeneous Environments Business Partners Shared Services Messaging Services Traditional Testing 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 * Source:http://www.sei.cmu.edu/about/m essage/
Melhor qualidade do software requer novo foco Evoluindo de Testes para Gerenciamento da Qualidade Testes 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 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 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
Soluções do Passado e Limitações Enormes Custos de Lab Custos de Mão de obra, de hardware e software para gerenciar labs de testes e ambientes Longos Ciclos de Testes Dias/semanas desperdiçados esperando pela disponibilidade de um ambiente de testes Altíssimos Riscos Disponibilidade de ambientes de testes ocultam a habilidade dos desenvolvedores de testar apropriadamente 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 7 Corporation
O que é mandatório para um efetivo Gerenciamento de Qualidade? 1 Automação de Testes Multicanais Custo Qualidade Smarter Testing 3 Risco Tempo/ Prazo 2 Continuous Integration Testing & Delivery
Solução de Virtualização em Testes da IBM Rational Uma Solução Inteligente para Melhor Qualidade Significativament e 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 9
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 10
Captura & Modela Software and Systems Engineering Rational O que é Virtualização em Testes? Routing Service Public Cloud App Under Test Content Collaboration Providers Archives Portals Third-party Services Data Warehouse Directory Identity File systems Mainframe Private Cloud EJB Enterprise Service Bus Heterogeneous Environments Business Partners Shared Services Messaging Services App Under Test Databases Mainframe Third-party applications Services Packaged apps, messaging services, etc. Virtual Services 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 11 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)
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 Rational Test Workbench Rational Performance Test Server App Under Test Developers & Testers Databases Mainframe Third-party applications Services Packaged apps, messaging services, etc. Rational Test Virtualization Server
IBM Quality Management Portfolio Gerenciamento de Requisitos Rational Requirements Composer Rational DOORS Rational RequisitePro Rational Quality Manager Test Planning Test Construction Test Execution Team Collaboration Reporting & Dashboard Gerenciamento de Defeitos Rational Team Concert Rational ClearQuest Teste Functional e Mobile Teste de Performance Rational Test Workbench Rational [Performance] Test [Virtualization] Server Dados de Testes Teste de Integração e Virtualização em Testes Optim Segurança e Conformidade AppScan
As Aplicações Modernas Leves Atualizadas Novas Simples mas ainda infelizmente conectadas a mais de 20 anos de legado de TI
Desafio: Limitações no ciclo de vida de desenvolvimento e de testes Ambiente Físico de Testes Maintenance Constraints Server/ Web Services 2hr. access window Sistema Sob Teste Mainframe / MQ/CICS Problema: Restrições que penetram no desenvolvimento e limitam a produtividade dos testes Volume Constraints Smart Device / SD-IO Volume Constraints Database / JDBC
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 Ouve / Captura Maintenance Constraints Server/ Web Services 2hr. access window Sistema Sob Teste Armazena Mainframe / MQ/CICS Test Case Repository Captura & Modela Web Services MQ/CICS Smart Devices Volume Constraints Smart Device / SD-IO Volume Constraints Database / JDBC JDBC Ambiente Virtual
Solução de Virtualização em Testes possibilita a implantação de Physical Test Environment serviços virtuais em múltiplos ambientes Maintenance Constraints Modela e implanta Real / Virtual 2hr. access window Server/ Web Services Mainframe / MQ/CICS Volume Constraints Smart Device / SD-IO Sistema Sob Teste Volume Constraints Database / JDBC Captura & Modela Captura & Modela Captura & Modela Web Services Web Services Web Services Repositório de Test Cases MQ/CICS MQ/CICS MQ/CICS Smart Devices Smart Devices Smart Devices JDBC JDBC JDBC AV - FTE AV - SIT AV - UAT
Testes de Integração Contínuos e Incrementais Test Driver Interface do Usuário Lógica de Negócio Camada Técnica Serviço Backend/ Bases de Dados 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
Solução de Virtualização em Testes fornece benefícios através do ciclo de vida de entrega de software 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 Define-se sistemas com restrições e serviços para virtualização Unit Integration System System Integration User Acceptance Operability O sistema todo ou componentes do sistema podem ter a performance testada bem cedo no ciclo. Performance 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 tem papel chave para os Testes Contínuos de Integração 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. Serviço/App Real Serviço/App Virtual Incrementalmente Testando a Integração
Testes de Performance com Solução de Virtualização em Testes Configure & Control Execute 1700 New Orders Type A per second Virtualize 5 Cancelled Orders per second 50 Order Edits per second 1 Heartbeat per second Analyse 750 New Orders Type B per second 21
Ambiente e Tecnologias Suportados Protocolos de Mensagens 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 SOA, ESB, Outros CentraSite Oracle Fusion SCA Domain Software AG IS, BPMS Sonic ESB TIBCO ActiveMatrix UDDI Web Services WebSphere RR WSDL BPM Databases Log Files Nota : Suporte a protocolo customizado pode ser desenvolvido Formatos de Mensagens.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
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 23
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 24
Solução de Virtualização em Testes: Como tudo se encaixa
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 26
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
www.ibm.com/software/rational 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. 28