scrum e team foundation server - qualidade ao longo de todo o ciclo de vida da aplicação

42
Scrum e Team Foundation Server Qualidade ao longo de todo o ciclo de vida da aplicação Seminário Paranaense de Qualidade de Software Curitiba, 29/04/2013 Igor Abade V. Leite [email protected]

Upload: igor-abade

Post on 11-Jun-2015

2.854 views

Category:

Technology


2 download

DESCRIPTION

Empresas no mundo inteiro têm cada vez mais dificuldade para desenvolver e entregar software de qualidade. Os desafios são vários, tais como gerenciar as expectativas do usuário e as mudanças constantes de requisitos, bem como garantir a coesão e o foco do time. Venha ver como o desenvolvimento ágil de aplicações, apoiado sobre o Scrum e o Team Foundation Server 2012, podem ajudar times de desenvolvimento a melhorar seu dia-a-dia de trabalho para entregar software de qualidade a seus clientes.

TRANSCRIPT

Page 1: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

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]

Page 2: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

• 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

Page 3: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

Menos Teste, Mais QualidadeMenos teste, mais qualidade

Como equilibrar a equação?

Page 4: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicaçã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: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicaçã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 aviões-tanque ao Havaí

Page 6: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

Controle de Qualidade de Software

TESTE

=QUALIDADE

Page 7: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

“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”

Page 8: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

• 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

Page 9: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

• 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

Page 10: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

Test-Last Development

Page 11: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

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?

Page 12: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

Controle de Qualidade de Software

• Teste é só um dos aspectos

• Envolve processo de desenvolvimento

• É preciso garantir qualidade em três momentos: Antes

Durante

Depois

Page 13: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicaçã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 14: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

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

Page 15: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicaçã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 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

Page 16: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

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

Page 17: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

Scrum

• Iterativo• Comunicação• Auto-organizado

• Define– Papéis– Artefatos– Eventos

Page 18: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

Elementos do ScrumScrum Master

Product Owner

Team

Page 19: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

Planejamento Ágil no TFS 2012

demo

Page 20: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

Gestão de Requisitos: Storyboarding

Page 21: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

Arquitetura:Diagrama de Camadas

Page 22: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicaçã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 23: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

XP:Extreme Programming

Page 24: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

TDD: Test-driven Development

Page 25: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

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

Page 26: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

Testes de Unidade

demo

Page 27: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicaçã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 28: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicaçã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 29: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicaçã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 30: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

Gestão de Laboratórios

• Laboratórios Virtuais

• Automação de Implantação

• Bibliotecas de VMs

Page 31: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

Microsoft Test Manager

demo

Page 32: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

Relatório: Requisitos Implementados

Page 33: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

Relatório: Evolução dos Testes

Page 34: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

Controle de Qualidade:

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

Page 35: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

Teste de Carga

• Geração de Carga• Testes /

Monitoramento de Servidores (Web, SQL…)

• Carga Distribuída• Usuários ilimitados

Page 36: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

IntelliTrace:Depuração Histórica

Page 37: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

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.

Page 38: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

Intellitrace

demo

Page 39: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

Desenvolvimento

Testes

Implantação

Fase do software

Custo dos bugsCusto dos Bugs

Page 40: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

dúvidas?

Page 41: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

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

Page 42: Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida da aplicação

www.lambda3.com.br