qualidade de software com visual studio alm

Post on 04-Jul-2015

2.665 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Visual Studio ALM

Qualidade de Software

Adriano Bertucci

Especialista em Soluções ALM

Microsoft MVP Visual C#

@adrianobertucci

adriano.bertucci http://www.adrianobertucci.com

adriano@bertucci.com.br

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

adriano@bertucci.com.br

top related