menos teste e mais qualidade - como equilibrar essa equação?

37
Menos Teste e Mais Qualidade: Como equilibrar essa equação?

Upload: igor-abade

Post on 27-Jun-2015

833 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Menos teste e mais qualidade - como equilibrar essa equação?

Menos Teste e Mais Qualidade:Como equilibrar essa equação?

Page 2: 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

Page 3: Menos teste e mais qualidade - como equilibrar essa equação?

Menos Teste, Mais QualidadeMenos teste, mais qualidade

Como equilibrar a equação?

Page 4: Menos teste e mais qualidade - como equilibrar essa 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...

Page 5: Menos teste e mais qualidade - como equilibrar essa equação?

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

Page 6: Menos teste e mais qualidade - como equilibrar essa equação?

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í

Page 7: Menos teste e mais qualidade - como equilibrar essa equação?

Controle de Qualidade de Software

TESTE

=QUALIDADE

Page 8: Menos teste e mais qualidade - como equilibrar essa equação?

Controle de Qualidade de Software

• Teste é só um dos aspectos

• Envolve processo de desenvolvimento

• É preciso garantir qualidade em três momentos:

Antes

DuranteDepois

Page 9: Menos teste e mais qualidade - como equilibrar essa equação?

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

Page 10: Menos teste e mais qualidade - como equilibrar essa equação?

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

Page 11: Menos teste e mais qualidade - como equilibrar essa equação?

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

Page 12: Menos teste e mais qualidade - como equilibrar essa equação?

Scrum

• Iterativo• Comunicação• Auto-organizado

• Define–Papéis–Artefatos–Eventos

Page 13: Menos teste e mais qualidade - como equilibrar essa equação?

Elementos do Scrum

Scrum Master

Product Owner

Team

Page 14: Menos teste e mais qualidade - como equilibrar essa equação?

Planejamento Ágil no TFS “11”demo

Page 15: Menos teste e mais qualidade - como equilibrar essa equação?

Gestão de Requisitos: Storyboarding

Page 16: Menos teste e mais qualidade - como equilibrar essa equação?

Arquitetura: Diagrama de Camadas

Page 17: Menos teste e mais qualidade - como equilibrar essa equação?

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

Page 18: Menos teste e mais qualidade - como equilibrar essa equação?

XP: Extreme Programming

Page 19: Menos teste e mais qualidade - como equilibrar essa equação?

TDD: Test-driven Development

Page 20: Menos teste e mais qualidade - como equilibrar essa equação?

• 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

Page 21: Menos teste e mais qualidade - como equilibrar essa equação?

Testes de Unidadedemo

Page 22: Menos teste e mais qualidade - como equilibrar essa equação?

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

Page 23: Menos teste e mais qualidade - como equilibrar essa equação?

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

Page 24: Menos teste e mais qualidade - como equilibrar essa equação?

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

Page 25: Menos teste e mais qualidade - como equilibrar essa equação?

Gestão de Laboratórios

• Laboratórios Virtuais

• Automação de Implantação

• Bibliotecas de VMs

Page 26: Menos teste e mais qualidade - como equilibrar essa equação?

Microsoft Test Managerdemo

Page 27: Menos teste e mais qualidade - como equilibrar essa equação?

Relatório: Requisitos Implementados

Page 28: Menos teste e mais qualidade - como equilibrar essa equação?

Relatório: Evolução dos Testes

Page 29: Menos teste e mais qualidade - como equilibrar essa equação?

Controle de Qualidade: Depois

• Aplicação em produção– Detecção de Erros– Captura Detalhada– Relatórios e Bugs

Page 30: Menos teste e mais qualidade - como equilibrar essa equação?

Teste de Carga

• Geração de Carga• Testes /

Monitoramento de Servidores (Web, SQL…)

• Carga Distribuída• Usuários

ilimitados

Page 31: Menos teste e mais qualidade - como equilibrar essa equação?

IntelliTrace: Depuração Histórica

Page 32: Menos teste e mais qualidade - como equilibrar essa equação?

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.

Page 33: Menos teste e mais qualidade - como equilibrar essa equação?

Intellitracedemo

Page 34: Menos teste e mais qualidade - como equilibrar essa equação?

Desenvolvimento

Testes

Implantação

Fase do software

Custo dos bugsCusto dos Bugs

Page 35: Menos teste e mais qualidade - como equilibrar essa equação?

dúvidas?

Page 36: Menos teste e mais qualidade - como equilibrar essa equação?

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

Page 37: Menos teste e mais qualidade - como equilibrar essa equação?

@IgorAbadeblog.lambda3.com.br/L3/IgorAbade