qualidade de software no século xxi - v2

73
“Qualidade de Software no século XXI” Bruno Elias Penteado Coordenador de Qualidade de Software MStech Mestre em Ciência da Computação – UNESP Certificações: CBTS, ISTQB CTFL, CTAL-TA e CTAL-TM, Micosoft Web Apps C# 21/09/2011

Upload: bruno-penteado

Post on 25-Jun-2015

1.836 views

Category:

Technology


1 download

DESCRIPTION

Nestes slides o conceito de qualidade de software é abordado, e como ele é atacado pela disciplina de Qualidade de software em relação às visões dos atores que participam do processo de criação e distribuição do software.Em seguida, são mostrados defeitos famosos tendo como origem falhas no software, desde a década de 60 até os dias atuais.Ao final, são apresentadas novas plataformas esperadas para emergirem na próxima década, 2010-2020, como a Internet das Coisas, Big Data, automóveis e o próprio corpo humano e os respectivos desafios de qualidade no software subjacente.

TRANSCRIPT

Page 1: Qualidade de Software no Século XXI - v2

“Qualidade de Software no século XXI”Bruno Elias Penteado

Coordenador de Qualidade de Software MStechMestre em Ciência da Computação – UNESP

Certificações: CBTS, ISTQB CTFL, CTAL-TA e CTAL-TM,

Micosoft Web Apps C#21/09/2011

Page 2: Qualidade de Software no Século XXI - v2

Qualidade de Software no século XXI Agradecimentos

Page 3: Qualidade de Software no Século XXI - v2

Qualidade de Software no século XXI Tópicos

O que é qualidade de software? Piores bugs da história Novas plataformas Vale a pena conhecer mais e investir em

qualidade de software?Automóveis

Corpo humano

Internet das coisas

Big Data

Page 4: Qualidade de Software no Século XXI - v2

O que é Qualidade de Software?

Page 5: Qualidade de Software no Século XXI - v2

O que é Qualidade de Software? Qualidade

Dependência crescente em sistemas computacionais

O que é um software com qualidade? Conformidade às exigências? De quem?

Page 6: Qualidade de Software no Século XXI - v2

O que é Qualidade de Software? Atores na qualidade de software

Gerente projeto Programador Testador Usuário Cliente

Page 7: Qualidade de Software no Século XXI - v2

O que é Qualidade de Software? 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

Page 8: Qualidade de Software no Século XXI - v2

O que é Qualidade de Software? O que é qualidade?

Qualidade é valor para alguma pessoa

Vale o custo x benefício? Pagarão para ter seus requisitos atendidos?

Page 9: Qualidade de Software no Século XXI - v2

O que é Qualidade de Software? Qualidade?

Caso: Google Maps SIG com fotos de satélite de alta resolução Determina rotas de trânsito

Page 10: Qualidade de Software no Século XXI - v2

O que é Qualidade de Software? Qualidade?

Caso: Google Maps Usado também para o mal

Jornal da Cidade: Bauru, 3/5/2011

Page 11: Qualidade de Software no Século XXI - v2

O que é Qualidade de Software? Qualidade

Não significa ausência de erros! Não garante valor ao software Muitos erros pode significar menor valor Exemplos?

Page 12: Qualidade de Software no Século XXI - v2

O que é Qualidade de Software? Qualidade

Conformidade com requisitos não é suficiente! Requisito é o meio: fornecer valor para quem? Requisitos identificam as pessoas importantes? Requisitos capturam seus valores?

Page 13: Qualidade de Software no Século XXI - v2

O que é Qualidade de Software?

“Qualidade é valor para alguma pessoa disposta a pagar por seus benefícios”

Page 14: Qualidade de Software no Século XXI - v2

Qualidade de Software

Page 15: Qualidade de Software no Século XXI - v2

Qualidade de Software Cenário

