Scrum e Team Foundation Server
Qualidade ao longo de todo o ciclo de vida da aplicação
Seminário Paranaense de Qualidade de SoftwareCuritiba, 29/04/2013
Igor Abade V. [email protected]
• 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
Sobre o Palestrante
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...
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 aviões-tanque ao Havaí
Controle de Qualidade de Software
TESTE
=QUALIDADE
“temos um requisito que mudou, o que precisamos testar?”
Já ouviu falar disso?
“meus testers gastam muito tempo testando a mesma coisa”
“ferramental é caro (licenças, processos, pessoas)”
“devs e testers trabalham em ‘silos’ e não falam/não se comunicam na mesma língua”
“quando meu sistema estará pronto para liberar?”
“desenvolvedores dizem que os defeitos são inúteis”
• Ping-Pong entre Devs e Testers– Bug é “rebatido” de um
lado para o outro– Enorme esforço
desperdiçado
• Colaboração é baixa
Colaboração com Desenvolvedores
• Por que um bug não é corrigido?– Dificuldade em
documentar passos de reprodução do erro
– Falta de visibilidade das ações do tester
– Diferenças de ambiente
Colaboração com Desenvolvedores
Test-Last Development
O mercado está cada vez mais competitivo
• Nossos clientes precisam ir cada vez mais rápido para o mercado.
• Usuários estão impacientes.
• Adivinha onde vamos cortar?
Controle de Qualidade de Software
• Teste é só um dos aspectos
• Envolve processo de desenvolvimento
• É preciso garantir qualidade em três momentos: Antes
Durante
Depois
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
ALM: Application Lifecycle Management• Gestão do
Ciclo de Vida da Aplicação
• Coordenação– Requisitos– Modelagem– Desenvolvimento– Construção– Testes– Manutenção e
operações
• Integração do Time
Arquitetura e Design
Experiência do Usuário
Gestão de Requisitos
Qualidade da Codificação
Gestão de Configuração
Gestão de Dados
Gestão de Projeto
Implantação e Operações
Controle de Qualidade
Gestão de Entrega
PROBLEMA: Falta de Visibilidade do status
do projeto
PROBLEMA: Comunicação
ineficiente no time
PROBLEMA: Equilibrar demandas de negócio e risco do
projeto
PROBLEMA: Qualidade e tempo
de entrega imprevisíveis
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 clientemais 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
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 ScrumScrum Master
Product Owner
Team
Planejamento Ágil no TFS 2012
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
CI:Continuous Integration
• 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
Testes de Unidade
demo
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 Manager
demo
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 2012Operations 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.
Intellitrace
demo
Desenvolvimento
Testes
Implantação
Fase do software
Custo dos bugsCusto dos Bugs
dúvidas?
@IgorAbadeblog.lambda3.com.br/L3/IgorAbade
www.lambda3.com.br
Top Related