menos teste e mais qualidade - como equilibrar essa equação?
TRANSCRIPT
Menos Teste e Mais Qualidade:Como equilibrar essa equação?
Sobre o Palestrante
• Igor Abade (@igorabade)– Microsoft MVP, Visual Studio ALM– Referência nacional em
Team Foundation Server (TFS)• Sócio-diretor da Lambda3– Consultoria ALM/TFS,
Agilidade/Scrum, Arquitetura– Desenvolvimento de Sistemas– Treinamentos– Parceira Microsoft Gold ALM
Menos Teste, Mais QualidadeMenos teste, mais qualidade
Como equilibrar a equação?
Menos teste?!?!
• Teste custa caro– Novos times– Maior tempo de
projeto• Desenvolvedores
sempre testaram• “Sempre entreguei
meus projetos”• Afinal, preciso
mesmo testar?
Não tenho orçamento para montar um time
de testes
Testes de unidade? Sem chance! Meu cliente não vai pagar para meu time
trabalhar dobrado!
No final meu cliente vai testar tudo de novo
mesmo...
Bugs em software custam à economia dos EUA um valor estimado de US$ 59,5 bilhões [1]
Na média, desenvolvedores profissionais cometem de 15 a 50 erros a cada mil linhas de código que eles escrevem [2]
Em 2009, projetos cancelados custaram US$ 67 bilhões; atrasos em outros projetos custaram mais US$ 21 bilhões [3]
Por que testar software?
[1] http://web.archive.org/web/20090610052743/http://www.nist.gov/public_affairs/releases/n02-10.htm[2] Code Complete, 2nd Edition - http://cc2e.com/[3] Standish Group, “The Chaos Report”- http://www.standishgroup.com/newsroom/chaos_2009.php
Por que testar? Exemplos práticos
• USS Yorktown, SmartShip– Tripulante digitou 0 num campo de um formulário– “Divide By Zero” desligou a propulsão– Parado na água por 2h45min
• Ariane 5, vôo 501– Reaproveitou código do Ariane 4, mas seguiu
caminho diferente devido a mudanças – Conversão de 64bit para 16bit causou overflow– Sem tratamento de exceções (melhor
desempenho)• F-22 Raptor
– Em operação no Japão pela primeira vez– Cruzou Linha Internacional de Data. Computadores
travaram– Tempo bom permitiu seguir os petroleiros ao Havaí
Controle de Qualidade de Software
TESTE
=QUALIDADE
Controle de Qualidade de Software
• Teste é só um dos aspectos
• Envolve processo de desenvolvimento
• É preciso garantir qualidade em três momentos:
Antes
DuranteDepois
Controle de Qualidade: Antes
• Tudo começa com processo de desenvolvimento
• “Fazer o certo, do jeito certo, na hora certa”– Desenvolvimento Ágil– Gestão de Requisitos– Arquitetura / Design
Desenvolvimento Ágil: O Manifesto Ágil
Indivíduos e interação entre eles mais que processos e ferramentas
Software em funcionamento mais que documentação abrangente
Colaboração com o cliente mais que negociação de contratos
Responder a mudanças mais que seguir um plano
Ou seja, mesmo havendo valor nos itens à direita, valorizamos mais os
itens à esquerda.
www.manifestoagil.com.br
Lean
Agile
Scrum
XP
Framework de gestão ágil de projetosPapéis e cerimônias, melhoria contínua dos times, entrega rápida, limitar trabalho à capacidade
Cultura ágil, mindset e práticasEliminar desperdícioRespeitar as pessoas, foco principalmente em P&D
Otimizar todo o fluxo Foco na otimização de todo o processo de negócios
Práticas de engenhariaTrazer qualidade para dentro do desenvolvimento – Automação, integração contínua, revisão por pares etc.
Práticas Ágeis
Scrum
• Iterativo• Comunicação• Auto-organizado
• Define–Papéis–Artefatos–Eventos
Elementos do Scrum
Scrum Master
Product Owner
Team
Planejamento Ágil no TFS “11”demo
Gestão de Requisitos: Storyboarding
Arquitetura: Diagrama de Camadas
Controle de Qualidade: Durante
• Qualidade durante construção do código– Testes de Unidade– Análise de Código– Automação de Testes– Integração Contínua
• Processo de Testes– Testes Manuais– Gestão de
Laboratório
XP: Extreme Programming
TDD: Test-driven Development
• Integração Contínua é uma prática
• Integrar código cedo e com frequência, para evitar “Integration Hell"
• Objetivo final é “parar e consertar” o mais cedo possível
CI: Continuous Integration
Testes de Unidadedemo
Generalista EspecialistaTeste Manual Poucos scripts
Cria scripts para configurar ambiente, criar dados
Muitos scripts
Algum conhecimento de programação
Programação
Desenvolve rotinas de automação de testes
Conhecimento avançado de programação
Testes de “Caixa Preta”
Testes de “Caixa Branca”
Testes API
70% dos testesacontecem aqui
Maioria das ferramentas mira aqui
Processo de Testes
Execução e Automação de Testes
• Microsoft Test Manager– Planejamento, gestão e
execução de casos de teste
– Coleta dados de sistema e logs de eventos
– Captura imagens de tela e vídeos
– Fast-forward para aplicativos Windows Forms, WPF e Web
Automação de Testes de UI
• CodedUI Tests– Gravador de Ações– Geração a partir de
casos de teste manuais
– Scripts resilientes– .NET (C#, VB)– Windows Forms, WPF,
Web (IE & Firefox), outras plataformas
Gestão de Laboratórios
• Laboratórios Virtuais
• Automação de Implantação
• Bibliotecas de VMs
Microsoft Test Managerdemo
Relatório: Requisitos Implementados
Relatório: Evolução dos Testes
Controle de Qualidade: Depois
• Aplicação em produção– Detecção de Erros– Captura Detalhada– Relatórios e Bugs
Teste de Carga
• Geração de Carga• Testes /
Monitoramento de Servidores (Web, SQL…)
• Carga Distribuída• Usuários
ilimitados
IntelliTrace: Depuração Histórica
System Center 2012 Operations Manager
• Monitoramento em tempo real de aplicações– Solução de problemas na sessão do usuário– Coleta de dados de exceções Javascript
• Monitoração de desempenho a partir da perspectiva do browser– HTTP, AJAX, JavaScript
• Degradação de Desempenho – Tamanho de HTML, imagens, scripts, CSS– Latência de rede, desempenho do servidor
• Informações Estatísticas– Contadores por aplicação, página, IP– Tempo médio de execução no cliente,
falhas/seg, etc.
Intellitracedemo
Desenvolvimento
Testes
Implantação
Fase do software
Custo dos bugsCusto dos Bugs
dúvidas?
Your Resources:MSDN / TechNet
http://msdn.microsoft.com/pt-br/http://technet.microsoft.com/pt-br/
• Biblioteca & Artigos Técnicos (do Brasil)• Downloads/Galeria (SDKs, Code samples,
documentação)• Social Network – pergunta um IT Pro • Como trabalhar com Microsoft Products• TechNet Wiki – voz da experiência e como fazer• Learn, learn, learn
@IgorAbadeblog.lambda3.com.br/L3/IgorAbade