The National Institute of Standards and Technology (NIST) attributed a hefty price tag to the problem claiming software bugs are costing the US economy $US 59.5 billion yearly

NIST, 2002

A disciplina de Qualidade de Software tenta lidar com todos os atores envolvidos, tendo como objetivo final um software com as características de qualidade relevantes a

cada um deles.

Page 16: Qualidade de Software no Século XXI - v2

Qualidade de Software Processo de Qualidade de Software

Prevenção: garantia por meio de processos;

Detecção: controle por meio de testes;

Page 17: Qualidade de Software no Século XXI - v2

Qualidade de Software Processo

Sequência de procedimentos + atores + artefatos

Objetivo: previsibilidade de qualidade ao produto final

Modelos de melhoria de processo Produção de software

CMMi – Capability Maturity Model integation MPS.Br – Melhoria do Processo de Software Brasileiro

Page 18: Qualidade de Software no Século XXI - v2

Qualidade de Software Padrões de qualidade

Gerais ISO 9126 – Qualidade de produto de software ISO 12207 – Qualidade do processo de software ISO 27000 – Segurança da informação 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 (...)

Page 19: Qualidade de Software no Século XXI - v2

Qualidade de Software Padrão ISO 9126

Requisitos funcionais e não-funcionais

É fácil de modificar?É rápido e enxuto?É fácil de usar?É imune a falhas?Satisfaz as necessidades? Executa em outro

ambiente?

Page 20: Qualidade de Software no Século XXI - v2

Qualidade de Software Padrão ISO 9126

A importância depende do tipo de software

Page 21: Qualidade de Software no Século XXI - v2

Qualidade de Software Testes

Abordagem para os testes Mostrar que o sistema:

Faz o que não deve fazer; Não faz o que deve fazer;

Page 22: Qualidade de Software no Século XXI - v2

Qualidade de Software Quem testa o software?

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

Page 23: Qualidade de Software no Século XXI - v2

Qualidade de Software Qualidade custa caro?

Definição econômica de qualidade: “É sempre mais barato fazer certo na primeira vez!”

Page 24: Qualidade de Software no Século XXI - v2

Qualidade de Software 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

Page 25: Qualidade de Software no Século XXI - v2

Qualidade de Software Vale a pena investir?

Custo com qualidade: Prevenção + detecção + falhas internas Treinamentos, testes, bugs corrigidos antes de

release

Custo com falhas (externas): Custo da falha em produção, com o usuário Pode ser vidas.

Custo com qualidade < custos das falhas

Page 26: Qualidade de Software no Século XXI - v2

Qualidade de Software Testes

Até quando testar? Variação conforme indústria

Page 27: Qualidade de Software no Século XXI - v2

Bugs históricos

Page 28: Qualidade de Software no Século XXI - v2

Bugs históricos O que é um bug?

Primeiro bug: computador Mark II, na Universidade de Harvard (1945)

Page 29: Qualidade de Software no Século XXI - v2

Bugs históricos

Mariner I – 1962 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ído 4 minutos após lançamento

Prejuízo: US$ 18,5 mi

Page 30: Qualidade de Software no Século XXI - v2

Bugs históricos

Therac-25 – 1985/1987 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

Page 31: Qualidade de Software no Século XXI - v2

Bugs históricos

Míssil Patriot – 1991 Míssil de defesa Dhahran, Arábia Saudita 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 rebootar o sistema de tempos em tempos

Resultado: 600 metros de erro na distância em uma interceptação

28 soldados americanos mortos

Page 32: Qualidade de Software no Século XXI - v2

Bugs históricos

Divisão de pontos flutuantes nos processadores Pentium da Intel – 1993 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

Recall para todos que quiseram trocar

Custou à Intel US$ 475 milhões

Page 33: Qualidade de Software no Século XXI - v2

Bugs históricos

Ariane 5 vôo 501 – 1996 Foguete com código reutilizado do

Ariane 4 (outro hardware); Overflow de inteiro: conversão de

