Você está na página 1de 69

| 

   


Bruno Elias Penteado
Coordenador de Qualidade de Software MStech
Mestre em Ciência da Computação ² UNESP
Certificações ISTQB CTFL e CTAL-TA, Micosoft Web Apps C#
20/05/2011
Y 
   
] Agradecimentos
] Tópicos
] O que é qualidade? Fazer o que deveria fazer?
] Como identificar qualidade? Sob que ponto de vista? Usuários, devs, comprador?
] Quando a qualidade vale a pena. Exemplos: números mega-sena.
] Qualidade x prejuízos
] Riscos
] Piores bugs da história; bugs atuais (PSP e Maps quadrilha Bauru)
] Tipos de indústrias e os níveis exigidos de qualidade; Ética?
] Conceitos básicos sobre qualidade
] Controle de qualidade x testes: diminuição de risco
] Requisitos funcionais x não-funcionais
] Mitos sobre qualidade
] Custa caro; evolução dos custos; prevenção x detecção
] Requisitos de um tester
] Futuro
] Grandes Desafios da Computação
] Tendências (TaaS, outsourcing, sistemas ubíquos, disponibilidade)
] Novas plataformas de desenvolvimento
Y 
   
] Tópicos
] O que é qualidade de software?
] Abrangência da qualidade de software
] Mitos da qualidade
] Piores bugs da história
] O que nos espera
O que é Qualidade de Software?
‰ Y 
 
] Qualidade
] O que é um software com qualidade?
] Conformidade às exigências?
] De quem?
] Relativa
‰ Y 
 
] Atores na qualidade de software
] Gerente projeto
] Programador
] Testador
] Usuário
] Cliente
‰ Y 
 
] Ideias sobre qualidade de software
] Defeito zero é alta qualidade
] Grande número de funções é alta qualidade
] Codificação elegante é alta qualidade
] Alto desempenho é alta qualidade
] Baixo custo de desenvolvimento é alta qualidade
] Desenvolvimento rápido é alta qualidade
] Facilidade para o usuário é alta qualidade
‰ Y 
 
] O que é qualidade?
] Qualidade é valor para alguma pessoa
] Vale o custo x benefício?
] Pagarão para ter seus requisitos atendidos?
‰ Y 
 
] Efeito ´não tão ruimµ
] Todos os softwares têm erro;
] Satisfação dos usuários;
] Preferência em relação ao concorrente;

] Software de qualidade?
] Vale a pena melhorar?
‰ Y 
 
] Qualidade?
] Caso:  
] SIG com fotos de satélite de alta resolução
] Determina rotas de trânsito
‰ Y 
 
] Qualidade?
] Caso:  
] Usado também para o mal

± 
   
] Qualidade?
‰ Y 
 
] Qualidade
] Não significa ausência de erros!
] Muitos erros pode significar menor valor
] Não garante valor ao software
] Exemplos?
‰ Y 
 
] Qualidade
] Conformidade com requisitos não é suficiente!
] Requisito é o meio: fornecer valor para quem?
] Requisitos identificam as pessoas importantes?
] Requisitos capturam seus valores?
‰ Y 
 

|        



 
Abrangência da Qualidade de Software
4   Y 
 
] Qualidade
] Risco
] Fator que pode resultar em conseqüências negativas futuras;
] O   : relacionado ao gerenciamento e ao controle do projeto;
] O   : relacionado ao produto em fabricação
4   Y 
 
] Processo de Qualidade de Software
] O   : garantia por meio de    ;
] Treinamento
] Grupo de SQA
] Uso de lições aprendidas
] Melhoria de processo

] '   : controle por meio de   ;


] Compilação/análise de código
] Revisão por pares
] Teste
] Auditorias

] Diminuição de riscos ao longo da produção


