Visual Studio ALM
Qualidade de Software
Adriano Bertucci
Especialista em Soluções ALM
Microsoft MVP Visual C#
@adrianobertucci
adriano.bertucci http://www.adrianobertucci.com
Qualidade uma necessidade − Considerando que desenvolvimento de software
representa 25% dos gastos em software, identificar a causa dos problemas e falhas nos projetos de desenvolvimento se torna uma necessidade.
− O sucesso de um projeto de software pode ser definido por um triângulo: Tempo (Prazo)
Orçamento (Custo)
Funcionalidades
Funcionalidade
Prazo Orçamento
Qualidade
− Atualmente o triângulo se transformou em um quadrado; Qualidade é a quarta dimensão
− Nos acostumamos em aceitar 2 dos 3 Consideramos isso sucesso?
− Ainda consideraremos 2 das 4 dimensões?
Funcionalidade
Prazo Orçamento
Qualidade uma necessidade
Ideia
Solução
Caminho para o sucesso...
Como chegamos até aqui?
1978 – Colapso do Hartford Coliseum, $90M
1962 – Acidente com Veers, $18.5M
Passado
Presente − Testador reporta um erro após passar horas coletando
evidências de um problema.
− Desenvolvedor diz que não tem informações suficientes.
− Testador refaz os testes coletando mais evidências.
− Desenvolvedor diz que não consegue reproduzir o erro em sua máquina.
Ei, voce informou
“Não consigo
reproduzir” no
defeito que enviei!
Claro! Na minha
máquina funciona!
Testador Desenvolvedor
Presente
Presente
Testador
Você tentou
reproduzir no meu
ambiente de teste?
Não, porque você
está usando. Pare
os seus testes que
eu verifico.
Desenvolvedor
Ainda não consegui
reproduzir! Suas
informações não
estão claras.
Certo, vou parar meus
testes e aí você
assume, olha os logs e
refaz os passos.
Testador Desenvolvedor
Presente
Presente
Testador Desenvolvedor
Futuro − Aplicações em ambientes complexos e
distribuídos
− Software + Serviços
− Tecnologia Multi-Touch, Tables, Smarphones, etc.
Preço da qualidade?
Índices de sucesso em projetos Taxa de falha aceitável? − Baseado em tempo, orçamento e funcionalidades especificadas entregues, 68%
dos projetos nunca foram colocados em produção ou foram cancelados.
Acima do Custo estimado: 45%
Acima do Prazo esperado: 63%
Funcionalidades entregues: 67%
Extreme Chaos, The Standish Group International, Inc. – 2009
Problemas
− “Visibilidade do andamento do projeto”
− “Não existe comunicação na equipe”
− “Difícil conciliar necessidade do usuário com riscos”
− “Modelos de desenvolvimento complexo”
− “Soluções não são testadas”
“um requisito mudou,
quais testes precisam ser
feitos?”
Causas
“testadores gastam
muito tempo
testando a mesma
coisa”
“ferramentas são
caras (tempo, licenças,
pessoas)”
“desenvolvedores e
testadores não falam a
mesma língua e trabalham
em silos”
“quando o
software estará
pronto?”
“desenvolvedores dizem
que os defeitos não
servem para nada”
O que fazer? − Padronizar
− Arquitetar
− Testar
− Ter atitude
− Capacitar
− Organizar
− Integrar
− Fazer manutenção
− Entregar rapidamente
Bugs Existem?
O que dizer sobre P.O.G.?
− “A culpa é do Hardware!” desenvolvedor de software sobre POG
− “A culpa é do Software!“ técnico de manutenção de hardware sobre POG
− “A culpa é da rede!” vendedor de PC
Retirado do http://desciclo.pedia.ws
Desenvolvemos a um bom tempo
POG é inadimisível!
− Por isso temos que estudar!
Desafios comuns para qualidade
Testador Desenvolvedor
Impacto Desenvolvedores sentem-se desmotivados
• Bug ping/pong
• Falta de acesso a ambientes seguros
• Tempo para preparação do ambiente excessivo
Testadores não são respeitados
• Preparar testes e ambiente consomem 30%-50% do ciclo de testes
• Maioria dos defeitos fechados como “não-reproduzíveis””
• Ferramentas não integradas ao ciclo de desenvolvimento
Impacto no negócio
• Falta de agilidade para responder ameaças ou oportunidades
• Alta taxa de falha em projetos
• Quem sente “dor” é o usuário final
Visual Studio 2010
Generalista Especialista
Testes manuais Algumas scripts
Scripts para setup
do lab, massa
dados
Scripts
Alguma
experiência em
código
Codificação
Testes
automatizado
Grande
experiência em
código
Segmentação dos testes
Caixa Preta
Caixa Branca
Testes API
70% dos testes
ocorrem aqui
Maioria das
ferramentas de testes
foca aqui
Team Foundation Server Relatórios
Web Test
Load Test
Coded UI Test
Unit Testing
Gerenciamento de casos de teste
Gerenciamento de laboratórios
Microsoft Test Runner
Coletores de dados (IntelliTrace™, Impacto de testes, Metricas…)
Generalista Especialista
Testes manuais Algumas scripts
Scripts para setup do
lab, massa dados
Scripts
Alguma experiência
em código
Codificação
Testes automatizado
Grande experiência
em código
Visual Studio 2010
Analista de Qualidade
− Gestão/Planejamento de Testes
− Testes manuais
− Testes Unitários
− Testes Funcionais de UI
− WinForms, WPF, IE
− Testes de Desempenho
− Web sites
− Carga / estresse
Testes Funcionais
www.actiongroup.com.br
Execução e Automação
− Ferramenta independente
− Permite a execução de casos de teste
− Coleta dados de sistema e logs de eventos
− Captura imagens de tela e vídeos
− Automatiza testes de aplicativos Windows Forms, WPF e Web
Derrubando as barreiras
− Bugs ricos
− Passos reproduzidos automaticamente
− Vídeos como evidência
− Informações de sistema
− IntelliTrace™
− Imagens do ambiente de testes completo
Testes de Carga e Desempenho
Com usuários
virtuais ilimitados!
Gestão Laboratórios Integrado
− Rapidamente restaura/derruba um ambiente
− Bugs podem guardar imagem do ambiente
− Integração com processo de build
O que buscamos?
− Qualidade
− Evolução
− Chega de apagar incêndios
Perguntas do dia a dia…
O que tem que ser feito? Sistemas novos
− UML
− Component Diagram
− Class Diagram
− Sequence Diagram
− Activity Diagram
− Use Case Diagram
Mas como fazer? Sistemas existentes
− Entendo sistemas existentes
− Código pode ser de difícil manutenção.
− Identificação via DEBUG
− Qual o fluxo atual do sistema?
− Quais são suas dependências?
Dependency Graph
Sequence Diagram
Estamos fazendo certo? Garantindo qualidade
− Comunicação e Integridade
− Informar ao time qual modelo seguir.
− O mais importante garanta que eles estão seguindo.
Layer Diagram
Adriano Bertucci
Especialista em Soluções ALM
Microsoft MVP Visual C#
@adrianobertucci
adriano.bertucci http://www.adrianobertucci.com
Top Related