float de 64-bits para inteiro 16-bits com sinal;

O processador primário do foguete sobrecarrega os motores que se desintegraram em 40 segundos;

Não tripulado (sem vítimas); prejuízo de US$ 370 milhões

Page 34: Qualidade de Software no Século XXI - v2

Bugs históricos

Bug do milênio (Y2K) – 2000 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

time_t em C número de segundos a partir de 1/1/1970. Quando usado 4 bytes = 19/1/2038

Page 35: Qualidade de Software no Século XXI - v2

Bugs históricos

Toyota Prius – 2010 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

Fonte: BBC, Computer World UK

Page 36: Qualidade de Software no Século XXI - v2

Bugs históricos

Play Station Network - 2011 Invasão do sistema Dados privados e de cartão de

crédito de ~70 mi de pessoas foram roubados

Page 37: Qualidade de Software no Século XXI - v2

Problemas atuais?

Page 38: Qualidade de Software no Século XXI - v2

Próximos bugs? 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 Integração no smartphone. E se roubarem? Geolocalização

Page 39: Qualidade de Software no Século XXI - v2

Próximos bugs? Qualidade de software nos dias de hoje

Google Street View Gov. da Alemanha proibiu Fere privacidade

Page 40: Qualidade de Software no Século XXI - v2

Próximos bugs? Apps Móveis

Malwares disponibilizados como aplicações

+50.000 usuários afetados Apple Store, Market

Page 41: Qualidade de Software no Século XXI - v2

Próximos bugs? Qualidade de software nos dias de hoje

Urna eletrônica Fabricante diz não ser segura Não tem auditoria independente

Page 42: Qualidade de Software no Século XXI - v2

Próximos bugs? “Pentágono diz que responderá a cyber

ataques com força militar”

Page 43: Qualidade de Software no Século XXI - v2

O que nos espera

Page 44: Qualidade de Software no Século XXI - v2

Futuro Novas plataformas e seus desafios de

qualidade

AutomóveisCorpo

humanoInternet das

coisasBig Data

Page 45: Qualidade de Software no Século XXI - v2

Futuro Novas plataformas e seus desafios de

qualidade

AutomóveisCorpo

humanoInternet das

coisasBig Data

Page 46: Qualidade de Software no Século XXI - v2

Futuro – novas plataformas Internet of Things

RFID, sensores wireless Monitoramento contínuo Integração inteligente

Page 47: Qualidade de Software no Século XXI - v2

Futuro – novas plataformas Internet of Things

Mais “coisas” conectadas do que pessoas PCs, tablets, smartphones

Page 48: Qualidade de Software no Século XXI - v2

Futuro – novas plataformas Internet of Things

~2020: ~50 bilhões de “coisas” na Internet (nosso corpo, carro, relógio, gado)

Page 49: Qualidade de Software no Século XXI - v2

Futuro – novas plataformas Desafios de qualidade?

Confiabilidade: disponibilidade das informações; Segurança: privacidade, interceptação de informação; Interoperabilidade: padronização;

Page 50: Qualidade de Software no Século XXI - v2

Futuro Novas plataformas e seus desafios de

qualidade

AutomóveisCorpo

humanoInternet das

coisasBig Data

Page 51: Qualidade de Software no Século XXI - v2

Futuro – novas plataformas Big Data

Dados gerados em grande escala (terabytes, petabytes);

Percepção de padrões; Novas formas de trabalhar;

Processamento paralelo; Bases de dados não convencionais;

Page 52: Qualidade de Software no Século XXI - v2

Futuro – novas plataformas Big Data

Capacidade de criação excede de longe a de armazenamento;

Redes sociais, registros médicos, vídeos, dados astronômicos, sensores...

*: Giga < Tera < Peta < Exa < Zetta

Page 53: Qualidade de Software no Século XXI - v2

Futuro – novas plataformas Big Data