4   Y 
 
] Testes
] Até quando testar?
] Custo x benefício
] Variação conforme indústria
4   Y 
 
] Níveis dos testes
] Unidade, Integração, Sistema, Aceitação
4   Y 
 
] Testes
] Abordagem para os testes
] Mostrar que o sistema:
ë Faz o que não deve fazer;
ë Não faz o que deve fazer;
4   Y 
 
] Testes
] Casos de teste
] Uma funcionalidade pode acarretar em centenas de casos de teste
4   Y 
 
] Testes
] Exemplo de caso de teste
4   Y 
 
] Processo - padrões
] Gerais
] ISO 9126 ² Qualidade de produto de software
] ISO 12207 ² Qualidade do processo de software
] IEEE 829 ² Documentação de testes
] IEEE 1028 ² Revisão de software
] IEEE 1044 ² Classificação de incidentes
] BS 7925 ² Técnicas de teste
] (...)

] Específicos por indústria


] DO-178B ² software aviônico
] FDA 21 ² software médico
] (...)
4   Y 
 
] Padrão ISO 9126
] Requisitos funcionais e não-funcionais
4   Y 
 
] Padrão IEEE 829
] Documentação do processo de testes
4   Y 
 
] Processo
] Exemplos de modelos de melhoria de processo
] Produção de software
] CMMi ² Capability Maturity Model integation
] MPS.Br ² Melhoria do Processo de Software Brasileiro

] Teste de software
] TMMi ² Test Maturity Model integration
] TPI ² Test Process Improvement
Mitos
˜

] Mitos
] O testador é inimigo do desenvolvedor
˜

] Mitos
] Testers podem ser desenvolvedores menos qualificados
] Google: Software Engineer in Test
] Microsoft: Software Development Engineer in Test
˜

] Mitos
] Qualidade custa caro
] Definição econômica de qualidade:
ë ´É sempre mais barato fazer certo na primeira vez!µ
˜

] Mitos
] Qualidade leva muito tempo
] Nunca se tem tempo para fazer da forma correta
] Sempre existe tempo para refazer
] A cada R$ 1,00 em desenvolvimento, de R$ 2,00 a R$ 3,00 são gastos
com retrabalho
Bugs históricos

 
 
] O que é um ã ?
] Primeiro ã : computador Mark II, na Universidade de Harvard
(1945)

 
 

] ˜   


] Missão observar para o planeta Vênus
] Fórmula matemática foi equivocadamente
transcrita para o computador
] Desviou de seu curso e foi destruída 4 minutos
após lançamento
] Prejuízo: US$ 18,5 mi

 
 

]        !


] Supostamente, a CIA infiltrou um ¶cavalo
de Tróia· no sistema que controlava o
gasoduto Transiberiano
] Maior explosão não-nuclear da história
] Detectado por satélites americanos

 
 

] þ " !!#
] Dispositivo de terapia por radiação
sobre células cancerosas falha e
libera doses letais de radiação em
vários consultórios médicos
] Condição de disputa no SO
] 5 mortes, várias pessoas feridas

 
 

] O$  %    !#


] Estudante americano criou programa que
afetou em um dia até 6.000 computadores;
] SO: Unix
]
 
  : função   da linguagem C,
no sistema UNIX, fazia leitura pela rede
] Permitia acesso não autorizado

 
 

] Y   &þþ" 


] Falha no software dos    de
longa distância ao receber certa
mensagem de uma máquina vizinha
] 114    reiniciando a cada 6
segundos
] 60 mil pessoas ficaram sem ligações à
distância por 9h
] Correção: o software foi mudado
para sua versão antiga

 
 

] ˜%O   
] Dhahran, Iraque
] Erro de software no relógio do míssil: a
cada 100 horas o relógio interno do
sistema desviava um terço de segundo
] Recomendação era ã  o sistema
de tempos em tempos
] Resultado: 600 metros de erro na
distância em uma interceptação
] 28 soldados americanos mortos

 
 

] '    '    


    O  $ 

] Erro em divisões dentro de uma faixa de
números (erro ~0,006% no
arrendondamento)
] 3 a 5 milhões de peças com defeito
]  para todos que quiseram trocar
] Custou à Intel US$ 475 milhões

 
 

] O( ˜   


] Primeiras versões do
TCP/IP
]
 
  : mensagem
grande (maior que limite
de 64KB)
] Problema na manipulação
de erros na remontagem
de um  mal-formado
trava SO s (Windows,
Unix, Macintosh, etc.)

 
 

] & )  


] Foguete com código reutilizado do Ariane 4
(outro hardware);
] O processador primário do foguete
sobrecarrega os motores que se
desintegraram em 40 segundos;
] ‰
  de inteiro: conversão de   de 64-
