Qualidade de Software no século XXI

2.240 visualizações

Publicada em

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

Publicada em: Tecnologia
1 comentário
3 gostaram
Estatísticas
Notas
Sem downloads
Visualizações
Visualizações totais
2.240
No SlideShare
0
A partir de incorporações
0
Número de incorporações
28
Ações
Compartilhamentos
0
Downloads
0
Comentários
1
Gostaram
3
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Qualidade de Software no século XXI

  1. 1. “Qualidade de Software no século XXI”<br />Bruno Elias Penteado<br />Coordenador de Qualidade de Software MStech<br />Mestre em Ciência da Computação – UNESP<br />Certificações ISTQB CTFL e CTAL-TA, Micosoft Web Apps C#<br />20/05/2011<br />
  2. 2. Qualidade de Software no século XXI<br />Agradecimentos<br />
  3. 3. Tópicos<br />O que é qualidade? Fazer o que deveria fazer?<br />Como identificar qualidade? Sob que ponto de vista? Usuários, devs, comprador?<br />Quando a qualidade vale a pena. Exemplos: números mega-sena.<br />Qualidade x prejuízos<br />Riscos<br />Piores bugs da história; bugs atuais (PSP e Maps quadrilha Bauru)<br />Tipos de indústrias e os níveis exigidos de qualidade; Ética?<br />Conceitos básicos sobre qualidade<br />Controle de qualidade x testes: diminuição de risco<br />Requisitos funcionais x não-funcionais<br />Mitos sobre qualidade<br />Custa caro; evolução dos custos; prevenção x detecção<br />Requisitos de um tester<br />Futuro<br />Grandes Desafios da Computação<br />Tendências (TaaS, outsourcing, sistemas ubíquos, disponibilidade)<br />Novas plataformas de desenvolvimento<br />
  4. 4. Qualidade de Software no século XXI<br />Tópicos<br />O que é qualidade de software?<br />Abrangência da qualidade de software<br />Mitos da qualidade<br />Piores bugs da história<br />O que nos espera<br />
  5. 5. O que é Qualidade de Software?<br />
  6. 6. O que é Qualidade de Software?<br />Qualidade<br />O que é um software com qualidade?<br />Conformidade às exigências?<br />De quem? <br />Relativa<br />
  7. 7. O que é Qualidade de Software?<br />Atores na qualidade de software<br />Gerente projeto<br />Programador<br />Testador<br />Usuário<br />Cliente<br />
  8. 8. O que é Qualidade de Software?<br />Ideias sobre qualidade de software<br />Defeito zero é alta qualidade<br />Grande número de funções é alta qualidade<br />Codificação elegante é alta qualidade<br />Alto desempenho é alta qualidade<br />Baixo custo de desenvolvimento é alta qualidade<br />Desenvolvimento rápido é alta qualidade<br />Facilidade para o usuário é alta qualidade<br />
  9. 9. O que é Qualidade de Software?<br />O que é qualidade?<br />Qualidade é valor para alguma pessoa<br />Vale o custo x benefício?<br />Pagarão para ter seus requisitos atendidos?<br />
  10. 10. O que é Qualidade de Software?<br />Efeito “não tão ruim”<br />Todos os softwares têm erro;<br />Satisfação dos usuários;<br />Preferência em relação ao concorrente;<br />Software de qualidade?<br />Vale a pena melhorar?<br />
  11. 11. O que é Qualidade de Software?<br />Qualidade?<br />Caso: Google Maps<br />SIG com fotos de satélite de alta resolução<br />Determina rotas de trânsito<br />
  12. 12. O que é Qualidade de Software?<br />Qualidade?<br />Caso: Google Maps<br />Usado também para o mal<br />Jornal da Cidade: Bauru, 3/5/2011<br />
  13. 13. Qualidade?<br />
  14. 14. O que é Qualidade de Software?<br />Qualidade<br />Não significa ausência de erros!<br />Muitos erros pode significar menor valor<br />Não garante valor ao software<br />Exemplos?<br />
  15. 15. O que é Qualidade de Software?<br />Qualidade<br />Conformidade com requisitos não é suficiente!<br />Requisito é o meio: fornecer valor para quem?<br />Requisitos identificam as pessoas importantes?<br />Requisitos capturam seus valores?<br />
  16. 16. O que é Qualidade de Software?<br />“Qualidade é valor para alguma pessoa disposta a pagar por seus benefícios”<br />
  17. 17. Abrangência da Qualidade de Software<br />
  18. 18. Abrangência da Qualidade de Software<br />Qualidade<br />Risco<br />Fator que pode resultar em conseqüências negativas futuras;<br />Projeto: relacionado ao gerenciamento e ao controle do projeto;<br />Produto: relacionado ao produto em fabricação<br />
  19. 19. Abrangência da Qualidade de Software<br />Processo de Qualidade de Software<br />Prevenção: garantia por meio de processos;<br />Treinamento<br />Grupo de SQA<br />Uso de lições aprendidas<br />Melhoria de processo<br />Detecção: controle por meio de testes;<br />Compilação/análise de código<br />Revisão por pares<br />Teste <br />Auditorias<br />Diminuição de riscos ao longo da produção<br />
  20. 20. Abrangência da Qualidade de Software<br />Testes<br />Até quando testar?<br />Custo x benefício<br />Variação conforme indústria<br />
  21. 21. Abrangência da Qualidade de Software<br />Níveis dos testes<br />Unidade, Integração, Sistema, Aceitação<br />
  22. 22. Abrangência da Qualidade de Software<br />Testes<br />Abordagem para os testes<br />Mostrar que o sistema:<br />Faz o que não deve fazer;<br />Não faz o que deve fazer;<br />
  23. 23. Abrangência da Qualidade de Software<br />Testes<br />Casos de teste<br />Uma funcionalidade pode acarretar em centenas de casos de teste<br />
  24. 24. Abrangência da Qualidade de Software<br />Testes<br />Exemplo de caso de teste<br />
  25. 25. Abrangência da Qualidade de Software<br />Processo - padrões<br />Gerais<br />ISO 9126 – Qualidade de produto de software<br />ISO 12207 – Qualidade do processo de software<br />IEEE 829 – Documentação de testes<br />IEEE 1028 – Revisão de software<br />IEEE 1044 – Classificação de incidentes<br />BS 7925 – Técnicas de teste<br />(...)<br />Específicos por indústria<br />DO-178B – software aviônico<br />FDA 21 – software médico<br />(...)<br />
  26. 26. Abrangência da Qualidade de Software<br />Padrão ISO 9126<br />Requisitos funcionais e não-funcionais<br />
  27. 27. Abrangência da Qualidade de Software<br />Padrão IEEE 829<br />Documentação do processo de testes<br />
  28. 28. Abrangência da Qualidade de Software<br />Processo<br />Exemplos de modelos de melhoria de processo<br />Produção de software<br />CMMi – CapabilityMaturityModelintegation<br />MPS.Br – Melhoria do Processo de Software Brasileiro<br />Teste de software<br />TMMi – TestMaturityModelintegration<br />TPI – TestProcessImprovement<br />
  29. 29. Mitos<br />
  30. 30. Mitos<br />Mitos<br />O testador é inimigo do desenvolvedor<br />
  31. 31. Mitos<br />Mitos<br />Testers podem ser desenvolvedores menos qualificados<br />Google: Software Engineer in Test<br />Microsoft: Software DevelopmentEngineer in Test<br />
  32. 32. Mitos<br />Mitos<br />Qualidade custa caro<br />Definição econômica de qualidade:<br />“É sempre mais barato fazer certo na primeira vez!”<br />
  33. 33. Mitos<br />Mitos<br />Qualidade leva muito tempo<br />Nunca se tem tempo para fazer da forma correta<br />Sempre existe tempo para refazer<br />A cada R$ 1,00 em desenvolvimento, de R$ 2,00 a R$ 3,00 são gastos com retrabalho<br />
  34. 34. Bugs históricos<br />
  35. 35. Bugs históricos<br />O que é um bug?<br />Primeiro bug: computador Mark II, na Universidade de Harvard (1945)<br />
  36. 36. Bugs históricos<br />Mariner I – 1962<br />Missão observar para o planeta Vênus<br />Fórmula matemática foi equivocadamente transcrita para o computador<br />Desviou de seu curso e foi destruída 4 minutos após lançamento<br />Prejuízo: US$ 18,5 mi<br />
  37. 37. Bugs históricos<br />Gasoduto soviético – 1982<br />Supostamente, a CIA infiltrou um ‘cavalo de Tróia’ no sistema que controlava o gasoduto Transiberiano<br />Maior explosão não-nuclear da história<br />Detectado por satélites americanos<br />
  38. 38. Bugs históricos<br />Therac-25 – 1985/1987<br />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<br />Condição de disputa no SO<br />5 mortes, várias pessoas feridas<br />
  39. 39. Bugs históricos<br />Primeiro vírus da Internet – 1987<br />Estudante americano criou programa que afetou em um dia até 6.000 computadores;<br />SO: Unix<br />Buffer overflow: função getc() da linguagem C, no sistema UNIX, fazia leitura pela rede<br />Permitia acesso não autorizado<br />
  40. 40. Bugs históricos<br />Queda da rede AT&T - 1990<br />Falha no software dos switches de longa distância ao receber certa mensagem de uma máquina vizinha<br />114 switches reiniciando a cada 6 segundos<br />60 mil pessoas ficaram sem ligações à distância por 9h<br />Correção: o software foi mudado para sua versão antiga<br />
  41. 41. Bugs históricos<br />Míssil Patriot – 1991<br />Dhahran, Iraque<br />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<br />Recomendação era rebootar o sistema de tempos em tempos<br />Resultado: 600 metros de erro na distância em uma interceptação<br />28 soldados americanos mortos<br />
  42. 42. Bugs históricos<br />Divisão de pontos flutuantes nos processadores Pentium da Intel – 1993<br />Erro em divisões dentro de uma faixa de números (erro ~0,006% no arrendondamento)<br />3 a 5 milhões de peças com defeito<br />Recall para todos que quiseram trocar<br />Custou à Intel US$ 475 milhões<br />
  43. 43. Bugs históricos<br />Ping da Morte – 1995/96<br />Primeiras versões do TCP/IP<br />Buffer overflow: mensagem grande (maior que limite de 64KB)<br />Problema na manipulação de erros na remontagem de um pingmal-formado trava SO´s (Windows, Unix, Macintosh, etc.)<br />
  44. 44. Bugs históricos<br />Ariane 5 vôo 501 – 1996<br />Foguete com código reutilizado do Ariane 4 (outro hardware);<br />O processador primário do foguete sobrecarrega os motores que se desintegraram em 40 segundos;<br />Overflow de inteiro: conversão de floatde 64-bits para inteiro 16-bits com sinal;<br />Não tripulado (sem vítimas); prejuízo de US$ 370 milhões<br />
  45. 45. Bugs históricos<br />Bug do milênio (Y2K) – 2000<br />Datas com apenas 2 dígitos para o ano<br />Uma das maiores histerias da história<br />Ao virar o ano 2000, a preocupação era que contasse como 1900<br />Entre US$ 300 e US$ 500 bi no mundo todo<br />Bug de 2038<br />time_tem C  número de segundos a partir de 1/1/1970. Quando usado 4 bytes = 19/1/2038<br />
  46. 46. Bugs históricos<br />Toyota Prius – 2010<br />Problema no software do sistema ABS de freios – acelerador fica preso, dificultando desaceleração<br />Recall de 400.000 veículos<br />~ US$ 2 bilhões de prejuízo, desvalorização de 15% nas ações<br />Fonte: BBC, Computer World UK<br />
  47. 47. Bugs históricos<br />Play Station Network - 2011<br />Invasão do sistema<br />Dados privados e de cartão de crédito de ~70 mi de pessoas foram roubados<br />Governo japonês não deixou voltar até atingir nível de qualidade<br />
  48. 48. Próximos bugs?<br />
  49. 49. Próximos bugs?<br />Qualidade de software nos dias de hoje<br />Redes Sociais<br />Identidade on-line  Privacidade<br />Protegidos pelas políticas definidas nos Termos de Serviço dos sites<br />E se hackearem sua conta de e-mail em seu celular?<br />Geolocalização<br />
  50. 50. Próximos bugs?<br />Qualidade de software nos dias de hoje<br />Mecanismos de buscas<br />Ex. Google:<br />Informações (computador, browser, termos)<br />Estatísticas enviadas a 3os, reusadas por patrocinadores<br />Criação de perfil, com propagandas perseguindo usuário<br />
  51. 51. Próximos bugs?<br />Qualidade de software nos dias de hoje<br />Mecanismos de buscas<br />Ex. Google:<br />Google salva histórico de buscas<br />Podem ser requisitadas legalmente;<br />Espiado por funcionário;<br />Hackeado<br />
  52. 52. Próximos bugs?<br />Qualidade de software nos dias de hoje<br />Mecanismos de buscas<br />Ex. Google:<br />Indexação de conteúdo impróprio<br />Bullying, violação de direitos autorais, etc.<br />Receita: links patrocinados / pageviews<br />Gov. italiano condenou Google<br />Mídia como jornal ou televisão<br />
  53. 53. Próximos bugs?<br />Qualidade de software nos dias de hoje<br />Mecanismos de buscas<br />Ex. Google:<br />StreetView<br />Gov. da Alemanha proibiu<br />Fere privacidade<br />
  54. 54. Próximos bugs?<br />Qualidade de software nos dias de hoje<br />Governo eletrônico <br />Como ter um design universal?<br />Transparência dos dados<br />
  55. 55. Próximos bugs?<br />Qualidade de software nos dias de hoje<br />Urna eletrônica<br />Fabricante diz não ser segura<br />Possibilidade de boot pelo disco externo<br />Não tem auditoria independente<br />Usava como SO: VirtuOS, Windows CE e agora Linux<br />
  56. 56. Próximos bugs?<br />Qualidade de software nos dias de hoje<br />Dispositivos móveis<br />iPhone e Android armazenam sua localização<br />
  57. 57. Próximos bugs?<br />Então... software não é confiável?<br />Limitação humana<br />Pessoas não conhecem/dominam tudo;<br />Pessoas tem habilidades, mas não são perfeitas;<br />Pessoas cometem erros<br />Pressões por tempo, custo<br />Especificações incompletas<br />Manutenção em código<br />“Grandes poderes trazem grandes responsabilidades”<br />
  58. 58. O que nos espera<br />
  59. 59. Futuro<br />Futuro<br />Tópicos futuros<br />Quais os assuntos mais promissores dentro da QS nos próximos anos?<br />Novas plataformas<br />Que novos tipos de software serão lançados nos próximos anos?<br />
  60. 60. Futuro<br />Futuro<br />Tópicos de pesquisa<br />Test As A Service<br />Teste baseado em risco<br />Testes ágeis<br />
  61. 61. Futuro<br />Novas plataformas<br />Dispositivos móveis: Tablets, smartphones, e-Readers, ...<br />Interfaces mais naturais  uso em vários domínios<br />Qual o padrão de uso? TV!<br />PaperPhone<br />
  62. 62. Futuro<br />Novas plataformas<br />Carros<br />E se seu carro se conectar à Internet?<br />Sistemas multimídia embutidos de fábrica<br />Windows EmbeddedAutomotive<br />Diferenciação por tecnologia<br />
  63. 63. Futuro<br />Novas plataformas<br />Carros<br />E se seu carro se dirigir sozinho, auto-estacionar?<br />Como testar?<br />
  64. 64. Futuro<br />Novas plataformas<br />Carros<br />E se hackers desabilitarem seu freio?<br />Quais testes são aplicáveis?<br />Padrão AUTOSAR (AUTomotive Open System ARchitecture)<br />
  65. 65. Futuro<br />Novas plataformas<br />SmartGrid<br />Consumo crescente de energia elétrica<br />Risco de interrupção<br />Otimização da distribuição, consumo e cobrança<br />
  66. 66. Futuro<br />Novas plataformas<br />Arquitetura multicore<br />Como os novos softwares tirarão proveito dessa arquitetura?<br />Reescrever SO´s: vale a pena?<br />Como testar?<br />
  67. 67. Futuro<br />Novas plataformas<br />Dispositivos médicos<br />Implantes sofisticados  mini computadores<br />Como se proteger de ataques?<br />Como testar?<br />
  68. 68. Recapitulando...<br />O que é qualidade de software?<br />Abrangência da qualidade de software<br />Mitos da qualidade<br />Piores bugs da história<br />O que nos espera<br />
  69. 69. Obrigado!<br />“Qualidade de Software no século XXI”<br />Bruno Elias Penteado<br /> bruno.penteado@mstech.com.br<br />Twitter: @brunopenteado<br />Estamos contratando!<br />curriculum@mstech.com.br<br />Twitter: @_MStech<br />

×