Fontes: rastreamento das deslocamentos, atualidades sociais, dados médicos, hábitos e preferências

Personalização de conteúdo

Page 54: Qualidade de Software no Século XXI - v2

Futuro – novas plataformas Big Data

Apple, Google, Twitter processados por usar dados indevidamente;

Page 55: Qualidade de Software no Século XXI - v2

Futuro – novas plataformas Big Data

Desafios de qualidade? Acurácia: precisão dos dados; Interoperabilidade: formatos e estruturas de dados; Eficiência: tempo de execução e espaço consumido; Segurança: privacidade, vazamento de informação; Usabilidade: visualização dos dados;

Page 56: Qualidade de Software no Século XXI - v2

Futuro Novas plataformas e seus desafios de

qualidade

AutomóveisCorpo

humanoInternet das

coisasBig Data

Page 57: Qualidade de Software no Século XXI - v2

Futuro – novas plataformas Automóveis

Carros E se seu carro se conectar à Internet? Diferenciação por tecnologia

Page 58: Qualidade de Software no Século XXI - v2

Futuro – novas plataformas Automóveis

Carros Sistemas multimídia embutidos de fábrica Windows Embedded Automotive Padrão AUTOSAR (AUTomotive Open System

ARchitecture)

Page 59: Qualidade de Software no Século XXI - v2

Futuro – novas plataformas Automóveis

Carros E se seu carro se dirigir sozinho, auto-estacionar?

Page 60: Qualidade de Software no Século XXI - v2

Futuro – novas plataformas Automóveis

Carros E se hackers desabilitarem seu freio?

Page 61: Qualidade de Software no Século XXI - v2

Futuro – novas plataformas Automóveis

Recalls frequentes

Page 62: Qualidade de Software no Século XXI - v2

Futuro – novas plataformas Automóveis

Desafios de qualidade? Confiabilidade: recuperação em caso de erros; Segurança: ataques ao software; Eficiência: consumo de energia; Usabilidade: muitos dados para o motorista;

Page 63: Qualidade de Software no Século XXI - v2

Futuro Novas plataformas e seus desafios de

qualidade

AutomóveisCorpo

humanoInternet das

coisasBig Data

Page 64: Qualidade de Software no Século XXI - v2

Futuro – novas plataformas Corpo humano

Dispositivos médicos Wearable computing Biometria

Page 65: Qualidade de Software no Século XXI - v2

Futuro – novas plataformas Corpo humano

Monitoramento de saúde: batimento cardíaco, temperatura...;

Integração com smartphones;

Page 66: Qualidade de Software no Século XXI - v2

Futuro – novas plataformas Corpo humano

Monitoramento de desempenho de atletas;

Page 67: Qualidade de Software no Século XXI - v2

Futuro – novas plataformas Corpo humano

Dispositivos médicos Implantes sofisticados mini computadores

Page 68: Qualidade de Software no Século XXI - v2

Futuro – novas plataformas Corpo humano

Dispositivos médicos Como se proteger de ataques?

Page 69: Qualidade de Software no Século XXI - v2

Futuro – novas plataformas Corpo humano

Desafios de qualidade? Segurança: privacidade, ataques; Confiabilidade: tolerância a falhas; Eficiência: consumo de energia;

Page 70: Qualidade de Software no Século XXI - v2

Recapitulando... O que é qualidade de software? Piores bugs da história Novas plataformas para o século XXI

Page 71: Qualidade de Software no Século XXI - v2

Próximos bugs? 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

“Grandes poderes trazem grandes responsabilidades”

Page 72: Qualidade de Software no Século XXI - v2

Recapitulando...

Vale a pena conhecer mais e investir em qualidade de software?

Page 73: Qualidade de Software no Século XXI - v2

Obrigado!

“Qualidade de Software no século XXI”Bruno Elias Penteado

[email protected]: @brunopenteado

Estamos [email protected]

Twitter: @_MStech