bits para inteiro 16-bits com sinal;
] Não tripulado (sem vítimas); prejuízo de US$
370 milhões

 
 

] (  $* +,-. 


] Datas com apenas 2 dígitos para o ano
] Uma das maiores histerias da história
] Ao virar o ano 2000, a preocupação era que
contasse como 1900
] Entre US$ 300 e US$ 500 bi no mundo todo
] Bug de 2038
]  em C ë número de segundos a partir de
1/1/1970. Quando usado 4 bytes = 19/1/2038

 
 

] þ / O   
] Problema no software do sistema ABS
de freios ² acelerador fica preso,
dificultando desaceleração
] Recall de 400.000 veículos
] ~ US$ 2 bilhões de prejuízo,
desvalorização de 15% nas ações

 
 

] O/0  1 2 3" 


] Invasão do sistema
] Dados privados e de cartão de crédito de
~70 mi de pessoas foram roubados
] Governo japonês não deixou voltar até
atingir nível de qualidade
Próximos bugs?
O  
] Qualidade de software nos dias de hoje
] Redes Sociais
] Identidade on-line ë Privacidade
] Protegidos pelas políticas definidas nos Termos de Serviço dos sites
] E se hackearem sua conta de e-mail em seu celular?
] Geolocalização
O  
] Qualidade de software nos dias de hoje
] Mecanismos de buscas
] Ex. Google:
] Informações (computador, browser, termos)
ë Estatísticas enviadas a 3os, reusadas por patrocinadores
ë Criação de perfil, com propagandas perseguindo usuário
O  
] Qualidade de software nos dias de hoje
] Mecanismos de buscas
] Ex. Google:
] Google salva histórico de buscas
ë Podem ser requisitadas legalmente;
ë Espiado por funcionário;
ë Hackeado
O  
] Qualidade de software nos dias de hoje
] Mecanismos de buscas
] Ex. Google:
] Indexação de conteúdo impróprio
ë Bullying, violação de direitos autorais, etc.
ë Receita: links patrocinados / pageviews
ë Gov. italiano condenou Google
ë Mídia como jornal ou televisão
O  
] Qualidade de software nos dias de hoje
] Mecanismos de buscas
] Ex. Google:
] Street View
ë Gov. da Alemanha proibiu
ë Fere privacidade
O  
] Qualidade de software nos dias de hoje
] Governo eletrônico
] Como ter um design universal?
] Transparência dos dados
O  
] Qualidade de software nos dias de hoje
] Urna eletrônica
] Fabricante diz não ser segura
] Possibilidade de boot pelo disco externo
] Não tem auditoria independente
] Usava como SO: VirtuOS, Windows CE e agora Linux
O  
] Qualidade de software nos dias de hoje
] Dispositivos móveis
] iPhone e Android armazenam sua localização
O  
] Então... software não é confiável?
] Limitação humana
] Pessoas não conhecem/dominam tudo;
] Pessoas tem habilidades, mas não são perfeitas;
] Pessoas cometem erros
] Pressões por tempo, custo
] Especificações incompletas
] Manutenção em código
|       
O que nos espera
h

] Futuro
] þ '   
] Quais os assuntos mais promissores dentro da QS nos próximos
anos?

] 1 ' $
] Que novos tipos de software serão lançados nos próximos anos?
h

] Futuro
] Tópicos de pesquisa
] Test As A Service
] Teste baseado em risco
] Testes ágeis
h

] Novas plataformas
] Dispositivos móveis: Tablets, smartphones, e-Readers, ...
] Interfaces mais naturais ë uso em vários domínios
] Qual o padrão de uso? TV!
] O O 
h

] Novas plataformas
] Carros
] E se seu carro se conectar à Internet?
] Sistemas multimídia embutidos de fábrica
] v ã   

] Diferenciação por tecnologia
h

] Novas plataformas
] Carros
] E se seu carro se dirigir sozinho, auto-estacionar?
] Como testar?
h

] Novas plataformas
] Carros
] E se    desabilitarem seu freio?
] Quais testes são aplicáveis?
] Padrão AUTOSAR ( !  
 ‰"#    )
h

] Novas plataformas
] Smart Grid
] Consumo crescente de energia elétrica
]     
] Otimização da distribuição, consumo e cobrança
h

] Novas plataformas
] Arquitetura    
] Como os novos softwares tirarão proveito dessa arquitetura?
] Reescrever SO s: vale a pena?
] Como testar?
h

] Novas plataformas
] Dispositivos médicos
] Implantes sofisticados ë mini computadores
] Como se proteger de ataques?
] Como testar?

 
] O que é qualidade de software?
] Abrangência da qualidade de software
] Mitos da qualidade
] Piores bugs da história
] O que nos espera
‰ 

´ 
   µ
Bruno Elias Penteado
bruno.penteado@mstech.com.br
Twitter: Üã   

Estamos contratando!
curriculum@mstech.com.br
Twitter: Ü"